home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-07-12 | 1.3 MB | 36,476 lines |
Text Truncated. Only the first 1MB is shown below. Download the file for the complete contents.
- diff -rc --new-file /src/baseline/emacs-18.59/Product-Info emacs-18.59/Product-Info
- *** /src/baseline/emacs-18.59/Product-Info Thu Jan 1 00:00:00 1970
- --- emacs-18.59/Product-Info Tue Jul 12 17:05:44 1994
- ***************
- *** 0 ****
- --- 1,62 ----
- + .name
- + emacs
- + .fullname
- + GNU Emacs editor
- + .type
- + Text Editing
- + .short
- + GNU Emacs editor
- + .description
- + GNU Emacs is the GNU incarnation of the advanced, self-documenting,
- + customizable, extensible real-time display editor Emacs. (The `G' in
- + `GNU' is not silent.)
- +
- + We say that Emacs is a "display" editor because normally the text
- + being edited is visible on the screen and is updated automatically as
- + you type your commands.
- +
- + We call it a "real-time" editor because the display is updated very
- + frequently, usually after each character or pair of characters you
- + type. This minimizes the amount of information you must keep in your
- + head as you edit.
- +
- + We call Emacs advanced because it provides facilities that go beyond
- + simple insertion and deletion: filling of text; automatic indentation
- + of programs; viewing two or more files at once; and dealing in terms
- + of characters, words, lines, sentences, paragraphs, and pages, as well
- + as expressions and comments in several different programming
- + languages. It is much easier to type one command meaning "go to the
- + end of the paragraph" than to find that spot with simple cursor keys.
- +
- + "Self-documenting" means that at any time you can type a special
- + character, `Control-h', to find out what your options are. You can
- + also use it to find out what any command does, or to find all the
- + commands that pertain to a topic.
- +
- + "Customizable" means that you can change the definitions of Emacs
- + commands in little ways. For example, if you use a programming
- + language in which comments start with `<**' and end with `**>', you
- + can tell the Emacs comment manipulation commands to use those strings.
- + Another sort of customization is rearrangement of the command set.
- + For example, if you prefer the four basic cursor motion commands (up,
- + down, left and right) on keys in a diamond pattern on the keyboard,
- + you can have it.
- +
- + "Extensible" means that you can go beyond simple customization and
- + write entirely new commands, programs in the Lisp language to be run
- + by Emacs's own Lisp interpreter. Emacs is an "on-line extensible"
- + system, which means that it is divided into many functions that call
- + each other, any of which can be redefined in the middle of an editing
- + session. Any part of Emacs can be replaced without making a separate
- + copy of all of Emacs. Most of the editing commands of Emacs are
- + written in Lisp already; the few exceptions could have been written in
- + Lisp but are written in C for efficiency. Although only a programmer
- + can write an extension, anybody can use it afterward.
- + .version
- + 18.59
- + .author
- + Richard Stallman
- + .distribution
- + GNU Public License
- + .described-by
- + Fred Fish (fnf@amigalib.com)
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/README emacs-18.59/amiga/README
- *** /src/baseline/emacs-18.59/amiga/README Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/README Tue Jul 12 10:00:08 1994
- ***************
- *** 0 ****
- --- 1,11 ----
- + This version of emacs is still built with SAS C. It also requires
- + David Gay's unix emulation library, which can be found in the unix
- + subdirectory here. You may have to go through some contortions to
- + recompile it though.
- +
- + The files in amiga-extra are various things I received in the emacs
- + distribution from David Gay, but didn't have any time to examine
- + very closely, so they are stuck there in limbo for the time being.
- +
- + -Fred ><>
- + 12-Jul-94
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/INSTALL.AMIGA emacs-18.59/amiga/amiga-extra/INSTALL.AMIGA
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/INSTALL.AMIGA Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/INSTALL.AMIGA Sun May 9 18:19:06 1993
- ***************
- *** 0 ****
- --- 1,58 ----
- + DON'T FORGET: This version of Emacs REQUIRES AMIGADOS V2.04 !!
- +
- + If you are updating from a previous version, the following steps apply:
- + - You must redefine your GNUEMACS: assign (the name of the directory
- + has changed from emacs-18.58 to emacs-18.59).
- + - You should make sure you are using the lisp files (*.el and *.elc) which
- + come with this release, as several of them have changed.
- +
- + New users should do the following (assuming you are in the emacs-18.59
- + directory):
- +
- + 1. Copy amiga/.emacs, amiga/.emacs-menu.menu, amiga/.emacs-menu.el to s:
- + 2. Copy amiga/c/#? to somewhere in your path.
- + 3. Add an assign GNUEMACS: <wherever you've put the emacs directory> to
- + your User-Startup.
- + 4. Install Matt Dillon's fifo.library and fifo: handler if you want to use
- + external processes (This can be found on Fish disks). If you have any
- + problems, try a version at least as recent as that on Fish Disk 588.
- + 5. Define various environment variables (these all have defaults, so this
- + isn't absolutely necessary, except for ESHELL) :
- +
- + USER - a username (a la Unix) (default "user")
- + USERNAME - your full name (default same as $USER)
- + HOME - your "home" directory (This is the directory refered to
- + by ~/<file>, and where the .emacs file is looked for)
- + (default "s:").
- + HOSTNAME - a name for your system (default "amiga")
- + ESHELL - where to find an unix-like shell (no default). By unix-like
- + I mean that it should not open a window to get its input.
- + The only tested value for this is GNUEMACS:etc/sh.
- +
- + For instance, I have the following values:
- + USER: dgay, USERNAME: David E. Gay, HOSTNAME: owl,
- + ESHELL: gnuemacs:etc/sh
- +
- + 6. If you want to check that emacs is working, type
- +
- + assign gnuemacs: ""
- + emacs
- +
- + If all goes well, emacs should open a window. If you get
- + memacs: Unknown command
- + you have an alias for emacs. Try editing s:Shell-Startup and removing it.
- +
- + If you get
- + emacs: file is not executable
- + try typing
- + protect <wherever you put the commands from step 2>/emacs +s
- +
- + And finally, if you get
- + wrong number of arguments
- + if failed returncode 10
- + make sure that you have getstack in your path
- +
- + 7. If you are going to use emacs over a serial line, you must install
- + the termcap file, which comes with the source version. To do so, type:
- +
- + join gnuemacs:etc/termcap.ucb gnuemacs:etc/termcap.amiga as s:termcap
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/.emacs emacs-18.59/amiga/amiga-extra/amiga/.emacs
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/.emacs Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/.emacs Sun Sep 20 10:06:40 1992
- ***************
- *** 0 ****
- --- 1 ----
- + ;; Put your configuration commands here.
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/.emacs-menu.el emacs-18.59/amiga/amiga-extra/amiga/.emacs-menu.el
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/.emacs-menu.el Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/.emacs-menu.el Sat May 16 13:53:06 1992
- ***************
- *** 0 ****
- --- 1 ----
- + (amiga-menus-set (quote (("Project" (("Open C-x C-f" (call-interactively (quote find-file)) 79) ("Save C-x C-s" (call-interactively (quote save-buffer)) 83) ("Save As C-x C-w" (call-interactively (quote write-file)) 87) nil ("Quit C-x C-c" (call-interactively (quote save-buffers-kill-emacs)) 81))) ("Edit" (("Undo C-_" (call-interactively (quote undo)) 85) nil ("Mark C-@" (call-interactively (quote set-mark-command)) 77) ("Cut C-w" (call-interactively (quote kill-region)) 88) ("Copy M-w" (call-interactively (quote copy-region-as-kill)) 67) ("Paste C-y" (call-interactively (quote yank)) 86) ("Paste Previous M-y" (call-interactively (quote yank-pop)) nil))) ("Search" (("Find Forward C-s" (call-interactively (quote isearch-forward)) 70) ("Find Backward C-r" (call-interactively (quote isearch-backward)) 66) nil ("Find Fwd Regexp M-C-s" (call-interactively (quote isearch-forward-regexp)) nil) ("Find Bwd Regexp" (call-interactively (quote isearch-backward-regexp)) nil) nil ("Query Replace M-%" (call-interactively (quote query-replace)) 82) ("Query Rpl Regexp" (call-interactively (quote query-replace-regexp)) nil))) ("Window" (("Split C-x 2" (call-interactively (quote split-window-vertically)) 50) ("Split H C-x 5" (call-interactively (quote split-window-horizontally)) nil) nil ("One Window C-x 1" (call-interactively (quote delete-other-windows)) 49) ("Delete C-x 0" (call-interactively (quote delete-window)) 48) nil ("Enlarge C-x ^" (call-interactively (quote enlarge-window)) 69) ("Next C-x o" (call-interactively (quote other-window)) 78))) ("Buffers" (("List C-x C-b" (call-interactively (quote list-buffers)) nil) ("Change C-x b" (call-interactively (quote switch-to-buffer)) nil) ("Kill C-x k" (call-interactively (quote kill-buffer)) nil))) ("Help" (("Tutorial C-h t" (call-interactively (quote help-with-tutorial)) 84) ("Information C-h i" (call-interactively (quote info)) 72) nil ("Where Is Command C-h w" (call-interactively (quote where-is)) nil) ("What Is Command C-h f" (call-interactively (quote describe-function)) nil) ("What Is Key C-h k" (call-interactively (quote describe-key)) nil) ("Apropos C-h a" (call-interactively (quote command-apropos)) nil))))))
- \ No newline at end of file
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/.emacs-menu.menu emacs-18.59/amiga/amiga-extra/amiga/.emacs-menu.menu
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/.emacs-menu.menu Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/.emacs-menu.menu Sat May 16 13:52:44 1992
- ***************
- *** 0 ****
- --- 1,38 ----
- + (("Project" ("Open" find-file ?O)
- + ("Save" save-buffer ?S)
- + ("Save As" write-file ?W)
- + ()
- + ("Quit" save-buffers-kill-emacs ?Q))
- + ("Edit" ("Undo" undo ?U)
- + ()
- + ("Mark" set-mark-command ?M)
- + ("Cut" kill-region ?X)
- + ("Copy" copy-region-as-kill ?C)
- + ("Paste" yank ?V)
- + ("Paste Previous" yank-pop))
- + ("Search" ("Find Forward" isearch-forward ?F)
- + ("Find Backward" isearch-backward ?B)
- + ()
- + ("Find Fwd Regexp" isearch-forward-regexp)
- + ("Find Bwd Regexp" isearch-backward-regexp)
- + ()
- + ("Query Replace" query-replace ?R)
- + ("Query Rpl Regexp" query-replace-regexp))
- + ("Window" ("Split" split-window-vertically ?2)
- + ("Split H" split-window-horizontally)
- + ()
- + ("One Window" delete-other-windows ?1)
- + ("Delete" delete-window ?0)
- + ()
- + ("Enlarge" enlarge-window ?E)
- + ("Next" other-window ?N))
- + ("Buffers" ("List" list-buffers)
- + ("Change" switch-to-buffer)
- + ("Kill" kill-buffer))
- + ("Help" ("Tutorial" help-with-tutorial ?T)
- + ("Information" info ?H)
- + ()
- + ("Where Is Command" where-is)
- + ("What Is Command" describe-function)
- + ("What Is Key" describe-key)
- + ("Apropos" command-apropos)))
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/amiga.doc emacs-18.59/amiga/amiga-extra/amiga/amiga.doc
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/amiga.doc Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/amiga.doc Wed Sep 29 22:42:40 1993
- ***************
- *** 0 ****
- --- 1,605 ----
- + 1. Introduction
- + ---------------
- +
- + Emacs is a powerful, but sometimes cryptic, editor. In this Amiga
- + version, I have tried to make it easier to use with menus, mouse
- + support and arrow key support, but it still requires some getting used
- + to. I would recommend starting with the tutorial, which can be started
- + from the Help menu (if it is missing, you didn't install emacs
- + correctly. Check that the file s:.emacs-menu.el exists) or from the
- + keyboard by typing Control-H and then t.
- +
- + This file only describes the Amiga specific features of emacs, and it
- + assumes a working knowledge of emacs. For more documentation you can
- + consult the emacs help (Information in the Help menu, or C-h i) or
- + read the emacs manual (which is the same document in a printed form).
- + This manual can be bought from the
- +
- + Free Software Foundation
- + 675 Mass Ave
- + Cambridge, MA 02139
- + USA
- +
- + See the file gnuemacs:etc/DISTRIB for more information (you can type
- + C-h C-d to view it).
- +
- + To install emacs, read the file INSTALLATION.
- +
- +
- + 2. Changes since the last version
- + ---------------------------------
- +
- + Several features have been added since v1.26:
- +
- + - based on emacs 18.59 instead of 18.58
- + - changes contributed by Christian E. Hopps: new AREXX code, enhancements
- + to the screen routines (more flexibility, read window & screen size,
- + ...).
- + - amiga-iconify is now a toggle (to allow deiconification from AREXX).
- + - the infamous 'vfork: not enough memory' message is now more explicit :-)
- + - miscellaneous bug fixes
- +
- + 3. Using emacs in a window
- + --------------------------
- +
- + Emacs runs in a window on the Workbench (this can be changed). It
- + basically works like just any other version of GNU Emacs, using the
- + same keys, etc. It uses the standard amiga keymap, but with some strange
- + modifications:
- +
- + o The left alt key is stolen as a meta key for emacs. This means you can't use
- + it to enter accents. However, the right alt key remains untouched. Hence
- + 'left alt-f e' moves forward one word and inserts an e, while
- + 'right alt-f e' inserts an e acute. In the rest of the text, the meta key
- + always means the 'left alt' key.
- +
- + o C-space is always mapped to C-@, the set-mark command, for convenience.
- +
- + o The backspace key always sends DEL (delete previous character in emacs),
- + and DEL sends C-d (delete character under cursor). If you don't like this,
- + add the line
- + (setq amiga-remap-bsdel nil)
- + to your .emacs file (in s:).
- +
- + o Keypad keys are prefixed with C-x C-^ K (so 0 generates C-x C-^ K 0).
- + Normally, C-x C-^ K is a do-nothing operation, so the keypad keys just
- + insert the usual character. If you want to redefine the keypad keys, you
- + must do the following:
- +
- + (global-set-key "\C-x\C-^K" (make-sparse-keymap))
- + (global-set-key "\C-x\C-^K0" '<function for key 0>)
- + (global-set-key "\C-x\C-^K1" '<function for key 0>)
- + ...
- +
- + Once you have redefined one key, you must define all of them (as C-x C-^ K
- + is no longer a do-nothing command). If you still want a keypad to insert
- + its usual character, you can use (for +)
- +
- + (global-set-key "\C-x\C-^K+" 'self-insert-command)
- +
- + Even with this, the numeric keypad will not work with the incremental
- + search function. The only way past that is to disable the C-x C-^ K
- + prefix, with the following code:
- +
- + (setq amiga-remap-numeric-keypad nil)
- +
- + (and you will then not be able to redefine the keypad keys).
- +
- + o The sequences for function & arrow keys are the standard Amiga ones,
- + except that the initial character (CSI, code 155) is replaced by
- + C-x C-^. For example, F1 is C-x C-^ 0 ~. You can always find the
- + characters generated by a key by pressing it, and then executing
- + M-x view-lossage. This displays the last 100 characters seen by emacs. So
- + to define F1 to be view-lossage you would add
- +
- + (global-set-key "\C-x\C-^0~" 'view-lossage)
- +
- + to s:.emacs (trying to define F1 interactively with M-x global-set-key
- + will fail ...).
- +
- +
- + There are several extra features:
- +
- + a) Mouse support, similar to the X-Windows version.
- +
- + You can position the cursor with the left mouse button. Other possibilites are:
- +
- + action result
- + ------------------------------
- + shift-left button set mark at mouse position
- + control-left button cut between point and mouse position
- + meta-left button copy between point and mouse position
- + middle button paste
- + shift-middle button iconify emacs window (double click to deiconify)
- +
- + Some of the control, meta, etc combinations may be stolen by Intuition or
- + commodities programs, so don't be surprised if they don't all work.
- +
- + All of these actions may be redefined (this is emacs after all!), see the
- + file lisp/amiga-mouse.el for details (you will need to learn lisp if you don't
- + already know it ...) [Note: this file is not included in the binary only
- + distribution, you will need the source code version].
- +
- + b) Clipboard
- +
- + At first glance, emacs uses the Amiga clipboard, ie it cuts to the
- + clipboard and pastes from it (via the menu operations or the C-w
- + (kill-region), M-w (copy-region-as-kill) & C-y (yank) commands).
- +
- + Things are actually complicated by emacs use of a "kill ring" (ie it
- + remembers the last 30 things cut. The M-y (yank-pop, menu command
- + Paste Previous) allows you to recover old cuts):
- +
- + - When you cut (or copy) something in emacs it is placed in the
- + clipboard.
- +
- + - When you paste (yank) something in emacs, it checks the clipboard to
- + see if it contains anything new. If so, it pastes that.
- +
- + [Note: It also checks the clipboard when you cut something, and saves
- + that in the kill-ring if necessary]
- +
- + All this effort is used to make the clipboard appear to operate
- + transparently in emacs.
- +
- + c) Window
- +
- + By default, emacs runs in a window on the workbench screen using the
- + system default font and the standard colours. All this can be changed:
- +
- + o The font can be specified with the -fn <font> <size> option when you
- + run emacs. You can also use the amiga-set-font command interactively,
- + or add a line like
- + (amiga-set-font "topaz" 11)
- + to your s:.emacs file. The font must be non-proportional.
- +
- + o The window size and screen can be changed with the
- + amiga-set-geometry function. It takes 4, 5 or 6 parameters, the (x,y)
- + position of the window and its (width,height). The 5th optional
- + parameter specifies the screen: a string gives the name of a public
- + screen, t stands for the default public screen (normally the
- + workbench) and nil means keep the same screen. Finally, if the 6th
- + parameter is present and not nil, a backdrop window is used.
- +
- + For example, the lisp code
- + (amiga-set-geometry 0 0 640 400)
- + resizes the emacs window to 640x400. If the screen would be too small
- + given the current font (there must be room for 11x4 characters), the
- + change is refused.
- +
- + Michael Kaiser has contributed a simple public screen creation
- + utility: gnuemacs:amiga/contrib/kaiser/pub is a program that creates
- + a public screen called "EmacsPublicScreen".
- +
- + o The foreground & background colours can be changed with the
- + amiga-set-foreground-color & amiga-set-background-color commands. You
- + specify the pen and not the actual colour (from 0 to 7 only,
- + because of restrictions in console.device).
- +
- + o The inverse text & fill colours can be specified with
- + amiga-set-inverse-text-pen and amiga-set-inverse-fill-pen. The
- + choices are also pens 0 to 7, or 8 for reverse.
- +
- + o The emacs window can be iconified (onto the workbench) with the
- + amiga-iconify command. This is bound to shift-middle button on a 3
- + button mouse, and to C-z (which is normally bound to suspend-emacs,
- + which doesn't work on the Amiga).
- +
- + To deiconify emacs, double click on the icon.
- +
- + Emacs will continue to answer to ARexx commands while iconified. The
- + variable amiga-emacs-iconfied is set to 't' while emacs is iconified,
- + 'nil' the rest of the time. You can test this, eg to make sure that
- + emacs is not iconified before reading some user input. If you wish to
- + deiconify emacs from arexx, simply call (amiga-iconify) again (it is a
- + toggle).
- +
- + You can specify the position for the icon with (amiga-set-icon-pos x
- + y), or get the default position with (amiga-set-icon-pos nil nil).
- +
- + If you use the functions described above in s:.emacs, they will take
- + effect before emacs's window is opened. This will avoid the nasty
- + visual effects of the previous version.
- +
- + o You can manipulate the emacs window with amiga-activate-window,
- + amiga-window-to-front and amiga-window-to-back.
- +
- + o You can get the window and screen size with (amiga-get-window-geometry)
- + and (amiga-get-screen-geometry). The iconified status is now returned
- + by amiga-get-window-geometry instead of the amiga-emacs-iconified variable.
- +
- + d) Menus
- +
- + If you have installed emacs correctly (see the INSTALLATION file), it
- + will startup with some menus containing some useful basic
- + functions (the layout was inspired from that of TurboText, another
- + good editor which has the disadvantage of being more expensive than
- + emacs ...). Alongside each item is the emacs key sequence which
- + invokes that function, if any.
- +
- + Using the Menu Help functionality of AmigaDOS 2.04, you can get help
- + on any menu item by highlighting it with the mouse and pressing the
- + Help key [This is easier if you're left handed :-)].
- +
- + The menus are not fixed, they are defined by the s:.emacs-menu.el file
- + (which isn't human-readable). To modify them, edit s:.emacs-menu.menu.
- + This contains a lisp-like (but quite legible even for lisp-haters)
- + representation of the menus, which you can modify by adding items or
- + menus. The format should be obvious (just make sure that closing
- + brackets correspond to the correct opening ones, emacs always shows
- + the corresponding '(' when you type a ')'. Also the last bracket
- + should correspond with the first).
- +
- + When you have finished your changes, type C-c C-c. This will save your
- + menus, and then generate a .el file from them (this takes several
- + seconds even on an A3000. Be patient). Then save the resulting file.
- + To have the new menus take effect immediately, type M-C-x while in the
- + .el file.
- +
- + Enterprising lisp programmers can customise the menus even more by
- + modifying the functions amiga-menus-dispatch and/or amiga-menus-help
- + in lisp/amiga-mouse.el. This code basically receives a (menu-number
- + menu-item-number) list and must take the appropriate action
- + (currently, execute the command associated with that particular menu
- + item). The lack of comments will surely not deter these audacious
- + pionneers ...
- +
- + e) Command line options
- +
- + Beyond the standard emacs command line options (for which
- + documentation tends to be rather sketchy, not to say missing), you can
- + also use:
- +
- + -prealloc <n>: Reserve n bytes of memory for emacs exclusively. This
- + option *must* be the first on the command line. On the A3000, chip
- + memory can't be used for emacs (the details are complicated ...), so
- + you will run out of memory sooner than expected. This option allows
- + you to reserve some for emacs before it gets eaten by other programs.
- +
- + -fn <font> <size>: Set the font that emacs uses, like the
- + amiga-set-font command (see section c, on windows). Note that there
- + must be enough room for 11x4 characters in the standard 640x200
- + window. So avoid fonts bigger than 40 points ...
- +
- + -nw: Don't use a window, use a serial port. See part 3, Using Emacs
- + over a serial line.
- +
- + f) ARexx
- +
- + [The ARexx interface has been rewritten for this version by Christian
- + E. Hopps]
- +
- + Emacs has a full ARexx interface. It can execute scripts and commands
- + synchronously (waiting for the result) or asynchronously, and has an
- + ARexx port from which it accepts commands.
- +
- + To execute a script, use the amiga-arexx-do-command command. This
- + asks for the script file name (the default extension is .elx). If you
- + just want to execute a simple ARexx command, you can prefix those
- + commands with C-u and specify the string to execute.
- +
- + From lisp, you can use
- + (amiga-arexx-send-command "<file>" nil) for a script, and
- + (amiga-arexx-send-command "<commands>" t) for direct execution.
- + (and the same for amiga-arexx-do-command). The result of
- + amiga-arexx-send-command is an integer that can be passed to
- + amiga-arexx-wait-command to wait for the completion of the script or
- + command. It can also be used with amiga-arexx-check-command to check
- + if the script has finished. For example:
- +
- + (let ((arexx-id (amiga-send-command "start-fun" nil)))
- + ... do something here ...
- + ; and wait for arexx script to end
- + (amiga-arexx-wait-command arexx-id))
- +
- + amiga-arexx-wait-command returns the result of the script/command.
- +
- + amiga-arexx-do-command-with-results is like amiga-arexx-do-command,
- + but it returns the result of the script/command.
- +
- + Emacs's ARexx port accepts commands in lisp, and is usually called
- + EMACS1 (if you run emacs twice simulatenously, the second one will
- + have EMACS2, and so on). For example (from a shell),
- +
- + rx "address EMACS1 '(beginning-of-buffer)'"
- +
- + will set point to the beginning of the buffer.
- +
- + ARexx commands are only processed at certain times, so be careful how
- + you design your applications. These are:
- +
- + o While waiting for commands from the keyboard (ie when emacs is
- + idle or iconified).
- + o While processing a synchronous (amiga-arexx-do-command) script or
- + waiting for a script to terminate with amiga-arexx-wait-command.
- + o When the amiga-arexx-process function is called.
- +
- + They also affect the user visible state by default (ie calling
- + beginning-of-buffer as above modifies the user's position). Avoid
- + sending random commands at random times, or use save-excursion.
- +
- + As usual, all this behaviour can be modified to some extent. Look in
- + amiga-init.el for details [The source code is the documentation...].
- +
- + There are a few arexx examples in the amiga/contrib directory.
- +
- + g) Workbench support
- +
- + Beyond iconification (see the section on the emacs window), emacs
- + supports a number of features for Workbench users:
- +
- + - emacs can be run from the Workbench, by all the usual methods
- + (double clicking on the tool, double clicking on a project which
- + has temacs as its default tool, etc). All the projects that are
- + passed to temacs will be loaded (if they are files), or listed
- + with dired (if they are directories).
- +
- + - icons can be dropped in emacs's window, the corresponding file
- + or directory will be loaded or listed.
- +
- + - icons can be created for files that are saved. This is the default
- + when emacs is run from the workbench. This is controlled by the
- + amiga-create-icons variable: if you always want icons to be
- + created, add
- +
- + (setq amiga-create-icons t)
- +
- + to s:.emacs, or
- +
- + (setq amiga-create-icons nil)
- +
- + if you never want them.
- +
- + h) external processes
- +
- + This version of emacs fully supports synchronous (used to get the
- + result of ls for dired, for instance) and asynchronous (as in the
- + 'shell' command) processes. However, it requires Matt Dillon's
- + 'fifo.device' and 'fifo:' devices to function. See the INSTALLATION
- + file for details.
- +
- + This allows full support for all emacs functions which call external
- + programs, providing that said programs exist on the Amiga. The
- + following work:
- + compile (for SAS C 5.10b, with a few occasional problems)
- + grep
- + shell (but see the discussions below)
- + display-time
- + dired
- + list-directory
- + sort-...
- +
- + The compile command sometimes has problems finding file names in the
- + error messages, and tries to read the current directory instead. If
- + you are patient, it moves on to the next file.
- +
- + Because of differences between AmigaDOS & Unix, sending signals (eg
- + interrupt, kill) to processes is not very reliable. The following
- + points must be kept in mind:
- +
- + - In some unlikely cases, the appropriate process to signal won't be
- + found.
- + - The stop-process & continue-process functions don't work.
- + - interrupt-process & quit-process send a ctrl-c & ctrl-d to the
- + process and all its children (probably).
- + - kill-process also sends a ctrl-c & ctrl-d. It then pretends that
- + the process has died.
- +
- + All input sent to a process after an end-of-file is ignored. The process
- + just sees an endless sequence of end-of-files. This is most visible with
- + the shell command, where if you send an end-of-file to a program (eg type)
- + with C-c C-d, the shell will exit. The bug is in fifo.device, not in emacs.
- +
- + The input & output of processes run inside emacs look like interactive
- + files (which allows, for instance, shells to run correctly). However, this
- + confuses some programs which expect all interactive files to be Amiga
- + consoles and causes them to crash. Several versions of ls suffer from this
- + problem (they run into problems while trying to get the window size).
- +
- + amiga-process-stack-size is the size of the stack for new processes. If it
- + is 0 (the default), emacs's stack size is used.
- +
- +
- + 4. Using emacs over a serial line
- + ---------------------------------
- +
- + To use emacs over a serial port, you must do:
- +
- + setenv TERM <terminal type> (eg vt100)
- + emacs -nw
- +
- + The setenv line can be put in your User-Startup, so as to avoid typing
- + it every time.
- +
- + Emacs cannot simply guess how your terminal works from its name, it
- + needs a description of it. This is found in a termcap file, which
- + emacs looks for in s:termcap. If you didn't install this file with emacs,
- + you can do so by typing (in a CLI):
- +
- + join gnuemacs:etc/termcap.ucb gnuemacs:etc/termcap.amiga as s:termcap
- +
- + [Note: These files only come with the source version]
- +
- + The -nw prevents the use of a window.
- +
- + If you have several serial ports, you can type
- +
- + emacs -dev ser2.device 2 -nw
- +
- + to use port 2 of device ser2.device. Use of the -dev option still requires the
- + -nw.
- +
- + These options (-dev & -nw) *must* be specified at the start of the
- + command line.
- +
- + The descriptions of the Clipboard, the command line options and the
- + ARexx port in part 2 above also apply to use over a serial port.
- +
- +
- + 5. Redumping emacs [This section for expert users only]
- + -------------------------------------------------------
- +
- + Enterprising users may want to change the lisp files which are loaded
- + into the Emacs dump file. The procedure for doing this is very similar
- + to that with the Unix version, except that the amount of pure storage
- + can be changed without recompiling emacs. This will allow users
- + without SAS C v5.10b to still make such changes.
- +
- + The necessary lisp files are only included in the source distribution,
- + so you will have to get that first. Once that is available, that you
- + have made all your changes (eg adding some extra files to be dumped),
- + use the following sequence to redump emacs:
- +
- + cd gnuemacs:etc
- + stack 20000
- + /temacs -pure <n> -malloc <m> -nl -batch -l loadup dump
- +
- + The -pure <n> and -malloc <m> options should only be necessary if you
- + add extra files to be dumped, see below how to choose values for n &
- + m. The above order for the parameters must be preserved. Specifying
- + dump without -nl & -batch will have unpredicatable consequences.
- +
- + Once all the files are loaded, a new copy of gnuemacs:etc/EMACS-DATA
- + will be saved, and all should work correctly. If you get one of the
- + following messages:
- +
- + Pure Lisp storage exhausted
- +
- + Emacs dump: ran out of memory for malloc.
- +
- + read the following description of the -pure & -malloc options:
- +
- + When emacs is dumped, it saves (amongst other things) the copies of
- + two zones of memory, called the pure storage area and the malloc hunk.
- + These contain an internal representation of the lisp code, so the more
- + code you include in a dumped emacs, the bigger these need to be. The
- + default sizes of these are reasonable sizes for the standard lisp code
- + which is dumped, but you will probably need to increase them if you
- + add some more lisp modules. The best way to find the new values for n
- + (size of pure area) and m (size of the malloc hunk), is to run the
- + command
- +
- + cd gnuemacs:etc
- + stack 20000
- + /temacs -pure 200000 -malloc 200000 -nl -batch -l loadup dump
- +
- + (these sizes should be largely sufficient, but if you still get one of
- + the two error messages above, increase them). Then run emacs as usual,
- + and look at the values of the 2 lisp variables
- +
- + pure-bytes-used
- + and amiga-malloc-bytes-used
- +
- + pure-bytes used contains the minimum value for n, and
- + amiga-malloc-bytes-used the minimum value for m. Add 1000 to these for
- + luck to get values for n and m, and redump emacs using these.
- +
- + For those who are into modifying the C source, the default values are
- + 130000 for n (see DEF_PURESIZE in s-amiga.h) and 92000 for m (see
- + MALLOC_HUNK_SIZE in amiga.h).
- +
- + 6. Source
- + ---------
- +
- + Source for emacs and all the programs included with it should be
- + obtainable from the same place as this file. If not, please send me
- + mail (if you are on the Internet) and I will provide the missing
- + pieces. Specifically, there should be:
- +
- + - The emacs sources
- + - Sources for the 'unix library' needed to compile emacs
- + - Source for the programs in the c directory (ls, sort, rmdir, grep).
- + This consists of the GNU fileutils, textutils and grep packages.
- +
- + Distributing the binary without these packages is a violation of
- + the GNU General Public License (see the file COPYRIGHT in the etc
- + directory) under which emacs is distributed.
- +
- + 7. Thanks & Problems
- + --------------------
- +
- + I would like to thank the following people for their help while porting
- + emacs:
- +
- + - Mark D. Henning for the early port of emacs. He's the person who got
- + emacs working on the Amiga ...
- + - Christian E. Hopps for enhancements to the screen display code, a
- + rewrite of the AREXX code, testing and useful suggestions.
- + - All the beta testers and people who contributed useful utilities (see
- + the amiga/contrib directory):
- + Jean-Marc Vandel
- + Philippe Morel
- + Jukka Partanen
- + Michael Witbrock
- + Tero Manninen
- + Alan Bair
- + Hugh D. Gamble
- + Tapio Heiskanen
- + Teddy Wang
- + Richard McGowen
- + Keith Hanlan
- + Carsten Heyl
- + Anders Lindgren
- + Michel Schinz
- + Hans-Joachim Widmaier
- + Michael Kaiser
- +
- + Please send any bug reports, enhancement requests, etc to:
- +
- + Post: E-mail:
- + David Gay dgay@di.epfl.ch
- + 19 Chemin de la Source
- + CH-1296 Coppet
- + Vaud
- + Switzerland
- +
- + 8. Ordering Information
- + -----------------------
- +
- + I can provide a complete copy of my development directory, which
- + includes:
- +
- + o the standard emacs-18.59 files
- + o modified and new lisp files
- + o Amiga-specific source, as text and in RCS format (highlighting the
- + changes from a standard unix distribution, and the different versions).
- + o assorted lisp packages hacked for the Amiga (I will be posting some
- + of these in due course):
- + - a tags-like access to the 2.0 autodocs (you must already have a
- + copy of these ...)
- + - gnus (a news reader) for use with Matt Dillon's uucp package.
- + - getris, a tetris clone for emacs
- +
- + All these as a tar file on a QIC-150 tape, for $200 (the same price as
- + the FSF, so as not to undercut them), or 300SF. This price is valid
- + until the 31st December 1993, and includes shipping by surface mail.
- +
- + Please send all orders, by postal mail, to
- +
- + David Gay
- + 19 Chemin de la Source
- + CH-1296 Coppet
- + Vaud
- + Switzerland
- +
- + Tel: +(41)-22 776 35 81 [Evenings, Central European Time]
- + Fax: +(41)-22 776 70 58
- +
- + Include with your order:
- + - A cheque, in dollars or Swiss francs.
- + - Your *complete* address (don't forget the country, etc).
- + - A phone or fax number so I can contact you if I have any problems.
- +
- + I will be glad to include, on request, and with full source, some
- + other pieces of software I have written:
- + - An HP11 calculator (this is an update to the version available on
- + fish disks, with some bug fixes and 2.0 specific features).
- + - A scheme compiler for the Amiga, still in an alpha state.
- + - A fortune cookie program, including 1 megabyte of cookies (merged
- + from various sources).
- +
- +
- + Dvaid Gay
- + dgay@di.epfl.ch
- + Ecole Polytechnique Federale de Lausanne - Switzerland
- + Laboratoire d'Informatique Technique
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/announce1.28 emacs-18.59/amiga/amiga-extra/amiga/announce1.28
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/announce1.28 Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/announce1.28 Thu Sep 30 19:48:52 1993
- ***************
- *** 0 ****
- --- 1,39 ----
- + GNU Emacs 18.59, Amiga RELEASE 1.28
- + -----------------------------------
- +
- + Emacs is a very powerful, but sometimes cryptic, text editor. Its basic
- + features are similar to those of the MEmacs editor which comes with
- + AmigaDOS (in the Tools directory), but has numerous other facilities:
- + - unlimited undo.
- + - language specific editing, with automatic (re)indentation.
- + - a dialect of lisp as extension language, leading to extreme
- + reconfigurability.
- + - abbreviations for commonly typed words.
- + - complete on-line manual.
- + - powerful search & replace facilities (including wildcards).
- +
- + In this Amiga version, I have tried to make it easier to use with menus,
- + mouse, clipboard, rexx and workbench support.
- +
- + This version (1.28) is an update on version 1.26. It tracks the update
- + from GNU Emacs 18.58 to 18.59.
- +
- + System requirements:
- + - AmigaDOS 2.04
- + - At least 2MB of memory (emacs uses about 750k + memory for the files
- + being edited).
- + - 2.5MB of free disk space for the binary version, 8MB for the
- + source version (but you can remove some of the files once it has been
- + installed).
- + - Emacs works with a 68000 (A500,A2000), but is a bit slow. It is very
- + pleasant to use with a 68030/25MHz ...
- +
- + This port was originally based on that of Mark Henning (gnuemacs
- + v1.10), but after having made rather extensive modifications, added
- + numerous features and updated it to Emacs 18.59, I decided to
- + release it myself.
- +
- + David Gay
- + dgay@di.epfl.ch
- + Ecole Polytechnique Federale de Lausanne, Switzerland.
- + Laboratoire d'Informatique Technique.
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/c/emacs emacs-18.59/amiga/amiga-extra/amiga/c/emacs
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/c/emacs Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/c/emacs Sun May 9 18:16:16 1993
- ***************
- *** 0 ****
- --- 1,26 ----
- + .key a1,a2,a3,a4,a5,a6,a7,a8,a9
- + .bra {
- + .ket }
- + ; Startup script for GNU Emacs
- + ; Make sure the FIFO handler is ready
- + assign >NIL: FIFO: exists
- + if warn
- + if exists L:fifo-handler
- + echo "Starting fifo-handler"
- + run <NIL: >NIL: L:fifo-handler
- + else
- + echo "Cannot find L:fifo-handler."
- + echo "External processes will not work."
- + endif
- + endif
- + ; Increase the stack size as needed
- + set stack=`getstack`
- + if not $stack gt 40000 val
- + stack 40000
- + endif
- + ; Invoke GNU Emacs
- + run gnuemacs:temacs {a1} {a2} {a3} {a4} {a5} {a6} {a7} {a8} {a9}
- + ; Restore the previous stack size
- + stack $stack
- + unset stack
- +
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/c/etags.uue emacs-18.59/amiga/amiga-extra/amiga/c/etags.uue
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/c/etags.uue Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/c/etags.uue Tue Jul 12 10:34:45 1994
- ***************
- *** 0 ****
- --- 1,610 ----
- + begin 666 etags
- + M```#\P`````````"``````````$``!B&```"^P```^D``!B&2.=^_B1()`!)
- + M^0`````L>``$1_D```=`<@`@/````2M@`B;!4<C__"E/!W`I3@=H)FX!%"`K
- + M`*QG#.6(($`@*``TY8A@!B`/D*L`.B(/DH`&@0```(`I00=$L*P&B&14("P&
- + MB`:`````@"E`!Y`B/``!``%.KO\Z2H!G``'2*4`'C"(`!H````"`*4`'1-"L
- + M!H@,;@`D`!1M&"E`!X@I00>$DJP'D$'L!X`@@4ZN_21@`BY`0JP';'``(CP`
- + M`#``3J[^SB9N`11#^@&*<`!.KOW8*4`+Y&8&<&1@``#F*6L`F`=D2JL`K&<`
- + M`'X@:P"LT<C1R")H`!#3R=/)(`)R`!(9*4D'=-"!7H`"0/_\*4`'?$CG0$`B
- + M/``!``%.KO\Z3-\"`DJ`9@AP%"\`9P`!%B!`*4`'>"`"4X#4@1&R```@`E."
- + M4<C_]A&\`"`@`E."$;P`(B`"$;$@`"`!4<K_^!"\`"(O"&!*0>L`7$ZN_H!!
- + MZP!<3J[^C"E`!VPO`"1`("H`)&<8+&P+Y"!`(B@``$ZN_Z`I0`=D(@!.KO^"
- + M(&P';"\(2&P'0"!H`"0I:``$!W1.ND=P3KHRNG``8`0@+P`$)&P'<"4`+'@`
- + M!`QN`"0`%&T22JP'@&<,0>P'@%FL!XA.KOTD+DH@+`=<9P0@0$Z03KI'2$ZZ
- + M1UP@+`>09PPB;`>,+'@`!$ZN_RY*K`=L9R`L;`OD(BP'9&<$3J[_IBQX``1.
- + MKO]\(FP';$ZN_H9@$BQX``0@+`=\9P@B;`=X3J[_+B)L"^1.KOYB(!],WW]^
- + M3G5D;W,N;&EB<F%R>0`@#Y!\`'2PK`=$90!*^)[\`&1(YP<4+B\`?"IO`(!Z
- + M`"E5"B9P`2E``#IP`;Z`;P`!$B!M``1R+;(09@`!!BP`(&T`!")(T\9*$6<`
- + M`.[1QA`02(!(P')"D(%G-EF`9T!R&Y"!9TA9@&=,4X!G3G(.D(%G``"44X!G
- + M``"44X!G``">4X!G``"24X!G``"@8```N!E\`#\`!$*L`#I@``"6&7P`+P`$
- + M0JP`.F```(A2K``B8```@%*L`#I@>$J%;Q8O+`HF2'H#&DAL!M!.NE#@3^\`
- + M#&!R4H53AUB-<`&^@&\((&T`!$H09A8O+`HF2'H#%$AL!M!.NE"V3^\`#&!(
- + M*6T`!``&8#)2K``F8"92K``J0JP`.F`<4JP`+F`64JP`,E*L`#9"K``Z8`A2
- + MK``V0JP`.E*&8`#_"%.'6(U@`/[J<`&^@&X<+RP*)DAZ`N)(;`;03KI06$AX
- + M``%.ND]Z3^\`$$JL``9F$D'Z`OA*K``Z9P1!^@+H*4@`!F$`!6!(;`HV80`@
- + MYDAL"CYA`"#>4$]*K``Z9T1!^@+22JP`(F<$0?H"QB\(+RP`!DZZ5_I03RE`
- + M"BYF)"\L"B9(>@*P2&P&T$ZZ3^@NK``&3KHD\DAX``%.ND\"3^\`$'`!*4``
- + M'B`L`!ZPAVQ,(@#E@29U&``O"V$`!=!83TJL`#IG,"\L"C)A``\6+H`O"TAZ
- + M`F8O+`HN3KI/F"ZL"C)A``KZ+JP*,F$`">I/[P`00JP*,E*L`!Y@K$JL`#IG
- + M$"\L"BY.NE7"0I=.NDZ06$]*K``V9Q`O+`HR80`*P$*73KI.>EA/2JP`*F=&
- + M?`&\AVP\2'H"#B\L``9.NC[X(`;E@"ZU"``O+``&2'H!_$AO`"1.NDZP2&\`
- + M*$ZZ38A(>@'B3KHHW$_O`!Q2AF#`4JP`(D'Z`;Q*K``B9P1!^@&P+P@O+``&
- + M3KI6Y%!/*4`*+F8D+RP`!DAZ`9I(;`;03KI.TBZL``9.NB/<2'@``4ZZ3>Q/
- + M[P`0+RP*,F$`"B`NK`HN3KI5!%A/2JP`*F<@(&P`!B\(+PA(>@&*2&\`($ZZ
- + M3B1(;P`D3KI,_$_O`!1"ITZZ3:I83TS?*.#>_`!D3G4@#`D*```@"0HB)R,H
- + M*5M=>WT]+2LE*B\F?%Y^(3P^.RPN.C\``$%"0T1%1D=(24I+3$U.3U!14E-4
- + M55976%E:7V%B8V1E9F=H:6IK;&UN;W!Q<G-T=79W>'EZ)```04)#1$5&1TA)
- + M2DM,34Y/4%%24U155E=865I?86)C9&5F9VAI:FML;6YO<'%R<W1U=G=X>7HD
- + M,#$R,S0U-C<X.0``+#L``"5S.B`M9B!F;&%G(&UA>2!O;FQY(&)E(&=I=F5N
- + M(&]N8V4*`"5S.B`M9B!F;&%G(&UU<W0@8F4@9F]L;&]W960@8GD@82!F:6QE
- + M;F%M90H`57-A9V4Z("5S(%LM0D9A971U=W9X72!;+68@;W5T9FEL95T@9FEL
- + M92`N+BX*`%1!1U,``'1A9W,``&$`=P`E<SH@```,"B5S+"5D"@``3U1!1U,`
- + M96=R97`@/B5S("UV("<))7,))R!/5$%'4P!C.G-O<G0@9G)O;2`E<R!T;R`E
- + M<P``<@!T97@`875X`&)B;`!L`&5L``!L<W``;&ES<```8VP``&-L:7-P`'-M
- + M``!S8VT`<V-H96UE``!T`'-C:`!330``4T--`"5S.B!T;V\@;6%N>2!E;G1R
- + M:65S('1O('-O<G0*`&UA:6X``$T````E<R0`)2XU,',`)7,Z($1U<&QI8V%T
- + M92!E;G1R>2!I;B!F:6QE("5S+"!L:6YE("5D.B`E<PH``%-E8V]N9"!E;G1R
- + M>2!I9VYO<F5D"@`E<SH@1'5P;&EC871E(&5N=')Y(&EN(&9I;&5S("5S(&%N
- + M9"`E<SH@)7,@*%=A<FYI;F<@;VYL>2D*```E<R5C)60L)60*```E<PDE<PD`
- + M`"5D```E<R`E<R`E9`H`)2TQ-G,E-&0@)2TQ-G,@)7,*``!D969I;F4``'1Y
- + M<&5D968`<W1R=6-T``!U;FEO;@!E;G5M``!$148`:6YT96=E<@!R96%L``!L
- + M;V=I8V%L`&-O;7!L97@`8VAA<F%C=&5R`&1O=6)L90``<')E8VES:6]N`&9U
- + M;F-T:6]N``!S=6)R;W5T:6YE``!P<F]G<F%M`'!R;V-E9'5R90`Z8VAA<'1E
- + M<CIS96-T:6]N.G-U8G-E8W1I;VXZ<W5B<W5B<V5C=&EO;CIE<6YO.FQA8F5L
- + M.G)E9CIC:71E.F)I8FET96TZ='EP96]U=`!415A404=3``H`=FER='5A;"!M
- + M96UO<GD@97AH875S=&5D``"_[`=$90!$($CG`01^`'!_OH!L,'``0>P)%A&`
- + M>`!![`B7$8!X`$'L"!@1@'@`0>P'F1&`>`!![`F5$;P``7@`4H=@RBIL``H0
- + M%6<2$@!(@4'L!YD1O``!$`!2C6#J*FP`#A`59Q(2`$B!0>P(&!&\``$0`%*-
- + M8.HJ;``6$!5G$A(`2(%![`B7$;P``1``4HU@ZBIL`!(0%6<2$@!(@4'L"181
- + MO``!$`!2C6#J*FP`&A`59Q`2`$B!0>P)E4(P$`!2C6#L&6P'HP>9&6P((@@8
- + M&6P)(`D6&6P(H0B7&6P)GPF53-\@@$YU(`^0?``,L*P'1&4`0S)(YP`4*F\`
- + M#$AZ_-8O#4ZZ4<103RE`"BIF'B\L"B9(>OQZ2&P&T$ZZ2;(NC4ZZ'KY/[P`,
- + M8``"7"\-80`;3BE`"B)(>``N+PUA`!NF3^\`#"9`(`MG4D'K``%(>OR&+PA.
- + MND,B4$]*@&<H0>L``4AZ_'8O"$ZZ0PY03TJ`9Q1!ZP`!2'K\9B\(3KI"^E!/
- + M2H!F%B\L"BIA`!:4+JP**DZZ3Y!83V```>P@"V<``)!!ZP`!2'K\.B\(3KI"
- + MRE!/2H!G9$'K``%(>OPH+PA.ND*V4$]*@&=00>L``4AZ_!@O"$ZZ0J)03TJ`
- + M9SQ!ZP`!2'K\""\(3KI"CE!/2H!G*$'K``%(>OOZ+PA.ND)Z4$]*@&<40>L`
- + M`4AZ^^HO"$ZZ0F903TJ`9A8O+`HJ80`2L"ZL"BI.ND[\6$]@``%8(`MG``#Z
- + M0>L``4AZ^\`O"$ZZ0C903TJ`9P``T$'K``%(>ONN+PA.ND(@4$]*@&<``+I!
- + MZP`!2'K[G"\(3KI""E!/2H!G``"D0>L``4AZ^XXO"$ZZ0?103TJ`9P``CD'K
- + M``%(>OMZ+PA.ND'>4$]*@&=X0>L``4AZ^VHO"$ZZ0<I03TJ`9V1!ZP`!2'K[
- + M6B\(3KI!ME!/2H!G4'!ML"O__V8@<&.P*__^9AAP<[`K__UF$$'K``$O"&$`
- + M`*)83TJ`9BAP3;`K__]F-'!#L"O__F8L<%.P*__]9B1!ZP`!+PAA``!Z6$]*
- + M@&<4+RP**F$`$O@NK`HJ3KI-_%A/8%@@"V=&$"L``7)CL`%G/')HL`%G-G)Y
- + ML`%G,$HK``)F*B\L"BIA``W@6$]*@&<,+RP**DZZ3<)83V`>0J="IR\L"BI.
- + MNDLJ3^\`#&$`!S0O+`HJ3KI-HEA/3-\H`$YUO^P'1&4`0)(O#2IO``@0%6<0
- + M<C"P`6T&<CFP`6_P<`!@`G`!*E].=2`/D'P`1+"L!T1E`$!DGOP`.$CG#Q0H
- + M+P!H*B\`9"PO`&`>+P!;2'@`($ZZ0PQ83R9`(`MF,B\L"B9(>OHJ2&P&T$ZZ
- + M1M8NK`HR80`"."ZL"C)A``$H0JP*,DAX`"!A`!HV3^\`$"9`2JP`.F9J2JP`
- + M-F9D2'KZ#B\O`%A.ND!&4$]*@&922'@`+R\L"B)A`!B@4$\J0$J`9@8J;`HB
- + M8`)2C4AZ^>@O#4AZ^>!A`!E<2'@`+B\`+T``8&$`&'1/[P`4*D`@#6<(2BT`
- + M`F8"0A4@;P!,+T@`5"\O`%1A`!?L6$\F@"=L"B(`!!='``@G10`*)T0`#I'(
- + M)T@`'"=(`!A*K``Z9PHB;P!<0C%H`&`Z2JP`-F8T+R\`7$ZZ/V183W(RL(%L
- + M!D'Z^69@!$'Z^60O+P!<+PA(;P`A3KI%<$_O``Q![P`9+T@`7"\O`%QA`!=Z
- + M6$\G0``22JP*,F8(($LI2`HR8`PO+`HR+PMA```^4$],WRCPWOP`.$YU(`]9
- + M0+"L!T1E`#[J+PTJ;P`((`UG%B\M`!QAY"Z-3KI`,%A/($TJ:``88.8J7TYU
- + M(`^0?``8L*P'1&4`/KA(YP$4)F\`%"IO`!`O$R\53KH^^%!/+@!*K``Z9G1*
- + MAV9P(&T`!")K``2SR&8R2JP`+F8``)`O%2\L"A8O""\L"B9(>OB:2&P&T$ZZ
- + M111(>OB\2&P&T$ZZ10A/[P`@8&1**P`69B1*K``N9AXO%2\K``0O+0`$+RP*
- + M)DAZ^*9(;`;03KI$W$_O`!@7?``!`!9@,DJ':A@@*P`89PPO`"\-80#_4%!/
- + M8!PG30`88!8@*P`<9PPO`"\-80#_.%!/8`0G30`<3-\H@$YU(`^0?``8L*P'
- + M1&4`/>!(YR`4*F\`$"`-9P`#Y"\M`!AAWEA/2JP`.F<D+RT`#B\M``I(>`!_
- + M+RT`$DAZ^%@O+`HN3KI$4D_O`!A@``.H2JP`-F8``U8O+0`$+Q5(>OA"+RP*
- + M+DZZ1#!/[P`02BT`"&<``K`@;`HN""@``0`;9W!2J``,(&P*+B`H``RPJ``4
- + M;CXB2"!I``12J0`$$"P`!!"`<@JP`68>(&P*+@@H``8`&V<2+PA.NDE@6$\0
- + M+``$<@`2`&`($"P`!'(`$@!@'B!L"BY3J``,$"P`!$B`2,`O+`HN+P!.ND00
- + M4$\B`&`6$"P`!$B`2,`O+`HN+P!.ND/X4$\B`"!L"BX(*``!`!MG6E*H``P@
- + M;`HN("@`#+"H`!1N,")((&D`!%*I``1P7A"`<@JP`688(&P*+@@H``8`&V<,
- + M+PA.NDC06$]P7F`"<%Y@%B!L"BY3J``,+RP*+DAX`%Y.ND.24$]@#B\L"BY(
- + M>`!>3KI#@E!/)FT`$A`39P`!#G)<L`%G"!0L``2P`F9P(&P*+@@H``$`&V=6
- + M4J@`#"!L"BX@*``,L*@`%&XL(F@`!%*H``02@7`*L@!F&"!L"BX(*``&`!MG
- + M#"\(3KI(2%A/<%Q@`G!<8!8@;`HN4Z@`#"\L"BY(>`!<3KI#"E!/8`XO+`HN
- + M2'@`7$ZZ0OI03R!L"BX(*``!`!MG:%*H``P@;`HN("@`#+"H`!1N.")((&D`
- + M!%*I``00$Q"`<@JP`68<(&P*+@@H``8`&V<0+PA.ND?46$\0$W(`$@!@!A`3
- + M<@`2`&`<(&P*+E.H``P0$TB`2,`O+`HN+P!.ND**4$\B`&`4$!-(@$C`+RP*
- + M+B\`3KI"=%!/(@!2BV``_O`@;`HN""@``0`;9VY2J``,(&P*+B`H``RPJ``4
- + M;CPB:``$4J@`!!`L``02@'(*L`%F'B!L"BX(*``&`!MG$B\(3KI'1EA/$"P`
- + M!'(`$@!@"!`L``1R`!(`8!X@;`HN4Z@`#!`L``1(@$C`+RP*+B\`3KI!]E!/
- + M(@!@+!`L``1(@$C`+RP*+B\`3KI!WE!/(@!@%"\M``I(>O6`+RP*+DZZ069/
- + M[P`,(&P*+@@H``$`&V=84J@`#"!L"BX@*``,L*@`%&XN(D@@:0`$4JD`!'`*
- + M$("P`&88(&P*+@@H``8`&V<,+PA.ND:B6$]P"F`"<`I@%B!L"BY3J``,+RP*
- + M+DAX``I.ND%D4$]@6B\L"BY(>``*3KI!5%!/8$I*K``R9R9P/]"M``IR0$ZZ
- + M.3XO`"\M``0O%4AZ].9(;`:N3KI`R$_O`!1@'B\M`!(O+0`$+RT`"B\52'KT
- + MT$AL!JY.ND"H3^\`&"\M`!QA`/P&6$],WR@$3G4@#UE`L*P'1&4`.=Y(YP,$
- + M*F\`$'X`(`UG4B\M`!AAX"X`+JT`'&'8WH`NK0`23KHYR%A/5H#>@"PM``I*
- + MAF<.4H<@!G(*3KHXK"P`8.XL+0`.2H9F`E*'2H9G#E*'(`9R"DZZ.)`L`N
- + M(`=,WR#`3G4@#Y!\`CRPK`=$90`Y:I[\`B1(YR<T0JP*%D*L"AHD;`HZ0A)"
- + MK`>4?``@!AH`(@4900>80J\"/$*L``!"+`H4'T``'Q]!`!X@;`HJ""@`!``;
- + M9@`"Z!X:2(=(QV8H*6P*&@H>4JP*%B\(2&P*-F$`$)903U*`T:P*&B1L"CI"
- + MK`>40BP'F'!<OH!F,!X:2(=(QV8B*6P*&@H>4JP*%B\L"BI(;`HV80`07E!/
- + M4H#1K`H:)&P*.GX@8``!'$H&9TYP*KZ`9@`!$!X:2(=(QW`JOH!F`F#R2H=F
- + M)BEL"AH*'E*L"A8O+`HJ2&P*-F$`$!A03U*`T:P*&B1L"CI"K`>4<"^^@&8`
- + M`-!\`&```,I*!6<.<"*^@&8`_S!Z`&``_RI*+P`?9Q!P)[Z`9@#_'$(O`!]@
- + M`/\4(`=R(I"!9QI3@&<V68!G&%&`9QYR3)"!9SY5@&=08```@'H!8`#^[!]\
- + M``$`'V``_N)P*K`29@#^VE**?`%@`/[2(&P*.E*(M<AF`/[&<`$I0`>48`#^
- + MO'`"L*P``&8&<`,I0```4J\"/&``_J8@;`HZ4HBUR&8(<``O0`(\8`13KP(\
- + M2J\"/&8`_HAP`["L``!F`/Y^<`0I0```8`#^="`O`CQF``%&2@5F``%`2@9F
- + M``$Z$BP'F$H!9@`!,$HO`!YG``$20>P(&$HP>`!G``#X(&P*.B(*)`&4K`HZ
- + M+TH`+"]L"A8`*"]L"AX`)"\`2&\`/"\-2&\`."]"`$`O2`!$80`!#$_O`!`D
- + M;P`L+T``(&<``*H@+P`D(BP*'K*`9U0O`&$``]P@+`I"D*\`."!-T<`@"R(-
- + MD(%2@"Z`+PA(;P!$3KHW;B`+(@V0@4'O`$G1P$(0+J\`,"\O`#0O`B\L"D(O
- + M+P!02&\`6&$`]F)/[P`@8$`@"R(-D(%2@"\`+P%(;P!$3KHW+"`+(@V0@4'O
- + M`$G1P$(0+J\`,"\O`#0O`B\L"CHO+P!02&\`6&$`]B!/[P`@("\`.!E`!YA"
- + M+P`>*DI3C6`D0>P(ETHP>`!G&E*+8!9![`D62C!X`&<,)DI3BRI+'WP``0`>
- + M<#N^@&8`_2!P!+"L``!F`/T60JP``&``_0Y,WRSDWOP")$YU(`^0?``0L*P'
- + M1&4`-B193TCG+Q0N+P`P*F\`)"95<`$@;P`L((`<*___>`!*K`>49D80!DB`
- + M0>P'F4HP``!G;AP;2@9F["!L"BH(*``$`!MF7"EL"AH*'E*L"A8O"$AL"C9A
- + M``U<4$]2@-&L"AHF;`HZ0JP'E&"Z4JP'E"`L!Y1R!+"!;!Q5@&8D2'@`!DAZ
- + M\'XO+P`P3KHUO$_O``Q*@&<,&7P``0>8>`%@``(H2JP`)F<T2'@`!TAZ\%PO
- + M+P`P3KHUDD_O``Q*@&8<(&\`*!`H``=(@$'L"!A*,```9PAP`2E```!@P'`!
- + ML*P``&8``)!(>``&2'KP)B\O`#!.NC543^\`#$J`9A0@;P`H$"@`!DB`0>P(
- + M&$HP``!F6$AX``5(>O`"+R\`,$ZZ-2A/[P`,2H!F%"!O`"@0*``%2(!![`@8
- + M2C```&8L2'@`!$AZ[]PO+P`P3KHT_$_O``Q*@&8>(&\`*!`H``1(@$'L"!A*
- + M,```9PIP`BE```!@`/\J<`*PK```9@IP`RE```!@`/\8<`&PK```9@IR!"E!
- + M``!@`/\&<@.RK```9@I*AV8&=`0I0@``=`2TK```9@X@;P`L0I`O0``<8``!
- + M"DJL!Y1F("\!2'KO7"\O`#!.NC1V3^\`#$J`9@IP`1E`"A1@`/ZX2BP*%&<.
- + M0BP*%'`!+T``'&```-!P*+P`9@#^G'H`'!MP*;P`9V)*!F8P(&P**@@H``0`
- + M&V92*6P*&@H>4JP*%B\(2&P*-F$`"X903U*`T:P*&B9L"CI"K`>4$`9(@$'L
- + M"19*,```9@9P+[P`9@12!6"L$`9(@$'L!YE*,```9IY*!6::8`#^,!P;$`9(
- + M@$'L!YE*,```9S9*!F;L(&P**@@H``0`&V8F*6P*&@H>4JP*%B\(2&P*-F$`
- + M"Q103U*`T:P*&B9L"CI"K`>48+H0!DB`0>P)E1(P``!(@4C!+T$`'"!+4X@J
- + MB$J$9@I*KP`<9P1P`6`"<`!,WRCT6$].=2`/D'P`#+"L!T1E`#,R2.<#`"XO
- + M``PO+`HJ3KH]"BP`0I<O!R\L"BI.NCV,+JP**DAL"CYA``J80I<O!B\L"BI.
- + MNCUT3^\`&$S?`,!.=2`/44"PK`=$90`RYB\-*F\`"$*L"A9"K`H:0JP*2@@M
- + M``0`&V8``<92K`H6*6P*&@H>+PU(;`HV80`*1E!/4H#1K`H:(&P*.BE("D80
- + M$'(EL`%F!%*L"D8@;`I&$!!(@$C`0^P%A0@Q``,(`&<&4JP*1F#D(&P*1A`0
- + M2@!GH$B`2,``0``@<F.0@6=64X!G=%N`9PQ7@&<V78!G'&```*Q(>NU480`!
- + M3EA/2H!G``"<80`!A&```)1(>NU$80`!-EA/2H!G``"$80`!;&!\2'KM-&$`
- + M`2!83TJ`9VYA``%88&A(>NTH80`!#%A/2H!F#DAZ[2)A``#^6$]*@&=,80`!
- + M-F!&2'KM&&$``.I83TJ`9S@@;`I&$!!(@$C`0^P%A0@Q``,(`&<&4JP*1F#D
- + M(&P*1A`02@!G`/[F2'KLZF$``+183TJ`9P#^UB!L"D80$$B`2,!#[`6%"#$`
- + M`P@`9P92K`I&8.0@;`I&$!!*`&<`_JY(@$C``$``(')FD(%G#G(*D(%G.%>`
- + M9QQ@`/Z22'KLH&$``&!83TJ`9P#^@F$``1Y@`/YZ2'KLDF$``$A83TJ`9P#^
- + M:F$``09@`/YB2'KLAF$``#!83TJ`9PAA``#P8`#^3$AZ['AA```:6$]*@&<`
- + M_CQA``#88`#^-"`L"DHJ7TYUO^P'1&4`,/9(YP$$*F\`#'X`$!5G&`(`_]\@
- + M;`I&T<=RW\(0L`%F!E*-4H=@Y$H59@C?K`I&<`%@`G``3-\@@$YUO^P'1&4`
- + M,+0@;`I&$!!(@$C`0^P%A0@Q``,(`&<&4JP*1F#D(&P*1A`0<BJP`6964JP*
- + M1B!L"D80$$B`2,!#[`6%"#$``P@`9P92K`I&8.0@;`I&$!!(@$C`0^P%A0@Q
- + M``((`&8&4ZP*1F`:4JP*1B!L"D80$$B`2,!![`6%"#```@@`9N9.=2`/D'P"
- + M&+"L!T1E`#`FGOP"`$CG`00@;`I&$!!(@$C`0^P%A0@Q``,(`&<&4JP*1F#D
- + M(&P*1A`02@!G``"82(!(P'(#0^P%A<(Q"`!*`68.$!!R7[`!9P9R)+`!9G9+
- + MZ``!$!5G,DB`2,!R`T'L!87",`@`2@%F'!`52(!(P`@P``((`&8.$!5R7[`!
- + M9P9R)+`!9@12C6#*'A5"%2\L"D9(;P`,3KHP)!J'(`V0K`HZ4H`NK`H>+RP*
- + M%B\`+RP*.DAX``%(;P`@80#N^%*L"DI/[P`<3-\@@-[\`@!.=2`/44"PK`=$
- + M90`O2B\-*F\`"$*L"A9"K`H:0JP*2@@M``0`&V8``*!2K`H6*6P*&@H>+PU(
- + M;`HV80`&JE!/4H#1K`H:*6P*.@I&(&P*1A`0<BBP`6;($"@``7)$L`%G!G)D
- + ML`%FN!`H``)R1;`!9P9R9;`!9J@0*``#<D:P`6<&<F:P`6:8(&P*1A`02(!(
- + MP$/L!84(,0`#"`!F!E*L"D9@Y"!L"D80$$B`2,!#[`6%"#$``P@`9P92K`I&
- + M8.1A```*8`#_6BI?3G4@#Y!\`ABPK`=$90`N?I[\`@!(YP$$(&P*1A`02@!G
- + M5$OH``$0%6<0<BBP`6<*<B"P`6<$4HU@[!X50A4O+`I&2&\`#$ZZ+MP:AR`-
- + MD*P*.E*`+JP*'B\L"A8O`"\L"CI(>``!2&\`(&$`[;!2K`I*3^\`'$S?((#>
- + M_`(`3G4@#U%`L*P'1&4`+@(O#2IO``A"K`H60JP*&D*L"DH(+0`$`!MF``%0
- + M4JP*%BEL"AH*'B\-2&P*-F$`!6)03U*`T:P*&BEL"CH*1B!L"D80$'(HL`%F
- + M=A`H``%R1+`!9P9R9+`!9F80*``"<D6P`6<&<F6P`696$"@``W)&L`%G!G)F
- + ML`%F1B!L"D80$$B`2,!#[`6%"#$``P@`9@92K`I&8.0@;`I&$!!G'DB`2,!#
- + M[`6%"#$``P@`9@@0$'(HL`%F!E*L"D9@VF$``+`@;`I&$!!R*+`!9@#_1A`H
- + M``%R4[`!9PAR<[`!9@#_-!`H``)R1;`!9PAR9;`!9@#_(A`H``-R5+`!9PAR
- + M=+`!9@#_$!`H``1R(;`!9P:P`68`_P`0*``%2(!(P$'L!84(,``#"`!G`/[J
- + M(&P*1A`02(!(P$/L!84(,0`#"`!F!E*L"D9@Y"!L"D80$$B`2,!#[`6%"#$`
- + M`P@`9P92K`I&8.1A```*8`#^JBI?3G4@#Y!\`ABPK`=$90`LAI[\`@!(YP$$
- + M(&P*1A`02@!G9$OH``$0%6<@<BBP`6<:<BFP`6<42(!(P$'L!84(,``#"`!F
- + M!%*-8-P>%4(5+RP*1DAO``Q.NBS4&H<@#9"L"CI2@"ZL"AXO+`H6+P`O+`HZ
- + M2'@``4AO`"!A`.NH4JP*2D_O`!Q,WR"`WOP"`$YU(`]10+"L!T1E`"OZ2.<A
- + M%"IO`!1"K`H60JP*&D*L"DHO#6$``*Y83TJL`#YF$B\L`$)(>N>&80`!5E!/
- + M*4``/@@M``0`&V8``(12K`H6*6P*&@H>+PU(;`HV80`#.%!/4H#1K`H:(&P*
- + M.BE("D8F2!`L`$9(@$C`+P`O+`I&80`$<E!/*4`*1F>V4JP*1B!L"D9*$&>J
- + M(`@B`"0+DH+3K`H>)D`O"V$``FY83RX`2H=KOB`'YX`@;``^T<`O*``$+PMA
- + M``'*4$]@`/]V3-\HA$YU(`^0?``,L*P'1&4`*R9(YP,$*F\`$'P`""T````;
- + M9RA3K0`(;18(+0`-`!YF#B!M``12K0`$<``0$&`(+PU.NC-R6$\N`&`*+PU.
- + MNC-F6$\N`"`'4H!G)'`EOH!F!'P!8+9P"KZ`9@1\`&"L2H9FJ'!<OH!G!G`A
- + MOH!FG'!<OH!F%!E\`%P`1AE\`'L`1QE\`'T`2&`2&7P`(0!&&7P`/`!'&7P`
- + M/@!(0J="IR\-3KHT^D_O``Q,WR#`3G4@#Y!\`!2PK`=$90`J:E%/2.<C%"\O
- + M`"!.NC`L6$\J0"`-9@8J;P`D8!1(>N1F+R\`*"\-80`#VD_O``PJ0'X!)DT@
- + M"V<>2'@`.B\+80`#%E!/)D`@2R`(9^A2BTH39^)2AV#>(`=2@"(`YX$O`6$`
- + M!"Q83WP`+T``&$H59W9(>``Z+PUA``+>4$\F0"`+9@PO#4ZZ*?)83R9-U\`@
- + M"R(-D(%*@&\T)`;G@B\`+P%A``)&(&\`("&`*``@!N>`+K`(`"]``!Q.NBF^
- + M4$\@;P`8(B\`%"&`&`12ADH39P9+ZP`!8)8@!N>`(&\`&$*P"`!"L`@$("\`
- + M&$S?*,103TYU(`^0?`(8L*P'1&4`*6J>_`(`2.<!%"XO`A0J;P(0)DW7QTH5
- + M9U@0$V<*L"P`2&<$4HM@\B`+(@V0@2\`+P%(;P`43KHIIB`+(@V0@4'O`!C1
- + MP$(0+JP*.DZZ*2PNK`H>+RP*%B\`+RP*.DAX``%(;P`H80#HDE*L"DI/[P`@
- + M3-\H@-[\`@!.=2`/D'P`#+"L!T1E`"CB2.<!!"IO``Q^`"`'YX`@;``^(DC3
- + MP"`I``1*@&\B(`?G@-'`+R@`!"\-+Q!.NBC63^\`#$J`9@0@!V`&4H=@RG#_
- + M3-\@@$YU(`]90+"L!T1E`"B.+PTJ;P`(<&30@"J`+P!A``*B*T``!%A/*E].
- + M=2`/D'P`#+"L!T1E`"AD64](YP$V*F\`(")O`!P@:0`$)D@B2RQO`!S3UB1)
- + M+T@`%`@M````&V<H4ZT`"&T6""T`#0`>9@X@;0`$4JT`!'``$!!@""\-3KHP
- + MF%A/+@!@"B\-3KHPC%A/+@"WRF8X(&\`'"`0(@#2@2"!+P$O+P`880`"2E!/
- + M(@`@;P`<DJ@`!-?!($`B0"QO`!S3UB1)+4``!"]``!1*AVL&<`J^@&8$0A-@
- + M""`'%L!@`/]V(`N0KP`43-]L@%A/3G4@#U%`L*P'1&4`)YPO#2IO``@O#4ZZ
- + M)Z`N@"\-80``"%!/*E].=2`/D'P`#+"L!T1E`"=T2.<!%"XO`!0J;P`0(`=2
- + M@"\`80`!A"9`+H<O#2\+3KHGQD(S>`!/[P`,(`M,WRB`3G6_[`=$90`G.DCG
- + M`10>+P`7*F\`$)?+$!6P!V8")DT@35*-2A!F\"`+3-\H@$YUO^P'1&4`)PQ(
- + MYP$$'B\`$RIO``P0%;`'9@0@#6`*($U2C4H09NYP`$S?((!.=2`/44"PK`=$
- + M90`FVDCG`!0F;P`0*F\`#"\++PUA```42'@``4ZZ+))/[P`,3-\H`$YU(`^0
- + M?``,L*P'1&4`)J9(YP`4)F\`$"IO``PO+`HF2'K?_$AL!M!.NBTT+HLO#4AL
- + M!M!.NBTH2'KB.$AL!M!.NBT<3^\`'$S?*`!.=2`/D'P`#+"L!T1E`"9:64](
- + MYP<4)F\`("IO`!PO#4ZZ)E8N`"Z+3KHF3BP`+J\`*$ZZ)D0J`"`'T(;0A5*`
- + M+H!A``!*+HTO`"]``!Q.NB:P(&\`'-''+HLO"$ZZ)J(@;P`@T<?1QBZO`#`O
- + M"$ZZ)I`@;P`D(DC3Q]/&T\5"$4_O`!`@"$S?*.!83TYU(`]10+"L!T1E`"70
- + M2.<#`"XO``PO!TZZ*(I83RP`2H9F#$*G2'KA=&$`_LQ03R`&3-\`P$YU(`]1
- + M0+"L!T1E`"6:2.<#!"XO`!0J;P`0+P<O#4ZZ)EI03RP`2H9F"DAZX3IA`/Z2
- + M6$\@!DS?(,!.=0``2.<@,B!O`!A#[P`<1?H`'"9O`!0D"RQY````!$ZN_?8@
- + M"Y""3-],!$YU%L!.=0``(&\`!")O``A93TCG,S8J2'X`(&P+>"PH`.`O20`@
- + M2H9F($JL!VQF&D'L`&0B""0\```#[2QL"^1.KO_B+`!G`GX!2H9G-B(&0>P`
- + M;B0(0>P'="8(+&P+Y$ZN_IXB!B0-)B\`($ZN_IXB!G0*3J[^R$J'9U@B!DZN
- + M_]Q@4"!L"W@F:`"X,'S__[?(9T!#[`!T<"4L>``$3J[]V"1`2H!G+"EL!W0`
- + M6"E-`%PO"B!++$I#[`!0E<HF;P`D3J[]M$S?!``B2BQX``1.KOYB3-]LS%A/
- + M3G4@;P`$0^\`"&``_RH@;P`$0^\`"&$`_QYP%$[Z*B```"!O``2>_`!42.<X
- + M%BI((`UG)$H59R`@34H89OQ3B)'-(@AP`B!-3KH;IG`"(@!![`"(3KH;FB`L
- + M"YQO$K"L!6)N#.6`0>P$QB9P"`!@+%*`9B0B+`=(=`!![P`;)@AX42QL"^1.
- + MKOXL2D!G!"9#8`I'[`",8`1'[`"0($M*&&;\4XB1RR((<`(@2TZZ&T)P`G(!
- + M0>P`I$ZZ&S9,WV@<WOP`5$YU2.<`!G`(<@`L>``$3J[_.BI`2H!F!'``8"Y"
- + MK0`$2'@`*'``+P!R`4'L`*B3R<%!3KH>CE!/*H!F#")-<`A.KO\N<`!@`B`-
- + M3-]@`$YU(&\`!$CG``8J2"`-9Q@@36$``!X@54ZZ'M(B37`(+'@`!$ZN_RY,
- + MWV``3G4@;P`$2.<`!BI(2JT`!&<4(E4L>``$3J[^(")53J[^)D*M``1,WV``
- + M3G4@;P`$(%`B:``.<``0*0`/<@'AH2`!3G4@;P`$("\`""(O``Q(YP,&+`$N
- + M`"I(8:I*AV8$2H9G'B)5(T<`("-&`"0S?``)`!PL>``$3J[^,G`!*T``!$S?
- + M8,!.=2!O``1(YP`&*DA*K0`$9QPB52QX``1.KOXL2D!G#B)53J[^)D*M``1P
- + M`6`"<`!,WV``3G4O#B`L"X0B`$A!0D'2@"`L"WBS@"E`"E1"K`I80^P`O'``
- + M+'@`!$ZN_=@I0`I0</].KOZV2(!(P"E``+A*K`I09PA*@&L$<`%@`G``*4`*
- + M7"Q?3G4O#B`L`+AK""QX``1.KOZP("P*4&<*(D`L>``$3J[^8BQ?3G4@+P`$
- + M44](YP,`+@!.N@4H(`=.N@&02H!G*")`(&D`'')`Y8G"D2](``P@`2!I``0B
- + M;P`,3I$L`"`'3KH!2"`&8`)P_TS?`,!03TYU("\`!"\'+A]@K@``(&\`!"`O
- + M``@B;P`,+V\`$``$+V\`%``(+V\`&``,+V\`'``0+V\`(``4+V\`)``844](
- + MYP<4+@!([P,``!1\`"IL"F!@%DJM``1F"C!\``$K2``$8`Q2AMK\`"2\K`ID
- + M;>0@+`IDO(!F>'(*TZP*9"`L"F0B`.>!TH#E@2`!3KHCZ"I`2H!F#'`,*4`+
- + MG'#_8```CG#VT*P*9"(`YX'2@.6!(&P*8")-8`(2V%.!9/H@+`I@9P8@0$ZZ
- + M(D(I30I@>O;:K`ID(`7G@-"%Y8#;P)?+*TL`!%*%VOP`)+JL"F1M\"`&YX#0
- + MAN6`(&P*8"&O`!0(!"&'"``AKP`8"`A+[P`@(9T(#"&="!`AG0@42^\`+"&=
- + M"!@AG0@<(9T(("`&3-\HX%!/3G4@+P`$(@!K%K*L"F1L$"`!YX#0@>6`(&P*
- + M8$*P"`1.=2`O``1(YP$$+@!K'KZL"F1L&"`'YX#0A^6`*FP*8-O`2JT`!&<$
- + M(`U@"'`)*4`+G'``3-\@@$YU("P*9$YU```@+P`$64\N@$'L`-`@"%A/3G4@
- + M;P`$64\NB$'L`-`@"%A/3G4@+`#03G4``"!O``193TCG(P(B"'3^+&P+Y$ZN
- + M_ZPO0``09SHN+`N<3KK_JBP`8!Y(;P`02'@(!2\&3KH-!$_O``Q*@&8(*4<+
- + MG'``8!)3AFS>(B\`$"QL"^1.KO^F</],WT#$6$].=2!O``1(YR$&*DA.N@*^
- + M(@TL;`OD3J[_N$J`9P1P`&!03J[_?"X`<F_2@;"!9B`B#70`3J[_1DJ`9PXB
- + M#4ZN_[A*@&<$(`)@*$ZN_WPN`'!ET("^@&8.($UA`/]*2H!F!'``8`P@!TZZ
- + M&`PI0`N<</],WV"$3G4``"`O``193RZ`("P+=&<.($!.NOQB2H!G!'(!8`)R
- + M`"`!6$].=2`O``1R`"!L"W1.^OP(3KK[/"E`"W1F"DAL`/!.NOIV6$\@;`MT
- + M3KK[S(&L"FA.=2!L"W1.^OMH".P`#`IJ3G4@+P`$"```#%;`1`!(@$C`3G4(
- + M[``-"FI.=2`O``0(```-5L!$`$B`2,!.=4ZZ&,)P`"!L"]00*``/<@'AH8.L
- + M"FA.=4[Z&10@+P`$64](YP$6+T``$'X`8"X@+0`43KH8:B9`2H!G%$JK`!1F
- + M#GX!<`$G0``4)VT`&``8(DUP'"QX``1.KO\N(&P+U"QX``1.KOZ,*D!*@&;`
- + M(`=,WVB`6$].=2`O``1(YP\$+@!P`>^@+`!P";Z`9@9P`$ZZ"Q`@+`MLP(9G
- + M!HVL"W!@>BH&1H7+K`MP2H=K9G`@OH!L8"`'YX!![`IL*G`(`#!\``&[R&8L
- + M(`=5@&<44X!G$'(-D(%G/%F`9SA1@&<T8`I(;`$(3KKY-%A/<`!.N@JR8"`@
- + M#6<<(`?G@"@&0>P*;(BP"`2)K`ML(`=.E4:$R:P+;"`L"W#`AF:*3-\@\$YU
- + M("\`!"\.(BP*:(*`<``L>``$3J[^SBQ?3G4@+P`$+PXB`"`L"FB`@2QX``1.
- + MKO["+%].=2`O``1(YP,`+@!\`&$`_A!*@&<(?`%P#F$`_PP@!V$`_F)*@&<(
- + M?`%P`F$`_OH@!V$`_FI*@&<(?`%P`V$`_N@@!V$`_H9*@&<(?`%P%&$`_M8@
- + M!DS?`,!.=2`O``0O!RE`!TQP""X?8`#^O'``80#_8&"08/9(YP$4?@!+[`IL
- + M-GP``2J+0JT`!%*'4(UP(+Z`;?!"K`MP0JP+;$*L"FAA`/W480#]ZF$`_:),
- + MWRB`8`#]^&$`_;A@`/X(``!(;`$<3KKX#EA/3G4@+P`$+PU.NA\D*D!*@&8"
- + M8>(@#2I?3G4@;P`$("\`""\+3KH=&"9`2H!F`F'&(`LF7TYU(&\`!"\-*D@@
- + M#68$2^P!)B!-2AAF_%.(D<T@"%*`3KH>V"!`2H!F!'``8`@B2!+=9OP@""I?
- + M3G593TCG`S1^`'P`(&P+>"9H`-!@+$HK``AF)#`\!0#`:P`.9AI2AR!K``H@
- + M"$H89OQ3B)'`(`C<@-RK`!14AB932I-FT"`'4H#E@-"&80#_2BE`"Y#EAR!`
- + M(D#3QT7I``0O0``49@IO``@@+P`,2.<B-"9)*DA*@&<*($MA`/["
- + M)$!@`B1+(`IG/B(5)"T`!+2!;2(L`=R&=!#2@KR!;0(B!BJ!(`'E@"!M``A.
- + MNAN6*T``"&<21^T`!"(34IOE@2!;(8H8`'`!3-\L1$YU(&\`!")O``@@+P`,
- + M89)*@&8$80#^&DYU(&\`!")O``A(YP`4)DDJ2"`M``30JP`$L)5O$M"`*H#E
- + M@"!M``AA`/X:*T``""(M``3E@2!M``C1P2`K``0B`.6!(FL`"&`"$-E3@63Z
- + MT:T`!"!K``A,WR@`3OH;AB!O``0B;P`(+V\`#``$("\`$"(O`!193TCG`C0L
- + M`2I))$@O2``02H!G1%.`9PI3@&<``+9@``#T4X9G(B`O`!@B#9"!(&\`$$(P
- + M"``@02)O`!!@`A+84X!D^F```,Y,
- + MWRQ`6$].=9[\`2Q(YS\V*F\!6"!L!V@,:``E`!1D"DAX`!1.NLTN6$]"K`:H
- + M<`$I0`:D*4`&RG`"*4`&QBE`!NPI?````(0&Z)/)+'@`!$ZN_MHI0`MX3KKU
- + M`"E`"WQF"DAL`2I.NO0Z6$\@;`M\3KKUD"E`"X`L;`M\(%8L:``4*4X+C$'O
- + M`3!.KO^^*6\!,`N$3KKU^$ZZ^ZP@;`MX("@`K&<0Y8`B0"(I`#3E@2E!"XA@
- + M!BEH`(0+B$H59@``Z$'L`4(B""0\```#[BQL"^1.KO_B+`!![`%((@A.KO_B
- + M+@!![`%.(@A.KO_B*@!*AF<(2H=G!$J%9B)*AF<&(@9.KO_<2H=G!B('3J[_
- + MW$J%9P8B!4ZN_]QA`/MR<`$O`"\%+P`O!R(&P4%.N@VV(&P';"`H`!Q![P%8
- + M80#\GD_O`!!\`'X`8%`B;`=L(&D`)"`P>`!G/B(`0^\`,"0)=D#EBRQL"^1.
- + MKOYN2H!G)B)L!VP@:0`DT<<@*``$9P@B`B0`3J[\CG`!0>\!2$/O`#!A`/S8
- + M4H90AR!L!VR\J``<;:9@``+&+&P+Y$ZN_\HH`$ZN_\0J`'X`(&P+>"PH`.!F
- + M*'X!0>P!5"(()#P```/M3J[_XBP`9A)![`%6(@A.KO_B+`!F!&$`^J0O!R\&
- + M<``O`"\%(@3!04ZZ#.AP`4'O`5AA`/O6(#P```4:80#ZCB!`,7P$```2+T``
- + M/'!`Y8AA`/IZ3^\`$'Y`Y8\O0`$X8`)2C1`52(!(P$'L!84(,``#"`!F[!`5
- + M9P`"$'(BL`%F,%*-)DU@$'`JL!5F"$HM``%G`E*-4HT0%6<&<B*P`6;F)$T0
- + M%7(BL`%F`E*-?`)@4G`GL!5F(%*-)DU@`E*-$!5G!G(GL`%F]"1-<">P%68"
- + M4HU\`6`L)DU@$'!<L!5F"$HM``%G`E*-4HT0%6<02(!(P$'L!84(,``#"`!G
- + MW"1-?``@2RH*FHL@!5*`+T@`*&$`^;@F0$JO`4QF("`%($LB;P`H3KH6@$(S
- + M6`!P`$'O`4@B2V$`^V)@`/\HVH5R$-J!NH=O%"!O`3A.NA<Z(`5A`/EX+@4O
- + M0`$X+PH@!G(!($LB;P`L80#[L%A/(@LD+P$X)@<L;`OD3J[\N"H`;!!"$B\O
- + M`"A(;`%<3KKQ0E!/2H5F(B\*(`9R`"!+(F\`+&$`^W9P`$'O`4PB2V$`^NI8
- + M3V``_JYZ`2!O`"Q"J``(0B@`$4(H`!`O"B`&<@(@2R)O`"QA`/M"<!!+80#Z.EA/8`#]
- + M_B`O`4`@;P%$3KH13$'O`4A#[P$\80#Z,"!+3KH6!&``_=P@;P$X3KH5^"!O
- + M`"Q.NA7P80#XF$'L`8I.N@P<*4``T&8(0>P!D"E(`-!![`&63KH,!BE``.1F
- + M!BEL`-``Y$'L`:!.N@OR*4``Z&8(0>P!IBE(`.A![`&J3KH+W"E``.QF"$'L
- + M`;`I2`#L0>P!N$ZZ"\8I0`N49@A![`'"*4@+E"`O`4P@;P%0(FP+D$ZZ*+1P
- + M`$ZZ&>),WVS\WOP!+$YU```@+P`$2.<#`"X`2JP+F&<$(`=@8'P`(`<"@```
- + M`21G`GP("`<`!V<$`$8`!0@'``1G!`C&``((!P`!9P0(Q@``"`<``V<$",8`
- + M`0@'``!G!`C&``8@!W))P(%R0+"!9@0`1@!""`<`"6<$",8`!2`&"D``#TS?
- + M`,!.=2`O``1(YP8`+`!*K`N89P@@!@)`#_]@7GH`"D8`#P@&``-G!'I)Y8T@
- + M!G(%P(%;@&8$",4`!P@&``)G!`C%``0(!@``9P0(Q0`!(`9R0L"!9P0(Q0`&
- + M"`8``6<$",4``P@&``9G!`C%```(!@`%9P0(Q0`)(`5,WP!@3G4``$CG`P!.
- + MNO+B+@!\`&`*+P9.NO%*6$]2AKR';?),WP#`3G4@+P`$+P<N`&'43KKPODZZ
- + M]EP@;`M\3KKO?"\'3KK''EA/+A].=2`O``0O!RX?8-0``"`O``0B+P`((&\`
- + M#%%/2.<#)"P!+@`J2$ZZ]=@@!TZZ\D!*@&<:(D`@:0`@+T@`%"`&(&D`!")-
- + M)&\`%$Z28`)P_TS?),!03TYU``">_``,2.<O-BIO`#1^`\ZO`#A\`2!L"W@F
- + M:`"X*CP```/L3KKU@DJ'9PIP`KZ`9P1R`&`"<@$O00`H<`&^@&<(58=G!'``
- + M8`)P`2]``"P@34/L`<A.N@[22H!F!GC_8``!5G#_(&P+>"%``+@B#73^+&P+
- + MY$ZN_ZPN`"!L"W@A2P"X2H!F>"QL"^1.KO]\3KH*P"P`("P'2'(N1@&P@6<$
- + M2H!F"GX!*CP```/N8!8@!E6`9@P(+P`(`#IG!'`!8`)P`"X`2H=G+'P`""\`
- + M"``Z9QP(+P`/`#IG!G@"8```V"`O`#Q.NOV&*`!@``#*>/]@``#$*48+G'#_
- + M8``!1$*G<@(L;`OD)`].KO\<W_P````$)$!*@&<,(@<D"DZN_YI*@&86(`IG
- + M"'(")`I.KO\63KH+&'#_8``!""@J`'1R`B0*3J[_%B('3J[_IG!0Z8C`KP`X
- + M#(````4`9@QP$2E`"YQP_V```-I*KP`H9P8(!``#9@Q*KP`L9Q((!``"9PQP
- + M#2E`"YQP_V```+8(+P`)`#IG(B(-)#P```/N3J[_XDJ`9P@B`$ZN_]Q@"DZZ
- + M"IQP_V```(P(+P`(`#IG!"`%8`8@/````^TD`"(-+&P+Y$ZN_^(J`&8(3KH*
- + M<'#_8&`(+P`)`#IF!$J&9@0L!&`"?/]^`$JO`"AG`GX!2J\`+&<$",<``0@O
- + M``,`.V<$",<``R\'(`4B!DZZ!9Y83RX`;!QP_R!L"W@A0`"X(@4L;`OD3J[_
- + MW"!L"W@A2P"X(`=,WVSTWOP`#$YU(&\`!"\O``PO+P`,+PAA`/VF3^\`#$YU
- + M``">_``,2-<!`W#_WOP`#$YU44](UP,`4$].=4CG,`(B$$HH``UG!'``8!PD
- + M"28`+&P+Y$ZN_]8B`%*`9@A.N@FH</]@`B`!3-]`#$YU44](YS\V+@`J22)(
- + M+!$O1@`H+T@`+$HI``UG!G``8```C$HI``QG9B9-U\=Z`&!8)$U@`E**M<MD
- + M!G`*L!)F]+?*9@0H"F`&0>H``2@(F(TB+P`H)`TF!"QL"^1.KO_0+`!2@&8(
- + M3KH),G#_8#[:AK:&9C9+Z@`!GH9P`$ZZ\=Q.NO(,2H!F(DJ'9J1@'"(&)`TF
- + M!RQL"^1.KO_0*@!2@&8(3KH(]G#_8`(@!4S?;/Q03TYU64](YSX"+!`O00`8
- + M2B@`#6<$<`!@4E.!)@$B!B0`+&P+Y$ZN_[XJ`$ZN_WPH`%*%9P1*A&<.(`1.
- + MN@>R*4`+G'#_8"0B!G0`)@).KO^^+`!2@&<$2H1G#B`$3KH'D"E`"YQP_V`"
- + M(`9,WT!\6$].=9[\`0!(YS\&+@`J2"P5*BT`""`M``1G"B(`+&P+Y$ZN_Z88
- + M+0`-2(1(Q"!-3KH/PDJ$9P1P`&!$(@9![P`@)`AV0.6++&P+Y$ZN_F@H`$J'
- + M9@HB!DZN_]Q*@&<:2H1G$G#_NH!G#"(")`5.KO]&2H!G!'``8`9.N@?^</],
- + MWV#\WOP!`$YU("\`!$CG(`(B`'0`+&P+Y$ZN_S1.KO]\="Y&`K""5\%$`4B!
- + M2,$@`4S?0`1.=2`O``0@;P`((F\`#)[\`!!(YS<6+@`F22I(?`!AN$J`9GPB
- + M!W0!+&P+Y$ZN_E9*@&=L(@=![`'0)`AV!$ZN_]!9@&92(@<D/```)Q!.KO\T
- + M2H!G0B('0>\`("0(=A!.KO_6<@FP@6\N<)NP+P`@9B9![P`E(@@D"TZN_-`J
- + M`$'O`";1P"(()`U.KOS04H!G!E*%9P)\`2('=`!.KOY6(`9,WVCLWOP`$$YU
- + M("\`!"(O``B>_`(02.<_!BX`</\O0`(H+T$`)"('=`!V`2QL"^1.KO^^+T``
- + M("('3J[_OBP`3J[_?"H`+T`"+&8``,(H+P`D(@<D!';_3J[^.+""9@``KKR"
- + M;```GBH$FH8H!2`$<@%(02QX``1.KO\Z*D!*@&9J<@)(04ZN_RCBB"H`#(4`
- + M``(`;1`@!7(!2$%.KO\Z*D!*@&9&>D#GC4OO`"@P/`'_<@!![P`H$,%1R/_\
- + M8"RXA6\$(`5@`B`$)@!.NN^P(@<D#2QL"^1.KO_0L(-G"DZN_WPO0`(L8`:8
- + M@TJ$;M!![P`HL<UG#")-(`4L>``$3J[_+BHO`BQF!$*O`B@L+P`@O*\`)&P.
- + M(@<D!G;_+&P+Y$ZN_[XL+P(H9PH@!4ZZ!/@I0`N<(`9,WV#\WOP"$$YUGOP!
- + M"$CG-Q8N`"9)*D@L%4HM``UF``$8(`<$@```!`!G(`2````$`&=*4X!G6%.`
- + M9UQ3@&=>4X!G9E.`9VQ@``#N2BT`#&<F(`9![P$D0^\!(&$`_=9*@&<4("\!
- + M)#=```(@+P$@-H!P`&```,IP&6```+XB!BQL"^1.KO\H)H!P`&```+(FAG``
- + M8```JG``8```I"`&(A-A`/XV8```F"M3``AP`&```(XJ$TJM``1F#B(5+&P+
- + MY$ZN_HPK0``$("T`!&=B)``B!2QL"^1.KOY<2H!F4B(&0>\`("0(=D#EBTZN
- + M_FA*@&<^(@5.KO^F(BT`!$ZN_Z8B!DZN_]PB`G0`3J[_1AM\``$`#2J"*T(`
- + M!$'O`"`B""QL"^1.KO^X2H!G!"`"8`Y.N@2V8`9P%BE`"YQP_TS?:.S>_`$(
- + M3G4@+P`$(B\`""]O``P`!$CG#P8J+P`<+`$N`'`.3KH-:"I`2H!F"G`,*4`+
- + MG'#_8$Y#U2+'0IDBQD(M``TB!RQL"^1.KO\H&T``#$AZ_G1(>OO:2'K[9DAZ
- + M^JY(>OIX2'KZ:B`%($U#^OI23KKHXD_O`!@H`&P&($U.N@N@(`1,WV#P3G4@
- + M+P`$(B\`""]O``P`!"]O`!``""]O`!0`#"]O`!@`$$CG#0`H+P`4*B\`$"X`
- + M<`!*@68$<$#EB`!```$O`"`'<O]A`/]&6$]*@&9`<`!*A&8$<$#EB`!```(O
- + M`"`%<O]A`/\H6$]3@&8B<`!*KP`<9@1P0.6(`$```B\`("\`''+_80#_!EA/
- + M58!G$$'L`=8O2``03-\`L$[ZY41,WP"P3G4@;P`$(F\`"$CG(18F22I(3KKL
- + MQ"(-)`LL;`OD3J[_LDJ`9P1P`&!L3J[_?"X`<C1&`;"!9E(B`DZN_[A*@&<.
- + M(@U.KO^R2H!G!'``8$9.KO]\+@!R;]*!L(%F+"("=`!.KO]&2H!G&B(+3J[_
- + MN$J`9Q`B#20+3J[_LDJ`9P1P`&`23J[_?"X`(`=.N@'T*4`+G'#_3-]HA$YU
- + M```@+P`$(&\`""(O``Q93TCG`S0L`2X`*DA.NNP@(`=.NNB()D!*@&=$""L`
- + M`0`#9S8(*P`#``-G%B!K`!@O2``4<`!R`B!K``0B;P`43I$@:P`4+T@`%"`&
- + M(&L`!")-)&\`%$Z28`AP#2E`"YQP_TS?+,!83TYU("\`!"!O``@B+P`,2.<#
- + M!$S?(,!@@"!O``2>_`!`2.<[%BI(3KKKGB`-9U)*%6=.(@U![P`@)`AV0'@`
- + M+&P+Y$ZN_'8N`&TV3J[_?"P`4H!.N@K\)D!*@&<DOH9G%"8&4H,B#20+3J[\
- + M=DJ`;Q`@`F`.($(B2Q+89OP@"V`"<`!,WVC<WOP`0$YU("\`!"(O``@O;P`,
- + M``113TCG!P`J+P`8+`$N`$ZZZQP@!TZZYX1*@&<:(D`@:0`8+T@`$"`&(@4@
- + M:0`$(F\`$$Z18`)P_TS?`.!03TYU("\`!"(O``@O;P`,``1(YP<`*B\`$"]%
- + M`!!,WP#@8*```"`O``0@;P`((B\`#%E/2.<#-"P!+@`J2$ZZZK`@!TZZYQ@F
- + M0$J`9R8(*P````-G&"!K`!`O2``4(`8@:P`$(DTD;P`43I)@"'`-*4`+G'#_
- + M3-\LP%A/3G4@+P`$(&\`""(O``Q(YP,$3-\@P&">```@+P`$*4`'2$J`9P``
- + MAG)GD(%G``""58!G``"`<@F0@6=\4X!G>%.`9W13@&=P4X!G;%.`9VA3@&=H
- + M4X!G:')1D(%G9E.`9V93@&=F4X!G9E.`9V93@&=F58!G9E.`9V93@&=F4X!G
- + M9E6`9V93@&=F4X!G9E.`9V93@&=F4X!G9E6`9V93@&=F4X!G9E.`9V9@:'``
- + M8&9P#&!B<`M@7G`68%IP!V!6<`A@4G`08$YP$6!*<`)@1G`"8$)P%F`^<`=@
- + M.G`68#9P)&`R<!9@+G`68"IP'F`F<!)@(G`E8!YP)F`:<!-@%G`68!)P'&`.
- + M<`U@"G`-8`9P#6`"</].=2\.+&P+Y$ZN_WQA`/[Z*4`+G"Q?3G4@;P`$2.<`
- + M!BI((DTL>``$3J[_!"!-3-]@`$[Z!T@@+P`$2.<!!"X`*FP+J&`.("T`#+"'
- + M9@0@#6`(*E5*E6;N<`!,WR"`3G5(YR`"0>P+J$ZZ&7(@+`MX(BP+A"0`LX("
- + M@@!___\I0@ND4H(I0@N@+P$O`$AL!6A(;`NT3KK@'D_O`!`L>``$3J[]9BE`
- + M"]AG$'``0>P+M$ZZ&88I0`O49@I(;`5V3KKA!%A/3-]`!$YU+PX@+`O89PH@
- + M0"QX``1.KOU@2JP+U&<X+'@`!$ZN_WQ@#")(<!PL>``$3J[_+B!L"]0L>``$
- + M3J[^C"!`2H!FXB!L"]1.NAC@+'@`!$ZN_W8L7TYU```@;P`$("\`""(O``PB
- + M;P`0+V\`%``$+V\`&``(64](YP\V*"\`+"HO`"@L`2X`*DDO2``@+'@`!$ZN
- + M_68F0$J`9S`@2R`$3J[]<B1`2H!G(B`-9P@E30`H)44`)"!O`"`@!R)*(@9.
- + MKOY$2@!F!"`*8!8@"F<&($I.KOUL(`MG!B!+3KH83'``3-]L\%A/3G4@;P`$
- + M2.<`!BI((`UG&")-+'@`!$ZN_CX@;0`.3KH8(B!-3J[];$S?8`!.=5E/0?D`
- + M````+HAG""!Y_____$Z06$].=5E/0?D`````+HAG""!Y_____$Z06$].=4CG
- + M`Q<J;`O<8!0F57`4T*T`!")-+'@`!$ZN_RXJ2R`-9NA"K`O<8$PJ;`OH<)S0
- + MK`=$)D`@+0`$*4`+Z"EM``@'1"XM`!A*@&8>(&P':`QH`"0`%&42($\L"$'M
- + M``PL>``$3J[])"Y&(DL@!RQX``1.KO\N2JP+Z&:N3-_HP$YU(&\`!")O``@@
- + M4")1$!BP&68$2@!F]I`A2(!(P$YU(&\`!"`O``A#^O_@<@1.^@>N(&\`!")O
- + M``@@+P`,2H!O"A(0$-$2P5.`9O9.=2!O``0B;P`(<`!R`!`8$AD,``!A;0H,
- + M``!Z;@0$```@#`$`86T*#`$`>FX$!`$`()"!9@1*`6;43G4``"`O``@@;P`$
- + M3E7_]")/<@I.N@(T!D$`,!+!2H!F\"`)$.&_R6;Z0A"0CTY=3G4``"`O``@@
- + M;P`$3E7_]")/(@`"00`'!D$`,!+!YHAF\"`)$.&_R6;Z0A"0CTY=3G4``#`Q
- + M,C,T-38W.#EA8F-D968@+P`((&\`!%%/(D\R``)!``\2^Q#<Z(AF\B`)$.&_
- + MR6;Z0A"0B5!/3G4``"!O``0B;P`(2.<P("1(<@`@`28!#!``*V<(#!``+68$
- + M=@%22!`8!```,&T:#```"6X4)`'E@=*"TH%*`V8$TH!@XI*`8-XB@2`(D(I3
- + M@$S?!`Q.=2!O``0O#2I(""T``P`;9C`@+`;T3KH$SBM```0K0``09@IP#"E`
- + M"YQP_V`6*VP&]``4<//!K0`80JT`#$*M``AP`"I?3G4``"!O``1(YR`4*D@F
- + M36`@<``0$T'L!84(,``!"`!G"G(`$@!T()*"8`1R`!(`%L%*$V;<(`U,WR@$
- + M3G4``)[\`%!(YS$V0_H`A'``+'@`!$ZN_=@J0$J`9@9P%$ZZ[I9^`"!L!W0>
- + M*/__(`=#[P`<8`(2V%.`9/I"-W@<0>\`'"E(!PQ#[`<41^P'*"Q-D<B5RG``
- + M(@!T?=2"=BA.KOZD<!1.NNY03-]LC-[\`%!.=2HJ(%-T86-K($]V97)F;&]W
- + M("HJ``!%6$E4``!I;G1U:71I;VXN;&EB<F%R>0!*@&H``!Y$@$J!:@``#$2!
- + M80``($2!3G5A```81(!$@4YU2H%J```,1(%A```&1(!.=2\"2$$T`68``")(
- + M0$A!2$(T`&<```:$P3`"2$`T`(3!,`)(0C(")!].=2\#=A`,00"`9```!N&9
- + M44,,00@`9```!NF964,,02``9```!N6954-*06L```;CF5-#-`#FJ$A"0D+F
- + MJDA#@,$V`#`"-`-(0<3!D()D```&4T/0@7(`,@-(0^>X2$#!028?)!].=0``
- + M2.=P`"0`9R!*@68$0H!@&"8`QL%(0L3!2$)"0M:"2$'`P4A`0D#0@TS?``Y.
- + M=0``("P'<`1``?0N0$[Z_F```"!O``0@"$H89OQ32)'`(`A.=0``(&\`!")O
- + M``@@+P`,2H!G$%.`$ABR&68,2@%G!%.`:O)P`$YU;@1P_TYU<`%.=0``(&\`
- + M!")O``@2&+(99@A*`6;V<`!.=6X$</].=7`!3G4B;P`((&\`!"`O``PB"&`$
- + M$-EG"%.`9/A@!D(84X!D^B`!3G4B;P`((&\`!"`($-EF_$YU(F\`""!O``0@
- + M+P`,(@A*@&\6L<EE#-/`T<`1(5.`9OI@!A#94X!F^B`!3G4@;P`$("\`"$CG
- + M`Q0N`"I(9A(@#68$<`!@:"!-3KH`;G``8%X@#68*(`=,WRC`3OH!R"9-58LP
- + M/'__P%-(P.6`+``($P`/9PP,:X``__YF!"PK__(@!TZZ`:`F0$J`9@1P`&`>
- + MO(=C!"`'8`(@!B!-(DM@`A+84X!D^B!-3KH`#B`+3-\HP$YU(&\`!"`(9@).
- + M=5F`2.<\,B(L"]QF#BE\````%@N<3-],/$YU(D&P@6\2)`'4J0`$!H(````4
- + ML()L`F`((BD``&?48.`F`0:#````$+"#;<9G$B1#0H(T*@`":[KEBM:"6(-@
- + MZ"1`-"H``&JJ"*H`!P``0H,V*@`"`D-__^6+2FH``FM`1_(X!$IK``!K-D*$
- + M."L``@)$?__EC-B#6(3DC%B#2FL``FH$`$2``#5$``)K$BH$Y8PT,D@$`D*`
- + M`(I"-85(!$*$."H``&=,Y8Q$A$?R2/Q*:P``:SY"A#@K``+EC$*%.BH``@)%
- + M?__EC=B%6(18@^2,2FH``FH$`$2``#=$``)K$BH$Y8PT,T@$`D*``(I"-X5(
- + M!->I``@F*0`$MJP%@&X,MJD`"&8Z2JD``&<T("P+W"!`LH!F#"EI```+W&`0
- + M(&@``+*H``!F]B%I`````"`I``0&@````!0L>``$3J[_+DS?3#Q.=2`O``1*
- + M@&8,*7P````6"YQP`$YU2.<^,E:``H#____\#(```?_\;@``N+"L!8!N``"P
- + M)BP+W&<``*@B0["I``AN,B(L"^"RJ0`,9BA%Z0`02E)K$$*$."H``@)$?__E
- + MC+"$;QI"A#@J``)K".6,1?)(!<)BD``&=F(D-@O@CJ``<``$?R"`1"A;"$
- + M9SPL!)R`689F!"`$8##DCDIJ``)J!`!&@``J`.2--T8``C=%```U10`">@1*
- + M1FL.-#)(!`)"@`",0C6&2`0F*0`(EH"6A2-#``@@"EB`3-],?$YU*@"PK`6`
- + M:@0@+`6`*``&@````!0B+`O@+'@`!$ZN_SI*@&8**7P````,"YQ@S")`1>D`
- + M$"-L"]P``"E)"]PC1``$(VP+X``,)@26A6<H68-G)"-#``A'\E@$-7R`````
- + MY(TU10`"-T4``.2+`$.``#=#``)@%$*I``@U?(````#DC`!$@``U1``"(`I8
- + M@$S?3'Q.=2!O``0@+P`((B\`#")O`!!93TCG#S8L`2X`*D@O20`@<`&^@&,`
- + M`+(F3=?&(`=5@&8D+PLO#2!-(DLL;P`H3I903TJ`;P``DB`&($TB2TZZ^"!@
- + M``"$(`?BB"(&3KK[-B)-T\`@!B!-3KKX!B1->@!X`6`J+PTO"R!+(DTL;P`H
- + M3I903TJ`:A)2A=7&M<MG"B`&($LB2DZZ]]C7QE*$N(=ETK7-9PH@!B!-(DI.
- + MNO?")F\`("`%(@8@32)+80#_4B!*T<8@!Y"%4X`B!B)+3-]L\%B/8`#_.DS?
- + M;/!83TYU(&\`!)[\`!A(YS<6*DA^`"9X``0@#68&<`%@``"$+&P+Y$ZN_\0L
- + M`&840?H`?B(()#P```/N3J[_XBP`?@$,:P`D`!1E+"]\@```(0`@3J[_RD?O
- + M`"0FP";\@```(B;&0ILB#4'O`"`D"$ZN_:(J`&`B(@TF!G0`3J[_(DJ`9A).
- + MKO]\*4`'2'+_*4$+G"H`8`(J`DJ'9P8B!DZN_]P@!4S?:.S>_``83G5.24PZ
- + M``!.^O'*3OKQPB`O``1(YP$$+@`J;`<\8`@@;0`$3I`J52`-9O1+[`:,<`;`
- + MK0`858!F&"`M``20K0`09PXB+0`<(&T`$,%!3KKQ`"!-*E`@#6;6(`=,WR"`
- + M3OKF_"`O``0@;P`(0]!2F2!14ID0@$YU44\@;P`,0I<O2``$2&\`%"\O`!1!
- + M^O_>0^\`"$ZZ#/H@;P`,0A!03R`74$].=0``("\`!"!O``@O#2(`*DA2E4/M
- + M``@@$5*1&X$(#"`9#(````(`;11![0`,(FT`!'(!P4%.N@1@0JT`""I?3G6>
- + M_`(,+PTJ;P(40J\`#$*O``0O30`(2&\"'"\O`AQ!^O^J0^\`#$ZZ#()03R`O
- + M``QG$$'O`!`B;P`(<@'!04ZZ!!8(+0`%`!MF"`@M``0`&V<$</]@!"`O``0J
- + M7][\`@Q.=2`O``0@;P`(64](YP,$+@`J2'P`'T``#W)!TH'"K0`89@P([0`%
- + M`!MP_V```4!P,\"M`!A5@&=0<$Q&`,"M`!AR0-*!L(%F#`CM``$`&T*M``Q@
- + M-`@M``4`&V<&</]@``$,<&Y&`,"M`!AR;D8!L(%F#`CM``$`&T*M``Q@"G``
- + M*T``#&```.8@+0`,L*T`%&PR(&T`!%*M``0@!Q"`4JT`#`@M``8`&V<.<@J^
- + M@68(($U.N@1P+`!*AF<``*H@!F```*H(+0`"`!MG+D*M``P@+0`<0>\`#W(!
- + M3KKO+"P`4H!F"`CM``4`&V!R(`93@&=L".T`!``;8&1*K0`49B`@34ZZ]=Q*
- + M@&<*".T`!0`;</]@6'``*T``#"MM`!``!"`M``RPK0`4;0@@34ZZ`_8L``CM
- + M``$`&R!M``12K0`$(`<0@%*M``P(+0`&`!MG#G(*OH%F""!-3KH#RBP`2H9G
- + M!"`&8`9R`!('(`%,WR#`6$].=2!O``193TCG`00J2$'L!HR[R&9$0>P&KDZZ
- + M`Y8(+0`-`!IG-"`M`!Q![P`+<@%.NN_4+@!O"GX`'B\`"V```2!*AV8(".T`
- + M!``;8`8([0`%`!M^_V```0A3K0`(;1`@;0`$4JT`!'``$!!@``#T<#/`K0`8
- + M4X!G-'!<1@#`K0`8<D#2@;"!9A0([0```!L(+0`$`!MG%G#_8```QD*M``@(
- + M[0`%`!MP_V```+8(+0`"`!MG1D*M``A^`!XM`"!*AV<(0BT`(&```)8@+0`<
- + M0>\`"W(!3KKO+BX`;PA^`!XO``M@>DJ'9@@([0`$`!M@!@CM``4`&W[_8&1*
- + MK0`49A0@34ZZ]&A*@&<*".T`!0`;</]@3"!M`!`K2``$("T`'"(M`!0@;0`0
- + M3KKNVBM```@N`&\24ZT`""!M``12K0`$?@`>$&`82H=F"`CM``0`&V`*".T`
- + M!0`;0JT`"'[_(`=,WR"`6$].=2!O``1(YP<4*DA^`"`M`!AF"G()*4$+G'#_
- + M8&X@/```@`+`K0`8#(```(`"9@@@34ZZ`A9^`4AX``$@+0`<<@!.NNWL6$\L
- + M`$H'9CP(+0`/`!IG(B9M``0J+0`(8!!R"K(;5\!$`$B`2@!G`E.&(`53A4J`
- + M9N@(+0`!`!MG!MRM``Q@!)RM``@@!DS?*.!.=2!O``0@+P`((B\`#$CG`P0L
- + M`2X`*D@(+0`!`!MG!B!-3KH!EB`&4X!F"B!-3KK_1MZ`?``K;0`0``1"K0`,
- + M0JT`"$(M`"`(+0`'`!MG!G#\P:T`&"\&("T`'"('3KKM0%A/4H!F!'#_8`AP
- + MS\&M`!AP`$S?(,!.=2!O``0@+P`((B\`#")O`!!93TCG#Q`L`2X`)DDO2``4
- + M(`8B!TZZ]+HJ`'@`2H=G!$J&9@9P`&```/QP,,"K`!AF"G!!T(#`JP`89@P(
- + MZP`%`!MP`&```-YP,\"K`!A5@&=0<$Q&`,"K`!AR0-*!L(%F#`CK``$`&T*K
- + M``Q@-`@K``4`&V<&<`!@``"J<&Y&`,"K`!AR;D8!L(%F#`CK``$`&T*K``Q@
- + M"D*K``QP`&```(1*JP`49DP(*P`"`!MF1"!+3KKR.$J`9SH(ZP`%`!MP`&!@
- + M(&\`%!`8(FL`!!*`4JL`!%*K``Q3A5*$+T@`%'(*L`%F#@@K``8`&V<&($M.
- + MN@`^("L`#+"K`!1L!$J%;L)*A6\6($M.N@`F("L`'"(%(&\`%$ZZZOS8@"`$
- + M(@=.NO,<3-\(\%A/3G4@;P`$2.<!!"I((`UG``"@<$'0@,"M`!AF+"!M`!!#
- + M[0`$(LA"F4(M`"!P`"+`""T`!P`;9P8(K0```!L(K0`$`!M@``"*2JT`%&=$
- + M("T`#&H&<@`K00`,("T`#&<H(BT`'"!M`!#!04ZZZGXN`%*`9@@([0`%`!M@
- + M#+ZM``QG!@CM``0`&RMM`!``!$*M``QP,,"M`!AF$@@M``<`&V<&</S!K0`8
- + M<`!@)'#_8"!^`$OL!HQ*K0`89PP@36$`_T9*@&<"?O\J52`-9N@@!TS?((!.
- + M=2!O``1(YP$$*DA^`"`-9P8@+0`89@1P_V!`""T``0`;9P@@34ZZ_PHN`'`,
- + MP*T`&&8.2JT`%&<((&T`$$ZZ]")"K0`8("T`'$ZZT,92AV<$2H!G!'#_8`)P
- + M`$S?((!.=2!O``0B;P`(+V\`#``$64](YP\4)F\`("I)+T@`&'X`+"P&^'H`
- + M2JL`&&<&($M.NO]T<``0+0`!<BN0@6<@<C:0@6<&4X!G!&`@?`!R*[(M``)7
- + MP$0`2(!(P"H`8`QZ`7!AL"T``F8"?`!P`!`5<F&0@6<,<A&0@6<:6X!G)&`V
- + M2H56P'(!D@``00$(C(%^0.&/8"A*A5;`<@"2`)(`C(%@&DJ%5L!R`9(``$$!
- + M``!!`@",@6`&<`!@``"`+RP&_"\&+R\`($ZZWW1/[P`,*`!2@&8$<`!@8DJ%
- + M9P8(QP`'8#!P`!`5<F&0@6<,<A&0@6<:6X!G&F`:",<``4AX``(@!'(`3KKI
- + ML%A/8`9^`6`"?@((!@`/9@0(QP`/D<A+ZP`0*L@JR"=$`!PG2``$)T@`#"=(
- + M``@JQR`+3-\H\%A/3G4``"!O``0B;P`(44](YP`42.\#```(2^P&C&`$)DTJ
- + M4R`-9P9*K0`89O(@#68><").NO/X*D!*@&8$<`!@'B!-)HAP(7(`$,%1R/_\
- + M+PT@;P`,(F\`$$ZZ_G183TS?*`!03TYU```@;P`$(F\`""]O``P`!"]O`!``
- + M")[\`#1(YR\V)F\`8"IO`%Q([P,``"Q"+P`[0B\`.D(O`#E"+P`X'WP`(``W
- + M0J\`5'#_+T``4$(O`#9^`'P`1>\`/&!*<``@;P`L$!!R()"!9R)7@&<F48!G
- + M$E6`9P97@&<B8#(??``!`#M@'A]\``$`.F`6'WP``0`Y8`X??``!`#A@!A]\
- + M`#``-U*O`"P@;P`L2A!FKG`!L"\`.V8&'WP`(``W<BH@;P`LLA!F'BQO`#`B
- + M5EB6(A$O00!4;`A$KP!4'T``.U*O`"Q@#$/O`%1.NNVNT:\`+"!O`"P0$'(N
- + ML`%F1E*O`"QP*B!O`"RP$&8<(F\`,"!16)$@$"]``%!L!G#_+T``4%*O`"Q@
- + M%D/O`%!.NNUL*@!F!D*O`%!@!-NO`"P??``@`#=P`"!O`"P0$'),D(%G%'(<
- + MD(%G!EF`9PI@$A]\``(`-F`&'WP``0`V4J\`+"!O`"Q2B")O`"P0$7(`$@`?
- + M0``D+T@`)G!0DH!G``$048%G``$<<`N2@&<``=!3@6=06X%G3%N!9R)3@6<`
- + M`0)3@6<``.I7@6<``8!5@6<``/!7@6<``.I@``&X)&\`,'`"L"\`-F8.(%)8
- + MDB)0(!,R@&```DH@4EB2(E`BDV```CXB;P`P(%%8D2@0:@1^`42$2H=G#$7O
- + M`#T??``M`#Q@(DHO`#IG#$7O`#T??``K`#Q@$$HO`#EG#$7O`#T??``@`#Q\
- + M`2`$($I.NNO"*@`@+P!09@9*A&<``>0@+P!0:@9R`2]!`%`H+P!0F(5O'"!*
- + MT<0@!2)*3KKO2'(P($I@`A#!4X1D^BHO`%#<A2`%4X!F``$$$!*P+P`W9@``
- + M^DJO`%!F``#R0A)@``#L("\`4&H&<`@O0`!0'WP``0`V<`*P+P`V9A`B;P`P
- + M(%%8D2`0>``X`&`*(F\`,"!16)$H$!`O`"1R=;`!9P#_6G)OL`%F'DHO`#AG
- + M#$7O`#T??``P`#Q\`2`$($I.NNLR8`#_/DHO`#AG$A]\`#``/$7O`#X??`!X
- + M`#U\`B`$($I.NNM.*@`(+P`%`"1F`/\40>\`/$ZZZ_Y@`/\((F\`,"!16)$D
- + M4"`*9@1%^@#R($I*&&;\4XB1RBH(("\`4&L$L(5O!"]%`%`L+P!08"!\`2)O
- + M`#`@45B1(!`?0``\0B\`/6`&<`!@``"L1>\`/"`O`%2PAFP(<@`O00!48`2=
- + MKP!42B\`.V<>8`AP`!`:($M.E5.&;/1@!B!+<"!.E5.O`%1L]&!J2H=F#$HO
- + M`#EF!DHO`#IG1A`2<B"P`6<,="NP`F<&="VP`F8R2H9K+K(O`#=F$F`*<``0
- + M+P`W($M.E5.O`%1L\'``$!H@2TZ54X9@"G``$"\`-R!+3I53KP!4;/!@"'``
- + M$!H@2TZ54X9L]"`O`"9,WVSTWOP`-$YU```@;P`$(F\`""]O``P`!"]O`!``
- + M")[\``Q(YP`4)DDJ2"]O`!P`$&`X<"6P+P`,9B8@;P`8L!!F!E*O`!A@&"\+
- + M+PU#[P`83KK[E%!/2H!G!B]``!A@"G``$"\`#"!+3I4@;P`8$!@?0``,+T@`
- + M&$H`9K9,WR@`WOP`#$YU(&\`!""(6)!"J``$(4@`"$YU```@;P`$2.<`!BI(
- + M2JT`"F<*(DTL>``$3J[^F!M\`/\`"'#_*T``%'``$"T`#RQX``1.KOZP(DUP
- + M(DZN_RY,WV``3G4``"!O``0@+P`(2.<#%BX`*DAP_RQX``1.KOZV'`!(ADC&
- + M(`92@&8$<`!@8'`B(CP``0`!3J[_.B9`2H!F""`&3J[^L&!$0>L`"B#-%T<`
- + M"1=\``0`"$(8$,:3R4ZN_MHG0``0(`UG"")+3J[^GF`:0>L`&"=(`!1!ZP`4
- + M)T@`'$*K`!@7?``"`"`@"TS?:,!.=2\(+P!.N0```F!03TYU``````/L````
- + M`0```````&(.`````@````$````4````"@````````/R```#Z@```=``````
- + M+P`````````%G```!:(```7"```%^@``!CP`````````````````````````
- + M``````````````````````````C,7'M]````3VL``````!0`````````````
- + M``````!,8V]N<V]L93H``"5S.B```&EN='5I=&EO;BYL:6)R87)Y````.B``
- + M`#0R``!5;FMN;W=N(&5R<F]R(&-O9&4```H```!T:6UE<BYD979I8V4`````
- + M_____V9I9F\N;&EB<F%R>0```````````````````,P``0```````````,X`
- + M``````````````!&86EL960@=&\@8W)E871E('1I;65R``!U<V5R(&EN=&5R
- + M<G5P=````````$YO(&UE;6]R>0```&$`1F%I;&5D('1O(&-R96%T92!T:6UE
- + M<@``3DE,.@``3DE,.@``3DE,.@``*@!.24PZ``!);G9A;&ED('=I;&1C87)D
- + M("5S`$5R<F]R(&5X<&%N9&EN9R!A<F=U;65N=',`55-%4@``=7-E<@``55-%
- + M4DY!344``$A/344``',Z``!32$5,3`!B:6XZ<V@``$A/4U1.04U%``!A;6EG
- + M80!.24PZ`````)LP('$``$9A:6QE9"!T;R!I;FET:6%L:7-E($DO3P``86UI
- + M9V$@<W!E8VEF:6,@97)R;W(``````?!5;FMN;W=N(&5R<F]R`&YO="!O=VYE
- + M<@!N;R!S=6-H(&9I;&4@;W(@9&ER96-T;W)Y`&YO('-U8V@@<')O8V5S<P!I
- + M;G1E<G)U<'1E9"!S>7-T96T@8V%L;`!I+V\@97)R;W(`;F\@<W5C:"!D979I
- + M8V4@;W(@861D<F5S<P!A<F=U;65N="!L:7-T('1O;R!L;VYG``!E>&5C(&9O
- + M<FUA="!E<G)O<@!B860@9FEL92!N=6UB97(`;F\@8VAI;&0@<')O8V5S<P``
- + M;F\@;6]R92!P<F]C97-S97,`;F]T(&5N;W5G:"!M96UO<GD`<&5R;6ES<VEO
- + M;B!D96YI960`8F%D(&%D9')E<W,`8FQO8VL@9&5V:6-E(')E<75I<F5D`&UO
- + M=6YT(&1E=FEC97,@8G5S>0``9FEL92!E>&ES=',`8W)O<W,M9&5V:6-E(&QI
- + M;FL`;F\@<W5C:"!D979I8V4``&YO="!A(&1I<F5C=&]R>0!I<R!A(&1I<F5C
- + M=&]R>0``:6YV86QI9"!A<F=U;65N=```9FEL92!T86)L92!O=F5R9FQO=P!T
- + M;V\@;6%N>2!O<&5N(&9I;&5S`&YO="!A('1Y<&5W<FET97(``'1E>'0@9FEL
- + M92!B=7-Y``!F:6QE('1O;R!B:6<``&YO('-P86-E(&QE9G0@;VX@9&5V:6-E
- + M`&EL;&5G86P@<V5E:P``<F5A9"UO;FQY(&9I;&4@<WES=&5M`'1O;R!M86YY
- + M(&QI;FMS``!B<F]K96X@<&EP90!M871H(&%R9W5M96YT`')E<W5L="!T;V\@
- + M;&%R9V4``$DO3R!S=')E86T@96UP='D``&9I;&4@;F%M92!T;V\@;&]N9P``
- + M9&ER96-T;W)Y(&YO="!E;7!T>0!T;V\@;6%N>2!S;V9T(&QI;FMS("AL;V]P
- + M/RD````""@```A@```(B```"/````DP```)D```";@```H@```*@```"L@``
- + M`L(```+4```"Y@```O@```,*```#%@```RP```-````#3````UX```-N```#
- + M?@```XX```.@```#M````\@```/:```#Z@```_@```00```$'@``!#0```1$
- + M```$4```!%X```1P```$@@``!)8```2J````)@``9&]O<BXE;'@N)6QX``!.
- + M;R!M96UO<GD```!````@("`@("`@("`H*"@H*"`@("`@("`@("`@("`@("`@
- + M($@0$!`0$!`0$!`0$!`0$!"$A(2$A(2$A(2$$!`0$!`0$(&!@8&!@0$!`0$!
- + M`0$!`0$!`0$!`0$!`0$!$!`0$!`0@H*"@H*"`@("`@("`@("`@("`@("`@("
- + M`@(0$!`0(```````````````````````````````````````````````````
- + M````````````````````````````````````````````````````````````
- + M````````````````````````````````````````````````````````````
- + M```````/H```!JX```````````````````````````````````````````;0
- + M````````````````````````````````````````````````````````````
- + M```````````````````````````````"````@``````-__\````.``X`````
- + M``````````#__P````0`!````````$Q"```'`/__````!``$````````3%@`
- + M`````````````^P````(````````!S0```<@````0@```!H````6````$@``
- + M``X````*````+@````$```<D```&K@``!HP```5>```%6@``!58```52```%
- + M3@``!4H```5&```%0@``!3X```4Z```%-@``!3(```4N```%*@``!28```4B
- + M```%'@``!1H```46```%$@``!0X```4*```%!@``!0(```3^```$^@``!/8`
- + M``3R```$[@``!.H```3F```$X@``!-X```3:```$U@``!-(```3.```$R@``
- + :!,8```(&````X````-0```!@`````````_+:
- + `
- + end
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/c/getstack.uue emacs-18.59/amiga/amiga-extra/amiga/c/getstack.uue
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/c/getstack.uue Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/c/getstack.uue Tue Jul 12 10:35:07 1994
- ***************
- *** 0 ****
- --- 1,8 ----
- + begin 666 getstack
- + M```#\P`````````!```````````````G```#Z0```"=93TCG(!Y)^0````"3
- + MR2QX``1.KO[:*D!#^@!P<"4L>``$3J[]V"9`2H!G-B(M`*SE@2]!`!0@;P`4
- + M(B@`-.6!+P%!^@!2(@@L2R0/3J[\1D_O``0B2RQX``1.KOYB<`!@`G`43-]X
- + M!%A/3G4D5D52.B!G971S=&%C:R`Q+C`@*#(Q+C,N.3,I``!D;W,N;&EB<F%R
- + ,>0`E;&0*``````/R
- + `
- + end
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/c/grep.uue emacs-18.59/amiga/amiga-extra/amiga/c/grep.uue
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/c/grep.uue Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/c/grep.uue Tue Jul 12 10:35:27 1994
- ***************
- *** 0 ****
- --- 1,1028 ----
- + begin 666 grep
- + M```#\P`````````"``````````$``"F2```+:@```^D``"F22.=^_B1()`!)
- + M^0`````L>``$1_D```QX<@`@/```"$Q@`B;!4<C__"E/#*@I3@R@)FX!%"`K
- + M`*QG#.6(($`@*``TY8A@!B`/D*L`.B(/DH`&@0```(`I00Q\L*P+P&14("P+
- + MP`:`````@"E`#,@B/``!``%.KO\Z2H!G``'2*4`,Q"(`!H````"`*4`,?-"L
- + M"\`,;@`D`!1M&"E`#,`I00R\DJP,R$'L#+@@@4ZN_21@`BY`0JP,I'``(CP`
- + M`#``3J[^SB9N`11#^@&*<`!.KOW8*4`ME&8&<&1@``#F*6L`F`R<2JL`K&<`
- + M`'X@:P"LT<C1R")H`!#3R=/)(`)R`!(9*4D,K-"!7H`"0/_\*4`,M$CG0$`B
- + M/``!``%.KO\Z3-\"`DJ`9@AP%"\`9P`!%B!`*4`,L"`"4X#4@1&R```@`E."
- + M4<C_]A&\`"`@`E."$;P`(B`"$;$@`"`!4<K_^!"\`"(O"&!*0>L`7$ZN_H!!
- + MZP!<3J[^C"E`#*0O`"1`("H`)&<8+&PME"!`(B@``$ZN_Z`I0`R<(@!.KO^"
- + M(&P,I"\(2&P,>"!H`"0I:``$#*Q.N@"R3KIM_G``8`0@+P`$)&P,J"4`+'@`
- + M!`QN`"0`%&T22JP,N&<,0>P,N%FL#,!.KOTD+DH@+`R49P0@0$Z03KH`;$ZZ
- + M`'0@+`S(9PPB;`S$+'@`!$ZN_RY*K`RD9R`L;"V4(BP,G&<$3J[_IBQX``1.
- + MKO]\(FP,I$ZN_H9@$BQX``0@+`RT9P@B;`RP3J[_+B)L+91.KOYB(!],WW]^
- + M3G5D;W,N;&EB<F%R>0!.^0``A1A.^0``A0!.^0``ADQP82`/44"PK`Q\90`N
- + MY"\-("\`#"(O``@O`"\!3KHNS%!/*D!*@&8*2&P``$ZZ7?!83R`-*E].=2`/
- + MD'P`$+"L#'QE`"ZL2.<!!"XO``PO!TZZ+J0J0$J'5L!$`$B`2,!(>``]2&P`
- + M&DAL`!(O`$ZZ+IA/[P`4(`UF"DAL`"!.NEV>6$\@#4S?((!.=2`/D'P`$+"L
- + M#'QE`"Y82.<!$"XO`!`@;P`,+P<O"$ZZ+F@F0$J'5L!$`$B`2,!(>`!*2&P`
- + M.DAL`#(O`$ZZ+CY/[P`8(`MF"DAL`$!.NEU$6$\@"TS?"(!.=;_L#'QE`"X$
- + M+P(@+P`((&\`#"0`<A_$@7(!Y:'JB.6`(#`(`,"!)!].=;_L#'QE`"W:+P(@
- + M+P`((&\`#"(`ZHGE@70?P()T`>&BA;`8`"0?3G6_[`Q\90`MLB\"("\`""!O
- + M``PB`.J)Y8%T'\""=`'AHD:"Q;`8`"0?3G6_[`Q\90`MB$CG`Q0F;P`8*F\`
- + M%'X`?``GM6@`:`!2AUB&<`B^@&7P3-\HP$YUO^P,?&4`+5H@;P`$<!]R`!#!
- + M4<C__$YUO^P,?&4`+4)(YP$0)F\`#'X`1IM2AW`(OH!E]DS?"(!.=;_L#'QE
- + M`"T@2.<#%"9O`!@J;P`4?@!\`"`U:`"PLV@`9P1P`&`,4H=8AG`(OH!EZ'`!
- + M3-\HP$YU(`]10+"L#'QE`"SD2.<#!"IO`!!^`'P`8!HB;!$D(%'1QB\(+PUA
- + MH%!/2H!F=%*'<"#<@"!L$22^J``$;=P@;!$D("@`!+"H``AM.&`.(&P1)"(H
- + M``C2@2%!``@@;!$D("@`!+"H``ALY"!L$20B*``(ZX$O`2\080#^$%!/(&P1
- + M)""`(&P1)%*H``0@!^N`(FP1)"!1T<`O""\-80#^PE!/(`=,WR#`3G6_[`Q\
- + M90`L/B\'(B\`#"XO``AP`2E`$2PI1Q$H*4$1,"X?3G4@#Y!\`"BPK`Q\90`L
- + M%)[\`"!(YS\$2JP1/&8&</]@``9>2^P1."!5$!@JR'X`'@!3G2E($3@@!W(*
- + MD(%G``-.<AJ0@6<``(Q9@&<``TQ3@&<``V13@&<``MI3@&<``NY7@&<``VYR
- + M$9"!9P`"HG(<D(%G``.:4X!G``$:58!G#'(>D(%G``+H8``%;@@L``41*V8>
- + M2JP10&<`!5X(+``#$2MG#B!L$3A3B+'L$31F``5(0JP10`@L``,1*V<*(#P`
- + M``$#8``%N"`\```!`F``!:X(+``%$2MF``"@("P1/&<``)@(+``#$2MF``4,
- + M""P``!$K9QA*@&\0(&P1.!(0="FR`F8$=@%@)G8`8")R`;"!;QH@;!$X%!!V
- + M7+0#9@X8*``!=BFX`V8$=@%@`G8`2H-F1@@L``$1*V<82H!O$"!L$3@2$'1\
- + ML@)F!'8!8"1V`&`@<@&P@6\6<%P@;!$XL!!F#'!\L"@``68$<`%@`G``)@!*
- + M@V<`!(`(+``#$2MG"B`\```!!6``!/1P0>6(8``$[$JL$3QF"DAL`&9.NEFN
- + M6$]+[!$X(%40&"K(?@`>`%.=*4@1."`'<BB0@6<``3)3@&<``3I5@&<``0Q=
- + M@&=.4X!G2E.`9T93@&="4X!G/E.`9SI3@&<V4X!G,E.`9RY7@&<^58!G2%.`
- + M9P``SE>`9UAR%9"!9V!R"Y"!9T!R%9"!9U1;@&<``,I@``/:0JP10'`!*4`1
- + M1"`\```!`6``!$Q"K!%`(#P```$&8``$/D*L$4`@/````0=@``0P0JP10'!"
- + MY8A@``0D0JP10"`\```!"6``!!9(;P`<80#\4%A/?`!P?[R`8AAP!T'L"KW`
- + M,&@`9PQ(;P`<+P9A`/NP4$]2A@R&```!`&W8<%>^@&8*2&\`'&$`_"Y83T*L
- + M$4!P`2E`$41(;P`<80#\=`:````!$5A/8``#M`@L``(1*V<``R1@0`@L``(1
- + M*V<``QA@<@@L``$1*V8``PQ@``"(""P``!$K9@`"_F```*0(+```$2MF``+P
- + M8```M`@L``(1*V8``N((+``%$2MF"$JL$41G``+2(#P```$*8``#3@@L``41
- + M*V8(2JP11&<``K@@/````0M@``,T""P``A$K9@`"I`@L``41*V8(2JP11&<`
- + M`I1P0^6(8``#$@@L``$1*V<``H)P`2E`$4!"K!%$(#P```$.8``"]`@L``01
- + M*V;D8``"8@@L```1*V<``EAP`2E`$4!"K!%$(#P```$/8``"R@@L```1*V<`
- + M`CI"K!%`<`$I0!%$<$3EB&```JY(;P`<80#ZZ$AO`"!A`/KX2&\`)$AX``IA
- + M`/I\0JP10'`!*4`11$AO`"QA`/LT!H````$13^\`%&```G)(;P`<80#ZK%A/
- + M2JP1/&8*2&P`B$ZZ5RI83TOL$3@@51`8*LA^`!X`4YTI2!$X<%Z^@&8H2JP1
- + M/&8*2&P`I$ZZ5P!83TOL$3@@51`8*LA^`!X`4YU\`2E($3A@`GP`2JP1/&8*
- + M2&P`P$ZZ5M983TOL$3@@51`8*LAZ`!H`4YTI2!$X<"VZ@&8``,!*K!$\9@I(
- + M;`#<3KI6JEA/2^P1."!5$!@JR'H`&@!3G2E($3A@;DAO`!PO!V$`^7I03TJL
- + M$3!G6G!_OH!B*$OL"KW;QP@5``!G'`@5``!G""`'<B#0@6`"(`=(;P`<+P!A
- + M`/E&8"J^@&(H2^P*O=O'"!4``6<<"!4``6<((`=R()"!8`(@!TAO`!PO`&$`
- + M^1I03U*'OH5OCDJL$3QF"DAL`/A.NE826$]+[!$X(%40&"K(?@`>`%.=*4@1
- + M.&!N2&\`'"\'80#XXE!/2JP1,&=:<'^^@&(H2^P*O=O'"!4``&<<"!4``&<(
- + M(`=R(-"!8`(@!TAO`!PO`&$`^*Y@*KZ`8BA+[`J]V\<(%0`!9QP(%0`!9P@@
- + M!W(@D(%@`B`'2&\`'"\`80#X@E!/+@5P7;Z`9@#^HDJ&9PI(;P`<80#Y`EA/
- + M0JP10'`!*4`11$AO`!QA`/E(!H````$16$]@``"(0JP10'`!*4`11$JL$3!G
- + M='!_OH!B;DOL"KW;QW`#P!5G8DAO`!QA`/B@6$\(%0``9Q((%0``9P@@!W(@
- + MT(%@`B`'+@!(;P`<+P=A`/?\4$]![`J]"#```7@`9P@@!W(@D(%@`B`'2&\`
- + M'"\`80#WVDAO`"1A`/C$!H````$13^\`#&`"(`=,WR#\WOP`($YU(`]10+"L
- + M#'QE`'[$+P<N+P`((&P1)"`H`!"PJ``4;3Q@#B!L$20B*``4TH$A00`4(&P1
- + M)"`H`!"PJ``4;.0@;!$D(B@`%.6!+P$O*``,80#VY%!/(&P1)"%```P@;!$D
- + M(B@`$%*H`!#E@2)L$20@:0`,(`<A@!@`!(````$`9R9R"I"!9R13@&<@4X!G
- + M'%.`9P93@&<"8`93K!%,8`P@;!$D4J@`'%*L$4P@+!%,(&P1)+"H`!AO!"%`
- + M`!@N'TYU(`]90+"L#'QE`'X$("P12&L(#(````$`;4`,@````1%L.`R````!
- + M`6<P#(````$"9R@,@````01G(`R````!!F<8#(````$'9Q`,@````0AG"`R`
- + M```!"682+P!A`/[B80#X5EA/*4`12&`\#(````$/9BIA`/A"*4`12&$``*P,
- + MK````1`12&<*2&P!!DZZ4W983V$`^"(I0!%(8`I(>`$`80#^G%A/3G4@#UE`
- + ML*P,?&4`?5IA`/](8!(O+!%(80#^?F$`]_)83RE`$4@@+!%(#(````$*9^(,
- + M@````0MGV@R````!#&?23G4@#UE`L*P,?&4`?1AAL&`,8:Q(>`$-80#^/%A/
- + M("P12`R````!$&<4#(````$.9PP,@````05G!$J`:M1.=2`/64"PK`Q\90!\
- + MVF&T8!1A`/=\*4`12&&H2'@!#F$`_?983PRL```!#A%(9^).=2`/64"PK`Q\
- + M90!\JDCG`!0@+P`0)F\`%"!O``PI2Q$D2^P1/"K`<`$JP$*=*4@1-"E($3A*
- + MK!$L9@I(;`$43KI2;%A/80#W&"EK`!@13"E`$4@,@````0-F($AX`0)A`/V&
- + M80#V^BE`$4AA`/]D2'@!#6$`_7)03V`$80#_5`RL```!!1%(9AI(>`$$80#]
- + M6$AX`0UA`/U080#VQ%!/*4`12'#_L*P12&<*2&P!*$ZZ4?Q83W#_D*L`("\`
- + M80#]*$AX`0UA`/T@4$]*JP`@9PI(>`$.80#]$%A/4JL`($S?*`!.=;_L#'QE
- + M`'O*2.<#%"9O`!@J;P`4?@!\`&`0(%/1QB)5T\8@V2#94H=0AKZM``1MZB=M
- + M``0`!$S?*,!.=2`/D'P`$+"L#'QE`'N(GOP`$$CG!S8J;P`X?@!\`"HM``1@
- + M!%*'4(:^A6P,(%71QB`O`#"PD&7L("T`!+Z`;!PB!^>!(%71P29((B\`,+*3
- + M9@HB+P`T@ZL`!&!`0>\`,$/O`"0BV"+84JT`!"P'YX9@)"!5(DC3QD7O`!PL
- + M2BS9+-E2A]'&0^\`)"Q)(-X@WB+:(MI0AKZM``1MUDS?;.#>_``03G4@#UE`
- + ML*P,?&4`>N193TCG+S9^`'P`(&\`-$*H``1Z`$*O`"1@``"`)E/7Q2@O`"0D
- + M4M7$(A(D$[2!4L!$`$B`2,`B+0`$YX$J5=O!2H!G$"!O`#12J``$4H<JVRK;
- + M8$12AE"O`"2TDF0.(&\`-%*H``0JVBK:8"Y2ARK;*ML@;P`T(B@`!%*H``3G
- + M@2!O`#0F4-?!+&\`,"I6V\0@+0`$@:L`!%"%)F\`+"IO`#0D;P`POJL`!&P(
- + MO*H`!&T`_VHH!^>$8!HB+0`$4JT`!%*'(%/1Q.>!(E73P2+8(MA0A+ZK``1M
- + MX"X&YX=@&B(M``12K0`$4H8@4M''YX$B5=/!(M@BV%"'O*H`!&W@3-]L]%A/
- + M3G6_[`Q\90!YU$CG!P0J;P`<?@!\`"HM``1@$"!5("\`%+"P:`!G"%*'4(:^
- + MA6WL("T`!+Z`;"!3K0`$+`?GAF`0(%71QD/H``@@V2#94H=0AKZM``1MZDS?
- + M(.!.=2`/D'P`)+"L#'QE`'ERGOP`'$CG/S9-[P!,)EXJ;P!(?`!*GE;`<@"2
- + M`"]!`#Q*GE;`=`"4`'@`*BL`!'X`+T(`,&`0(%/1QR`0T*@`!+&&4H10A[B%
- + M;>P@!G@`?``B+0`H+T``."]!`#1@="1M`"35QKZ29F0@*P`$(BH`"+*`9E@2
- + M*@`,2(%(P;J!9DP2*@`-2(%(P20O`#"T@68\?@!X`"HK``1@'B!3T<0B:@`$
- + MT\0@*``$L*D`!&8.(!"PD68(4H=0A+Z%;=XH+P!`OJL`!&8&(`1@``'J4H1P
- + M%-R`+T0`0"XO`#@J+P`\N*\`-&T`_WH@+0`HL*T`+&TR8`HB+0`LTH$K00`L
- + M("T`*+"M`"QL["`M`"PB`.6!TH#E@2\!+RT`)&$`\+Q03RM``"0@!.6`T(3E
- + M@"@`)&T`)-7$)(<B*P`$YX$O`6$`\$0E0``$(&T`)-'$0^@`!"Z)+PMA`/Q,
- + M4$\@;0`DT<1-Z``,',4B+P`P',%"'D(H``]"J``0>@!^`"PO`$!@``$H(E/3
- + MQR(1Y8$D;0`,(#(8`&H``.XH*0`$(B\`/%;!=`"4`90!6()R`28!Y:/&A&<6
- + M("\`,%;`=@"6`)8`)`'GHL2$9@``@B`O`#Q6P'8`E@"6`%B#)`'GHL2$9Q8@
- + M+P`P5L!V`)8`E@!2@R0!YZ+$A&94("\`/%;`=@"6`)8`6H,D`>>BQ(1G%"`O
- + M`#!6P'8`E@"6`"0!YZ+$A&8J2J\`/%;"=@"6`I8"6H,D`>>BQ(1G)DJO`#!6
- + MPG8`E@*6`E*#YZ'"A&<2)`;E@M2&Y8(L;0`DW<*)+@`/(`;E@-"&Y8`B;0`D
- + MT\!*J0`09C8L4R0V>`#E@BQM``PC=B@``!!@(@R````!`68:(`;E@-"&Y8`@
- + M;0`DT<`1?`#_``\1?``!``Y2A5"'NJL`!&T`_M12K0`H(`9,WVS\WOP`'$YU
- + M(`^0?``DL*P,?&4`=J:>_``<2.<'-BIO`$`B+0`0Y8$O`6$`[J!83WX`)D`O
- + M0``<8`1"FU*'OJT`$&WV?@!@``$L+`?GAB13U<8B$N6!)FT`#"`S&``,@```
- + M`0!M``$,#(````$!9P`!`@R````!$6P``/@@2D/O`"@BV"+8+V\`+``T(F\`
- + M/"!1T<9-[P`@+-@LV"\)3>\`))[\``@B3W`'$MY1R/_\80#\+D_O``PB+P`H
- + MY8$F;P`<U\%*DV<&4X=@``"F<@$F@2(O`"CE@2!M``S1P2`0!(````$";40,
- + M@`````AL/-!`,#L`!D[[``0`#@`P`!(`,``6`!P`(@`H<#!@&'!08!1P>="`
- + M8!!P>M"`8`IP>]"`8`1P!D8`P:\`-'X`?``J+P`HYX4D;P`\8"@B4R]Q:```
- + M,"\*0^\`-)[\``@L3W`''-E1R/_\80#YS$_O``Q2AU"&)FT`,-?%OJL`!&W,
- + M?O]2AR9O`#R^JP`$;0#^S"\O`!Q.NG:86$],WVS@WOP`'$YU(`^0?`!4L*P,
- + M?&4`=1J>_`!$2.</-BIO`&@K;P!L`#0B+0`8Y8$O`6$`[0XB+0`8Y8$N@2]`
- + M`&0O0``T80#L^B(M`!SG@2Z!+T``8"]``#!A`.SF(BT`'.>!($`B0-/!(BT`
- + M&.6!+H$O0``L+TD`7&$`[,8B+0`<YX$N@2]``%@O0``H80#LLB(M`!SG@2!`
- + M(D#3P2(M`!#E@2Z!+T``)"])`%1A`.R26$\D0'X`)D!@!$*;4H>^K0`0;?8B
- + M+0`<YX$O`6$`['(O0`!$2'@`""\M`!!A`.PL3^\`#"M``#!^`"]*`#1\`&``
- + M`T`J;P!4(`?E@"!K``P@,`@`!(````$`9R!R"I"!9P``[%.`9SA3@&<T4X!G
- + M``$`4X!G``)68``"D'`!(&\`8"#`0^T`!$*5+&\`7$*>+T@`8"])`%0O3@!<
- + M8``"W"!O`%PO:/_\`$PO;P!8`$AZ`"IO`%!@``"*(A7G@2!K`##1P4AO`$`O
- + M"$AO`%!A`/C`3^\`#"(5Y8$@+P!$4X"PLA@`;3Y@!B(3TH$F@2(5Y8$F2M?!
- + M("\`1%.`L)-LZ"`5(@#G@2)O`&@F:0`PU\'E@"`R"`#G@"\`+Q-A`.O&4$\F
- + M@"9O`&@B%>>!(&L`,-'!+PA(;P!$80#W=%!/4H50C2!O`%2ZJ/_\;0#_;B`'
- + MY8`@:P`,#+````$,"`!G``(:<`$@;P!@(4#__&```@P@;P!<+VC__`!,+V\`
- + M6`!(>@`B+?_\YX$J;P!0V\%@``"*(A7G@2!K`##1P4AO`$`O"$AO`%!A`/?H
- + M3^\`#"(5Y8$@+P!$4X"PLA@`;3Y@!B(3TH$F@2(5Y8$F2M?!("\`1%.`L)-L
- + MZ"`5(@#G@2)O`&@F:0`PU\'E@"`R"`#G@"\`+Q-A`.KN4$\F@"9O`&@B%>>!
- + M(&L`,-'!+PA(;P!$80#VG%!/4H50C2!O`%2ZJ/_X;0#_;B9O`&`J;P!<2JO_
- + M^&<*("W__-&M__A@"B(M__SG@=.O`%@@35F(*F\`5"](`%Q*J__\9PH@+?_\
- + MT:W_^&`^(BW_^.>!)F\`4-?!*BW__%.%*`7GA&`2(&\`4-'$(DO3Q"+8(MA3
- + MA5&$2H5JZB(M__CG@=.O`%`K;?_\__A9C29O`&`O30!42JO__&<*2JO_^&<$
- + M<`%@`G``)T#_^%F++TL`8&```+!-[P!<(%8@*/_\T:C_^%F>("W__-&M__A9
- + MC29>+TT`5$JK__QF"DJK__AF!'``8`)P`2=`__A9BR]+`&!@<"`'Y8`@:P`,
- + MT<`,D````0%7P$0`2(!(P")O`&`BP$'M``1P`2J`+&\`7"S`4:\`6$OO`%!1
- + MG2('*L@@;P!0(($O20!@(ETB@7(`1@$A00`$(T$`!"!O`#0@@"9K`##7QDAX
- + M``@O3@!@80#I'%A/)H!2AUBO`#10AB9O`&B^JP`0;0#\N'X`?`!Z`&!Z*FL`
- + M#"`U:``,@````0!M$`R````!`6<(#(````$1;50@:P`PT<5(;P!`+PAA`/3J
- + M+HM(;P!(80#Y_D_O``PF:P`PU\4@+P!$(BL`!+*`;`[G@"\`+Q-A`.CV4$\F
- + M@"9O`&@@:P`PT<4O"$AO`$1A`/2H4$]2AUB&4(6^JP`0;8!"KP!$?@`F;P!8
- + M*F\`7&`L($M#[P`X(M@BV$AO`$!#[P`\GOP`""Q/<`<<V5'(__QA`/2B3^\`
- + M#%*'4(N^K?_\;<XJ;P!H+PU(;P!$80#Y:%!/?`!^`"HO`$0F;P!`8!IP,,"K
- + M``1R8-*!PJL`!.2)LH!G`GP!4H=0B[Z%;>)P`2M``"Q"K0`H2'@`%&$`Y^PK
- + M0``D0I<O!DAO`$@O#6$`]DHNKP!`3KIQ)"ZO`#Q.NG$<+J\`.$ZZ<10NKP`T
- + M3KIQ#"ZO`#!.NG$$+HI.NG#^+J\`4$ZZ</9/[P`03-]L\-[\`$1.=2`/D'PH
- + MS+"L#'QE`&]VGOPHO$CG+S9"KP#<2JP-#&8^<`$I0`T,?`!P?[R`8AAP!T'L
- + M"KW`,&@`9PQ(;`S,+P9A`.@J4$]2A@R&```!`&W82&P,[$AX``IA`.@24$](
- + M;P"T80#HB%A/0J\`6$*O`#A+[P#@0>\@X"`O*.0B`.6!TH#E@21O*.@O00`D
- + M+T@`,&```P(@:P`$T>\`.$/O`-0BV"+8(B\`U.6!)FH`#"`S&`!K%`R````!
- + M`&P,2&\`M"\`80#GJ&`@#(````$1;0`"O`2````!$>N`(%+1P$AO`+0O"&$`
- + MY]A03R`O`-AR`$8!L(%G``#V(&H`)-'&2B@`#%;!=`"4`90!6H)R`>6AP(%F
- + M#DAO`+1(>``*80#G=E!/)FH`)-?&2BL`#%;`<@"2`)(`6(%P`>.@(B\`V,*`
- + M9AY\`'X`0>\`M$/L#.P@,7@`P;!X`%*&6(=P"+R`9>9**P`-5L!R`)(`D@!2
- + M@7`!XZ`B+P#8PH!F('P`?@!![P"T0^P,S"`Q>`!&@,&P>`!2AEB'<`B\@&7D
- + M2BL`#5;`<@"2`)(`<`'CH"(O`-C"@&8>?`!^`$'O`+1#[`S,(#%X`,&P>`!2
- + MAEB'<`B\@&7F?`!'[P"T8`12AEB+<`B\@&0$2I-G\E&&9P`!HGH`1>\`X"]-
- + M`$`O;P`P`#Q+[R#@8``!*B(O`-3E@2)O*.@F:0`,(#,8`&L8#(````$`;!`O
- + M"B\`80#F'%!/2H!G``#V>`!\`'X`0>\`D$/O`+0@,7@`P+)X`"&`>`!G`G@!
- + M4H98AW`(O(!EWDJ$9P``R$*O`+!"KP!L?`!^`$?O`+37QR@3*C)X`$'O`'`@
- + M!$:`P(4A@'@`9P9P`2]``&Q&A<B%)H1G!G`!+T``L%*&6(=P"+R`9<8L+P#<
- + M2J\`;&=6)F\`0"\+2&\`=&$`Y@0NBDAO`)AA`.7Z(&\H]"(H`!SG@2Z!80#D
- + MP"!O`$@@@"Z(+PUA`/#03^\`$%*&+T8`W$'K`"!0KP`\<"#1KP`T4*\`,"](
- + M`$`B+0`$4JT`!.>!(%71P4/O`-0@V2#9*B\`5$JO`+!G%E*%U/P`(%"-+T4`
- + M5"PO`-RZAFT`_LPJ;P`T)&\HZ+J&9D8O#4AO`+AA`.5P2&\`O&$`Y98B*@`<
- + MYX$N@6$`Y#)/[P`,(&\`,""`<@$A00`$(E!-[P#4(MXBWE*&VOP`(%"O`#`O
- + M1@#<4J\`6%"O`#@O30`T+"\`)"9J`"37QB`O`%BPJP`(;0#\Z"(J`!SG@2\!
- + M80#CW"]``&@B*@`<YX$N@6$`X\Q83WP`*F\H["]``"A*J@`T9P``Z'H`0J\`
- + M7"1J`"0H*@`(?@!@."9J``37QW`PP*L`!')@TH'"JP`$Y(FR@&<">@%P`\"K
- + M``1R#,*K``3DB;*`9P9P`2]``%Q2AE"'O(1MQ$AO`&1(:@`$80#O?"9O*/!P
- + M`"Z`+P!(;P!P+PMA`/&Z3^\`%"@`2H5G&$*G2'@``4AO`&PO"V$`\:!/[P`0
- + M*@!@`BH$2J\`7&<82'@``4*G2&\`;"\+80#Q@$_O`!`N`&`"+@1\`"9-<`J\
- + M@&8$)H5@&'!_O(!B$'`'0>P*O<`P:`!G!":'8`(FA%*&6(L,A@```0!MTF`0
- + M)DUP_R;`4H8,A@```0!M\D*O`%A%[R#@0>\`X"](`"Q@``(:0J\`:'H`>`!@
- + M4'P`?@!@+B!3T<=#[P!,(M@BV$AO`&1#[P!0GOP`""Q/<`<<V5'(__QA`.[2
- + M3^\`#%*&4(<@4B(P2`#G@2)O*.@F:0`PU\&\JP`$;;I2A5"$NJH`!&VJ)F\H
- + MZ$JK`#1G1'P`?@!@-"!K`"0B:``$T\=![P!$(-D@V4AO`&1#[P!(GOP`""Q/
- + M<`<<V5'(__QA`.YL3^\`#%*&4(<@:P`DO*@`"&W">@`O+P`L2'@`"F$`XJ!0
- + M3TJ`9RI\`"XO`&@F;P!D8!IP,,"K``1R8-*!PJL`!.2)LH!G`GH!4H90B[R'
- + M;>)X`'X`?``F;P`L(#-H`$'L#,S`L&@`9@I2AUB&<`B^@&7H<`B^@&0H?``N
- + M+P!H)F\`9&`8<`/`JP`$<@S"JP`$Y(FR@&<">`%2AE"+O(=MY"9O*.AP`"\`
- + M+P!(;P!L+PMA`._.3^\`$"P`+T``)$J%9QI"ITAX``%(;P!L+PMA`.^P3^\`
- + M$"]``&!@!"]&`&!*A&<82'@``4*G2&\`;"\+80#OCD_O`!`J`&`"*@9"KP!4
- + M)F\`+'@`8%Q^`'`![Z`D$\2`9SXL!-R'<@J\@68*Y88KKP!@:`!@*G)_O(%B
- + M%'('0>P*O<(P:`!G".6&*X5H`&`0#(8```$`;`CEABNO`"1H`%*'<""^@&6P
- + M4J\`5%B+<"#8@`RO````"`!499I2KP!84(IP(-&O`"PN+P#<("\`6+"';0#]
- + MW'P`1^\@X&`,+Q-.NFG,6$]2AE"+O(=M\"\O`&1.NFFZ+J\`+$ZZ:;)83TS?
- + M;/3>_"B\3G4@#Y!\`!2PK`Q\90!H-%%/2.<_-"IO`#0H+P`P#*T```0``#QM
- + M2'P`>@!@-B!M`$`@,%@`9PXO`$ZZ:6I83R!M`$!@%B!M`$@@,%@`9Q`O`$ZZ
- + M:5)83R!M`$A"L%@`4H98A;RM`#AMQ'``*T``/%*M`#PL!.6&(`8B;0!,0K$(
- + M`"($Y8'2A.6!)FT`)-?!+T``*"]!`"04*P`,5L)V`)8"E@):@W0!YZ(6*P`/
- + MQ`-G(!0K``U6PG``D`*0`G0!X:+$`V<,(FT`3-/&".D``@`#$"L`#%;`=`"4
- + M`)0`6()P`28`Y:,4*P`/Q@)G(A8K``U6PW(`D@.2`U*!)@#CH\8"9PPB;0!,
- + MT\8(Z0`!``-**P`,5L%T`)0!E`%8@B(`Y:$4*P`/P@)G'DHK``U6P78`E@&6
- + M`>>@Q`!G#"!M`$S1Q@CH`````TAX!`!A`-\&)D`N@"\-+P1A`/=F3^\`#'X`
- + M)$M@``"J("T`."(2LH!M``":*@!@"B(M`#C2@2M!`#@@$K"M`#AL[B(M`#A2
- + M@>6!+P$O+0!$80#?#BM``$0@0$/H``0K20!`(BT`..6!+H$O+0!(80#>\"M`
- + M`$@B+0`XY8$N@2\M`$QA`-[<*T``3"(M`#CE@2Z!+RT`4&$`WLA/[P`4*T``
- + M4"@M`#@L!>6&8!0@;0!`0K!H`%*%(&T`2$*P:`!8AKJ$;>A2AUB*#(<```$`
- + M;0#_4"(O`"@@;0!0(:L`*!@`</\G0``H(&T`)-'O`"1**``/9P8@;0!(8`0@
- + M;0!`(8L8`$S?+/Q03TYU(`]10+"L#'QE`&7F+PTJ;P`(<`$K0``X0JT`/$AX
- + M``1(>``"80#=IBM``$0@0$/H``0K20!`2'@`!"\M`#AA`-V,*T``2"(M`#CE
- + M@2Z!80#=LBM``$PB+0`XY8$N@6$`W:(K0`!0+HU"IV$`_41/[P`4*E].=2`/
- + M44"PK`Q\90!E<$CG#S9*K!$09CQP`2E`$1!^`$OL#1!P"KZ`9@1P!&`8<'^^
- + M@&(0<`=![`J]P#!X`&<$<`)@`G`!*H!2AUB-#(<```$`;=`J;P`D2JT`.&8(
- + M+PUA`/\J6$]\`"9O`"@D;0!`(&\`+!"\``H@!N6`*G((`"`-9SAP`!`;2,#E
- + M@"HU"``@!>6`*G((`"`-9QIP`!`;2,#E@"PU"``@!N6`*G((`"`-9M!@!B`&
- + M+`4J`$J&:VP@;P`LM\AB9"@&Y80L;P`D*FX`2-O$2I5G4G``$!-(P"X`Y8<B
- + M;@!,(#%(`$/L#1#`L7@`9R@J;P`X(`UG'"`&Y8#0AN6`(FX`)-/`2BD`#F<&
- + M<`$J@&`"0I4@"V!P*@92BR)5+#%X`&``_TXJ;P`L2J\`-&<2M\UB#G`*L"O_
- + M_V8&(&\`-%*0M\UE!'``8#XJ;P`D2H9K$B\-+P9A`/O>4$\D;0!`8`#_$'`*
- + ML"O__V862J\`,&<0(`7E@"!M`%`L,`@`8`#^\GP`8`#^[$S?;/!.=2`/64"P
- + MK`Q\90!CWB\-*F\`"'`!*T``"$AX`"!A`-O<*H!"K0`$<`$K0``42'@`!&$`
- + MV\@K0``,0JT`($*M`!Q"K0`80JT`$$*M`#1"K0`X4$\J7TYU(`^0?``,L*P,
- + M?&4`8X9(YP<T+"\`*"XO`"`F;P`D*F\`'$JL$3!G``"^+P=.NF9L6$\D0$J`
- + M9@I(;`$V3KHY3%A/0JP1,'H`8$@@3='%$!!R?[`!;C9(@$C`0^P*O0@Q```(
- + M`&<F$!!(@$C`"#$```@`9PP0$$B`2,!R(-"!8`80$$B`2,`5@%@`8`05D%@`
- + M4H6ZAV6T+PMA`/\00JL`AD(K`%0NBR\'+PIA`.8R+HI.NF1$+HMA``3^+H8O
- + M"V$`[:QP`2E`$3`NBV$`_MXNBR\'+PUA`.8(+H8O"V$`[8Y/[P`<8"(O"V$`
- + M_L`NBR\'+PUA`.7J+HMA``2\+H8O"V$`[6I/[P`03-\LX$YU(`]90+"L#'QE
- + M`&)Z2.<#!"IO`!`O%4ZZ8]`NK0`,3KICR%A/?@!\`&`6(&T`)-'&+R@`!$ZZ
- + M8[)83U*'<!3<@+ZM`"AMY"\M`"1.NF.<6$]^`'P`8!8@;0`P(#!H`&<(+P!.
- + MNF.$6$]2AU"&OJT`$&WD+RT`,$ZZ8W!83WX`?`!@*"!M`$`@,&@`9P@O`$ZZ
- + M8UA@$"!M`$@@,&@`9P@O`$ZZ8T983U*'6(:^K0`X;=(O+0!$3KIC,BZM`$A.
- + MNF,J6$\@;0!0+T@`$$S?(,!.^F,8(`]10+"L#'QE`&&H2.<#%"IO`!@F;P`4
- + M(`UF!'``8`P@34H89OQ3B)'-(`@N`"`+9@1\`&`02H=G/B!+2AAF_%.(D<LL
- + M""`+9@Q2AR\'3KID:EA/8!`@!M"'4H`O`"\+3KIB+%!/)D`@"V<,(`UG""!+
- + MT<80W6;\(`M,WRC`3G4@#U%`L*P,?&4`82@@;P`$+PA"IV$`_VI03TYU(`^0
- + M?``,L*P,?&4`80I(YP$4*F\`%"!-2AAF_%.(D<TN""9O`!!@&"\'+PTO"TZZ
- + M82)/[P`,2H!F!"`+8`A2BTH39N1P`$S?*(!.=2`/64"PK`Q\90!@P"!O``0@
- + M"&<(+PA.NF(66$].=2`/64"PK`Q\90!@HDCG`!0J;P`,(`UG$B9-8`HO$TZZ
- + M8?!83T*;2I-F\DS?*`!.=2`/44"PK`Q\90!@<DCG!S0N+P`D*F\`'"`-9@9P
- + M`&```*HO+P`@80#_(EA/)D!*@&8,+PUAFEA/<`!@``".0C-X`'P`)$U@'B\+
- + M+Q)A`/\84$]*@&<,+PM.NF&&6$\@#6!H4H98BDJ29MYZ`"`&Y8`D3=7`8"@O
- + M%2\+80#^ZE!/2H!F!E*%6(U@%"\53KIA4EA/4X99BKR%9P@JDD*22I5FU"(&
- + M5('E@2\!+R\`($ZZ8*A03R!`2H!F!'``8`SEAB&+:`!"L&@$(`A,WRS@3G4@
- + M#Y!\``RPK`Q\90!?H$CG`S0J;P`8(`UG!DJO`!QF!G``8```@$AX``1.NF*(
- + M6$\F0$J`9@1P`&!J0I,D36!>?@`0$DB`2,`O`"\O`"!.NE^`8"A\`6`"4H80
- + M,F@`9P:P-6@`9_*\AV\"+@80$DB`2,`O`$AM``%.NE]64$\J0"`-9M!*AV<4
- + M+P<O"B\+80#^H$_O``PF0$J`9P92BDH29IX@"TS?+,!.=2`/D'P`#+"L#'QE
- + M`%[V2.<`-"9O`!0J;P`0(`UG!"`+9@1P`&`L)$M@(B!2(`A*&&;\4XB1P"\(
- + M+P`O#6$`_DA/[P`,*D!*@&<&6(I*DF;:(`U,WRP`3G4@#Y!\``RPK`Q\90!>
- + MGEE/2.<`-"IO`!0@#6<&2J\`&&8$<`!@;$AX``1.NF&&6$\F0$J`9@1P`&!8
- + M0I,D36!(*F\`&&`X+Q4O$F$`_K)03R1`2H!F#"\+80#]I%A/<`!@,"\*+PMA
- + M`/]`)D`NBF$`_8Y03R`+9@1P`&`66(TD;P`,2I5FP%B*+TH`#$J29K`@"TS?
- + M+`!83TYU(`]90+"L#'QE`%X&2.<`)"IO``P@;0`$(FT`""1M``Q"$D(10A`@
- + M52](``Q,WR0`8`#],B`/D'P`(+"L#'QE`%W0GOP`%$CG/S8F;P!`0JL`AD(K
- + M`%0B*P`04H'I@2\!3KI@MEA/*D`O0``L9P`$6B1-?@!@%$'L$10B32+8(M@B
- + MV"+84H?:_``0OJL`$&_F?@`J2F!H2'@`!$ZZ8'PJ@$AX``).NF!R*T``!$AX
- + M``).NF!F*T``"$AX``).NF!:3^\`$"M```PB%6<``X(D+0`$9P`#>B8M``AG
- + M``-R2H!G``-L(&T`!")M``@L0$(60A%"$"!50I!2A]K\`!"^JP`0;Y)![`%$
- + M0J\`-$*O`#`O2``X8``#*"!M``S1[P`P+A`F;P`L(`=2@&<``7H$@````0%G
- + M4%.`9TQ3@&=(4X!G``,,4X!G/E.`9P`#`E.`9S13@&<P4X!G+%.`9RA3@&<P
- + M4X!G+%.`9P`!*%.`9P`!?%.`9S)3@&<``M13@&<``LY@``)0+PIA`/YV6$]@
- + M``*BM<MC``*XE/P`$"\*80#^8%A/8``"C$'K`""UR&4``IXF2I;\`!"4_``@
- + M(&H`#")K``P0&+`99@9*`&;V9P8@:@`,0A!^`"IJ``1@`E*'$#5X`&<*(&L`
- + M!+`P>`!G[B!J``1",'@`(&H`""`(2AAF_%.(D<`J""!K``@@"$H89OQ3B)'`
- + M*`@N!;Z(;P(N!'P`8"`@!)"&(&L`"-'`(`60AB)J``C3P!`I__^P*/__9@92
- + MAKR';=Q^`&`4(&H`"")((`60AM"'$[`(`'@`4H>^AFWH(&H`"$(P>``O$R\2
- + M80#\]%!/*D!*@&<``=(O$F$`^N(NDDZZ7.Q83R2-8``!HK7+8P`!N)3\`!`@
- + M:@`,0A!@``&.0>L`$+7(9@`!H'X`1>P!1&`D(%4@"$H89OQ3B)'`+`@@2DH8
- + M9OQ3B)'*O(AC!B!3)'!X`%B'*E/;QTJ59M0O2@`X8``!9$'K`""UR&4``5HF
- + M2I;\`!"4_``@+Q,O$F$`_`A03R2`9P`!0"IJ``A*%6=2(&L`!$H09THO#6$`
- + M^;I83RI`2H!G``$@+RL`!"\-80#Y)E!/*D!*@&<``0P@34H89OQ3B)'-+P@O
- + M#2\280#Z/B2`+HU.NEP63^\`#$J29P``YB!J``Q*$&<6+RL`!"\J``1A`/CB
- + M4$\E0``$9P``R"!K``Q*$&8&(&H`"$(0+RL`""\J``AA`/B^4$\E0``(9P``
- + MI"!J``Q*$&<<*FL`#$H59Q0O#2\(80#XG%!/)4``#&9F8```@$(08%YP_[Z`
- + M;71*AV=P#(<```$1;0HO"F$`_!983V!"+PIA`/P,2^H`#"!51^H`!");+%,<
- + MAQ*'$(<@52)J``0L6T(N``%"*0`!0B@``4AX``$O'2\280#Y;$_O`!`D@&<<
- + MU/P`$%*O`#18KP`P*F\`0"`O`#2PK0`0;0#\S"IO`$!(>``Q+R\`/$AM`%1.
- + MNEH\3^\`#$(M`(5![0!4(DA*&6;\4XF3R"M)`(9^`"9O`"PD2V`L+Q)A`/C:
- + M+I)A`/BV+JH`!&$`^*XNJ@`(80#XIBZJ``QA`/B>6$]2A]3\`!"^K0`0;\XO
- + M2P!`3-]L_-[\`!1.^EJN3-]L_-[\`!1.=0``3OD``(UH3OD``(J83OD``(V@
- + M3OD``(J\3OD``(K43OD``*7H3OD``(O\3OD``(MT3OD``(LD<&$@#Y!\``RP
- + MK`Q\90!8^$JL`4AF.C`\`/]R`$'L$5`0P5'(__QP&7(!0>P1L1#!4<C__'`9
- + M0>P1D1#!4<C__'`)0>P1@!#!4<C__"E!`4A.=;_L#'QE`%BN(B\`!"`L`4PI
- + M00%,3G4@#Y!\`-2PK`Q\90!8DI[\`,1(YS<V*F\`]"95)&\`["!*T>\`\")M
- + M`!!"KP#D0J\`X$*O`-PO2P#83>\`.'X!0BT`%"](`"@O20`L+TX`-&$`_TA*
- + MK0`$9@`(.'`<*T``!"(59PPO`"\!3KI9#E!/8`@O`$ZZ6S!83RJ`2H!G``AR
- + M)D`O2P#88``("'#VT*T`!"(+DI6R@&]X($TJ4`RH``$````$9P`(1"!O`/0B
- + M*``$TH$A00`$#($``0``;PAP`4A`(4``!"\H``0O$$ZZ6*I03R!O`/0@@&<`
- + M"!:0C2P`U\8J;P#@(`UG!MO&+TT`X"IO`-P@#6<&V\8O30#<W:\`V"IO`.0@
- + M#6<&V\8O30#D(&\`*+'*9P`'QGP`'!HJ;P`L(`UG""!-T<9\`!P0(`9R"I"!
- + M9P`$&G(:D(%G1EF`9P`#\E.`9P`#^E.`9P`!1E.`9P`!-E>`9P`"3G(1D(%G
- + M``$H<AR0@6<``L93@&<``_Q5@&<``,QR'I"!9P`#X&``!H8J;P`H""P``P%/
- + M9S((+``%`4]F!K7-9@`&;"IO`.`@#6<0+PM(>``$+PUA``=03^\`#$*O`.!P
- + M`Q;`8``&T+7-9W00$G(*L`%G;`@L``4!3V9D""P```%/9PYT*;`"5\%$`4B!
- + M2,%@&')<L`%F#A0J``%V*;0#9@1V`6`"=@`B`TJ!9C((+``!`4]G#G1\L`)7
- + MP40!2(%(P6`6<ERP`68,<'RP*@`!9@1P`6`"<``B`$J!9P`%T!;\``-@``90
- + M2J\`W&<2<`JP*O_^9PH(+``%`4]G``6P""P``P%/9R`@;P#L4HBUR&<*""P`
- + M!0%/9P`%E'`"%L`O2P#88``&$!;\``)@``8(""P``@%/9@`%=DJO`-QF"@@L
- + M``4!3V<`!69"+P`S0B\`,G(KO(%6P$0`2("!+P`S=#^\@E;`1`!(@($O`#(@
- + M;P`HL<I7P$0`2(!(P"P`9F1*AF8`!@!\`!P:(`UG"")-T\9\`!P1<"J\@&>V
- + M""P``@%/9@B\@6>JO()GI@@L``(!3V<N<%R\@&8HL<IG``7&>@`:&B`-9P@@
- + M3='%>@`:$+J!9PBZ@F<$58I@""P%8`#_<E.**F\`W"`-9P`%2DHO`#)G%B!-
- + M2&C__4AX``<O"V$`!:1/[P`,5HM+ZP`#+PLO#2\O`.1(>``%80`%PD_O`!!"
- + MKP#D)DU*+P`S9@`%""!O`-PO"TAH``8O"$AX``AA``6<3^\`$%:+8``$ZB!+
- + M4HL0O``)+T@`W&``!-H@32I0#*@``0````1G``4D(&\`]"(H``32@2%!``0,
- + M@0`!``!O"'`!2$`A0``$+R@`!"\03KI5BE!/(&\`]""`9P`$]I"-+`#7QBIO
- + M`.`@#6<&V\8O30#@*F\`W"`-9P;;QB]-`-S=KP#8*F\`Y"`-9P;;QB]-`.0J
- + M;P#T(`N0E7+=TJT`!+"!;@#_=B!+2^@``2](`-QP7K`29@P@2R9-$+P`"U**
- + M8`@@2R9-$+P`"B!*%OP`("](`"1P'W(`(DL2P5'(__PJ;P`L(&\`*+'*9P`$
- + M5'P`'!H@#6<((DW3QGP`'!%P7;R`9@HB;P`D4HFSRF9L<"VP$F9.<%VP*@`!
- + M9T:QRF<`!"!+Z@`!L<UG``061>T``7H`&A4J;P`L(`UG("!-T<5Z`!H08!8@
- + M!N:((@9T!\*"=`$F`N.CAS,(`%*&O(5CYF""(`;FB'0'S()T`>VBA3,(`&``
- + M_W!3*___$"O__V\*2(!(P$HS"/]G[!`K__](@-;`8``#7@@L```!3V8``.I@
- + M``+(""P```%/9@`!5&```KH(+``$`4]F``'*8``"K`@L``$!3V8``;Q@``*>
- + M(&\`*+'*5\!$`$B`2,`L`&8``TY*AF8``UI\`!P:(`9R)Y"!9P`"(E.`9P``
- + MA%.`9P``]E6`9P`"4%V`9P`"$E.`9P`"#%.`9P`"!E.`9P`"`%.`9P`!^E.`
- + M9P`!]%.`9P`![E.`9P`!Z%.`9P`!XE>`9P`!K%6`9P`!KE.`9P`""%>`9P`!
- + MLG(5D(%G``&"<@F0@6<``:I5@&<``91R%9"!9P`!7%N`9P`!`F```>0(+```
- + M`4]F``':*F\`-$'O`-BQS6<``K)P"KZ`;`X@2Q"\``Q4BR`'$4```2!+(DT@
- + M"RQO`/20EB*`6(U'Z0`(("\`X&<&D)92@&`"<``J@":'4H=#ZP`(("\`V)"6
- + M)T``!$*O`.!"KP#<)D@O2P#8+TD`-&```?X(+````4]F``%B*F\`-$'O`#BQ
- + MS6<``BY9C2)O`/0@4='5+T@`V"`O`.!G$"\+2'@`!"\`80`"-D_O``P@+?_\
- + M<@JP@6P0($L0O``-5(L@+?_\$4```5&-0J\`X"`59PXB;P#T(E'3P%.)+TD`
- + MX%F-+&\`]")6T]4O30`T+TD`W&```7H(+``!`4]F``#>+PM(:P`&+R\`X$AX
- + M``5A``(&3^\`$$*O`.1+ZP`#)F\`X"`+9Q`O#4AX``0O"V$``:Y/[P`,1^T`
- + M`T*O`-PO2P#8+TT`X&```28@2U*+$+P`%"](`-Q@``$6($M2BQ"\`!4O2`#<
- + M8``!!A;\`!9@``#^%OP`%V```/86_``88```[A;\`!E@``#F%OP`$F```-X6
- + M_``38```UBH&<#":@+J'9$(J;P`T48U@"B`5L(5G-)K\`!!R?[`!9TP0$G(JL`%G1')>L`%G/@@L``(!3V<>
- + M<ERP`684$BH``70KL@)G!G8_L@-F!'(!8!AR`&`4<BNP`6<*<C^P`6<$<`!@
- + M`G`!(@!*@6<:+TL`W'`!(&\`W!"`2^L``2]-`.14BW(`&H$6QE(5*F\`]+7O
- + M`"AF`/?P)&\`X"`*9Q`O"TAX``0O"F$``%)/[P`,0>\`.")O`#2SR&82(`N0
- + ME2M```AP`&`J0>P!4&`B0>P!;&`<0>P!>F`60>P!B&`00>P!K&`*0>P!OF`$
- + M0>P!VB`(3-]L[-[\`,1.=;_L#'QE`$^62.<A%!XO`!LF;P`<*F\`%$/5$L=!
- + M[0`#(`N0B"(`=`!&`L*"$L'@@!+`3-\HA$YU(`^0?``,L*P,?&4`3UA(YP$T
- + M'B\`%RIO`!@F;P`@5HLD;P`@8`93BU.*%I*US6;V$`=(@$C`+TT`%"]``!A,
- + MWRR`8(0@#Y!\`5BPK`Q\90!/%)[\`4Q(YS$V*F\!;"9M``PD52!*T>T`"")M
- + M`!!-[P`H+T@`("])`!PO3@`D,#P`_W(`+$L<P5'(__P;?``!`!1"+0`58``"
- + MUB!O`""QRF8.(&\!;!%\``$`%6```L8J;P`<<``0&E.`;0`"G`R`````&6P`
- + M`I+00#`[``9.^P`$`#`"F@!:`(H!!`"*`(H`B@%(`;`"!@$T`30!.@*:`IH"
- + MF@*:`IH!<`&0`IH"F@*:`IH@#6<6<``0*@`!<@`2-0``=`$7@A``8``"/'``
- + M$"H``1>\``$``&```BP@#6<.<``0+0`*<@$7@0``8`9P`1=```HJ;P%L<`&P
- + M+0`59P`"!AM\``(`%6```?P@;P%L$7P``0`5$"H``4B`2,#A@'(`$A(D`78`
- + M1@/$@]2`(`)2@"!*T<!%Z``!2H)N``'><`6P$F8``=80*@`"2(!(P.&`<@`2
- + M*@`!PH/2@%*!($K1P47H``(J;P`D0>\`*+'-9P`!JB!5L<IF``&B68TO30`D
- + M8``!F"!*5(I8KP`D$"@``4B`2,#A@'(`$A`D`78`1@/$@]2`T<)#Z``"+&\`
- + M)"R)8``!:%**8``!8G`!(&\!;!%``!470``*?@!P"KZ`9P87O``!>`!2APR'
- + M```!`&WJ(&\!;$HH`!5G``$:8``!,GX`<`%![!%0L#!X`&8$%X!X`%*'#(<`
- + M``$`;>9@``#V?@!P`4'L$5"P,'@`9P07@'@`4H<,AP```0!MYF```-9+Z@`!
- + M<``0$B(`YX$N`5.')&\`'&`X(`=R"$ZZ2]!P`20`XZ(@!W((3KI+PA(U"`#"
- + M`F<8(`IG#G``$#)X`'(!%X$``&`&%[P``7@`4X=*AVK$8```@'``$!(N`.>'
- + M8!H@#6<.<``0-7@`<@$7@0``8`87O``!>`!2APR'```!`&W>2^H``7``$!(B
- + M`.>!+@%3AR1O`!Q@."`'<@A.NDM.<`$D`..B(`=R"$ZZ2T`2-0@`P@)F&"`*
- + M9PYP`!`R>`!R`1>!``!@!A>\``%X`%.'2H=JQ"IO`"1FT`#"1M
- + M`!`H!]BO`$`O1``D(@MG#DHM`!1F""\-80#\.EA/("T`"&\4(%5P$K`09@Q*
- + MA6\(2H9N``$^>@$@"V<``-*\A&P``,QP`;`M`!5G``#"2H5O8G@`+T4`(+R'
- + M;`XB!M*%LH=M!B@%F(?8AKR';0@@;P`\D<=@!"!O`#31QBI((@IG'&`"4X6Z
- + MA&\B<``0'7(`$C(``$HS$`!GZF`04X6ZA&\*<``0'4HS``!G\-RO`""<A6!:
- + MO(=M$B`&D(<@;P`\$C`(`!]!`"M@#"!O`#00,&@`'T``*W#_P"\`*R(*9QAR
- + M`!(`=``4,A``2C,@`%?!1`%(@4C!8!)R`!(`2C,0`%?`1`!(@$C`(@!*@69,
- + M*"\`)"IO`#!*A6L.N(9F"B`+9P9*+0`59THO+P!0+R\`4"\&+R\`3"\O`$PO
- + M!R\O`$PO#6$``'9/[P`@2H!K#%2`9@1P_F`>(`9@&DJ%9Q1*A6\(4X52AF``
- + M_M!2A5.&8`#^R'#_3-\L]-[\``Q.=2`/D'P`(+"L#'QE`$GJ("\`$"(O``P@
- + M;P`((F\`!"\!+R\`&"\`+P$O"'``+P`O`"\)80``"$_O`"!.=2`/D'P#++"L
- + M#'QE`$FNGOP#'$CG/S8N+P-0+"\#6"HO`V0L;P-((%8O2`-`T>X`"")N`!!-
- + M[P"P+T@`/$'O`S`D;P-,2^\`I"K(+TD`,"K.*LY*AF80($HL!Y7*+TH#3'X`
- + M+T@#5"I*V\<@329O`U0L2]W&+T@`-"].`#BZAVX.($K1Q2]+`S@O2`,\8`XO
- + M30,\($O1Q9''+T@#.'H`2^\`5#1\__\JRE*%<`JZ@&7V*B\#7+J';@X@;P-,
- + MT<4O;P,\`S!@#"!+T<61QR]O`S@#,"](`S0F;P-`)&\#-"IO`S"W[P`\9@``
- + MU"9O`V`J+P-<(`MG``"F)H6[[P,\9@PB"I*O`TPG00`H8`P@"I"O`U30AR=`
- + M`"AX`4?O`%@P?/__+T@`+"!++`3EAB)3+&\`++W)9@QP_R)O`V`C@&@`8$Q'
- + M[P!\U\8B3]+\`$I*,4@`9P@B$Y*O`TQ@""(3DJ\#5-*'(F\#8".!:``F2"!/
- + MT/P`0$HP2`!G#"(3DJ\#3".!:"A@#"`3D*\#5-"'(X!H*%*$6(MP"KB`;8J[
- + M[P,\9@P@"I"O`TR0A6``!]P@"I"O`U30AY"%8``'SB!+0^@``29O`SAP`!`0
- + M+TD#0%.`;0`'9`R`````&6P`!UK00#`[``9.^P`$!M0"7@)T!$@"L@1$`U`$
- + M<@&6`<P!S``P`&@`H`=,!TP'3`:L!K@&7`:,!9P%\@38!3H@;P-`<``0$$C`
- + M(@#E@4/O`'S3P2**4J\#0+OO`SQ7P$0`2(!(P'(`$A`@3]#\`$H1@!``8`#^
- + MAB!O`T!P`!`02,`B`.6!0^\`5-/!(HI2KP-`N^\#/%?`1`!(@$C`<@`2$"!/
- + MT/P`0!&`$`!@`/Y.>``@;P-`&!@@!.6`0^\`?"9Q"``O2`-`($_0_`!*$C!(
- + M`")/TOP`0+(Q2`!F"D'O`%31P")08`0B;P,\)$E@'B!O`SBQRF<:(`3E@$'O
- + M`%31P"I(M=5G"B9O`U0D5;?*9]XJ;P,TM\IF&F``_>`@;P,X(F\#,+/(9P`&
- + M.BIO`U0O2`,PN^\#,&?D*B\#,"(-FH$@"B0+D(*Z@&\"*@`@+P`P9Q(O`"\%
- + M+P(O`6$`!EI/[P`08!P@!2!-(D)R`$J`9PX2&)(99@13@&;V2(%(P2`!2H!F
- + M``7>($W1Q=?%+T@#-&``_WJ[RV<`!<HD;P-4*DLO30,PM<UG[$OJ``$F;P`P
- + M(`MG$"]-`S1P`!`2<@`2,P``8`HO30,T<``0$B(`<`JR@&8`_29@``6*>`!P
- + M"R!O`T"P*/__9A1X`6`0N\MG``5R)&\#5"I++TT#,+7-9^PJ;P`P(`UG#'``
- + M$!)Z`!HU``!@!'H`&A(J;P-`<``0%2(`YX&Z@6PH(`5R"$ZZ1+QP`20`XZ(@
- + M!7((3KI$KA(U"`'"`F<*2H17Q$0$2(1(Q'``$!52@"!-T<`O2`-`2H1G``4`
- + M0>H``6``_(RU[P-,9P#\B'`*L"K__V8`!.9@`/QZ(&\`.+'*9P#\<+7O`#1F
- + M%DJ&9PYP"B!O`U2P$&<$<@!@$G(!8`YR"K(25\!$`$B`2,`B`$J!9P`$J&``
- + M_#PJ;P"D)F\`J+?-9EHJ#9JO`*SDA2(L`>S2@;J!;P9P_F``!,HH!=B$(`3E
- + M@"\`3KHC;"I`(@7E@2Z!+R\`L"\`3KI%C$_O``PB"Y*O`*SD@>6!)DW7P2`$
- + MY8`@3='`+TT`K"](`*0@;P-`5*\#0!`H``%(@$C`X8!R`!(0)`%V`$8#Q(/4
- + M@-'"0^@``B:)0>L`""=*``0O2`"H8`#[GB!O`T`0*``!2(!(P.&`<O_"$'0`
- + M%`'4@"H"1>@``BI*)F\`/&`"4HV[RV<.$!5R#;`!9_)R#+`!9^R[RV<``)@0
- + M%7(!L`%G"'0#L`)F``".5P!F!'`*8`9P`!`M``(H`"I*V\40+0`#L`%F$G(`
- + M$BT`!;*$9PAR!A5!__U@7G(*L`%G!G(+L`%F4G(+L`%7P$0`2(!(P"H`<``0
- + M+0`$YX"X@&PN(`1R"$ZZ0N)P`>.@'T``*"`$<@A.ND+2$B\`*!0U"`7$`6<*
- + M2H57Q40%2(5(Q4J%9@9P!A5`__T@2E6(+T@#0'`&L"C__V<($7P`!/__8`11
- + MKP"H(&\#0!`H``%(@$C`X8!R`!(0=`!&`L*"TH!2@='!0^@``2])`T!@`/I\
- + M*F\`I"1O`*BUS69()F\`K"H-FHODA2@%V(0@!.6`+P!.NB&Z*D`B!>6!+H$O
- + M"R\`3KI#W$_O``P@"I"+Y(#E@"1-U<`@!.6`($W1P"]-`*PO2`"D0I)!Z@`(
- + M0JH`!"](`*A@`/]R(&\#3+'*9P#Z#"!O`#BQRF<`^@(J;P`TM<UF!DJ&9P#Y
- + M]+7-9@IP`"!O`U00$&`$<``0$G0!0>P14+0P"`!7P40!2(%(P7``$"K__[0P
- + M``!7PD0"2()(PK2!9P`"(&``^;0@;P-,L<IG``(2(&\`.+'*9P`"""IO`#2U
- + MS68&2H9G``'ZM<UF"G``(&\#5!`08`1P`!`2=`%&\#5"I++TT#,+7-
- + M9^Q!Z@`!<``0$B](`S1![!%02C```&<`^$9@``"JM>\#3&8``*)@`/@V(&\`
- + M.+'*9P#X++7O`#1F``",2H9F``"&8`#X&GH`(&\#0!H8+T@#0$JO`#!G2&`.
- + MN\MG:"1O`U0J2R]-`S"US6?N<``0&B!O`#`4,```(F\#0+095L%$`4B!+TD#
- + M0$H!9CI3A6;88"R[RV<P)&\#5"I++TT#,+7-9^X2&B!O`T"R&%;`1`!(@"](
- + M`T!*`&8,4X5FXB]*`S1@`/>:*F\`J"!O`*RQS6<\2JW_^&8(48TO30"H8.8@
- + M;?_\(DU1B2]1`T`O2`,T+TD`J+'O`TQE`/=DL>\`-&(`]UPO;P,\`S!@`/=2
- + M</],WVS\WOP#'$YUO^P,?&4`0")(YR$T+B\`("IO`"0F;P`8)&\`'&`8<``0
- + M&G(`$AL4-1``M#4``&<$<`%@"%.'2H=FY'``3-\LA$YU(`^0?``,L*P,?&4`
- + M/]HO#2IO``@@#682("P24&8(0>P!\"`(8%QP`&!82JP24&8X2'@`R$ZZ0KA8
- + M3RE`$E!F"$'L`A`@"&`Z*7P```#($E1(>`$`3KI"F%A/*4`27&8(0>P"(B`(
- + M8!H@34H89OQ3B)'-2&P24"\(+PUA`.;,3^\`#"I?3G4@#Y!\`!BPK`Q\90`_
- + M5")O``0@24H89OQ3B)')<``O`"\(+P`O""\)2&P24&$`\TQ*@%K!1`%(@4C!
- + M3^\`&"`!3G4``+_L#'QE`#\62.<!!"XO`!`J;P`,8!`0%4B`2,"PAV8$(`U@
- + M"%*-2A5F['``3-\@@$YUO^P,?&4`/N1(YP,4+B\`'"9O`!@J;P`4?`!@"!>U
- + M:`!H`%*&O(=M]$S?*,!.=2`/D'P`#+"L#'QE`#ZP2.<!%"IO`!`N+!)TGJP2
- + M<.6'+P=.NAT6)D`B+!)PY8$@3='!+H<O`"\(89@@+!)T(@#E@2!-T<$B+!)P
- + MY8$B3=/!(BP".)*`Y8$N@2\)+PAA`/]R(BP2<-*L`CB2K!)TY8';P2Z'+PTO
- + M"V$`_U@@+`(X2^P2<"(=TH"2E4_O`!PJP"E!$G!,WRB`3G4@#Y!\`"2PK`Q\
- + M90`^%I[\`!!(YS\T*F\`1$*L`C1*K`(X9E1P`2E``CA"K!)H*4`2<"E`$G0@
- + M;P!`$A!T+;("9@QT`BE"$FQ2KP!`8"IT*[("9@I"K!)L4J\`0&`:2&P"0$ZZ
- + M0QY83TJ`9P9"K!)L8`9P`2E`$FPN+P`X2JP2:&<*(&P2:$H09@`!7'`!L*P2
- + M;&9R("P2="(L$G"R@&<2L*P".&<,+R\`/&$`_KI83V`,(BP".+"!9P0I01)P
- + M(BP"..6!)F\`/-?!8`92K`(X6(L@+`(XL(=L)"!+)%`0$G(ML`%F"")02BD`
- + M`680(@UGVG(KL`%FU$HJ``%GSB`L`C@I0!)T("P".+Z`9U#E@$AL`E`@;P!`
- + M+S`(`$ZZ/7!03TJ`9CA2K`(X("P2="(L$G"R@&<2L*P".&<,+R\`/&$`_B18
- + M3V`,LH!F""`L`C@I0!)P(`<I0`(X*4`2="`L`CBPAV86("P2<"(L$G2R@&<$
- + M*4`".'#_8``$9"(L`CCE@2!O`#PD<!@`%!)V+;0#9@HB<!@`2BD``68NNOP`
- + M`&<,=BNT`V8&2BH``68<2JP2;&8&</]@``0F4JP"."EP&``"-'`!8``$%E**
- + M(`UG#!`2<BVP`68$=`%@`G0`(DK3PBE)$F@@#6<``M(@+`(X(@#E@2!O`#PD
- + M<!@`$!)T+;`"9A`@<!@`M"@``6<.2J\`3&8(<BNP`68``J(D;!)H0J\`+'P`
- + M0J\`*&`"4HH0$F<&<CVP`6;T+TT`,'H`8&(@"I"L$F@O`"\L$F@@;P`X+Q!.
- + MNCP*3^\`#$J`9CPN"IZL$F@@;P`P+Q!.NCO&6$^^@&82(&\`,"@%<`$O0``L
- + M+T@`*&`D2J\`*&8,(&\`,"@%+T@`*&`"?`%P$-&O`#!2A2!O`#!*D&:62H9G
- + M1$JO`"QF/DJL`CQG("(L`CCE@2!O`#PO,!@`+Q!(;`)42&P,"$ZZ0:!/[P`0
- + M+RP2:$ZZ.U+1K!)H4JP".%A/<#]@``+N+B\`.$JO`"AG``$:4JP".$H29W@@
- + M;P`H2J@`!&<,0^H``2E)`C1@``#`2JP"/&=((BP"..6!(F\`/"1Q&/QP+;`J
- + M``%F%B\0+Q%(;`)R2&P,"$ZZ02Y/[P`08!P0$DB`2,`O$"\`+Q%(;`*@2&P,
- + M"$ZZ01!/[P`4+RP2:$ZZ.L+1K!)H6$]P/V```F)P`2!O`"BPJ``$9E`B+`(X
- + MLH=L$E*L`CCE@2!O`#PI<!@``C1@-DJL`CQG'.6!(&\`/"\P&/PO$$AL`LY(
- + M;`P(3KI`M$_O`!`O+!)H3KHZ9M&L$FA83W`_8``"!B\L$FA.NCI26$_1K!)H
- + M)&\`2"`*9P(DA"!O`"@@*``(9PXB*``,($`@@7``8``!UB!O`"@@*``,8``!
- + MRDJO`$QG-B(L`CCE@2!O`#PD<!@`<"VP*@`!9R!P*[`29QH@;!)H$!!(@$C`
- + M+P`O+P!$80#ZO%!/2H!F:DJL`CQG3"(L`CCE@2!O`#PD<!@`<"VP*@`!9A@O
- + M+!)H+Q!(;`+T2&P,"$ZZ/_9/[P`08!X0$DB`2,`O+!)H+P`O$$AL`Q1(;`P(
- + M3KH_UD_O`!0O+!)H3KHYB-&L$FA2K`(X6$]P/V```21+[!)H(%40&"J('T``
- + M)TB`2,`O`"\O`$0JR&$`^BY03R1`(&P2:$H09@12K`(X(`IG"A`O`"=R.K`!
- + M9E)*K`(\9T80+P`G<B"P`6T&<G^P`6T:2(!(P"\`(&\`0"\02&P#-$AL#`A.
- + MNC]08!A(@$C`+P`@;P!`+Q!(;`-B2&P,"$ZZ/S9/[P`0<#]@``"6<#JP*@`!
- + M9@``A+`J``)F'B!L$F@0$&<**4@"-%*L`CA@!$*L`C23R2E)$FA@7B!L$FA*
- + M$&<**4@"-%*L`CA@2"`L`CBPAV8N2JP"/&<@$"\`)TB`2,`O`"!O`$`O$$AL
- + M`X)(;`P(3KH^PD_O`!!P/Q]``"=@$E*L`C@B`.6!(&\`/"EP&``"-$*L$F@0
- + M+P`G2(!(P$S?+/S>_``03G4@#Y!\`!BPK`Q\90`X+B`O``0@;P`,(F\`"$*G
- + M0J="IR\(+PDO`&$`^?!/[P`83G4``"`/D'P`$+"L#'QE`#?\*7P``"``$I!P
- + M8.^(+P`I0!*(3KHZ[EA/*4`2@&8J(BPM3.6!0>P)_B\P&``O+!)\2&P#K$AL
- + M#`A.NCX22'@``DZZ/1Q/[P`43G4@#Y!\`!2PK`Q\90`WI$CG)A0L+P`8("P2
- + MB)"&L*P2D&)@8!0B+!*(TH$D+!*0U((I01*(*4(2D"`L$HB0AK"L$I!CX"\L
- + M$H@O+!*`3KHX/E!/*4`2@&8J(BPM3.6!0>P)_B\P&``O+!)\2&P#R$AL#`A.
- + MNCV.2'@``DZZ/)A/[P`4("P2A"(L$HS2@)*&*@8J;!*`)DW7P)?&*4$2C&`"
- + M&ML@!5.%2H!F]BE&$H1*K!*<9P1P`&!\(&P2@-'L$H0O+!*0+P@O+!*43KHL
- + MX$_O``PL`&PV0>P$`"`L$IAG`B!`(BPM3.6!0^P)_B\Q&``O""\L$GQ(;`/D
- + M2&P,"$ZZ/0)/[P`4<`$I0!)X2H9F'B`L$H1O&'(*(&P2@+(P"/]G#'P!=`$I
- + M0A*<$8$(`-VL$H0@!DS?*&1.=2`/D'P`#+"L#'QE`#9J2.<'!"PO`!PN+P`8
- + M*F\`%'H`2JP2M&<44H5R"K(=5L!$`$B`2,!F\&```.(@+!*89QY*K!*L9AAR
- + M.DJ&9@)R+2\!+P!(;`0(3KH]!$_O``Q*K!*H9R)P.DJ&9@)P+2(-DJP2@-*L
- + M$HPO`"\!2&P$#DZZ/-Q/[P`,2JP2L&<8<#I*AF8"<"TO`"\'2&P$%$ZZ/+Y/
- + M[P`,4H4(+``!#`%G3%*L"_(@+`ORL*P+^FXF(&P+ZE*L"^H0%1"`<@JP`68^
- + M""P`!@P!9S9(;`OF3KI`XEA/8"I3K`OR$!5(@$C`2&P+YB\`3KH\LE!/8!(0
- + M%4B`2,!(;`OF+P!.NCR>4$]R"K(=5L!$`$B`2,!FBD*L$VPI31-H(`5,WR#@
- + M3G4@#Y!\`)BPK`Q\90`U0)[\`'A(YR\T?@!\`'`!+T``E'H`0J\`A$*L$VQ@
- + M``24)FP2@-?L$H1@`E.+M^P2@&,(<`JP*___9O`@2R](`"@B;!*`M\EF""XL
- + M$H1@``1D$!,I21-HT\8J22]-`(@H+P"4'T``+&```O0D2V`"4XJUS6,(<`JP
- + M*O__9O(@2BI+)F\`*"](`"2[RV0.<@JR'5;`1`!(@$C`9NX@32](`"Y*KP"0
- + M9P``XGH`+`V<BE.&8```QB`&D(5(;P`T+P`O!2\&+PI(;!-23KKHCD_O`!@N
- + M`%*`9P``J"`O`%R0ARH`2JP2O&<,2H=F``"4NH9F``".2JP2N&<``)!@=$J'
- + M;R00,GC_<G^P`6(0=``4`'`'0>P*O<`P*`!F6A`R>/]T7[`"9U#:A[J&;%X0
- + M,E@`<G^P`6(0<@`2`'`'0>P*O<`P&`!F"A`R6`!R7[`!9CH@!5.`+P!(;P`X
- + M+P<O!B\*0J="ITAL$U).NNH<3^\`("H`2H5NB"H'4H6ZAF\`_SB[RV8``=I@
- + M``'X+B\`C"HO`(0F;P"(2JP2P&8``,12AR]'`(Q@%B`$4H1"IR\`+PMA`/T8
- + M3^\`#-?`4X5*A6<$M\IEXBHL$J1@%K7L$VAC"E.*<`JP*O__9O!3KP"44X5*
- + MA6\&M>P3:&+@2JP2I&8&2JP2H&<B2JP2M&8<2JP$&F862JP3;&8&M>P3:&,*
- + M2&P$'DZZ+<183T*L!!HJ;P`D8!@@+P"44J\`E$*G+P`O"F$`_)A/[P`,U<"U
- + MS67D("\`E%*O`)1(>``!+P`O"F$`_'I/[P`,+VP2H`"$8```[+?*9B)*A6\6
- + M4X5"IR\O`)@O"B]%`)!A`/Q23^\`#%*O`)1@``#&M<MC``"\*DLJ+!*D8!2[
- + M[!-H8PI3C7`*L"W__V;P4X13A;OL$VAC!$J%9N)*K!*D9@9*K!*@9R)*K!*T
- + M9AQ*K`0:9A9*K!-L9@:[[!-H8PI(;`0J3KHL_%A/0JP$&F`4(`12A$*G+P`O
- + M#6$`^]A/[P`,V\"[RV7H8!A2AR`$4H1(>``!+P`O#6$`^[I/[P`,V\"[RF7D
- + M+T<`C$JL$J!G&D*G+R\`F"\*80#[FD_O``P@+!*@4X`O0`"$4J\`E&`$3KHI
- + M("@O`)0J;P`N+TT`B"9O`"B[RV<B2&\`D$AO`)A"IR\++PU(;!+(80`'^$_O
- + M`!@F0$J`9@#\[BIO`"@:KP`L*B\`C"9O`(A*K!+`9BXN+P"$8!H@!%*$0J<O
- + M`"\+80#[(D_O``S7P%.'+T<`A+?-9```MDJ'9MQ@``"NN\MC``"H)$LN+!*D
- + M8!2U[!-H8PI3BG`*L"K__V;P4X13A[7L$VAC!$J'9N)*K!*D9@9*K!*@9R)*
- + MK!*T9AQ*K`0:9A9*K!-L9@:U[!-H8PI(;`0V3KHKOEA/0JP$&F`4(`12A$*G
- + M+P`O"F$`^II/[P`,U<"URV7H8!A2A2`$4H1(>``!+P`O"F$`^GQ/[P`,U<"U
- + MS67D+VP2H`"$?``B#9*L$H`N+!*$GH%@1"XL$J0D36`0M>P3:&,*4XIP"K`J
- + M__]F\+7L$VAC""`'4X=*@&;B+`TB"IR!(`&0K!*`+BP2A)Z`LJP3:&,&<`$I
- + M0!-L+T4`C"\'80#XU%A/2H!N`/M>(`5,WRSTWOP`>$YU(`^0?``,L*P,?&4`
- + M,&(O+!)\2&P$0DAL#`A.NC:D2'@``DZZ-:Y/[P`03G4@#Y!\`2BPK`Q\90`P
- + M-I[\`11(YR\T+B\!.$*O`3";S9?+?`!Z`$*O`2PD;P$\2'@`+R\23KHP,%!/
- + M2H!G#"!`0^@``2E)$GQ@!"E2$GQ"K`(\8``"*B`$<C"0@6<``*93@&<``*!3
- + M@&<``)I3@&<``)13@&<``(Y3@&<``(A3@&<``()3@&=\4X!G>%.`9W1=@&=H
- + M58!G``"84X!G``"Z4X!G``#<<A.0@6<``.)R#)"!9P``[E.`9P``\E6`9P``
- + M^%.`9P`!`E6`9P`!#%.`9P`!$%>`9P`!7%6`9P`!8%N`9P`!8E>`9P`!9%.`
- + M9P`!9E.`9P`!:&```6QA`/[68``!?$/L$J`@$2(`Y8'2@-*!TH1P,)*`(L$B
- + M&20!Y8+4@=2"U(24@"E"$J1@``%02&P2H$AL!-0O+`(T3KHTO$_O``Q*@&<(
- + M("P2H&H``3!A`/Z"8``!*$AL$J1(;`38+RP"-$ZZ-)1/[P`,2H!G""`L$J1J
- + M``$(80#^6F```0!P`BE`$J0I0!*@8```\DAL!)M(;`3<2&P,"$ZZ-/A@``#:
- + M<`$I0!*H8```U'P!<`$I0!*T8```R"`+9P1A`/X6*FP"-&```+@@#6<$80#^
- + M!B9L`C1@``"H<`$I0!*L8```GG`!+T`!,'@`0>P*O0@P``!(`&<>"#```$@`
- + M9P@@!'(@T(%@`B`$($_0_``L$8!(`&`,(`0@3]#\`"P1@`@`4H0,A````0!M
- + MP$'O`"PI2!-B8$IZ`7`!*4`2M&!`<`$I0!*P8#AP`2E`$K1@,'`!*4`2P&`H
- + M<`$I0!*X8"!P`2E`$KQ@&"\L$GQ(;`3@2&P,"$ZZ-"!A`/U<3^\`#$AL!+0O
- + M"B\'3KKU@$_O``PH`%*`9@#]PB\O`3!(>``4+T8`,"]%`"Q.NJ@@2'@`%$ZZ
- + MU-Y/[P`,(`MG``#$2&P$_"\+3KH[/E!/)$!\0.6.>@!*@&8L(BPM3.6!0>P)
- + M_B\P&``O"R\L$GQ(;`3^2&P,"$ZZ,Z)(>``"3KHRK$_O`!A(>`$`3KHP1%A/
- + M8!H@15*%(@@;A!@`NH9F#MR&+P8O#4ZZ+?Q03RI`""H````;9R93J@`(;18(
- + M*@`-`!YF#B!J``12J@`$<``0$&`2+PI.NC666$]@""\*3KHUC%A/*`!2@&:H
- + M+PI.NCCV6$]*A6\*<`JP-5C_9@)3A2P%8#(@#68B("P".+"';01A`/Q((BP"
- + M.%*L`CCE@2IR&``@34H89OQ@!B!-2AAF_%.(D<TL"$JL$KAF"$JL$KQG``".
- + M(`9R,M"!+P!.NB^"6$\F0$JL$KAG#$'L!0HB2Q+89OQ@"D'L!1XB2Q+89OP@
- + M2TH89OQ3B)'+*`@@"")+T\`O!B\-+PE.NBSN3^\`#-B&)$O5Q$JL$KAG#$'L
- + M!2(B2A+89OQ@"D'L!38B2A+89OP@2DH89OQ3B)'*V(A(>``!2&P2R"\$+PM.
- + MNLAJ8!!(>``!2&P2R"\&+PU.NLA83^\`$$AL$U(O!B\-3KK3/$_O``Q*@&<(
- + M+P!A``'$6$]*K!*P9F)*K!+`9EP@+!-.9QYR,K"!9QA"ITAL$QQ.NBO,4$]%
- + M[!,<U>P33K"*9P9"K!+$8#)"$DAL!3I.NB!*6$]*@&<.2&P3'$AL!41.NB9(
- + M4$\O+P$P2&P3'&$``R903W`!*4`2Q"`'D*P".'("L(%L!G`!*4`2K&$`\T0L
- + M+P`H*B\`)+ZL`CAO``#.)&\!/&```+I"K!*<0JP2C"(L`CA2K`(XY8$@<A@`
- + M<``O`"\`+P@I2!*83KH8ND_O``PI0!*4:BXB+"U,Y8%![`G^+S`8`"\L$I@O
- + M+!)\2&P%5DAL#`A.NC$T3^\`%'`!*4`2>&!:80#UAB@`9P9P`2]``2PO+!*4
- + M3KH'4%A/2H9G*$JL$JQF%"\$+RP2F$AL!6).NB5V3^\`#&`D+P1(;`5J3KHE
- + M9E!/8!9*A6<22H1G#B\L$IA(;`5N3KHE3E!/("P".+"';0#_0&`R80#U("@`
- + M9P9P`2]``2Q*AF<.+P1(;`5R3KHE)%!/8!)*A6<.2H1G"DAL!79.NB386$]*
- + MK!)X9PI(>``"3KHOE%A/2J\!+&<(0J=.NB^&6$](>``!3KHO?%A/<`%,WRST
- + MWOP!%$YU(`^0?``0L*P,?&4`*?P@;P`$+P@O+!)\2&P%@$AL#`A.NC`XWOP`
- + M$'`"+T``!$[Z+SP@#Y!\`!RPK`Q\90`IREE/2.<!-"XO`"0J;P`<)DTD;P`@
- + M2JP2Q&9J1^\`'";-)LHFQTS?+(!8CT[ZQ"(F2BIO`!Q@`E.+M\UC!G`*L!-F
- + M]"I*)&\`(&`"4HV[RF0&<`JP%6;T4HT0%4(5+R\`+"\O`"PO!R\-+PLO+P`L
- + M'T``*$ZZP]I/[P`8&J\`$$J`9A@F32`*D(TO`"\+80``%%!/)$!*@&:6<`!,
- + MWRR`6$].=2`/64"PK`Q\90`I'%E/2.<"-"PO`!PJ;P`8("PK^+"&;@``MB9-
- + MU\8@+"OX(@#E@;R!;PH@2Y'!+T@`$&`$+TT`$"1-U<!3BBIO`!!@(-7&<``0
- + M$DC`Y8!#[!-PU?$(`'``$!)(P"(`Y8'5\1@`M<UD&'``$!)(P"(`Y8%![!-P
- + M+#`8`&;(8`)2BK7+9!1P`!`22,`B`.6!0>P3<$JP&`!FYK?*9S(L+"OX4X8J
- + M2E.&;1A3C7``$!5![!=P$C```$/L&'"R,6@`9^1*AFL&4HI@`/]V(`I@`G``
- + M3-\L0%A/3G4@#Y!\``RPK`Q\90`H.$CG+A0L+P`@*F\`'"!-2AAF_%.(D<TI
- + M2"OX2H9G4GH`*`A@1B9-U\40$TB`2,!![`J]"#````@`9QX(,```"`!G#!`3
- + M2(!(P'(@T(%@#A`U6`!(@$C`8`00-5@`2(!(P$'L&'`1@%@`4H6ZA&VV8!(O
- + M+"OX+PU(;!AP3KHH:D_O``QZ`$OL$W`H+"OX*L0@!4'L%W`1@`@`4H4,A0``
- + M`0!MZGH`*"PK^%.$8")P`$'L&'`0,%@`2,`B`.6!("PK^)"%4X!![!-P(8`8
- + M`%*%NH1MVDOL&&_;["OX<``0%4C`Y8!![!-P0K`(`$J&9P``I'P`8$)'[!AP
- + M<``0,V@`0>P*O0@P``$(`&<J"#```0@`9PIR`!(`=""2@F`$<@`2`"`!Y8`B
- + M+"OXDH93@4'L$W`A@0@`4H:\A&VZ<``0%4'L"KT(,``!"`!G(`@P``$(`&<*
- + M<@`2`'0@DH)@!'(`$@#E@4'L$W!"L!@`?$%![`J]"#```&@`9P@@!G(@T(%@
- + M`B`&0>P7<!&`:`!2AG!:O(!OVDS?*'1.=0``2.<@,B!O`!A#[P`<1?H`'"9O
- + M`!0D"RQY````!$ZN_?8@"Y""3-],!$YU%L!.=0``3KH'O"`L+51.=0``(&\`
- + M!")O``A93TCG,S8J2'X`(&PM*"PH`.`O20`@2H9F($JL#*1F&D'L!:`B""QL
- + M+90D/````^U.KO_B+`!G`GX!2H9G-B(&0>P%JB0(0>P,K"8(+&PME$ZN_IXB
- + M!B0-)B\`($ZN_IXB!G0*3J[^R$J'9U@B!DZN_]Q@4"!L+2@F:`"X,'S__[?(
- + M9T!#[`6P<"4L>``$3J[]V"1`2H!G+"EL#*P%E"E-!9@O"B!++$I#[`6,E<HF
- + M;P`D3J[]M$S?!``B2BQX``1.KOYB3-]LS%A/3G4@;P`$0^\`"&$`_RI.=2!O
- + M``1#[P`(80#_''`43KHJUDYU``!(YP`&<`AR`"QX``1.KO\Z*D!*@&8$<`!@
- + M+D*M``1(>``H<``O`$'L!<1R`9/)P4%.NA[^4$\J@&8,(DUP"$ZN_RYP`&`"
- + M(`U,WV``3G4@;P`$2.<`!BI((`UG&"!-80``'B!53KH?0B)-<`@L>``$3J[_
- + M+DS?8`!.=2!O``1(YP`&*DA*K0`$9Q0B52QX``1.KOX@(E5.KOXF0JT`!$S?
- + M8`!.=2!O``0@4")H``YP`!`I``]R`>&A(`%.=2!O``0@+P`((B\`#$CG`P8L
- + M`2X`*DAAJDJ'9@1*AF<>(E4C1P`@(T8`)#-\``D`'"QX``1.KOXR<`$K0``$
- + M3-]@P$YU(&\`!$CG``8J2$JM``1G'")5+'@`!$ZN_BQ*0&<.(E5.KOXF0JT`
- + M!'`!8`)P`$S?8`!.=2\.("PM-"(`2$%"0=*`("PM*+.`*4`L`$*L+`1#[`78
- + M<``L>``$3J[]V"E`*_QP_TZN_K9(@$C`*4`%U$JL*_QG"$J`:P1P`6`"<``I
- + M0"P(+%].=2\.("P%U&L(+'@`!$ZN_K`@+"O\9PHB0"QX``1.KOYB+%].=2`O
- + M``113TCG`P`N`$ZZ!0`@!TZZ`9!*@&<H(D`@:0`<<D#EB<*1+T@`#"`!(&D`
- + M!")O``Q.D2P`(`=.N@%((`9@`G#_3-\`P%!/3G4@+P`$+P<N'V"N```@;P`$
- + M("\`"")O``PO;P`0``0O;P`4``@O;P`8``PO;P`<`!`O;P`@`!0O;P`D`!A1
- + M3TCG!Q0N`$CO`P``%'P`*FPL#&`62JT`!&8*,'P``2M(``1@#%*&VOP`)+RL
- + M+!!MY"`L+!"\@&9X<@K3K"P0("PL$"(`YX'2@.6!(`%.NB7P*D!*@&8,<`PI
- + M0"U,</]@``".</;0K"P0(@#G@=*`Y8$@;"P,(DU@`A+84X%D^B`L+`QG!B!`
- + M3KHD$BE-+`QZ]MJL+!`@!>>`T(7E@-O`E\LK2P`$4H7:_``DNJPL$&WP(`;G
- + M@-"&Y8`@;"P,(:\`%`@$(8<(`"&O`!@("$OO`"`AG0@,(9T($"&="!1+[P`L
- + M(9T(&"&="!PAG0@@(`9,WRC@4$].=2`O``0B`&L6LJPL$&P0(`'G@-"!Y8`@
- + M;"P,0K`(!$YU("\`!$CG`00N`&L>OJPL$&P8(`?G@-"'Y8`J;"P,V\!*K0`$
- + M9P0@#6`(<`DI0"U,<`!,WR"`3G4@+"P03G4``"`O``193RZ`0>P%["`(6$].
- + M=2!O``193RZ(0>P%["`(6$].=2`L!>Q.=0``64]*K`8>9@Q![P`#*4@&'F'N
- + M8!9![P`#(FP&'K/(9`1P`6`"</\I0"P46$].=5E/2.<!%"XO`!1*K"P49@)A
- + MP"IL!B)@+B`L+!1O#$'O``\B;0`$L\AB$$J`:AQ![P`/(FT`!+/(9!`F52\-
- + M3KHBIEA/*DL@#6;.*4T&(DJ'9@1P`&`B4(<O!TZZ)"X@0""L!B)#[P`3(4D`
- + M!$/H``A83RE`!B(@"4S?*(!83TYU```@+P`$64\N@"`L+21G#B!`3KK\BDJ`
- + M9P1R`6`"<@`@`5A/3G4@+P`$(&PM)'(`3OK\,$ZZ^V0I0"TD9@I(;`8H3KK[
- + M0%A/(&PM)$ZZ^_2!K"P83G4@;"TD3OK[D`CL``PL&DYU("\`!`@```Q6P$0`
- + M2(!(P$YU".P`#2P:3G4@+P`$"```#5;`1`!(@$C`3G5.NAE6<``@;"V$$"@`
- + M#W(!X:K"P83G5.^AFH("\`!%E/2.<!%B]``!!^`&`N("T`%$ZZ&/XF0$J`
- + M9Q1*JP`49@Y^`7`!)T``%"=M`!@`&")-<!PL>``$3J[_+B!L+80L>``$3J[^
- + MC"I`2H!FP"`'3-]H@%A/3G4@+P`$2.</!"X`<`'OH"P`<`F^@&8&<`!.N@L4
- + M("PM',"&9P:-K"T@8'HJ!D:%RZPM($J':V9P(+Z`;&`@!^>`0>PL'"IP"``P
- + M?``!N\AF+"`'58!G%%.`9Q!R#9"!9SQ9@&<X48!G-&`*2&P&0$ZZ^?Q83W``
- + M3KH*MF`@(`UG'"`'YX`H!D'L+!R(L`@$B:PM'"`'3I5&A,FL+1P@+"T@P(9F
- + MBDS?(/!.=2`O``0O#B(L+!B"@'``+'@`!$ZN_LXL7TYU("\`!"\.(@`@+"P8
- + M@($L>``$3J[^PBQ?3G4@+P`$2.<#`"X`?`!A`/X02H!G"'P!<`YA`/\,(`=A
- + M`/YB2H!G"'P!<`)A`/[Z(`=A`/YJ2H!G"'P!<`-A`/[H(`=A`/Z&2H!G"'P!
- + M<!1A`/[6(`9,WP#`3G4@+P`$+P<I0`R$<`@N'V``_KQP`&$`_V!@DV2.<!
- + M%'X`2^PL'#9\``$JBT*M``12AU"-<""^@&WP0JPM($*L+1Q"K"P880#]U&$`
- + M_>IA`/VB3-\H@&``_?AA`/VX8`#^"```2&P&5$ZZ^-A83TYU("\`!"\-3KHA
- + M5"I`2H!F`F'B(`TJ7TYU(&\`!"`O``@O"TZZ'Q`F0$J`9@)AQB`+)E].=2!O
- + M``0O#2I((`UF!$OL!EX@34H89OQ3B)'-(`A2@$ZZ(0@@0$J`9@1P`&`((D@2
- + MW6;\(`@J7TYU64](YP,T?@!\`"!L+2@F:`#08"Q**P`(9B0P/`4`P&L`#F8:
- + M4H<@:P`*(`A*&&;\4XB1P"`(W(#<JP`45(8F4TJ39M`@!U*`Y8#0AF$`_THI
- + M0"U`Y8<@0")`T\=%Z0`$+T``%&8*0>P&4"E(+4!@5B!L+2@J:`#08$)*+0`(
- + M9CHP/`4`P&T`#F8P)FT`"BXM`!0@;P`4(,HO2``48`(4VTH39OH4_``])FT`
- + M$&`"%-L@!U.'2H!F]D(:*E5*E6:Z(&\`%$*03-\LP%A/3G4@;P`$("\`""\-
- + M*D@J@$*M``3E@&$`_K0K0``(*E].=2!O``0B;P`(("\`#$CG(C0F22I(2H!G
- + M"B!+80#^PB1`8`(D2R`*9SXB%20M``2T@6TB+`'<AG00TH*\@6T"(@8J@2`!
- + MY8`@;0`(3KH=CBM```AG$D?M``0B$U*;Y8$@6R&*&`!P`4S?+$1.=2!O``0B
- + M;P`(("\`#&&22H!F!&$`_AI.=2!O``0B;P`(2.<`%"9)*D@@+0`$T*L`!+"5
- + M;Q+0@"J`Y8`@;0`(80#^&BM```@B+0`$Y8$@;0`(T<$@*P`$(@#E@2)K``A@
- + M`A#94X%D^M&M``0@:P`(3-\H`$[Z'7X@;P`$(F\`""]O``P`!"`O`!`B+P`4
- + M64](YP(T+`$J221(+T@`$$J`9T13@&<*4X!G``"V8```]%.&9R(@+P`8(@V0
- + M@2!O`!!",`@`($$B;P`08`(2V%.`9/I@``#.0>P&8")O`!`2V&;\8```OB9O
- + M`!A@;G!<L!5F9DHM``%G8%2-<`&\@&8&%/P`86!4(`95@&9&$"W__TB`2,!R
- + M(Y"!9RY5@&<J58!G)E.`9R)3@&<>4X!G&G(5D(%G%'(<D(%G#E6`9PIR'Y"!
- + M9P15@&8$%/P`)Q3M__]@"!3M__]@`A3=N\MECF!`)F\`&&`V<"JP%68N2BT`
- + M`6<H5(T0+?__2(!(P')ED(%G#'()D(%F#!3\``I@#A3\`!M@"!3M__]@`A3=
- + MN\MEQD(23-\L0%A/3G6>_`$L2.<_-BIO`5@@;`R@#&@`)0`49`I(>``43KJ1
- + MZEA/0JP+X'`!*4`+W"E`#`)P`BE`"_XI0`PD*7P```"$#""3R2QX``1.KO[:
- + M*4`M*$ZZ]2@I0"TL9@I(;`9B3KKU!%A/(&PM+$ZZ];@I0"TP+&PM+"!6+&@`
- + M%"E.+3Q![P$P3J[_OBEO`3`M-$ZZ]B!.NONL(&PM*"`H`*QG$.6`(D`B*0`T
- + MY8$I02TX8`8I:`"$+3A*%68``.A![`9Z(@@L;"V4)#P```/N3J[_XBP`0>P&
- + M@"((3J[_XBX`0>P&AB((3J[_XBH`2H9G"$J'9P1*A68B2H9G!B(&3J[_W$J'
- + M9P8B!TZN_]Q*A6<&(@5.KO_<80#[<G`!+P`O!2\`+P<B!L%!3KH-;"!L#*0@
- + M*``<0>\!6&$`_)Y/[P`0?`!^`&!0(FP,I"!I`"0@,'@`9SXB`$/O`#`D"2QL
- + M+91V0.6+3J[^;DJ`9R8B;`RD(&D`)-''("@`!&<((@(D`$ZN_(Y![P%(0^\`
- + M,'`!80#\V%*&4(<@;`RDO*@`'&VF8``"S"QL+91.KO_**`!.KO_$*@!^`"!L
- + M+2@L*`#@9BA^`4'L!HPB""0\```#[4ZN_^(L`&820>P&CB((3J[_XBP`9@1A
- + M`/JD+P<O!G``+P`O!2($P4%.N@R>0>\!6'`!80#[UB`\```%&F$`^HX@0#%\
- + M!```$B]``#QP0.6(80#Z>D_O`!!^0.6/+T`!.&`"4HT0%4B`2,!![`J]"#``
- + M`P@`9NP0%6<``A9R(K`!9C!2C29-8!!P*K`59@A*+0`!9P)2C5*-$!5G!G(B
- + ML`%FYB1-$!5R(K`!9@)2C7P"8%1P)[`59B!2C29-8`)2C1`59P9R)[`!9O0D
- + M37`GL!5F`E*-?`%@+B9-8!!P7+`59@A*+0`!9P)2C5*-$!5G$G(@L`%G#'(*
- + ML`%G!G()L`%FVB1-?``@2RH*FHL@!5*`+T@`*&$`^;8F0$JO`4QF("`%($LB
- + M;P`H3KH8AD(S6`!![P%((DMP`&$`^V!@`/\FVH5R$-J!NH=O%"!O`3A.NADP
- + M(`5A`/EV+@4O0`$X+PH@!B!+(F\`+'(!80#[KEA/(@LD+P$X)@<L;"V43J[\
- + MN"H`;!!"$B\O`"A(;`:43KKR"E!/2H5F(B\*(`8@2R)O`"QR`&$`^W1![P%,
- + M(DMP`&$`^NA83V``_JQZ`2!O`"Q"J``(0B@`$4(H`!`O"B`&($LB;P`L<@)A
- + M`/M`0>\!0'`080#Z)EA/(@LD+P`L+&PME$ZN_,HH`&8\8"IZ`")O`"S2_`$8
- + M0>\!/'`!80#Z($J`9@1X9V`2(B\`+"QL+91.KOS$*`!*A&?2(B\`+"QL+91.
- + MKOR^<'30@+B`9PI(;`:H3KKQ5EA/2H5G(B\*(`8@2R)O`"QR`&$`^L!![P%,
- + M(DMP`&$`^C183V``_?@@+P%`(&\!1$ZZ$OI![P%(0^\!/&$`^BH@2TZZ%_9@
- + M`/W6(&\!.$ZZ%^H@;P`L3KH7XF$`^))![`;"3KH+,BE`!>QF"$'L!L@I2`7L
- + M0>P&SDZZ"QPI0`8`9@8I;`7L!@!![`;83KH+""E`!@1F"$'L!MXI2`8$0>P&
- + MXDZZ"O(I0`8(9@A![`;H*4@&"$'L!O!.N@K<*4`M1&8(0>P&^BE(+40@+P%,
- + M(&\!4")L+4!.NC$Z<`!.NAM<3-]L_-[\`2Q.=2`O``1(YP,`+@!*K"U(9P0@
- + M!V!@?``@!P*````!)&<"?`@(!P`'9P0`1@`%"`<`!&<$",8``@@'``%G!`C&
- + M```(!P`#9P0(Q@`!"`<``&<$",8`!B`'<DG`@7)`L(%F!`!&`$((!P`)9P0(
- + MQ@`%(`8*0``/3-\`P$YU("\`!$CG!@`L`$JL+4AG""`&`D`/_V!>>@`*1@`/
- + M"`8``V<$>DGEC2`&<@7`@5N`9@0(Q0`'"`8``F<$",4`!`@&``!G!`C%``$@
- + M!G)"P(%G!`C%``8(!@`!9P0(Q0`#"`8`!F<$",4```@&``5G!`C%``D@!4S?
- + M`&!.=0``2.<#`$ZZ\P8N`'P`8`HO!DZZ\6Y83U*&O(=M\DS?`,!.=2`O``0O
- + M!RX`8=1.NO#B3KKV6"!L+2Q.NN^@+P=.NHO66$\N'TYU("\`!"\'+A]@U```
- + MGOP`#$CG+S8J;P`T?@/.KP`X?`$@;"TH)F@`N"H\```#[$ZZ]<I*AV<*<`*^
- + M@&<$<@!@`G(!+T$`*'`!OH!G"%6'9P1P`&`"<`$O0``L($U#[`<`3KH0SDJ`
- + M9@9X_V```51P_R!L+2@A0`"X(@TL;"V4=/Y.KO^L+@`@;"TH(4L`N$J`9G@L
- + M;"V43J[_?$ZZ"B0L`"`L#(!R+D8!L(%G!$J`9@I^`2H\```#[F`6(`95@&8,
- + M""\`"``Z9P1P`6`"<``N`$J'9RQ\``@O``@`.F<<""\`#P`Z9P9X`F```-8@
- + M+P`\3KK]TB@`8```R'C_8```PBE&+4QP_V```4)"IRQL+91R`B0/3J[_'$_O
- + M``0D0$J`9PPB!R0*3J[_FDJ`9A8@"F<()`IR`DZN_Q9.N@I^</]@``$(*"H`
- + M="0*<@).KO\6(@=.KO^F<%#IB,"O`#@,@```!0!F#'`1*4`M3'#_8```VDJO
- + M`"AG!@@$``-F#$JO`"QG$@@$``)G#'`-*4`M3'#_8```M@@O``D`.F<B(@TD
- + M/````^Y.KO_B2H!G""(`3J[_W&`*3KH*`G#_8```C`@O``@`.F<$(`5@!B`\
- + M```#[20`(@TL;"V43J[_XBH`9@A.N@G6</]@8`@O``D`.F8$2H9F!"P$8`)\
- + M_WX`2J\`*&<"?@%*KP`L9P0(QP`!""\``P`[9P0(QP`#+P<@!2(&3KH%GEA/
- + M+@!L''#_(&PM*"%``+@B!2QL+91.KO_<(&PM*"%+`+@@!TS?;/3>_``,3G4@
- + M;P`$+R\`#"\O``PO"&$`_:A/[P`,3G6>_``,2-<!`W#_WOP`#$YU44](UP,`
- + M4$].=4CG,`(B$$HH``UG!'``8!PD"28`+&PME$ZN_]8B`%*`9@A.N@D0</]@
- + M`B`!3-]`#$YU44](YS\V+@`J229(+!,O1@`H+T@`+$HK``UG!G``8```C$HK
- + M``QG9B9-U\=Z`&!8)$U@`E**M<MD!G`*L!)F]+?*9@0H"F`&0>H``2@(F(TB
- + M+P`H)`TF!"QL+91.KO_0+`!2@&8(3KH(FG#_8#[:AK:&9C9+Z@`!GH9P`$ZZ
- + M\BA.NO)82H!F(DJ'9J1@'"(&)`TF!RQL+91.KO_0*@!2@&8(3KH(7G#_8`(@
- + M!4S?;/Q03TYU64](YS\"+@`L$"]!`!Q**``-9P1P`&!24X$F`2(&)`<L;"V4
- + M3J[_OBH`3J[_?"@`4H5G!$J$9PX@!$ZZ!Q@I0"U,</]@)"(&=``F`DZN_[XL
- + M`%*`9P1*A&<.(`1.N@;V*4`M3'#_8`(@!DS?0/Q83TYUGOP!`$CG/P8N`"I(
- + M+!4J+0`(("T`!&<*(@`L;"V43J[_IA@M``U(A$C$($U.NA($2H1G!'``8$0B
- + M!D'O`"`D""QL+91V0.6+3J[^:"@`2H=F"B(&3J[_W$J`9QI*A&<2</^Z@&<,
- + M(@(D!4ZN_T9*@&<$<`!@!DZZ!V1P_TS?8/S>_`$`3G4@+P`$2.<@`B(`+&PM
- + ME'0`3J[_-$ZN_WQT+D8"L()7P40!2(%(P2`!3-]`!$YU("\`!"!O``@B;P`,
- + MGOP`$$CG-Q8N`"9)*DA\`&&X2H!F?"('+&PME'0!3J[^5DJ`9VPB!T'L!P@D
- + M"'8$3J[_T%F`9E(B!R0\```G$$ZN_S1*@&="(@=![P`@)`AV$$ZN_]9R";"!
- + M;RYPF[`O`"!F)D'O`"4B""0+3J[\T"H`0>\`)M'`(@@D#4ZN_-!2@&<&4H5G
- + M`GP!(@=T`$ZN_E8@!DS?:.S>_``03G4@+P`$(B\`")[\`A!(YS\&+@!P_R]`
- + M`B@O00`D(@<L;"V4=`!V`4ZN_[XO0``@(@=.KO^^+`!.KO]\*@`O0`(L9@``
- + MPB@O`"0B!R0$=O].KOXXL()F``"NO()L``">*@2:AB@%(`1R`4A!+'@`!$ZN
- + M_SHJ0$J`9FIR`DA!3J[_*.*(*@`,A0```@!M$"`%<@%(04ZN_SHJ0$J`9D9Z
- + M0.>-2^\`*#`\`?]R`$'O`"@0P5'(__Q@++B%;P0@!6`"(`0F`$ZZ[_HB!R0-
- + M+&PME$ZN_]"P@V<*3J[_?"]``BQ@!IB#2H1NT$'O`"BQS6<,(DT@!2QX``1.
- + MKO\N*B\"+&8$0J\"*"PO`""\KP`D;`XB!R0&+&PME';_3J[_OBPO`BAG"B`%
- + M3KH$7BE`+4P@!DS?8/S>_`(03G6>_`$(2.<W%BX`)DDJ2"P52BT`#68``1@@
- + M!P2````$`&<@!(````0`9TI3@&=84X!G7%.`9UY3@&=F4X!G;&```.Y*+0`,
- + M9R8@!D'O`21#[P$@80#]UDJ`9Q0@+P$D-T```B`O`2`V@'``8```RG`98```
- + MOB(&+&PME$ZN_R@F@'``8```LB:&<`!@``"J<`!@``"D(`8B$V$`_C9@``"8
- + M*U,`"'``8```CBH32JT`!&8.(A4L;"V43J[^C"M```0@+0`$9V(D`"(%+&PM
- + ME$ZN_EQ*@&92(@9![P`@)`AV0.6+3J[^:$J`9SXB!4ZN_Z8B+0`$3J[_IB(&
- + M3J[_W"("=`!.KO]&&WP``0`-*H(K0@`$0>\`("((+&PME$ZN_[A*@&<$(`)@
- + M#DZZ!!Q@!G`6*4`M3'#_3-]H[-[\`0A.=2`O``0B+P`(+V\`#``$2.</!BHO
- + M`!PL`2X`<`Y.N@_B*D!*@&8*<`PI0"U,</]@3D/5(L="F2+&0BT`#2('+&PM
- + ME$ZN_R@;0``,2'K^=$AZ^]I(>OMD2'KZK$AZ^G9(>OIH(`4@34/Z^E!.NNE4
- + M3^\`&"@`;`8@34ZZ#>(@!$S?8/!.=2`O``0B+P`(+V\`#``$+V\`$``(+V\`
- + M%``,+V\`&``02.<-`"@O`!0J+P`0+@!P`$J!9@1P0.6(`$```2\`(`=R_V$`
- + M_T983TJ`9D!P`$J$9@1P0.6(`$```B\`(`5R_V$`_RA83U.`9B)P`$JO`!QF
- + M!'!`Y8@`0``"+P`@+P`<<O]A`/\&6$]5@&<00>P'#B](`!!,WP"P3OKF6$S?
- + M`+!.=0``("\`!"!O``@B+P`,64](YP,T+`$N`"I(3KKM!"`'3KKIE"9`2H!G
- + M1`@K``$``V<V""L``P`#9Q8@:P`8+T@`%"!K``1P`'("(F\`%$Z1(&L`%"](
- + M`!0@!B!K``0B321O`!1.DF`(<`TI0"U,</],WRS`6$].=2`O``0@;P`((B\`
- + M#$CG`P1,WR#`8(`@;P`$GOP`0$CG.Q8J2$ZZ[((@#6=22A5G3B(-0>\`("0(
- + M+&PME'9`>`!.KOQV+@!M-DZN_WPL`%*`3KH.$"9`2H!G)+Z&9Q0F!E*#(@TD
- + M"TZN_'9*@&\0(`)@#B!"(DL2V&;\(`M@`G``3-]HW-[\`$!.=2`O``0B+P`(
- + M+V\`#``$44](YP<`*B\`&"P!+@!.NNP`(`=.NNB02H!G&B)`(&D`&"](`!`@
- + M!B(%(&D`!")O`!!.D6`"</],WP#@4$].=2`O``0B+P`(+V\`#``$2.<'`"HO
- + M`!`O10`03-\`X&"@```@+P`$(&\`""(O``Q93TCG`S0L`2X`*DA.NNN4(`=.
- + MNN@D)D!*@&<F""L````#9Q@@:P`0+T@`%"`&(&L`!")-)&\`%$Z28`AP#2E`
- + M+4QP_TS?+,!83TYU("\`!"!O``@B+P`,2.<#!$S?(,!@G@``("\`!"E`#(!*
- + M@&<``(9R9Y"!9P``@E6`9P``@'()D(%G?%.`9WA3@&=T4X!G<%.`9VQ3@&=H
- + M4X!G:%.`9VAR49"!9V93@&=F4X!G9E.`9V93@&=F4X!G9E6`9V93@&=F4X!G
- + M9E.`9V95@&=F4X!G9E.`9V93@&=F4X!G9E.`9V95@&=F4X!G9E.`9V93@&=F
- + M8&AP`&!F<`Q@8G`+8%YP%F!:<`=@5G`(8%)P$&!.<!%@2G`"8$9P`F!"<!9@
- + M/G`'8#IP%F`V<"1@,G`68"YP%F`J<!Y@)G`28")P)6`><"9@&G`38!9P%F`2
- + M<!Q@#G`-8`IP#6`&<`U@`G#_3G4O#BQL+91.KO]\80#^^BE`+4PL7TYU3KKJ
- + M*$ZZ\^).NN)B<@9.^@#R```@;P`$("\`"%E/2.<!%BX`+T@`$"!O`!`J4&!D
- + M<`VP+0`(9EH@+0"L9P;E@"!`8`*1R"9(("T`G+"'9S0@+0"@L(=G+"`M`."P
- + MAV<D(`MG+B`K`!RPAV<8("L`(+"'9Q`@*P`XL(=G""`K`#"PAV8.(DUP8.^(
- + M+'@`!$ZN_KPJ54J59IA,WVB`6$].=2`O``0B+P`(2.<!`BX`(`%3@&<,4X!G
- + M"%.`9P1=@&8L+'@`!$ZN_WP@;`R@T/P!EB`'80#_2"!L#*#0_`&D(`=A`/\Z
- + M3J[_=G``8`AP%BE`+4QP_TS?0(!.=2`O``0B+P`(2.<&!"P!*@!.NND>2H5J
- + M`D2%NJPM5&8.2H9G!B`&3KKGPG``8$@@!4ZZ`&XJ0$J`9P9*K0`49PIP`RE`
- + M+4QP_V`L(`9G*"(M`!#!06$`_U@B`'`)O(!F%'(!*T$`%"M``!AP%$ZZYWQP
- + M`&`"(`%,WR!@3G4``"!O``1(YP`&*D@B32QX``1.KO\$($U,WV``3OH(K"`O
- + M``1(YP$$+@`J;"U88`X@+0`,L(=F!"`-8`@J54J59NYP`$S?((!.=4CG(`)!
- + M["U83KHA:B`L+2@B+"TT)`"S@@*"`'___RE"+512@BE"+5`O`2\`2&P*H$AL
- + M+61.NN!&3^\`$"QX``1.KOUF*4`MB&<00>PM9'``3KHA?BE`+81F"DAL"JY.
- + MNN$Z6$],WT`$3G5(YP`&("PMB&<*($`L>``$3J[]8$JL+81G."QX``1.KO]\
- + M8`PB37`<+'@`!$ZN_RX@;"V$+'@`!$ZN_HPJ0$J`9N(@;"V$3KH@UBQX``1.
- + MKO]V3-]@`$YU```@;P`$("\`""(O``PB;P`0+V\`%``$+V\`&``(64](YP\V
- + M*"\`+"HO`"@L`2X`*DDO2``@+'@`!$ZN_68F0$J`9S`@2R`$3J[]<B1`2H!G
- + M(B`-9P@E30`H)44`)"!O`"`@!R)*(@9.KOY$2@!F!"`*8!8@"F<&($I.KOUL
- + M(`MG!B!+3KH@0'``3-]L\%A/3G4@;P`$2.<`!BI((`UG&")-+'@`!$ZN_CX@
- + M;0`.3KH@%B!-3J[];$S?8`!.=5E/0?D`````+HAG""!Y_____$Z06$].=5E/
- + M0?D`````+HAG""!Y_____$Z06$].=4CG`P0J;P`0($U*&&;\4XB1S2X(8`H@
- + M!D'L"^9.N@R"?``<'4J&9NY![`OF3KH0AB`'3-\@P$YUGOP`$$CG!Q1^`$OO
- + M`"Q@``":<"6P+P`49@``@"!O`"A2KP`H$!!R`!(`'T``%7!DDH!G.G`,DH!G
- + M#E>!9P9;@6<&8$0F76`T+!U'[P`>>@<@!G(/P(%!^@!XT<`6D%.+Z(93A4J%
- + M:NA"+P`?8`H@'4'O`!=.N@(:1^\`%R\+3KK_2%A/WH!@(E*'<``0+P`50>P+
- + MYDZZ"])@$%*'<``0+P`40>P+YDZZ"\`@;P`H4J\`*!`0'T``%&8`_UA![`OF
- + M3KH/NB`'3-\HX-[\`!!.=3`Q,C,T-38W.#E!0D-$148`````2.<#%RIL+8Q@
- + M%"95<!30K0`$(DTL>``$3J[_+BI+(`UFZ$*L+8Q@3"IL+9APG-"L#'PF0"`M
- + M``0I0"V8*6T`"`Q\+BT`&$J`9AX@;`R@#&@`)``491(@3RP(0>T`#"QX``1.
- + MKOTD+D8B2R`'+'@`!$ZN_RY*K"V89JY,W^C`3G4@;P`$(F\`""!0(E$0&+`9
- + M9@1*`&;VD"%(@$C`3G4@;P`$("\`"$/Z_^!R!$[Z""H@;P`$(F\`""`O``Q*
- + M@&\*$A`0T1+!4X!F]DYU(&\`!")O``AP`'(`$!@2&0P``&%M"@P``'IN!`0`
- + M`"`,`0!A;0H,`0!Z;@0$`0`@D(%F!$H!9M1.=0``("\`""!O``1.5?_T(D]R
- + M"DZZ`G`&00`P$L%*@&;P(`D0X;_)9OI"$)"/3EU.=0``("\`""!O``1.5?_T
- + M(D\B``)!``<&00`P$L'FB&;P(`D0X;_)9OI"$)"/3EU.=0``,#$R,S0U-C<X
- + M.6%B8V1E9B`O``@@;P`$44\B3S(``D$`#Q+[$-SHB&;R(`D0X;_)9OI"$)")
- + M4$].=0``("\`""!O``0O"$J`3E7_]")/;`80_``M1(!R"DZZ`<@&00`P$L%*
- + M@&;P$.&_R6;Z0A`@"$Y=D)].=0``(&\`!")O``A(YS`@)$AR`"`!)@$,$``K
- + M9P@,$``M9@1V`5)($!@$```P;1H,```);A0D`>6!TH+2@4H#9@32@BDH!@
- + MWB*!(`B0BE.`3-\$#$YU(&\`!"\-*D@(+0`#`!MF,"`L#"Q.N@4.*T``!"M`
- + M`!!F"G`,*4`M3'#_8!8K;`PL`!1P\\&M`!A"K0`,0JT`"'``*E].=0``(&\`
- + M!$CG(!0J2"9-8"!P`!`30>P*O0@P``$(`&<*<@`2`'0@DH)@!'(`$@`6P4H3
- + M9MP@#4S?*`1.=0``GOP`4$CG,39#^@"$<``L>``$3J[]V"I`2H!F!G`43KKL
- + MJGX`(&P,K!XH__\@!T/O`!Q@`A+84X!D^D(W>!Q![P`<*4@,1$/L#$Q'[`Q@
- + M+$V1R)7*<``B`'1]U()V*$ZN_J1P%$ZZ[&1,WVR,WOP`4$YU*BH@4W1A8VL@
- + M3W9E<F9L;W<@*BH``$58250``&EN='5I=&EO;BYL:6)R87)Y`$J`:@``'D2`
- + M2H%J```,1(%A```@1(%.=6$``!A$@$2!3G5*@6H```Q$@6$```9$@$YU+P)(
- + M030!9@``(DA`2$%(0C0`9P``!H3!,`)(0#0`A,$P`DA",@(D'TYU+P-V$`Q!
- + M`(!D```&X9E10PQ!"`!D```&Z9E90PQ!(`!D```&Y9E50TI!:P``!N.94T,T
- + M`.:H2$)"0N:J2$.`P38`,`(T`TA!Q,&0@F0```930]"!<@`R`TA#Y[A(0,%!
- + M)A\D'TYU``!(YW``)`!G($J!9@1"@&`8)@#&P4A"Q,%(0D)"UH)(0<#!2$!"
- + M0-"#3-\`#DYU```@+`RH!$`!]"Y`3OK^8```(&\`!"`(2AAF_%-(D<`@"$YU
- + M```@;P`$("\`"+`09PA*&&;X<`!.=2`(3G4@;P`$(F\`""`O``Q*@&<04X`2
- + M&+(99@Q*`6<$4X!J\G``3G5N!'#_3G5P`4YU```@;P`$(F\`"!(8LAEF"$H!
- + M9O9P`$YU;@1P_TYU<`%.=2)O``@@;P`$("\`#"((8`00V6<(4X!D^&`&0AA3
- + M@&3Z(`%.=2)O``@@;P`$("\`#"((2H!O%K')90S3P-'`$2%3@&;Z8`80V5.`
- + M9OH@`4YU(&\`!"`O``A(YP,4+@`J2&82(`UF!'``8&@@34ZZ`&YP`&!>(`UF
- + M"B`'3-\HP$[Z`@`F356+,#Q__\!32,#E@"P`"!,`#V<,#&N``/_^9@0L*__R
- + M(`=.N@'8)D!*@&8$<`!@'KR'8P0@!V`"(`8@32)+8`(2V%.`9/H@34ZZ``X@
- + M"TS?*,!.=2!O``0@"&8"3G59@$CG/#(B+"V,9@XI?````!8M3$S?3#Q.=2)!
- + ML(%O$B0!U*D`!`:"````%+"";`)@""(I``!GU@)@$&@P```!"P@VW&9Q(D
- + M0T*"-"H``FNZY8K6@EB#8.@D0#0J``!JJ@BJ``<``$*#-BH``@)#?__EBTIJ
- + M``)K0$?R.`1*:P``:S9"A#@K``("1'__Y8S8@UB$Y(Q8@TIK``)J!`!$@``U
- + M1``":Q(J!.6,-#)(!`)"@`"*0C6%2`1"A#@J``!G3.6,1(1'\DC\2FL``&L^
- + M0H0X*P`"Y8Q"A3HJ``("17__Y8W8A5B$6(/DC$IJ``)J!`!$@``W1``":Q(J
- + M!.6,-#-(!`)"@`"*0C>%2`37J0`()BD`!+:L"KAN#+:I``AF.DJI``!G-"`L
- + M+8P@0+*`9@PI:0``+8Q@$"!H``"RJ```9O8A:0`````@*0`$!H`````4+'@`
- + M!$ZN_RY,WTP\3G4@+P`$(B\`"$CG#`1.NOSR*@!.N@`H*D!*@&8$<`!@$'@`
- + M8`9"-4@`4H2XA67V(`U,WR`P3G4``"`O``1*@&8,*7P````6+4QP`$YU2.<^
- + M,E:``H#____\#(```?_\;@``N+"L"KAN``"P)BPMC&<``*@B0["I``AN,B(L
- + M+9"RJ0`,9BA%Z0`02E)K$$*$."H``@)$?__EC+"$;QI"A#@J``)K".6,1?)(
- + M!<)BD``&=F(D-@O@CJ``<``$?R"`1"A;"$9SPL!)R`689F!"`$8##DCDIJ
- + M``)J!`!&@``J`.2--T8``C=%```U10`">@1*1FL.-#)(!`)"@`",0C6&2`0F
- + M*0`(EH"6A2-#``@@"EB`3-],?$YU*@"PK`JX:@0@+`JX*``&@````!0B+"V0
- + M+'@`!$ZN_SI*@&8**7P````,+4Q@S")`1>D`$"-L+8P``"E)+8PC1``$(VPM
- + MD``,)@26A6<H68-G)"-#``A'\E@$-7R`````Y(TU10`"-T4``.2+`$.``#=#
- + M``)@%$*I``@U?(````#DC`!$@``U1``"(`I8@$S?3'Q.=2!O``0@+P`((B\`
- + M#")O`!!93TCG#S8L`2X`*D@O20`@<`&^@&,``+(F3=?&(`=5@&8D+PLO#2!-
- + M(DLL;P`H3I903TJ`;P``DB`&($TB2TZZ]Z1@``"$(`?BB"(&3KKZ]B)-T\`@
- + M!B!-3KKWBB1->@!X`6`J+PTO"R!+(DTL;P`H3I903TJ`:A)2A=7&M<MG"B`&
- + M($LB2DZZ]US7QE*$N(=ETK7-9PH@!B!-(DI.NO=&)F\`("`%(@8@32)+80#_
- + M4B!*T<8@!Y"%4X`B!B)+3-]L\%B/8`#_.DS?;/!83TYU3OKO9D[Z[UX@+P`$
- + M2.<!!"X`*FP,=&`((&T`!$Z0*E4@#6;T2^P+Q'`&P*T`&%6`9A@@+0`$D*T`
- + M$&<.(BT`'"!M`!#!04ZZ[IP@32I0(`UFUB`'3-\@@$[ZY8`@;P`$0JPMG"E(
- + M+:!(;P`,+R\`#$AL+9Q!^@`00_H`+$ZZ$K1/[P`,3G5#["V<4IEP`"!1$!@B
- + MB'+_(LA*@&<"(@`@`4YU("\`!%E/+H!3K"V<4ZPMH%A/3G4``"`O``0@;P`(
- + M+PTB`"I(4I5#[0`((!%2D1N!"`P@&0R````"`&T40>T`#")M``1R`<%!3KH#
- + MU$*M``@J7TYUGOP"#"\-*F\"%$*O``Q"KP`$+TT`"$AO`APO+P(<0?K_JD/O
- + M``Q.NA-V4$\@+P`,9Q!![P`0(F\`"'(!P4%.N@.*""T`!0`;9@@(+0`$`!MG
- + M!'#_8`0@+P`$*E_>_`(,3G4O#2(`*DA#U5*9(!%2D1N!"`@@&0R````"`&T2
- + M0>T`"$/L"^9R`4ZZ`T!"K0`$*E].=9[\`@A"KP`$0I=(;P(0+R\"$$'Z_[I#
- + M[P`(3KH2[E!/("\`!&<00>\`"$/L"^9R`<%!3KH#`G`PP*P+_F<$</]@`B`7
- + MWOP""$YU("\`!"!O``A93TCG`P0N`"I(?``?0``/<D'2@<*M`!AF#`CM``4`
- + M&W#_8``!0'`SP*T`&%6`9U!P3$8`P*T`&')`TH&P@68,".T``0`;0JT`#&`T
- + M""T`!0`;9P9P_V```0QP;D8`P*T`&')N1@&P@68,".T``0`;0JT`#&`*<``K
- + M0``,8```YB`M``RPK0`4;#(@;0`$4JT`!"`'$(!2K0`,""T`!@`;9PYR"KZ!
- + M9@@@34ZZ`V@L`$J&9P``JB`&8```J@@M``(`&V<N0JT`#"`M`!Q![P`/<@%.
- + MNNPT+`!2@&8(".T`!0`;8'(@!E.`9VP([0`$`!M@9$JM`!1F("!-3KKUN$J`
- + M9PH([0`%`!MP_V!8<``K0``,*VT`$``$("T`#+"M`!1M""!-3KH"[BP`".T`
- + M`0`;(&T`!%*M``0@!Q"`4JT`#`@M``8`&V<.<@J^@68(($U.N@+"+`!*AF<$
- + M(`9@!G(`$@<@`4S?(,!83TYU(&\`!%E/2.<!!"I(0>P+Q+O(9D1![`OF3KH"
- + MC@@M``T`&F<T("T`'$'O``MR`4ZZ[-PN`&\*?@`>+P`+8``!($J'9@@([0`$
- + M`!M@!@CM``4`&W[_8``!"%.M``AM$"!M``12K0`$<``0$&```/1P,\"M`!A3
- + M@&<T<%Q&`,"M`!AR0-*!L(%F%`CM````&P@M``0`&V<6</]@``#&0JT`"`CM
- + M``4`&W#_8```M@@M``(`&V=&0JT`"'X`'BT`($J'9PA"+0`@8```EB`M`!Q!
- + M[P`+<@%.NNPV+@!O"'X`'B\`"V!Z2H=F"`CM``0`&V`&".T`!0`;?O]@9$JM
- + M`!1F%"!-3KKT1$J`9PH([0`%`!MP_V!,(&T`$"M(``0@+0`<(BT`%"!M`!!.
- + MNNOB*T``""X`;Q)3K0`((&T`!%*M``1^`!X08!A*AV8(".T`!``;8`H([0`%
- + M`!M"K0`(?O\@!TS?((!83TYU(&\`!"`O``@B+P`,(F\`$%E/2.</$"P!+@`F
- + M22](`!0@!B('3KKUGBH`>`!*AV<$2H9F!G``8```_'`PP*L`&&8*<$'0@,"K
- + M`!AF#`CK``4`&W``8```WG`SP*L`&%6`9U!P3$8`P*L`&')`TH&P@68,".L`
- + M`0`;0JL`#&`T""L`!0`;9P9P`&```*IP;D8`P*L`&')N1@&P@68,".L``0`;
- + M0JL`#&`*0JL`#'``8```A$JK`!1F3`@K``(`&V9$($M.NO,<2H!G.@CK``4`
- + M&W``8&`@;P`4$!@B:P`$$H!2JP`$4JL`#%.%4H0O2``4<@JP`68.""L`!@`;
- + M9P8@2TZZ`#X@*P`,L*L`%&P$2H5NPDJ%;Q8@2TZZ`"8@*P`<(@4@;P`43KKI
- + M#-B`(`0B!TZZ]`!,WPCP6$].=2!O``1(YP$$*D@@#6<``*!P0="`P*T`&&8L
- + M(&T`$$/M``0BR$*90BT`('``(L`(+0`'`!MG!@BM````&PBM``0`&V```(I*
- + MK0`49T0@+0`,:@9R`"M!``P@+0`,9R@B+0`<(&T`$,%!3KKHCBX`4H!F"`CM
- + M``4`&V`,OJT`#&<&".T`!``;*VT`$``$0JT`#'`PP*T`&&82""T`!P`;9P9P
- + M_,&M`!AP`&`D</]@('X`2^P+Q$JM`!AG#"!-80#_1DJ`9P)^_RI5(`UFZ"`'
- + M3-\@@$YU(&\`!$CG`00J2'X`(`UG!B`M`!AF!'#_8$`(+0`!`!MG""!-3KK_
- + M"BX`<`S`K0`89@Y*K0`49P@@;0`03KKU#D*M`!@@+0`<3KK/XE*'9P1*@&<$
- + M</]@`G``3-\@@$YU(&\`!")O``@O;P`,``193TCG#Q0F;P`@*DDO2``8?@`L
- + M+`PP>@!*JP`89P8@2TZZ_W1P`!`M``%R*Y"!9R!R-I"!9P93@&<$8"!\`'(K
- + MLBT``E?`1`!(@$C`*@!@#'H!<&&P+0`"9@)\`'``$!5R89"!9PQR$9"!9QI;
- + M@&<D8#9*A5;`<@&2``!!`0B,@7Y`X8]@*$J%5L!R`)(`D@",@6`:2H56P'(!
- + MD@``00$``$$"`(R!8`9P`&```(`O+`PT+P8O+P`@3KK>($_O``PH`%*`9@1P
- + M`&!B2H5G!@C'``=@,'``$!5R89"!9PQR$9"!9QI;@&<:8!H(QP`!2'@``B`$
- + M<@!.NN?`6$]@!GX!8`)^`@@&``]F!`C'``^1R$OK`!`JR"K()T0`'"=(``0G
- + M2``,)T@`""K'(`M,WRCP6$].=0``(&\`!")O``A13TCG`!1([P,```A+[`O$
- + M8`0F32I3(`UG!DJM`!AF\B`-9AYP(DZZ]1PJ0$J`9@1P`&`>($TFB'`A<@`0
- + MP5'(__PO#2!O``PB;P`03KK^=%A/3-\H`%!/3G4``"!O``0B;P`(+V\`#``$
- + M+V\`$``(+V\`%``,+V\`&``0GOP`&$CG#S8F;P!$*DDO2``D)&\`2'X`?`!Z
- + M`"`+9P9P`22`8`)"DG``(&\`)!`00>P*O0@P``((`&<P<`\@;P`DP!A(@$C`
- + M(@?E@=*'TH'2@"X!+T@`)'``(&\`)!`00>P*O0@P``((`&;0(&\`)!`0<FRP
- + M`6<4<FBP`68(4J\`)'P!8`QR3+`!9@92KP`D>@$O1@`P+T4`-$Z5*``@;P`D
- + M$!!R8[`!9QYR;K`!9QAR6[`!9Q)@!$Z5*`!![`J]"#```T@`9O!P_[B`9@P@
- + M;P!`((1P`&``!11P`"!O`"00$')8D(%G``'P5X!G``-D48!G``+T4X!G``#:
- + M6X!G7EN`9R)3@&<``6)3@&<``;I7@&<``PY5@&<``)I7@&<``;A@``2V<``D
- + M@"(+9P`$L"1O`#Q*AF802H5F#"!3(A)3@2"!8``$F"X24X<D4TJ&9P8TAV``
- + M!(@DAV``!()Z`$J'9P9P`;Z`;QYP+;B`9P9R*[B!9A*X@&8$</]@`G``*@!.
- + ME2@`4X=P,+B`9G!.E2@`0>P*O0@P``$(`&<((`1R()"!8`(@!')8L(%F``#4
- + M8``!,'H`<"VX@&<&<BNX@68\N(!F!'#_8`)P`"H`3I4H`&`J>@!*AV<&<`&^
- + M@&\><"VX@&<&<BNX@682N(!F!'#_8`)P`"H`3I4H`%.'0>P*O0@P``)(`&8,
- + M(&\`0""$<`!@``/8?``@!'(/P($B!N6!TH;2@=*`+`%.E2@`4X=G#$'L"KT(
- + M,``"2`!FVB`+9P`#G$J%:@)$AB132J\`-&<&)(9@``.(2J\`,&<&-(9@``-\
- + M)(9@``-V<#"X@&T&<#>X@&\,(&\`0""$<`!@``-L?``@!'('P('GAMR`3I4H
- + M`%.'9PQP,+B`;09P-[B`;^(@"V<``S@D4TJO`#1G!B2&8``#*DJO`#!G!C2&
- + M8``#'B2&8``#&$J'9@)^"$*O`#!P`2]``#1Z`7`MN(!F!GK_3I4H`"1O`$`O
- + M10`@0>P*O0@P``=(`&8()(1P`&```NPJ!$Z5*`!*AV<&<`*^@&\P<#"Z@&8J
- + M<'BX@&<&<%BX@&8>3I4H`$'L"KT(,``'"`!F""2$<`!@``*R?`!3AV!H2H=G
- + M!G`!OH!O+$7L"KW5Q0@2``)G!BP%<#"<@`@2``!G!BP%<#><@`@2``%G.BP%
- + M<%><@&`R?`!@+NF&"!(``F<((`1R,)"!C(`($@``9P@@!'(WD(&,@`@2``%G
- + M!G)7F(&,A$Z5*`!3AV<,1>P*O=7$"!(`!V;"(`MG``(@("\`(&H"1(8D4TJO
- + M`#1G!B2&8``""DJO`#!G!C2&8``!_B2&8``!^"`+9QX@4U*3(`00@&`43I4H
- + M`%*`9Q`@"V<((%-2DR`$$(!3AV[H</^X@&8``=`@;P!`((1P`&```<P@"V<&
- + M(%-2DQ"$3I4H`%*`9Q!3AV<,0>P*O0@P``-(`&?>(`MG``&6(%-"$&```8Y2
- + MKP`D<%X@;P`DL!!F#'P!4J\`)"!O`"1@`GP`+T@`+'!=L!!F'E*O`"1@&"!O
- + M`"1*$&8,(F\`0"*$<`!@``%<4J\`)'!=(&\`)+`09MY*AF<``+`O;P`L`"A\
- + M`&!X(&\`*!`0<BVP`69"2H9G/D7H``$B;P`DL\IG,BQ*>@`:$B].`"B\A6,&
- + M(`8L!2H`N(9E0+B%8CP@"V<$(%-"$"!O`$`@A$'I``%@``#N<@`2`+*$9AHB
- + M"V<$(E-"$2)O`$`BA")O`"12B2`)8```SGP`'!!2KP`H(&\`*+'O`"1F`/]^
- + M(`MG!B!34I,0A$Z5*`!2@&<&4X=F`/]<(%-"$&```(PO;P`L`"A\`&!,(&\`
- + M*!`0<BVP`68L2H9G*$7H``$B;P`DL\IG'")*>@`:$B])`"B\A6,&(`8L!2H`
- + MN(9E!+B%8RA\`"!O`"@<$'``$!"PA&<84J\`*"!O`"BQ[P`D9JH@"V<F(%-"
- + M$&`@(`MG!B!34I,0A$Z5*`!2@&<$4X=F@"!30A!@!'``8`X@;P!`((0@;P`D
- + M4H@@"$S?;/#>_``83G4``"!O``0B;P`(+V\`#``$+V\`$``(GOP`-$CG+S8F
- + M;P!@*F\`7$CO`P``+$(O`#M"+P`Z0B\`.4(O`#@??``@`#="KP!4</\O0`!0
- + M0B\`-GX`?`!%[P`\8$IP`"!O`"P0$'(@D(%G(E>`9R91@&<258!G!E>`9R)@
- + M,A]\``$`.V`>'WP``0`Z8!8??``!`#E@#A]\``$`.&`&'WP`,``W4J\`+"!O
- + M`"Q*$&:N<`&P+P`[9@8??``@`#=R*B!O`"RR$&8>+&\`,")66)8B$2]!`%1L
- + M"$2O`%0?0``[4J\`+&`,0^\`5$ZZZ'K1KP`L(&\`+!`0<BZP`69&4J\`+'`J
- + M(&\`++`09APB;P`P(%%8D2`0+T``4&P&</\O0`!04J\`+&`60^\`4$ZZZ#@J
- + M`&8&0J\`4&`$VZ\`+!]\`"``-W``(&\`+!`0<DR0@6<4<AR0@6<&68!G"F`2
- + M'WP``@`V8`8??``!`#92KP`L(&\`+%*((F\`+!`1<@`2`!]``"0O2``F<%"2
- + M@&<``1!1@6<``1QP"Y*`9P`!T%.!9U!;@6=,6X%G(E.!9P`!`E.!9P``ZE>!
- + M9P`!@%6!9P``\%>!9P``ZF```;@D;P`P<`*P+P`V9@X@4EB2(E`@$S*`8``"
- + M2B!26)(B4"*38``"/B)O`#`@45B1*!!J!'X!1(1*AV<,1>\`/1]\`"T`/&`B
- + M2B\`.F<,1>\`/1]\`"L`/&`02B\`.6<,1>\`/1]\`"``/'P!(`0@2DZZYE(J
- + M`"`O`%!F!DJ$9P`!Y"`O`%!J!G(!+T$`4"@O`%"8A6\<($K1Q"`%(DI.NNH<
- + M<C`@2F`"$,%3A&3Z*B\`4-R%(`53@&8``000$K`O`#=F``#Z2J\`4&8``/)"
- + M$F```.P@+P!0:@9P""]``%`??``!`#9P`K`O`#9F$")O`#`@45B1(!!X`#@`
- + M8`HB;P`P(%%8D2@0$"\`)')UL`%G`/]:<F^P`68>2B\`.&<,1>\`/1]\`#``
- + M/'P!(`0@2DZZY<)@`/\^2B\`.&<2'WP`,``\1>\`/A]\`'@`/7P"(`0@2DZZ
- + MY=XJ``@O``4`)&8`_Q1![P`\3KKFRF``_P@B;P`P(%%8D210(`IF!$7Z`/(@
- + M2DH89OQ3B)'**@@@+P!0:P2PA6\$+T4`4"PO`%!@('P!(F\`,"!16)$@$!]`
- + M`#Q"+P`]8`9P`&```*Q%[P`\("\`5+"&;`AR`"]!`%1@!)VO`%1*+P`[9QY@
- + M"'``$!H@2TZ54X9L]&`&($MP($Z54Z\`5&ST8&I*AV8,2B\`.68&2B\`.F=&
- + M$!)R(+`!9PQT*[`"9P9T+;`"9C)*AFLNLB\`-V828`IP`!`O`#<@2TZ54Z\`
- + M5&SP<``0&B!+3I53AF`*<``0+P`W($M.E5.O`%1L\&`(<``0&B!+3I53AFST
- + M("\`)DS?;/3>_``T3G4``"!O``0B;P`(+V\`#``$+V\`$``(+V\`%``,GOP`
- + M#$CG`S0J2"])`!1^`"9O`"Q@``$@0J\`&'P`(&\`*!P8)&\`%"](`"A#[`J]
- + M"#$``V@`9@``VG`EO(!F``"H<"6P$&8@4J\`*$Z5+`!![`J]"#```V@`9O!P
- + M);R`9P``U&```-IP*B!O`"BP$&<&)$M8BV`&E<I2KP`H0J\`'$AO`!@O"DAO
- + M`"0O+P`P(&\`.")-3KKU'D_O`!`D0$J`5L%$`4B!2,$L`6<$+TH`*"`O`!QR
- + M_["!9A!*AF<$WJ\`&$J';G@@`6!V("\`'&<,<@`2`"`!(&\`%$Z0(`IG7MZO
- + M`!A@3DZ5+T``'"!O`!Q#[`J](`@(,0`#"`!FZ"`O`!R\@&<N<@`2`"`!3I)@
- + M+DZ5+T``'"!O`!Q#[`J](`@(,0`#"`!FZ"`O`!QR`!(`(`%.DB!O`"A*$&8`
- + M_MH@!TS?+,#>_``,3G4``"!O``0B;P`(+V\`#``$+V\`$``(GOP`#$CG`!0F
- + M22I(+V\`'``08#AP);`O``QF)B!O`!BP$&8&4J\`&&`8+PLO#4/O`!A.NOHL
- + M4$]*@&<&+T``&&`*<``0+P`,($M.E2!O`!@0&!]```PO2``82@!FMDS?*`#>
- + M_``,3G4@;P`$((A8D$*H``0A2``(3G4``"!O``1(YP`&*DA*K0`*9PHB32QX
- + M``1.KOZ8&WP`_P`(</\K0``4<``0+0`/+'@`!$ZN_K`B37`B3J[_+DS?8`!.
- + M=0``(&\`!"`O``A(YP,6+@`J2'#_+'@`!$ZN_K8<`$B&2,8@!E*`9@1P`&!@
- + M<"(B/``!``%.KO\Z)D!*@&8((`9.KOZP8$1!ZP`*(,T71P`)%WP`!``(0A@0
- + MQI/)3J[^VB=``!`@#6<((DM.KOZ>8!I!ZP`8)T@`%$'K`!0G2``<0JL`&!=\
- + M``(`("`+3-]HP$YU+P@O`$ZY``!:5E!/3G4``"`O``0@;P`((F\`#"(O`!!*
- + M@&8:+P$O"2\(2'H`%$AL#`A.NNK>WOP`%$[ZVZQ.=4%S<V5R=&EO;B`H)7,I
- + M(&9A:6QE9"!I;B!F:6QE("5S(&%T(&QI;F4@)60*`````````^P````-````
- + M````I=X``#&.```Q<```,78``#&"```QB```,7P``#%J```Q7@``,60```)N
- + M```"8@```F@````"`````0```!0````*`````````_(```/J```#'DUE;6]R
- + M>2!E>&AA=7-T960``&X@(3T@,```9&9A+F,`365M;W)Y(&5X:&%U<W1E9```
- + M;B`A/2`P``!D9F$N8P!-96UO<GD@97AH875S=&5D``!5;F9I;FES:&5D(%P@
- + M<75O=&4``%5N9FEN:7-H960@7"!Q=6]T90``56YB86QA;F-E9"!;``!5;F)A
- + M;&%N8V5D(%L``%5N8F%L86YC960@6P``56YB86QA;F-E9"!;``!5;F)A;&%N
- + M8V5D(%L``%5N8F%L86YC960@6P``56YB86QA;F-E9"!;``!5;F)A;&%N8V5D
- + M(%L``%5N8F%L86YC960@6P``56YB86QA;F-E9"!;``!5;F)A;&%N8V5D("@`
- + M`$YO('-Y;G1A>"!S<&5C:69I960`56YB86QA;F-E9"`I``!O=70@;V8@;65M
- + M;W)Y`````````````````$EN=F%L:60@<F5G=6QA<B!E>'!R97-S:6]N``!5
- + M;FUA=&-H960@7"@``%5N;6%T8VAE9"!<*0``4')E;6%T=7)E(&5N9"!O9B!R
- + M96=U;&%R(&5X<')E<W-I;VX`3F5S=&EN9R!T;V\@9&5E<```4F5G=6QA<B!E
- + M>'!R97-S:6]N('1O;R!B:6<``$UE;6]R>2!E>&AA=7-T960`````!]!.;R!P
- + M<F5V:6]U<R!R96=U;&%R(&5X<')E<W-I;VX``$UE;6]R>2!E>&AA=7-T960`
- + M`$UE;6]R>2!E>&AA=7-T960``````````````````5!/4TE83%E?0T]24D5#
- + M5``M+0``)7,Z(&]P=&EO;B!@)7,G(&ES(&%M8FEG=6]U<PH`)7,Z(&]P=&EO
- + M;B!@+2TE<R<@9&]E<VXG="!A;&QO=R!A;B!A<F=U;65N=`H``"5S.B!O<'1I
- + M;VX@8"5C)7,G(&1O97-N)W0@86QL;W<@86X@87)G=6UE;G0*```E<SH@;W!T
- + M:6]N(&`E<R<@<F5Q=6ER97,@86X@87)G=6UE;G0*`"5S.B!U;G)E8V]G;FEZ
- + M960@;W!T:6]N(&`M+25S)PH`)7,Z('5N<F5C;V=N:7IE9"!O<'1I;VX@8"5C
- + M)7,G"@`E<SH@=6YR96-O9VYI>F5D(&]P=&EO;BP@8VAA<F%C=&5R(&-O9&4@
- + M,"5O"@``)7,Z('5N<F5C;V=N:7IE9"!O<'1I;VX@8"TE8R<*```E<SH@;W!T
- + M:6]N(&`M)6,G(')E<75I<F5S(&%N(&%R9W5M96YT"@`````E<SH@365M;W)Y
- + M(&5X:&%U<W1E9"`H)7,I"@``)7,Z($UE;6]R>2!E>&AA=7-T960@*"5S*0H`
- + M`"5S.B!R96%D(&]N("5S(&9A:6QE9"`H)7,I"@`\<W1D:6X^`"5S)6,``"5D
- + M)6,``"5D)6,```````$M+2TM+2TM+2TM"@`M+2TM+2TM+2TM"@`M+2TM+2TM
- + M+2TM"@!5<V%G93H@)7,@6RU#5F)C:&EL;G-V=WA=(%LM;G5M72!;+4$@;G5M
- + M72!;+4(@;G5M72!;+68@9FEL95T*("`@("`@(%LM95T@97AP<B!;9FEL92XN
- + M+ET*`$=.52!E/V=R97`L('9E<G-I;VX@,2XV```P,3(S-#4V-S@Y03I".D-6
- + M8F-E.F8Z:&EL;G-V=W@``"5D```E9```)7,*`"5S.B!G971O<'0H,RD@;&5T
- + M(&]N92!B>2$*``!R`"5S.B`E<SH@)7,*`%PH7EQ\6UY!+5IA+7I?75PI7"@`
- + M7EPH`%PI7"A;7D$M6F$M>E]=7'PD7"D`7"DD`$U54U1$14)51P!M=7-T(&AA
- + M=F4Z("(E<R(*```E<SH@)7,Z("5S"@`E<SHE9`H``"5D"@`E<PH`)60*`#QS
- + M=&1I;CX*```E<SH@)7,*`$]K```````4```````````````````%B&-O;G-O
- + M;&4Z```E<SH@``!I;G1U:71I;VXN;&EB<F%R>0```'1I;65R+F1E=FEC90``
- + M``#_____9FEF;RYL:6)R87)Y```````````````````%Z``!```````````%
- + MZ@```````````````$`H(REA;&QO8V$N8PDQ+C$```````````````!&86EL
- + M960@=&\@8W)E871E('1I;65R``!U<V5R(&EN=&5R<G5P=````````$YO(&UE
- + M;6]R>0```&$`1F%I;&5D('1O(&-R96%T92!T:6UE<@``3DE,.@``3DE,.@``
- + M3DE,.@``*@!.24PZ``!);G9A;&ED('=I;&1C87)D("5S`$5R<F]R(&5X<&%N
- + M9&EN9R!A<F=U;65N=',`55-%4@``=7-E<@``55-%4DY!344``$A/344``',Z
- + M``!32$5,3`!B:6XZ<V@``$A/4U1.04U%``!A;6EG80!.24PZ`````)LP('$`
- + M`$9A:6QE9"!T;R!I;FET:6%L:7-E($DO3P``86UI9V$@<W!E8VEF:6,@97)R
- + M;W(`````!RA5;FMN;W=N(&5R<F]R`&YO="!O=VYE<@!N;R!S=6-H(&9I;&4@
- + M;W(@9&ER96-T;W)Y`&YO('-U8V@@<')O8V5S<P!I;G1E<G)U<'1E9"!S>7-T
- + M96T@8V%L;`!I+V\@97)R;W(`;F\@<W5C:"!D979I8V4@;W(@861D<F5S<P!A
- + M<F=U;65N="!L:7-T('1O;R!L;VYG``!E>&5C(&9O<FUA="!E<G)O<@!B860@
- + M9FEL92!N=6UB97(`;F\@8VAI;&0@<')O8V5S<P``;F\@;6]R92!P<F]C97-S
- + M97,`;F]T(&5N;W5G:"!M96UO<GD`<&5R;6ES<VEO;B!D96YI960`8F%D(&%D
- + M9')E<W,`8FQO8VL@9&5V:6-E(')E<75I<F5D`&UO=6YT(&1E=FEC97,@8G5S
- + M>0``9FEL92!E>&ES=',`8W)O<W,M9&5V:6-E(&QI;FL`;F\@<W5C:"!D979I
- + M8V4``&YO="!A(&1I<F5C=&]R>0!I<R!A(&1I<F5C=&]R>0``:6YV86QI9"!A
- + M<F=U;65N=```9FEL92!T86)L92!O=F5R9FQO=P!T;V\@;6%N>2!O<&5N(&9I
- + M;&5S`&YO="!A('1Y<&5W<FET97(``'1E>'0@9FEL92!B=7-Y``!F:6QE('1O
- + M;R!B:6<``&YO('-P86-E(&QE9G0@;VX@9&5V:6-E`&EL;&5G86P@<V5E:P``
- + M<F5A9"UO;FQY(&9I;&4@<WES=&5M`'1O;R!M86YY(&QI;FMS``!B<F]K96X@
- + M<&EP90!M871H(&%R9W5M96YT`')E<W5L="!T;V\@;&%R9V4``$DO3R!S=')E
- + M86T@96UP='D``&9I;&4@;F%M92!T;V\@;&]N9P``9&ER96-T;W)Y(&YO="!E
- + M;7!T>0!T;V\@;6%N>2!S;V9T(&QI;FMS("AL;V]P/RD````'0@``!U````=:
- + M```'=```!X0```><```'I@``!\````?8```'Z@``!_H```@,```('@``"#``
- + M``A"```(3@``"&0```AX```(A```")8```BF```(M@``",8```C8```([```
- + M"0````D2```)(@``"3````E(```)5@``"6P```E\```)B```"98```FH```)
- + MN@``"<X```GB````)@``9&]O<BXE;'@N)6QX``!.;R!M96UO<GD```!````@
- + M("`@("`@("`H*"@H*"`@("`@("`@("`@("`@("`@($@0$!`0$!`0$!`0$!`0
- + M$!"$A(2$A(2$A(2$$!`0$!`0$(&!@8&!@0$!`0$!`0$!`0$!`0$!`0$!`0$!
- + M$!`0$!`0@H*"@H*"`@("`@("`@("`@("`@("`@("`@(0$!`0(```````````
- + M````````````````````````````````````````````````````````````
- + M````````````````````````````````````````````````````````````
- + M```````````````````````````````````````````````/H```"^8`````
- + M``````````````````````````````````````P(````````````````````
- + M````````````````````````````````````````````````````````````
- + M```````````"````@``````-__\````.``X```````````````#__P````0`
- + M!````````(EV```,./__````!``$````````B8P``````````````^P````"
- + M````````#&P```Q8````+@````$```Q<```+Y@``"\0```J6```*D@``"HX`
- + M``J*```*A@``"H(```I^```*>@``"G8```IR```*;@``"FH```IF```*8@``
- + M"EX```I:```*5@``"E(```I.```*2@``"D8```I"```*/@``"CH```HV```*
- + M,@``"BX```HJ```*)@``"B(```H>```*&@``"A8```H2```*#@``"@H```H&
- + @```*`@``"?X```<^```%_```!?````6<`````````_(2
- + `
- + end
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/c/ls.uue emacs-18.59/amiga/amiga-extra/amiga/c/ls.uue
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/c/ls.uue Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/c/ls.uue Tue Jul 12 10:35:38 1994
- ***************
- *** 0 ****
- --- 1,929 ----
- + begin 666 ls
- + M```#\P`````````"``````````$``".[```$S````^D``".[2.=^_B1()`!)
- + M^0`````L>``$+P)(YP#@)FX!%"(K`*QG#.6)($$B*``TY8E@!B(/DJL`.G0`
- + M(#P``"H@LJP0[&0((BP0[-"!=`$F02(\``$``4ZN_SI*@&8(3-\'!&```D`@
- + M0"1`(D`@/```!&>9_``````@W%.`9OH@'&<.($G1W-70((HD25.`8/`H2=G\
- + M`````"E\```J(!'H3-\'`"E.$<1*`DS?``1([(``$<QG2"`,!(``````!H``
- + M`"H@T*P0["(`!(````"`#&X`)``4;1@I0!'D*4$1X)*L$.Q![!'<((%.KOTD
- + M8`(N0"`L$.PO0``$T:P1Z"(/DHL&@0```(`I01&@0JP1R'``(CP``#``3J[^
- + MSB9N`11#^@&(<`!.KOW8*4`J%&8&<&1@``#F*6L`F!'`2JL`K&<``'X@:P"L
- + MT<C1R")H`!#3R=/)(`)R`!(9*4D1T-"!7H`"0/_\*4`1V$CG0$`B/``!``%.
- + MKO\Z3-\"`DJ`9@AP%"\`9P`!!"!`*4`1U"`"4X#4@1&R```@`E."4<C_]A&\
- + M`"`@`E."$;P`(B`"$;$@`"`!4<K_^!"\`"(O"&!*0>L`7$ZN_H!!ZP!<3J[^
- + MC"E`$<@O`"1`("H`)&<8+&PJ%"!`(B@``$ZN_Z`I0!'`(@!.KO^"(&P1R"\(
- + M2&P1G"!H`"0I:``$$=!.NG:83KHV*G``8`0@+P`$)&P1S"4`+'@`!`QN`"0`
- + M%&T22JP1W&<,0>P1W%FL$>1.KOTD+DH@+!&X9P0@0$Z03KIV<$ZZ=Z!*K!'(
- + M9R`L;"H4(BP1P&<$3J[_IBQX``1.KO]\(FP1R$ZN_H9@$BQX``0@+!'89P@B
- + M;!'43J[_+B)L*A1.KOYB("P1Z"),D_P`````3J[_+B`?3-]_?DYU9&]S+FQI
- + M8G)A<GD````@#Y!\``RPK!&@90![>$CG`Q`N+P`0)F\`%$*L$FQP`4*L$?Q"
- + MIRE`$F`I0!)<3KI<Z"E3$>PNBR\'*4`2`&$``<Q03RP`2JP2=&<:+RP'GDAL
- + M`]Y(;!$T3KHA[D*73KHB!D_O``Q*K!)P9P1A`"&@("P2%'(#L(%G+%F`9RA*
- + MK!((9R)*K!(T9AQ*K!(X9A9*K!(L9A!*K!(D9@I*K!(P9@1P`&`"<`%R9"E!
- + M$?1(>"`(*4`2:$ZZ9GA"K!'X*4`1\&$`"!I83[R';`1"K!)<(`;E@-?`8!1(
- + M;`/B2'@``2\;80`(3$_O``Q2AKR';>A*K!)<9RA*K!(\9Q9(;`/F2'@``4AL
- + M`^1A``@F3^\`#&`,0J=(;`/H80`%EE!/2JP1^&<680`-\$JL$CQF#$*G2&P#
- + MZF$`#')03TJL$?AG:&$`$/A*K!'\9P``K`@L``$1+6=$4JP1'B`L$1ZPK!$F
- + M;B(@;!$64JP1%A"\``H(+``&$2UG``"`2&P1$DZZ(-983V!R4ZP1'DAL$1)(
- + M>``*3KH@R%!/8%Y(;!$22'@`"DZZ(+A03V!.2JP1_&=((&P1_$JH``AF/D*L
- + M$F!@."9L$?PI:P`($?PO*P`$+Q-A``4R+I-.NGM*4$\@*P`$9P@O`$ZZ>SQ8
- + M3R\+3KI[-%A/<`$I0!)@2JP1_&;"("P2;"]``!!,WPC`3OI_%B`/D'P`'+"L
- + M$:!E`'EL44](YR,4+B\`("IO`"1"K!)00JP23$AX``%.NEHB6$]*@&<.<`(I
- + M0!((<`$I0!)08`IP`4*L$E`I0!((1^P2#$*;0IM"K!(80JP2($*L$B1(;`/L
- + M)L!.NGYR2H!7P40!2(%(P4?L$BQ"FT*;0IM'[!(X0IM"FT*;0JP21$*L$DA"
- + MK!)42&P#_"E!$BA.NGX\4$]*@&<*+P!.NGXT6$]@`G!02&\`%$AX!`!(>``!
- + M*4`29$ZZ./I/[P`,4H!G#C`O`!9G"'(`,@`I01)D2&P$!$ZZ??A83TJ`9PHO
- + M`$ZZ??!83V`"<`B7RRE`$EA@``-^(`9*@&<``W9R"I"!9P`"P%.`9P`"\%.`
- + M9P`#(%.`9P`#4'(DD(%G``*<<A"0@6<``<Q3@&<``=!3@&<``>!7@&<``>13
- + M@&<``>A5@&<``>Q7@&<``?15@&<``?A7@&<``?Y3@&<``@I3@&<``@Y3@&<`
- + M`A)3@&<``CI7@&<``CQR"9"!9VY3@&=X4X!G``""4X!G``"&58!G``"*4X!G
- + M``+<58!G``"N58!G``"R4X!G``"V4X!G``"X4X!G``"\58!G``#`4X!G``#$
- + M4X!G``#,4X!G``#04X!G``#44X!G``#858!G``#<4X!G``$$8``"AG`!*4`2
- + M1"E`$D!@``)\<`$I0!),0JP24&```FYP`2E`$@Q@``)D<`$I0!(\8``"6G`!
- + M0JP2%"E`$D0I0!)`2JP2"&84+P!.NE@26$]*@%;!=`&4`2E"$@A"K!(D8``"
- + M*G`!*4`2,&```B!P`2E`$BA@``(60JP2"&```@YP!"E`$@A@``($<`$I0!(@
- + M8``!^G`"*4`2+&```?!P`2E`$E!"K!),8``!XG`!*4`2&&```=AP`2E`$B1@
- + M``'.<`,I0!(48``!Q'`"*4`2#&```;HO+`Y43KI\%%A/*4`29'(!L(%L``&D
- + M+RP.5$AL!#)"IR\!3KIO*D_O`!!@``&,<`,I0!((8``!@G`!*4`20&```7A(
- + M;`1*80`#,$AL!$YA``,H4$]@``%B<`(I0!((8``!6'`!*4`2+&```4YP`2E`
- + M$AQ@``%$+RP.5&$``OQ83V```39P`2E`$C1@``$L0JP23$*L$E!@``$@<`%"
- + MK!)0*4`23"E`$E1@``$.<`$I0!(X8``!!'`$*4`2%&```/HO+`Y43KI[5%A/
- + M*4`26'(!L(%L``#D+RP.5$AL!%)"IR\!3KIN:D_O`!!@``#,0JP2%&```,1P
- + M`BE`$A1@``"Z<`$I0!((8```L$AL`VXO+`Y43KIO*E!/+`!L%B\&+RP.5$AL
- + M!&A.NF^(80`<%$_O``SEAD'L`X(I<&@`$A1@>$AL`[(O+`Y43KIN]%!/+`!L
- + M%B\&+RP.5$AL!').NF]280`;WD_O``SEAD'L`\HI<&@`$@Q@0DAL`Q8O+`Y4
- + M3KINOE!/+`!L%B\&+RP.5$AL!'Q.NF\<80`;J$_O``SEAD'L`S8I<&@`$@A@
- + M#'`!*4`4T&`$80`;BB\+2&P!!$AL!`PO#2\'3KICND_O`!0L`%*`9@#\:"`L
- + M#EA,WRC$4$].=2`/64"PK!&@90!TRDCG`!0J;P`02'@`#$ZZ8&8F0"!`(6P1
- + M_``(+J\`$"E`$?Q.NF`<6$\F@"`-9PXO#4ZZ8`Y83R=```1@!$*K``1,WR@`
- + M3G4@#Y!\`!"PK!&@90!T=DCG`30J;P`4?@!"K"FL+PU.NA]06$\F0$J`9AXO
- + M#4AL!(@O+"FL0J=.NFSB<`$I0!)L3^\`$&```/AA``&28!XO"F$``2!83TJ`
- + M9Q(O#4*G2&H`#&$``<I/[P`,WH`O"TZZ(#)83R1`2H!FU"\+3KH?XF$`!Y)8
- + M3TJL$CAG#$AX``$O#6$`!A)03TJL$F!G("1O`!@@"F<,+PI(;`203KINI&`*
- + M+PU(;`263KINF%!/2JP2"&<&2JP2)&<,+P=(;`2<3KIZME!/2JP1^&<$80`*
- + M6DJL$?QG6`@L``$1+6="4JP1'B`L$1ZPK!$F;B`@;!$64JP1%A"\``H(+``&
- + M$2UG+DAL$1).NGV@6$]@(E.L$1Y(;!$22'@`"DZZ>MQ03V`.2&P1$DAX``I.
- + MNGK,4$],WRR`3G4@#UE`L*P1H&4`<S0O#2IO``A(>``(3KI>TB!`((TA;!)(
- + M``183RE`$D@J7TYU(`^0?``,L*P1H&4`<P1(YP`4*F\`#"9L$DA@&DAX``1(
- + M;0`,+Q-.NEAL3^\`#$J`9S(F:P`$(`MFXDJL$D1F'G`NL"T`#&862JP20&<4
- + M$BT`#6<.L@!F!DHM``YG!'`!8`)P`$S?*`!.=2`/64"PK!&@90!RG$CG`P!^
- + M`'P`8"8@;!'P+S!H`$ZZ=")83R!L$?`@,&A&9P@O`$ZZ=!!83U*'<%+<@+ZL
- + M$?AMU$*L$?AP!"E`$@1,WP#`3G4@#Y!\`%2PK!&@90!R2)[\`$1(YP8V+"\`
- + M9"IO`&`D;P!H("P1]"(L$?BR@&8H(@#2@2`!Y8"0@="`D('G@-"!T(`O`"\L
- + M$?`I01'T3KI=[%!/*4`1\"`L$?@B`.6!DH#2@9*`YX'2@-*!)FP1\-?!0JL`
- + M1D*K`$I*AF8(2JP2:&<``MA*%6<22'@`.DAM``%.NG(&4$]*@&8$2A)F!"9-
- + M8#`@34H89OQ3B)'-(@@@2DH89OQ3B)'*THA4@2\!3KHDSB9`+HTO"B\`80`7
- + MND_O``P@+!'X(@#E@9*`TH&2@.>!TH#2@2!L$?#1P47H``1*K!(T9S@O"B\+
- + M3KH:&E!/*@!L-B`L$?@B`.6!DH#2@9*`YX'2@-*!(&P1\-'!2&@`!"\+3KH:
- + M*%!/*@!@#"\*+PM.NAH:4$\J`$J%:B`O"TAL!*8O+"FL0J=.NFF@<`$I0!)L
- + M3^\`$'``8``"$"`L$?@B`.6!DH#2@9*`YX'2@-*!)&P1\-7!(#P``/``P*H`
- + M#`R```"@`&8``09*AF8(2JP2"&8``/HO"B\+80`!V"`L$?@B`.6!DH#2@9*`
- + MYX'2@-*!(&P1\"ZP&$8O"V$``B)/[P`,)D!*@&<``+A*AF<&2JP2"&8(2JP2
- + M+&<``*9(;P`:+PM.NADN4$]*@&8``)1*AF=P2JP2"&=J(#P``/``P*\`(@R`
- + M``!``&982JP2/&8D($TJ2R`L$?@B`.6!DH#2@9*`YX'2@-*!(FP1\"9Q&$8C
- + MB!A&("P1^"(`Y8&2@-*!DH#G@=*`TH$B;!'PT\%-Z0`$0^\`&G(/+-E1R?_\
- + M/-E@'B`L$?@B`.6!DH#2@9*`YX'2@-*!(&P1\"&O`"(82B`+9P@O"TZZ<618
- + M3R`L$?@B`.6!DH#2@9*`YX'2@-*!)FP1\-?!*CP``/``RJL`#`R%``"@`&8&
- + M0JL`3F`D#(4``$``9A9*AF<*2JP2/&8$<`)@"G`!)T``3F`&<`,G0`!.(#P`
- + M``'_T*L`&G)`YXE.NFYJ+`!*K!(H9PP@!E*`:@)2@.*`8`(@!BP`#(```"<0
- + M;1`,K`````42!&P&<`4I0!($#(8``8:@;1`,K`````82!&P&<`8I0!($#(8`
- + M#T)`;10,K`````<2!&P*<`<I0!($8`)\`"\-3KI:;":`4JP1^%A/(`9,WVQ@
- + MWOP`1$YU(`^0?``0L*P1H&4`;M)(YP$T)F\`&"IO`!0N*P`:(`=2@"\`3KI:
- + M9"1`+H<O`"\-3KHA$$_O``PN`&PB+PU(;`2J+RPIK$*G3KIG+'`!*4`2;"Z*
- + M3KIP)$_O`!!@"$(R>``G2@!&3-\L@$YU(`^0?``,L*P1H&4`;F9(YS$V)F\`
- + M)"IO`"`@"V8$<`!@;DAX`"\O#4ZZ;FQ03R1`2H!F#DAX`#HO#4ZZ;EI03R1`
- + M(`IF#"]+`"!,WVR,3OI9FBX*GHU2AR!+2AAF_%.(D<LF!]:(4H,O`TZZ6;(D
- + M0"('(D!@`A+=4X%D^D(R>``B"B0++&PJ%$ZN_(Y83R`*3-]LC$YU(`^0?``,
- + ML*P1H&4`;=!(YP\T+B\`)"IO`"`@34H89OQ3B)'-+`A4ABHL$?A3A2@%Y828
- + MA=B$F(7GA-B%V(1@``"B)FP1\-?$("L`3G(!L(%G!E6`9@``ADJ'9PPO$V$`
- + M`,983TJ`9W0F;!'PU\0D4W`OL!)G!$H59@XO*P!&+Q-A`/B&4$]@/B!*2AAF
- + M_%.(D<H@"-"&+P!.NECN)D`@;!'P+K!(`"\-+P!A`!-B(&P1\"ZP2$8O"V$`
- + M^$XNBTZZ;KA/[P`0<`(@;!'PL+!(3F8*+S!(`$ZZ;J!83U.%<*[8@$J%:@#_
- + M7'P`>@`J;!'P)DU@(G`"L*T`3F<44H4@32)+<!,BV%'(__PRV-;\`%)2AMK\
- + M`%*\K!'X;=@I11'X3-\L\$YU(`]10+"L$:!E`&RL+PTJ;P`(2'@`+R\-3KIL
- + MP%!/2H!G!B!`2^@``7`NL!5F%!(M``%G"K(`9@I*+0`"9@1P`&`"<`$J7TYU
- + M(`^0?``0L*P1H&4`;&(O#2`L$A0,@`````5D``"*T$`P.P`&3OL`!`"2`$P`
- + M7``(`&P@+!(,2H!G&E.`9P93@&<B8&)!^@!Z2JP2&&=60?H`BF!00?H`GDJL
- + M$AAG1D'Z`*Y@0$'Z`,)*K!(89P1!^@#2*DA@,$'Z`1A*K!(89R1!^@$X8!Y!
- + M^@%<2JP2&&<40?H!\F`.0?H`Q$JL$AAG!$'Z`-0J2"\-2'@`4B\L$?@O+!'P
- + M3KIP-$_O`!`J7TYUO^P1H&4`:Z@@;P`((F\`!"`H`"Z0J0`N3G6_[!&@90!K
- + MCB!O``@B;P`$("D`+I"H`"Y.=;_L$:!E`&MT(&\`"")O``0@*``FD*D`)DYU
- + MO^P1H&4`:UH@;P`((F\`!"`I`":0J``F3G6_[!&@90!K0"!O``@B;P`$("@`
- + M'I"I`!Y.=;_L$:!E`&LF(&\`"")O``0@*0`>D*@`'DYUO^P1H&4`:PP@;P`(
- + M(F\`!"`H`!J0J0`:3G6_[!&@90!J\B!O``@B;P`$("D`&I"H`!I.=2`/44"P
- + MK!&@90!JU")O``@@;P`$(%`B41`8L!EF!$H`9O:0(4B`2,!.=2`/44"PK!&@
- + M90!JJB!O``@B;P`$(%`B41`8L!EF!$H`9O:0(4B`2,!.=2`/44"PK!&@90!J
- + M@$CG`38J;P`82'@`+B\53KIJDB9`2'@`+B!O`"@O$$ZZ:H)/[P`0)$`@"V8>
- + M(`IF&B!5+&\`'")6$!BP&68$2@!F]I`A2(!(P&!$(`MF!'#_8#P@"F8$<`%@
- + M-"!+(DH0&+`99@1*`&;VD"%(@$C`+@!F&B!5+&\`'")6$!BP&68$2@!F]I`A
- + M2(!(P&`"(`=,WVR`3G4@#U%`L*P1H&4`:>!(YP$V*F\`'$AX`"XO%4ZZ:?(F
- + M0$AX`"X@;P`D+Q!.NFGB3^\`$"1`(`MF'B`*9AH@52QO`!@B5A`8L!EF!$H`
- + M9O:0(4B`2,!@1"`+9@1P_V`\(`IF!'`!8#0@2R)*$!BP&68$2@!F]I`A2(!(
- + MP"X`9AH@52QO`!@B5A`8L!EF!$H`9O:0(4B`2,!@`B`'3-]L@$YU(`]10+"L
- + M$:!E`&E`2.<#`"`L$@@,@`````5D``$@T$`P.P`&3OL`!`":``@`A`",`)1^
- + M`'P`8&P@;!'PT<8O"&$`!EY83P@L``$1+6="4JP1'B`L$1ZPK!$F;B`@;!$6
- + M4JP1%A"\``H(+``&$2UG+DAL$1).NG,(6$]@(E.L$1Y(;!$22'@`"DZZ<$10
- + M3V`.2&P1$DAX``I.NG`T4$]2AW!2W("^K!'X;8Y@``"080`)4&```(AA``JR
- + M8```@&$`#"!@>'X`?`!@;"!L$?#1QB\(80``;EA/""P``1$M9T)2K!$>("P1
- + M'K"L$29N("!L$192K!$6$+P`"@@L``81+6<N2&P1$DZZ<G983V`B4ZP1'DAL
- + M$1)(>``*3KIOLE!/8`Y(;!$22'@`"DZZ;Z)03U*'<%+<@+ZL$?AMCDS?`,!.
- + M=2`/D'P`3+"L$:!E`&?\GOP`0$CG(00J;P!02&\`."\M``Q.NEXH4$]"+P!"
- + M("P2#$J`9Q)3@&<&4X!G$F`6+VT`+@`,8`XO;0`F``Q@!B]M`!X`#$AO``Q.
- + MNCN.6$\@0$/O`!`2V&;\2JP2$&<&0B\`*&`P(#P`[4X`T*\`#"(L$@"R@&X.
- + M(#S___'PT*\`#+*`;`Q![P`C0^\`&Q+89OQ"+P`@2JP2,&<.+RT`"$AL!*Y.
- + MNFY:4$]*K!(D9SH@/````?_0K0`:<D#GB4ZZ9D8N`$JL$BAG#"`'4H!J`E*`
- + MXH!@`B`'+P`O+!($2&P$M$ZZ;AQ/[P`,<``P+0`0+P!(;P`\2&P$NDZZ;@1/
- + M[P`,2JP2(&<2<``P+0`2+P!(;`3"3KIMZF`8<``P+0`2+P!.NE,>6$\O`$AL
- + M!,A.NFW04$]*K!(<9C)*K!(@9Q)P`#`M`!0O`$AL!-!.NFVR8!AP`#`M`!0O
- + M`$ZZ5"A83R\`2&P$UDZZ;9A03R`\``#P`,"M``P,@```(`!G"`R```!@`&8B
- + M("T`%B(`X(ET`$8"PH+`@B\`+P%(;`3>3KIM8$_O``Q@#B\M`!I(;`3H3KIM
- + M3E!/0>\`%$JL$A!G!$'O`!`O"$AL!.Y.NF#^+I5A``!24$]*K0!.9BY*K0!&
- + M9SA(;!$22&P$\DZZ;5XNK0!&80``,%!/2JP2+&<<+RT`2F$``]183V`02JP2
- + M+&<*+RT`#&$``\)83TS?((3>_`!`3G4@#Y!\``RPK!&@90!EREE/+PTJ;P`,
- + M2JP25&<``K0(+``!$2UG-%*L$1X@+!$>L*P1)FX0(&P1%E*L$180O``B8``"
- + MCE.L$1Y(;!$22'@`(DZZ;0A03V```GA(;!$22'@`(DZZ;/903V```F9*K!),
- + M9P`!+'``$"\`!%&`9SQ3@&=44X!G)E6`9UI3@&<Z<A.0@6=>58!G:'(ZD(%F
- + M<$AL!/A.NE_*6$]@``(F2&P$_$ZZ7[Q83V```AA(;`4`3KI?KEA/8``""DAL
- + M!01.NE^@6$]@``'\2&P%"$ZZ7Y)83V```>Y(;`4,3KI?A%A/8``!X$AL!1!.
- + MNE]V6$]@``'22&P%%$ZZ7VA83V```<00+P`$<B"P`6-R<G^P`61L""P``1$M
- + M9U!2K!$>(BP1'K*L$29N*B!L$192K!$6$(!R"K`!9@`!C`@L``81+6<``8)(
- + M;!$23KINM%A/8``!=%.L$1YR`!(`2&P1$B\!3KIK[%!/8``!7'(`$@!(;!$2
- + M+P%.NFO84$]@``%(<@`2`"\!2&P%&$ZZ:T903V```300+P`$<B"P`65R<G^P
- + M`61L""P``1$M9U!2K!$>(BP1'K*L$29N*B!L$192K!$6$(!R"K`!9@``_`@L
- + M``81+6<``/)(;!$23KIN)%A/8```Y%.L$1YR`!(`2&P1$B\!3KIK7%!/8```
- + MS'(`$@!(;!$2+P%.NFM(4$]@``"X2JP24&9J""P``1$M9U!2K!$>("P1'K"L
- + M$29N*B!L$192K!$6$"\`!!"`<@JP`68``(8(+``&$2UG?$AL$1).NFVP6$]@
- + M<%.L$1YP`!`O``1(;!$2+P!.NFKH4$]@6'(`$@!(;!$2+P%.NFK64$]@1@@L
- + M``$1+6<P4JP1'B`L$1ZPK!$F;@X@;!$64JP1%A"\`#]@(E.L$1Y(;!$22'@`
- + M/TZZ:IY03V`.2&P1$DAX`#].NFJ.4$\0'1]```1F`/V42JP25&=&""P``1$M
- + M9S!2K!$>("P1'K"L$29N#B!L$192K!$6$+P`(F`B4ZP1'DAL$1)(>``B3KIJ
- + M2%!/8`Y(;!$22'@`(DZZ:CA03RI?6$].=2`/D'P`#+"L$:!E`&*>2.<!!"IO
- + M``Q*K!(P9PXO+0`(2&P%'DZZ:8I03TJL$B1G.B`\```!_]"M`!IR0.>)3KIA
- + M=BX`2JP2*&<,(`=2@&H"4H#B@&`"(`<O`"\L$@1(;`4D3KII3$_O``PO%6$`
- + M_&983TJL$BQG"B\M``QA```*6$],WR"`3G4@#U%`L*P1H&4`8AA(YR,`+B\`
- + M$"P'`H8``/``#(8``$``9D8(+``!$2UG,%*L$1X@+!$>L*P1)FX.(&P1%E*L
- + M$180O``O8")3K!$>2&P1$DAX`"].NFE04$]@#DAL$1)(>``O3KII0%!/#(8`
- + M`*``9D8(+``!$2UG,%*L$1X@+!$>L*P1)FX.(&P1%E*L$180O`!`8")3K!$>
- + M2&P1$DAX`$!.NFD"4$]@#DAL$1)(>`!`3KIH\E!/#(8``!``9D8(+``!$2UG
- + M,%*L$1X@+!$>L*P1)FX.(&P1%E*L$180O`!\8")3K!$>2&P1$DAX`'Q.NFBT
- + M4$]@#DAL$1)(>`!\3KIHI%!/#(8``,``9D8(+``!$2UG,%*L$1X@+!$>L*P1
- + M)FX.(&P1%E*L$180O``]8")3K!$>2&P1$DAX`#U.NFAF4$]@#DAL$1)(>``]
- + M3KIH5E!/#(8``(``9FIP`;"L$BQF8B(L%-!G#`@'``9F$`@'``%G"DJ!9DQT
- + M2<Z"9T8(+``!$2UG,%*L$1XB+!$>LJP1)FX.(&P1%E*L$180O``J8")3K!$>
- + M2&P1$DAX`"I.NF?T4$]@#DAL$1)(>``J3KIGY%!/3-\`Q$YU(`]90+"L$:!E
- + M`&!,64](YP,4*F\`&"95?@!*K!(P9P)^!TJL$B1G"B`'T*P2!"X`4H=*K!)4
- + M9UY4AV!:2JP23&=2$"\`$$B`2,!1@&<@4X!G'%.`9QA5@&<44X!G$'(3D(%G
- + M"E6`9PIR.I"!9A)4AV`D2JP25&<$5(=@&E*'8!80+P`0<B"P`6T&<G^P`6T$
- + M6(=@`E*'$!L?0``09IX@+!(L9UXL/```\`#,K0`,#(8``(``9BI3@&9(("P4
- + MT&<0""T`!@`/9A0(+0`!``]G#$J`9BYP2<"M``QG)E*'8"(,A@``0`!G&`R&
- + M``"@`&<0#(8``!``9P@,A@``P`!F`E*'(`=,WRC`6$].=2`/D'P`&+"L$:!E
- + M`%\^GOP`$$CG#P!^`'H`?`!@&B!L$?#1QB\(80#^S%A/L(=O`BX`4H5P4MR`
- + MNJP1^&W@5(<O1P`8("P29"(O`!A.NEX(+@!F`GX!("P1^"('3KI=^"]``!`@
- + M+!'X(@=.NEWJ2H%6P$0`2(!(P"(O`!#2@$*O`!PO00`48```RBP%>``@!>6`
- + MD(70@)"%YX#0A="`*@`@!^6`D(?0@)"'YX#0A]"`+T``$"!L$?#1Q2\(80#[
- + MXB!L$?#1Q2Z(80#^*EA/+@#<KP`4VJ\`$+RL$?AL&"`'T(0N!-ZO`!@O!R\`
- + M80`#HE!/*`=@O@@L``$1+6="4JP1'B`L$1ZPK!$F;B`@;!$64JP1%A"\``H(
- + M+``&$2UG+DAL$1).NFA86$]@(E.L$1Y(;!$22'@`"DZZ99103V`.2&P1$DAX
- + M``I.NF6$4$]2KP`<+B\`%"HO`!RZAVT`_RQ,WP#PWOP`$$YU(`^0?``0L*P1
- + MH&4`7=113TCG#P!^`'H`?`!@&B!L$?#1QB\(80#]9%A/L(=O`BX`4H5P4MR`
- + MNJP1^&W@5(<O1P`0("P29"(O`!!.NER@+T``%&8&<`$O0``4>@!^`'P`>`!@
- + M``"J2H9G``""(`8B+P`43KI<>$J!9EP(+``!$2UG0E*L$1X@+!$>L*P1)FX@
- + M(&P1%E*L$180O``*""P`!A$M9RY(;!$23KIG:EA/8")3K!$>2&P1$DAX``I.
- + MNF2F4$]@#DAL$1)(>``*3KIDEE!/>@!@%B`'T(4N!=ZO`!`O!R\`80`"0%!/
- + M*@<@;!'PT<0O"&$`^D`@;!'PT<0NB&$`_(A83RX`4H9P4MB`O*P1^&T`_U((
- + M+``!$2UG0E*L$1X@+!$>L*P1)FX@(&P1%E*L$180O``*""P`!A$M9RY(;!$2
- + M3KIFSEA/8")3K!$>2&P1$DAX``I.NF0*4$]@#DAL$1)(>``*3KIC^E!/3-\`
- + M\%!/3G4@#U%`L*P1H&4`7&!(YP\`?@!\`&```30J!R@&Y828AMB$F(;GA-B&
- + MV(0@;!'PT<0O"&$`^^!83]Z`4H:\K!'X;`)4ATJ%9V"^K!)D;5H(+``!$2UG
- + M0E*L$1X@+!$>L*P1)FX@(&P1%E*L$180O``*""P`!A$M9RY(;!$23KIF(%A/
- + M8")3K!$>2&P1$DAX``I.NF-<4$]@#DAL$1)(>``*3KIC3%!/GH4@;!'PT<0O
- + M"&$`^0Y83[RL$?AL``".""P``1$M9S!2K!$>("P1'K"L$29N#B!L$192K!$6
- + M$+P`+&`B4ZP1'DAL$1)(>``L3KIB_E!/8`Y(;!$22'@`+$ZZ8NY03P@L``$1
- + M+6<P4JP1'B`L$1ZPK!$F;@X@;!$64JP1%A"\`"!@(E.L$1Y(;!$22'@`($ZZ
- + M8KA03V`.2&P1$DAX`"!.NF*H4$^\K!'X;0#^R`@L``$1+6="4JP1'B`L$1ZP
- + MK!$F;B`@;!$64JP1%A"\``H(+``&$2UG+DAL$1).NF4<6$]@(E.L$1Y(;!$2
- + M2'@`"DZZ8EA03V`.2&P1$DAX``I.NF)(4$],WP#P3G4@#Y!\``RPK!&@90!:
- + MKEE/2.<#`"PO`!0N+P`08```P"`'(BP26$ZZ69XO0``((`8B+!)83KI9D+"O
- + M``AO6`@L``$1+6<P4JP1'B`L$1ZPK!$F;@X@;!$64JP1%A"\``E@(E.L$1Y(
- + M;!$22'@`"4ZZ8<Y03V`.2&P1$DAX``E.NF&^4$\@!R(L$EA.NEDZWJP26)Z!
- + M8$@(+``!$2UG,%*L$1X@+!$>L*P1)FX.(&P1%E*L$180O``@8")3K!$>2&P1
- + M$DAX`"!.NF%V4$]@#DAL$1)(>``@3KIA9E!/4H>^AFT`_SY,WP#`6$].=;_L
- + M$:!E`%G(2.<@-"9O`!PJ;P`4)&\`&'`NL!)F#B!O`!A**``!9R1@`AK:2A)F
- + M^K7O`!AC%A`J__]R+[`!9PQT.K`"9P8:P6`"&MM*$V;Z0A5,WRP$3G4@#Y!\
- + M``RPK!&@90!9:B\L$>Q(;`4J2&P1-$ZZ7\Q(;`942&P1-$ZZ7\!(>``!3KI>
- + MXD_O`!A.=0``3OD``(2J3OD``(.83OD``(AL3OD``(6\3OD``(.<3OD``(/4
- + M3OD``(6(3OD``(4^3OD``(*T<&%(YR`R(&\`&$/O`!Q%^@`<)F\`%"0++'D`
- + M```$3J[]]B`+D(),WTP$3G46P$YU```@;P`$("\`"")O``PO;P`0``193TCG
- + M(30N`"9O`!PJ2"1)+TD`%&`"&MI*$F<$4X=N]K7O`!1C&A`J__]R+[`!9Q!T
- + M.K`"9PI3AV\&&L%@`AK;2A-G!%.';O9"%4J'7L!$`$B`2,!,WRR$6$].=2`O
- + M``0@;P`((F\`#%E/2.<G-BX`*D@O20`@2JP3?&<``/X@;!-\)F@`#$ZZ!0XB
- + M*P`$LH!F``#H(&P3@$AH`"QE4@34ZZ5^XJ2R`-
- + M9O),WR@`6$].=2!O``2>_``02.<@-BI()FT`#$/K`0PO2``<+TD`("!+8;1"
- + MK!-\0JL!#$*M``0@%>6`($`G:``,`1A!ZP`(+T@`&&```)Y!ZP`0(DA*&6;\
- + M4XF3R"`)D<C0_``L<@`R`-*(4H%T`#0!/T``%C]!`!0@`DZZ6-8D0$J`9@9P
- + M#&```)Q-TD*>(&\`(""*+U``("SK`(@LZP"$0>L`C$/J``PBV"+8(M@E:P`,
- + M`!@E:P!\`!Q+Z@`@.V\`%``$.V\`%@`&(&\`'"`H``12J``$*T``"$'J`"Q#
- + MZP`0$-EF_"JK``@J;P`<(A4D+P`8+&PJ%$ZN_Y1*@&8`_TXG:P$,`1!"K0`$
- + M+&PJ%$ZN_WQR=-*!L(%F!'`!8`I.NC?0*4`IK'``3-]L!-[\`!!.=2!O``19
- + M3TCG(#8O2``4<!!.NE@,*D!P1^6(3KI8`B9`(&\`%"`(2AAF_%.(D<`@"%*`
- + M3KI7ZB1`3KH+"B`-9P``@B`*9WP@"V=X*TL`#"M\```!'``(D<@G2`$0)T@!
- + M#"=(`10FBB!O`!04V&;\3KH!=B=```0B+P`4+&PJ%'3^3J[_K"J`9R)!ZP`(
- + M(@`D""QL*A1.KO^:2H!G#B!-80#^.$J`9Q0@#6`^+&PJ%$ZN_WQ.NC<**4`I
- + MK"!-80``-F`D<`PI0"FL(`UG!B!-3KI5XB`*9P8@2DZZ5=@@"V<&($M.NE7.
- + M<`!,WVP$6$].=2!O``1(YP`6*D@F;0`,3KH*1$*L$WP@2V$`_:`@4TZZ5:(@
- + M%6<*(@`L;"H43J[_IB!M``Q.NE6,($U,WV@`3OI5@B!O``193TCG`S0O2``4
- + M(&\`%"IH``R7RTZZ"?A*K0$49R1^`"1M`0P@;P`4+"@`!&`$4H<D4KZ&;`0@
- + M"F;T*TH!$$*M`10@+0$09R(F0-;\`"`I;P`4$WQ%[0$0(%(I2!.`(%(DT"!O
- + M`!12J``$(`M,WRS`6$].=2!O``0O#2I(3KH)D"`M``0J7TYU(&\`!"`O``A(
- + MYP$4+@`J2"9M``Q.N@EP<`$G0`$4*T<`!$S?*(!.=4CG`0(L;"H4<@!.KO^"
- + M+@`B`$ZN_X(@!TS?0(!.=0``(&\`!")O``A93TCG,S8J2'X`(&P4L"PH`.`O
- + M20`@2H9F($JL$<AF&D'L![PB""QL*A0D/````^U.KO_B+`!G`GX!2H9G-B(&
- + M0>P'QB0(0>P1T"8(+&PJ%$ZN_IXB!B0-)B\`($ZN_IXB!G0*3J[^R$J'9U@B
- + M!DZN_]Q@4"!L%+`F:`"X,'S__[?(9T!#[`?,<"4L>``$3J[]V"1`2H!G+"EL
- + M$=`'L"E-![0O"B!++$I#[`>HE<HF;P`D3J[]M$S?!``B2BQX``1.KOYB3-]L
- + MS%A/3G4@;P`$0^\`"&$`_RI.=2!O``1#[P`(80#_''`43KI7NDYU``!(YP`&
- + M<`AR`"QX``1.KO\Z*D!*@&8$<`!@+D*M``1(>``H<``O`$'L!^!R`9/)P4%.
- + MNC;&4$\J@&8,(DUP"$ZN_RYP`&`"(`U,WV``3G4@;P`$2.<`!BI((`UG&"!-
- + M80``'B!53KHW"B)-<`@L>``$3J[_+DS?8`!.=2!O``1(YP`&*DA*K0`$9Q0B
- + M52QX``1.KOX@(E5.KOXF0JT`!$S?8`!.=2!O``0@4")H``YP`!`I``]R`>&A
- + M(`%.=2!O``0@+P`((B\`#$CG`P8L`2X`*DAAJDJ'9@1*AF<>(E4C1P`@(T8`
- + M)#-\``D`'"QX``1.KOXR<`$K0``$3-]@P$YU(&\`!$CG``8J2$JM``1G'")5
- + M+'@`!$ZN_BQ*0&<.(E5.KOXF0JT`!'`!8`)P`$S?8`!.=2\.("P4O"(`2$%"
- + M0=*`("P4L+.`*4`3B$*L$XQ#[`?T<``L>``$3J[]V"E`$X1P_TZN_K9(@$C`
- + M*4`'\$JL$X1G"$J`:P1P`6`"<``I0!.0+%].=2\.("P'\&L(+'@`!$ZN_K`@
- + M+!.$9PHB0"QX``1.KOYB+%].=2`O``113TCG`P`N`$ZZ!HP@!TZZ`9!*@&<H
- + M(D`@:0`<<D#EB<*1+T@`#"`!(&D`!")O``Q.D2P`(`=.N@%((`9@`G#_3-\`
- + MP%!/3G4@+P`$+P<N'V"N```@;P`$("\`"")O``PO;P`0``0O;P`4``@O;P`8
- + M``PO;P`<`!`O;P`@`!0O;P`D`!A13TCG!Q0N`$CO`P``%'P`*FP3E&`62JT`
- + M!&8*,'P``2M(``1@#%*&VOP`)+RL$YAMY"`L$YB\@&9X<@K3K!.8("P3F"(`
- + MYX'2@.6!(`%.NE*<*D!*@&8,<`PI0"FL</]@``".</;0K!.8(@#G@=*`Y8$@
- + M;!.4(DU@`A+84X%D^B`L$Y1G!B!`3KI0]BE-$Y1Z]MJL$Y@@!>>`T(7E@-O`
- + ME\LK2P`$4H7:_``DNJP3F&WP(`;G@-"&Y8`@;!.4(:\`%`@$(8<(`"&O`!@(
- + M"$OO`"`AG0@,(9T($"&="!1+[P`L(9T(&"&="!PAG0@@(`9,WRC@4$].=2`O
- + M``0B`&L6LJP3F&P0(`'G@-"!Y8`@;!.40K`(!$YU("\`!$CG`00N`&L>OJP3
- + MF&P8(`?G@-"'Y8`J;!.4V\!*K0`$9P0@#6`(<`DI0"FL<`!,WR"`3G4@+!.8
- + M3G4``"!O``1(YP`&*D@L;!3$3J[_O@:5#PP_`'``3-]@`$YU("\`!"!O``A9
- + M3P2`#PP_`"(\``%1@"Z`3KI-6B"`(!<B/``!48!.NDU,(`$N@7(\3KI-0B%`
- + M``0@%W(\3KI--B`!Y8"0@>>`T('0@"%```A83TYU(&\`!%E/2.<@!$O0(!TB
- + M`.F!DH`@`>>`T($B`.6!TH#O@2`=)`#I@I2`Y8(@'2]!``AR,DZZ3.K0@M"O
- + M``@&@`\,/P!,WR`$6$].=2`O``193RZ`0>P(""`(6$].=2!O``193RZ(0>P(
- + M""`(6$].=2`L"`A.=0``(&\`!")O``@@+P`,64](YS\V+@`J2"])`"B7RTZZ
- + M`[`B#20++&PJ%$ZN_7XF0"("3J[]>"`+9@9.NC$(8%XD;P`H0A(J!U*%(A,D
- + M*P`$)@TH"BQL*A1.KOY*2H!G&"(+3J[]>$H29@1P`F`L+P1.NDT\6$]@*$ZN
- + M_WPL`'(R1@&P@68(""L``0`+9I0B"TZN_7@@!DZZ+[(I0"FL</],WVS\6$].
- + M=0``64]*K`@Z9@Q![P`#*4@(.F'N8!9![P`#(FP(.K/(9`1P`6`"</\I0!.<
- + M6$].=5E/2.<!%"XO`!1*K!.<9@)AP"IL"#Y@+B`L$YQO#$'O``\B;0`$L\AB
- + M$$J`:AQ![P`/(FT`!+/(9!`F52\-3KI.(EA/*DL@#6;.*4T(/DJ'9@1P`&`B
- + M4(<O!TZZ3W(@0""L"#Y#[P`3(4D`!$/H``A83RE`"#X@"4S?*(!83TYU```@
- + M+P`$64\N@$'L"%H@"%A/3G4@;P`$64\NB$'L"%H@"%A/3G4@+P`$64\N@"`L
- + M%*QG#B!`3KKZ_DJ`9P1R`6`"<@`@`5A/3G4@+P`$(&P4K'(`3OKZI$ZZ^=@I
- + M0!2L9@I(;`AH3KKYM%A/(&P4K$ZZ^FB!K!.@3G4@;!2L3OKZ!`CL``P3HDYU
- + M("\`!`@```Q6P$0`2(!(P$YU".P`#1.B3G4@+P`$"```#5;`1`!(@$C`3G5.
- + MNB^2<``@;"GD$"@`#W(!X:K!.@3G5.^B_D("\`!%E/2.<!%B]``!!^`&`N
- + M("T`%$ZZ+SHF0$J`9Q1*JP`49@Y^`7`!)T``%"=M`!@`&")-<!PL>``$3J[_
- + M+B!L*>0L>``$3J[^C"I`2H!FP"`'3-]H@%A/3G4@+P`$2.</!"X`<`'OH"P`
- + M<`F^@&8&<`!.N@L4("P4I,"&9P:-K!2H8'HJ!D:%RZP4J$J':V9P(+Z`;&`@
- + M!^>`0>P3I"IP"``P?``!N\AF+"`'58!G%%.`9Q!R#9"!9SQ9@&<X48!G-&`*
- + M2&P(@$ZZ^'!83W``3KH*MF`@(`UG'"`'YX`H!D'L$Z2(L`@$B:P4I"`'3I5&
- + MA,FL%*0@+!2HP(9FBDS?(/!.=2`O``0O#B(L$Z""@'``+'@`!$ZN_LXL7TYU
- + M("\`!"\.(@`@+!.@@($L>``$3J[^PBQ?3G4@+P`$2.<#`"X`?`!A`/X02H!G
- + M"'P!<`YA`/\,(`=A`/YB2H!G"'P!<`)A`/[Z(`=A`/YJ2H!G"'P!<`-A`/[H
- + M(`=A`/Z&2H!G"'P!<!1A`/[6(`9,WP#`3G4@+P`$+P<I0!&H<`@N'V``_KQP
- + M`&$`_V!@DV2.<!%'X`2^P3I#9\``$JBT*M``12AU"-<""^@&WP0JP4J$*L
- + M%*1"K!.@80#]U&$`_>IA`/VB3-\H@&``_?AA`/VX8`#^"```2&P(E$ZZ]TQ8
- + M3TYU("\`!"\-3KI,="I`2H!F`F'B(`TJ7TYU(&\`!"`O``@O"TZZ2F@F0$J`
- + M9@)AQB`+)E].=2!O``0O#2I((`UF!$OL")X@34H89OQ3B)'-(`A2@$ZZ3"@@
- + M0$J`9@1P`&`((D@2W6;\(`@J7TYU64](YP,T?@!\`"!L%+`F:`#08"Q**P`(
- + M9B0P/`4`P&L`#F8:4H<@:P`*(`A*&&;\4XB1P"`(W(#<JP`45(8F4TJ39M`@
- + M!U*`Y8#0AF$`_THI0!3(Y8<@0")`T\=%Z0`$+T``%&8*0>P(D"E(%,A@5B!L
- + M%+`J:`#08$)*+0`(9CHP/`4`P&T`#F8P)FT`"BXM`!0@;P`4(,HO2``48`(4
- + MVTH39OH4_``])FT`$&`"%-L@!U.'2H!F]D(:*E5*E6:Z(&\`%$*03-\LP%A/
- + M3G4@;P`$("\`""\-*D@J@$*M``3E@&$`_K0K0``(*E].=2!O``0B;P`(("\`
- + M#$CG(C0F22I(2H!G"B!+80#^PB1`8`(D2R`*9SXB%20M``2T@6TB+`'<AG00
- + MTH*\@6T"(@8J@2`!Y8`@;0`(3KI(YBM```AG$D?M``0B$U*;Y8$@6R&*&`!P
- + M`4S?+$1.=2!O``0B;P`(("\`#&&22H!F!&$`_AI.=2!O``0B;P`(2.<`%"9)
- + M*D@@+0`$T*L`!+"5;Q+0@"J`Y8`@;0`(80#^&BM```@B+0`$Y8$@;0`(T<$@
- + M*P`$(@#E@2)K``A@`A#94X%D^M&M``0@:P`(3-\H`$[Z2-8@;P`$(F\`""]O
- + M``P`!"`O`!`B+P`464](YP(T+`$J221(+T@`$$J`9T13@&<*4X!G``"V8```
- + M]%.&9R(@+P`8(@V0@2!O`!!",`@`($$B;P`08`(2V%.`9/I@``#.0>P(H")O
- + M`!`2V&;\8```OB9O`!A@;G!<L!5F9DHM``%G8%2-<`&\@&8&%/P`86!4(`95
- + M@&9&$"W__TB`2,!R(Y"!9RY5@&<J58!G)E.`9R)3@&<>4X!G&G(5D(%G%'(<
- + MD(%G#E6`9PIR'Y"!9P15@&8$%/P`)Q3M__]@"!3M__]@`A3=N\MECF!`)F\`
- + M&&`V<"JP%68N2BT``6<H5(T0+?__2(!(P')ED(%G#'()D(%F#!3\``I@#A3\
- + M`!M@"!3M__]@`A3=N\MEQD(23-\L0%A/3G6>_`$L2.<_-BIO`5@@;!'$#&@`
- + M)0`49`I(>``43KK)OEA/0JP1#'`!*4`1""E`$2YP`BE`$2HI0!%0*7P```"$
- + M$4R3R2QX``1.KO[:*4`4L$ZZ\YPI0!2T9@I(;`BB3KKS>%A/(&P4M$ZZ]"PI
- + M0!2X+&P4M"!6+&@`%"E.%,1![P$P3J[_OBEO`3`4O$ZZ])1.NONL(&P4L"`H
- + M`*QG$.6`(D`B*0`TY8$I013`8`8I:`"$%,!*%68``.A![`BZ(@@L;"H4)#P`
- + M``/N3J[_XBP`0>P(P"((3J[_XBX`0>P(QB((3J[_XBH`2H9G"$J'9P1*A68B
- + M2H9G!B(&3J[_W$J'9P8B!TZN_]Q*A6<&(@5.KO_<80#[<G`!+P`O!2\`+P<B
- + M!L%!3KHC6"!L$<@@*``<0>\!6&$`_)Y/[P`0?`!^`&!0(FP1R"!I`"0@,'@`
- + M9SXB`$/O`#`D"2QL*A1V0.6+3J[^;DJ`9R8B;!'((&D`)-''("@`!&<((@(D
- + M`$ZN_(Y![P%(0^\`,'`!80#\V%*&4(<@;!'(O*@`'&VF8``"S"QL*A1.KO_*
- + M*`!.KO_$*@!^`"!L%+`L*`#@9BA^`4'L",PB""0\```#[4ZN_^(L`&820>P(
- + MSB((3J[_XBP`9@1A`/JD+P<O!G``+P`O!2($P4%.NB**0>\!6'`!80#[UB`\
- + M```%&F$`^HX@0#%\!```$B]``#QP0.6(80#Z>D_O`!!^0.6/+T`!.&`"4HT0
- + M%4B`2,!![`_I"#```P@`9NP0%6<``A9R(K`!9C!2C29-8!!P*K`59@A*+0`!
- + M9P)2C5*-$!5G!G(BL`%FYB1-$!5R(K`!9@)2C7P"8%1P)[`59B!2C29-8`)2
- + MC1`59P9R)[`!9O0D37`GL!5F`E*-?`%@+B9-8!!P7+`59@A*+0`!9P)2C5*-
- + M$!5G$G(@L`%G#'(*L`%G!G()L`%FVB1-?``@2RH*FHL@!5*`+T@`*&$`^;8F
- + M0$JO`4QF("`%($LB;P`H3KI#WD(S6`!![P%((DMP`&$`^V!@`/\FVH5R$-J!
- + MNH=O%"!O`3A.ND2((`5A`/EV+@4O0`$X+PH@!B!+(F\`+'(!80#[KEA/(@LD
- + M+P$X)@<L;"H43J[\N"H`;!!"$B\O`"A(;`C43KKP?E!/2H5F(B\*(`8@2R)O
- + M`"QR`&$`^W1![P%,(DMP`&$`^NA83V``_JQZ`2!O`"Q"J``(0B@`$4(H`!`O
- + M"B`&($LB;P`L<@)A`/M`0>\!0'`080#Z)EA/(@LD+P`L+&PJ%$ZN_,HH`&8\
- + M8"IZ`")O`"S2_`$80>\!/'`!80#Z($J`9@1X9V`2(B\`+"QL*A1.KOS$*`!*
- + MA&?2(B\`+"QL*A1.KOR^<'30@+B`9PI(;`CH3KKOREA/2H5G(B\*(`8@2R)O
- + M`"QR`&$`^L!![P%,(DMP`&$`^C183V``_?@@+P%`(&\!1$ZZ/AI![P%(0^\!
- + M/&$`^BH@2TZZ0TY@`/W6(&\!.$ZZ0T(@;P`L3KI#.F$`^))![`D"3KHC5BE`
- + M"`AF"$'L"0@I2`@(0>P)#DZZ(T`I0`@<9@8I;`@("!Q![`D83KHC+"E`""!F
- + M"$'L"1XI2`@@0>P)(DZZ(Q8I0`@D9@A![`DH*4@()$'L"3!.NB,`*4`4S&8(
- + M0>P).BE(%,P@+P%,(&\!4")L%,A.NE&^<`!.ND:T3-]L_-[\`2Q.=2`O``1(
- + MYP,`+@!*K!309P0@!V!@?``@!P*````!)&<"?`@(!P`'9P0`1@`%"`<`!&<$
- + M",8``@@'``%G!`C&```(!P`#9P0(Q@`!"`<``&<$",8`!B`'<DG`@7)`L(%F
- + M!`!&`$((!P`)9P0(Q@`%(`8*0``/3-\`P$YU("\`!$CG!@`L`$JL%-!G""`&
- + M`D`/_V!>>@`*1@`/"`8``V<$>DGEC2`&<@7`@5N`9@0(Q0`'"`8``F<$",4`
- + M!`@&``!G!`C%``$@!G)"P(%G!`C%``8(!@`!9P0(Q0`#"`8`!F<$",4```@&
- + M``5G!`C%``D@!4S?`&!.=0``2.<#`$ZZ\7HN`'P`8`HO!DZZ[^)83U*&O(=M
- + M\DS?`,!.=2`O``0O!RX`8=1.NN]63KKV6"!L%+1.NNX4+P=.NL.J6$\N'TYU
- + M("\`!"\'+A]@U```("\`!"(O``@@;P`,44](YP,D+`$N`"I(3KKUU"`'3KKP
- + MV$J`9QHB0"!I`"`O2``4(`8@:0`$(DTD;P`43I)@`G#_3-\DP%!/3G4``)[\
- + M``Q(YR\V*F\`-'X#SJ\`.'P!(&P4L"9H`+@J/````^Q.NO5^2H=G"G`"OH!G
- + M!'(`8`)R`2]!`"AP`;Z`9PA5AV<$<`!@`G`!+T``+"!-0^P)0$ZZ.Z)*@&8&
- + M>/]@``%4</\@;!2P(4``N"(-+&PJ%'3^3J[_K"X`(&P4L"%+`+A*@&9X+&PJ
- + M%$ZN_WQ.NB&,+``@+!&D<BY&`;"!9P1*@&8*?@$J/````^Y@%B`&58!F#`@O
- + M``@`.F<$<`%@`G``+@!*AV<L?``(+P`(`#IG'`@O``\`.F<&>`)@``#6("\`
- + M/$ZZ_88H`&```,AX_V```,(I1BFL</]@``%"0J<L;"H4<@(D#TZN_QQ/[P`$
- + M)$!*@&<,(@<D"DZN_YI*@&86(`IG""0*<@).KO\63KHAYG#_8``!""@J`'0D
- + M"G("3J[_%B('3J[_IG!0Z8C`KP`X#(````4`9@QP$2E`*:QP_V```-I*KP`H
- + M9P8(!``#9@Q*KP`L9Q((!``"9PQP#2E`*:QP_V```+8(+P`)`#IG(B(-)#P`
- + M``/N3J[_XDJ`9P@B`$ZN_]Q@"DZZ(6IP_V```(P(+P`(`#IG!"`%8`8@/```
- + M`^TD`"(-+&PJ%$ZN_^(J`&8(3KHA/G#_8&`(+P`)`#IF!$J&9@0L!&`"?/]^
- + M`$JO`"AG`GX!2J\`+&<$",<``0@O``,`.V<$",<``R\'(`4B!DZZ&SY83RX`
- + M;!QP_R!L%+`A0`"X(@4L;"H43J[_W"!L%+`A2P"X(`=,WVSTWOP`#$YU(&\`
- + M!"\O``PO+P`,+PAA`/VH3^\`#$YU(&\`!$CG.`!P_\`H``-R`!(`</_`*``"
- + M=``4`'#_P"@``78`%@!P_\`0>``8`.&$B(/AA(B"X82(@2`$3-\`'$YU2.<C
- + M-$OL%49![`ED1>P)5"3(0>P):"3(0JP)8$*:?@`L+!5.1^P<D&`\("L`!"(`
- + MY8$@3='K``A#Z`?J1>P)5"6)&`!*@&<&<`$I0`E@2H=G!DJK``1F""`31(`I
- + M0`E<4H?6_``0OH9MP'X`+"P52F`Z<``B!P:!```%V!`U&`!(P.F`($TB``:!
- + M```'4M'U&``&@```!TXD-0@`Y8)#Z`?J1>P)5"6)*`!2A[Z&;<),WRS$3G4@
- + M;P`$(F\`")[\"BA(YSLV+T@`*"])`"P@"&8(3>P);"].`"AP.B!O`"BP$&8$
- + M4J\`*"!O`"AP.DZZ/"I*@&9.<`HB`"!O`"@@"$H89OQ3B)'`THA2@7!!LH!E
- + M!G#_8``"3$'L"7A#[P`Q$MAF_$'O`#%#[`F$3KH\5$'O`#$B;P`H3KH\2$'O
- + M`#$O2``H0J<O+P`L3KK^6E!/+@!2@&8&</]@``(((`=![P!R(CP```G:3KH>
- + M`"P`(`=.NNM$2H!F!G`LO(!D!G#_8``!X$'O`(IA`/XX+@!![P".80#^+BIO
- + M`"PJ@$'O`))A`/X@*T``!$'O`)9A`/X4*T``"$'O`)IA`/X(*T``#"(5:S!T
- + M,K*";BHF+0`(;R1X"K:$;AXH+0`$:Q@,A````7)N$$J`:PRP@FX(MH=G"DJ'
- + M9P9P_V```6K2@>6!("T`""0`U(+4@-2"("T`!"8`Y8/6@-:"UJT`#-:!UH=P
- + M+-:`O(-D!G#_8``!.$?O`)Y\`"1-8!`@2V$`_8@E0``06(M2AEB*O*T`!&WJ
- + M?`!@(!`;(@8&@0``!=@;@!@`<@`2`+*M``AM!G#_8```]E*&O*T`!&W:?`!!
- + M[0=*)$@O2``D8$H@2V$`_3HD@$OK``40*P`$<@`2`"5!``1G"E.!9P9P_V``
- + M`+Q'[0`!$!5R`!(`)4$`"&T**F\`++*M``QO!G#_8```G%*&U/P`$+RM``AM
- + ML'P`8`X@!@:````'ZAN;"`!2AKRM``QM["`&!H````?J0C4(`'P`VOP('F`>
- + M($MA`/R^*H!%ZP`$($IA`/RR*T``!$?J``12AE"-(&\`++R0;=I\`"1O`"0J
- + M;P`L8"A*AV8&0JH`#&`8$!M(@$C`)4``#'(!L(%G"$J`9P1P_V`.4H;4_``0
- + MO*T`"&W2<`!,WVS<WOP**$YU(&\`!%E/+PTJ2&`"4HT0%1]```1G)DB`2,!!
- + M[`_I"#```@@`9A80+P`$<BRP`6<,<BVP`6<&<BNP`6;0(`TJ7UA/3G4@;P`$
- + M(F\`""`O``PB+P`064](YP<4+`$N`"9)*D@@#6<2$!5(@$C`0>P/Z0@P``((
- + M`&8$<`!@2GH`8"(0+P`42(!(P"(%Y8'2A=*!TH`J`7`PFH"ZAF\$<`!@)E*-
- + M$!4?0``49Q!(@$C`0>P/Z0@P``((`&;&NH=L!'``8`0FA2`-3-\HX%A/3G4@
- + M;P`$(F\`"%E/2.<`%"9)0^\`"'``<AAA`/]L*D!*@&8$<`!@:B`O``@B`.F!
- + MDH`@`>F`D('I@":`<#JP%69.0>T``4/O``AP`'([80#_."I`2H!F!'``8#8@
- + M+P`((@#I@9*`Y8'3DW`ZL!5F($'M``%#[P`(<`!R.V$`_PHJ0$J`9@1P`&`(
- + M("\`"-&3(`U,WR@`6$].=2!O``0B;P`(64](YP$4*DDO2``,$!!R+;`!9@A^
- + M`5*O``Q@,$B`2,!![`_I"#```@@`9AAR*R!O``RR&%?`1`!(@$C`+T@`#$J`
- + M9P1^`&`$<`!@'"!O``PB36$`_Q0F0$J`9@1P`&`(2H=G`D25(`M,WRB`6$].
- + M=2!O``0B;P`(GOP`#$CG`"0J22](`!!P2K`09BA"E4/H``%![0`$+T@`#"!)
- + M(F\`#'`!(CP```%M80#^/"]``!!@``"T<$VP$&9\<`(J@$/H``%![0`,+T@`
- + M#"!)(F\`#'`!<@QA`/X0(D!*@&8&<`!@``#`1>D``7`NL!%G!G``8```L$'M
- + M``@B2"!*<`%R!6$`_>0B0$J`9@9P`&```)1%Z0`!<"ZP$6<&<`!@``"$0>T`
- + M!")(($IP`'(&80#]N"]``!!@,!`02(!(P$/L#^D(,0`""`!G&G`!*H!#[0`$
- + M<``B/````6UA`/V,+T``$&`$<`!@/"`O`!!F!'``8#)P+R!O`!"P$&8<0^@`
- + M`4'M`!`O2``,($DB;P`,80#]VB]``!!@""M\```<(``0("\`$$S?)`#>_``,
- + M3G4@+P`$(B\`""!O``PO;P`0``2>_``D2.<_%"I(*@`N`20'=@/$@R]``#@O
- + M00`\2H)F#"`'<F1.NC4<2H%F$B`'<F3EB4ZZ-0Y*@6<$<`!@`G`!+``@%4J`
- + M9PQ3@&=(4X!G9F```7X@+0`$(@!3@20!U(+4@28"Z8.6@B0#Z8*4@^^"+@7>
- + M@B]'`$!*AF<``51R/+"!;0`!3`:'``%1@"]'`$!@``$^("T`!"(`TH'2@"0!
- + MZ8*4@2("Z8&2@N^!VH$O10!`8``!'"@%?@`J+0`,4X4@!M"`T(;I@$?L"8;7
- + MP"]``"!@&B`;(@#2@=*`)`'I@I2!(@+I@9*"[X'8@5*'OH5MXBXO`#PO1``D
- + M(BT`#'0"LH)N!B8'4X-@`B8'(`-R9$ZZ-#`B`-*!2H!J`E:`Y(`O0``L(`,O
- + M00`P<F1.NC04(`%J`E:`Y(!V"=:M``PO0``T(`,O00`H<@Q.NC/V4H$@`>>`
- + MD('0@)"!T(!5@'(*3KHSX$?O`"C0F]"O`#30FY";4H!R!TZZ,\HN`6H"7H<L
- + M+0`$G(=J`EZ&>@$H+0`(8!PN!EZ'(BT`#.6!0>P)@M'O`""^L!@`;`@L!U*%
- + MNH1MX"`&T(#0AB(`Z8&2@"`!Z8"0@>^`(B\`)-*`+T$`0"`O`$#0K0`0T*\`
- + M2$S?*/S>_``D3G4@;P`$(F\`""`O``R>_`!82.<_-BI(+$U'[P`T)L`FR";)
- + M+TX`,$J`9QP@"$H89OQ3B)'`+`@B"-.O`#AP,[*`91Q\,F`880#ZJBP`G(TO
- + M0``X<@.\@6P&</]@``-Z+T8`+"!O`#A*$&8&</]@``-H0^\`=&$`^^8O0``X
- + M9@9P_V```U0F;P`\0>P)[B)+80#WL"X`9P)"DR!O`#A*$&<``KXJ2"](`'QA
- + M`/I((@"2C2]``#@O00!X=@.R@VP&</]@``,4(&\`.!`09R!R++`!9QIR.[`!
- + M9Q1#[P!P80#[?B]``#AF%'#_8``"["`\___Q\-"O`'0O0`!P(&\`.!`0<BRP
- + M`6<(<CNP`68``5A#Z``!($E#[P!<80#[NBI`2H!F!G#_8``"L$7M``%P++`5
- + M9P9P_V```J`@2D/O`$AA`/N4+T``.&8&</]@``**(&\`.$H09P9P_V```GP@
- + M2W`"(4``""%\````B``$("\`<$2`3>@'2BS`<`$LP%*&+,8@+P!T1(!-Z`=:
- + M+,!"GD*>UOP`$$7H!=AZ`"P\```'LB!*+R\`="](`"P@!2(&0>\`8&$`_&8N
- + M`"ZO`'0@!2(&0>\`3&$`_%183R@`2^H``D7K``B^@&\:($L@A'`!(F\`*!*`
- + M)DHA1P`$)$U"*0`!8!@@2R"'(F\`*$(1)DHA1``$)$T3?``!``$@!G(#P(%F
- + M#"`&<F1.NC%$2H%F$B`&<F3EB4ZZ,39*@6<$<`!@`G`!(@#E@4'L">8@,!@`
- + M(@#2@=*`)@'I@Y:!)`/I@I2#[X+:@E*(8```?U;P#_0F```1P@;P`X2A!G
- + M!G#_8``!9DJ'9P9P_V```5QX`'P`>@!"KP!$?@`J2V!P2JT'3F<^("\`1"('
- + MZ8$D+P!P!H$```=*)C,8`-:"+T,`1$J&9PJP@V<&</]@``$<1((K0@=*("\`
- + M+%*`*T`'4GP!8"8@!2(O`'0J+0=*VH%*A&<*L(5G!G#_8```[D2!*T$'2D*M
- + M!U)X`5*'VOP`$+ZK``AMBDJ&9P1*A&8&</]@``#(?`!^`"I+*"\`1&`Z<``B
- + M!P:!```%V!`S&`!(P.F`($O1P$/H!THO20!`2H9G"DJI``QF!"`$8`(@!=&M
- + M`!`L*0`$4H=8C;ZK``1MP&`@<`!R`2=!``@G0``$)"\`=$2"3>L'2BS"+,`L
- + MP"]``'@J;P`\+B\`+"`'4H`K0``,+"\`>&<(T(92@"M```QR,["!8P1P_V`P
- + MVOP'ZB`'($TB;P`P3KHQ;"!-T<=+Z``!0A!*AF<0(`8@32)O`'Q.NC%20C5H
- + M`'``3-]L_-[\`%A.=2!O``0O#2I(0>P)2")-80#T4$J`9PQ![`E((DUP`6$`
- + M_`PJ7TYU+PU![`GZ3KH2"BI`2H!F!BI?8```7'`!*4`HHDH59AY"K!5&0JP5
- + M2D*L')!"K!R80>P)2$/L'3`2V&;\8"P@34/L%49A`//T2H!G'G`ZL!5G$"!-
- + M0^P51G``80#[JDJ`9PA![!5&80#_=BI?8`#S#G`!*4`HHD/L%4:1R&$`\[Q*
- + M@&<(0>P51F$`_U1@`/+N(&\`!"`O``@B;P`,GOP`$$CG`Q0J24CO`0$`$"!O
- + M`!0O4``82JPHHF8$80#_1$JL%4IG"B`O`!BPK!56;"!^`$?L%49@$%*'UOP`
- + M$+ZL%4YM!'X`8#)*JP=.9NI@*GX!1^P52BPL%4I@#B`O`!BPJP`0;0A2AUB+
- + MOH9M[D/L%4;3QWX`'BD%U^F'0>P<D-''+PTO2``@(!!![P`<0^P51F$``,(@
- + M;P`@(B@`!"M!`"#E@4'L'3`B;P`@T>D`"$/L"50CB!@`*T@`*%A/3-\HP-[\
- + M`!!.=2!O``1#[!34<`!A`/\J0>P4U"`(3G4@;P`$("\`"")O``Q(YP$4+@`F
- + M22I(2JPHIF8.<`$I0"BF0>P>]&$`_CHO"R`'($U#[![T80``0EA/2H=G!D'L
- + M"@)@!$'L)MXG2``H3-\H@$YU(&\`!$/L%0!P`&&N0>P5`"`(3G4@;P`$("\`
- + M"")O``PO;P`0``2>_``,2.</-"X`)F\`+"I(?`!Z`"@1(`3G@"])`"#3P$7I
- + M"!Y@0"]*`"0@%;"2;38@;P`DL)!F*$J$9@8@*``$;AKGA"(H``0B;P`@!H0`
- + M``@:LK%(`&X$<`!@`G`!*@`L*``$8`93A%&*;+H@%2(\``%1@$ZZ+.PH`"`5
- + M(CP``5&`3KHLWM*'DH8L`6`(!H8``5&`4X1*AFOT8`@$A@`!48!2A`R&``%1
- + M@&SP(`8B/```#A!.NBRL)T``""`&(CP```X03KHLG"`!+T$`''(\3KHLD"=`
- + M``0@+P`<<CQ.NBR")H%*A6<"4I,@!%B`<@=.NBQP)T$`&&P$7JL`&"P\```'
- + MLDJ$:T`@!G(#P(%F#"`&<F1.NBQ,2H%F$B`&<F3EB4ZZ+#Y*@6<$<`!@`G`!
- + M*@`B`.6!1>P)YB`R&`"X@&U`4H:8@`4X8@!G(#P(%F#"`&<F1.NBP*2H%F
- + M$B`&<F3EB4ZZ*_Q*@6<$<`!@`G`!*@#E@$'L">;8L`@`2H1KQ@2&```';"=&
- + M`!0G1``<(`70@-"%Z8!%[`F&U<!"JP`08`XB*P`0Y8&8LA@`4JL`$"(K`!#E
- + M@;BR&`!LYE*$)T0`#$*K`"`G1P`D3-\L\-[\``Q.=2!O``0O#2I(("T`&"(`
- + MTH'2@$'L"@;1P2`M`!`B`-*!TH!#[`H;T\$@/```!VS0K0`4+P`O%2\M``0O
- + M+0`(+RT`#"\)+PA(;`I`2&P5+$ZZ,C1/[P`D0>P5+"`(*E].=2!O``0O#6$`
- + M_3@@0"I?8)0@;P`$(F\`""`O``PO!RX`(!&PAVT4(@=.NBL"T9`@$2('3KHJ
- + M^"*!8"I*@&HF4Y#?D6P@(!%$@"('3KHJX"(0DH!3@2"!(!%$@"('3KHJSIZ!
- + M(H<N'TYU(&\`!")O``A(YP$4)DDJ2"XM`!2>JP`49BPN+0`0GJL`$&8B+BT`
- + M#)ZK``QF&"XM``B>JP`(9@XN+0`$GJL`!&8$+A6>DR`'3-\H@$YU(&\`!")O
- + M``@@+P`,+V\`$``$GOP`<$CG/S0N`"IO`)@O20`L0I4O2``H0^\`7'`*(MA1
- + MR/_\("\`7'(^L(%L!$J`:@Y![P!@0^\`7'`\80#_%D'O`&1#[P!@<#QA`/\(
- + M0>\`:$/O`&1P&&$`_OI![P!P0^\`;'`,80#^[&!,("\`<%.O`'`&@```!VLB
- + M`'0#PH)F"G)D3KHIWDJ!9AH@/```!VS0KP!P<F3EB4ZZ*<A*@6<$<`!@`G`!
- + M(@#E@4'L">8@,!@`T:\`:"`O`&AOKBP\```';-RO`'`@!G(#P(%F#"`&<F1.
- + MNBF.2H%F$B`&<F3EB4ZZ*8!*@6<$<`!@`G`!)"\`;.6")@#6@]:`Z8-![`F&
- + MT<,L,"@`("\`:+"&;QI'[P!HG9M2DPR;````#&V>0J\`;%*O`'!@E"`O`%Q"
- + MKP!<>@!R`2]!`(@O0``D4H4@+P"(T(`O0`"(("\`B&[N("\`B&H$<`!@!'`!
- + MZZ`O0`"(2&\`,"\'2&\`D"!O`#A.D$'O`#Q#[P!H80#^+$_O``PH`&<N(`53
- + MA4J`:@9P_V```1!*A6H&4Z\`B$<`'KH"P`2H1O!IVO`(A@M-VO`(A@KB`O
- + M`'QK``#$(B\`4+*`9P``ND'Z^>(B;P`LL\AF!D'L%49@!$'L'O1\`"9(+T@`
- + MD&```(@@*P=.L*\`?&9V>@`D;P"08&0@*@=.L*\`?&=4(`7I@"(O`(@@;P"0
- + M!H````=*TK`(`)*K!THO00",2&\`,"\'2&\`E"!O`#A.D$'O`#Q#[P!H80#]
- + M;$_O``Q*@&82("\`4+"O`'QF""]O`(P`B&`F4H74_``0(&\`D+JH``AMDE*&
- + MUOP`$"!O`)"\J``(;0#_<'#_8"0@+P`DT:\`B"\O`"@O!TAO`)`@;P`X3I!P
- + M`2J`3^\`#"`O`(A,WRS\WOP`<$YU(&\`!")O``@@+P`,GOP`#$CG!S0N`"I(
- + M+TD`&`RM`````0`@;P9P`2M``"!(;P`<(`<@36$`_1Y83RP`2J\`'&8&("T`
- + M(&H&(`9@``#&0?KXKB)O`!BSR&8&0>P51F`$0>P>]'P`)D@O2``@8```EB`K
- + M!TZPK0`@9@``A'H`)&\`(&!P("T`("(J!TZR@&=>(`7I@"(5(&\`(`:````'
- + M2M*P"`"2JP=**H%*K0`@5\!$`$B`2,`K0``@2&\`'"`'($TB;P`<80#\C%A/
- + M2J\`'&9`(!60J@=*T*L'2BJ`2JT`(%?`1`!(@$C`*T``(%*%U/P`$"!O`""Z
- + MJ``(;892AM;\`!`@;P`@O*@`"&T`_V)P_TS?+.#>_``,3G4@;P`$+PU#^O?:
- + M<``J7V``_N!*K"BB9@1A`/<L3G4``)[\``Q(UP$#</_>_``,3G513TC7`P!0
- + M3TYU2.<P`B(02B@`#6<$<`!@'"0))@`L;"H43J[_UB(`4H!F"$ZZ"MAP_V`"
- + M(`%,WT`,3G513TCG/S8N`"I))D@L$R]&`"@O2``L2BL`#6<&<`!@``",2BL`
- + M#&=F)DW7QWH`8%@D36`"4HJURV0&<`JP$F;TM\IF!"@*8`9!Z@`!*`B8C2(O
- + M`"@D#28$+&PJ%$ZN_]`L`%*`9@A.N@IB</]@/MJ&MH9F-DOJ``&>AG``3KK<
- + M/$ZZW&Q*@&8B2H=FI&`<(@8D#28'+&PJ%$ZN_]`J`%*`9@A.N@HF</]@`B`%
- + M3-]L_%!/3G593TCG/P(N`"P0+T$`'$HH``UG!'``8%)3@28!(@8D!RQL*A1.
- + MKO^^*@!.KO]\*`!2A6<$2H1G#B`$3KH(X"E`*:QP_V`D(@9T`"8"3J[_OBP`
- + M4H!G!$J$9PX@!$ZZ"+XI0"FL</]@`B`&3-]`_%A/3G6>_`$`2.<_!BX`*D@L
- + M%2HM``@@+0`$9PHB`"QL*A1.KO^F&"T`#4B$2,0@34ZZ)W!*A&<$<`!@1"(&
- + M0>\`("0(+&PJ%'9`Y8M.KOYH*`!*AV8*(@9.KO_<2H!G&DJ$9Q)P_[J`9PPB
- + M`B0%3J[_1DJ`9P1P`&`&3KH)+'#_3-]@_-[\`0!.=2`O``1(YR`"(@`L;"H4
- + M=`!.KO\T3J[_?'0N1@*P@E?!1`%(@4C!(`%,WT`$3G4@+P`$(&\`"")O``R>
- + M_``02.<W%BX`)DDJ2'P`8;A*@&9\(@<L;"H4=`%.KOY62H!G;"('0>P*:"0(
- + M=@1.KO_068!F4B(')#P``"<03J[_-$J`9T(B!T'O`"`D"'803J[_UG()L(%O
- + M+G";L"\`(&8F0>\`)2(()`M.KOS0*@!![P`FT<`B""0-3J[\T%*`9P92A6<"
- + M?`$B!W0`3J[^5B`&3-]H[-[\`!!.=2`O``0B+P`(GOP"$$CG/P8N`'#_+T`"
- + M*"]!`"0B!RQL*A1T`'8!3J[_OB]``"`B!TZN_[XL`$ZN_WPJ`"]``BQF``#"
- + M*"\`)"(')`1V_TZN_CBP@F8``*Z\@FP``)XJ!)J&*`4@!'(!2$$L>``$3J[_
- + M.BI`2H!F:G("2$%.KO\HXH@J``R%```"`&T0(`5R`4A!3J[_.BI`2H!F1GI`
- + MYXU+[P`H,#P!_W(`0>\`*!#!4<C__&`LN(5O!"`%8`(@!"8`3KK:#B(')`TL
- + M;"H43J[_T+"#9PI.KO]\+T`"+&`&F(-*A&[00>\`*+'-9PPB32`%+'@`!$ZN
- + M_RXJ+P(L9@1"KP(H+"\`(+RO`"1L#B(')`8L;"H4=O].KO^^+"\"*&<*(`5.
- + MN@8F*4`IK"`&3-]@_-[\`A!.=9[\`0A(YS<6+@`F22I(+!5*+0`-9@`!&"`'
- + M!(````0`9R`$@```!`!G2E.`9UA3@&=<4X!G7E.`9V93@&=L8```[DHM``QG
- + M)B`&0>\!)$/O`2!A`/W62H!G%"`O`20W0``"("\!(#:`<`!@``#*<!E@``"^
- + M(@8L;"H43J[_*":`<`!@``"R)H9P`&```*IP`&```*0@!B(380#^-F```)@K
- + M4P`(<`!@``".*A-*K0`$9@XB%2QL*A1.KOZ,*T``!"`M``1G8B0`(@4L;"H4
- + M3J[^7$J`9E(B!D'O`"`D"'9`Y8M.KOYH2H!G/B(%3J[_IB(M``1.KO^F(@9.
- + MKO_<(@)T`$ZN_T8;?``!``TJ@BM"``1![P`@(@@L;"H43J[_N$J`9P0@`F`.
- + M3KH%Y&`&<!8I0"FL</],WVCLWOP!"$YU("\`!"(O``@O;P`,``1(YP\&*B\`
- + M'"P!+@!P#DZZ)18J0$J`9@IP#"E`*:QP_V!.0]4BQT*9(L9"+0`-(@<L;"H4
- + M3J[_*!M```Q(>OYT2'K[VDAZ^V1(>OJL2'KZ=DAZ^F@@!2!-0_KZ4$ZZT=Q/
- + M[P`8*`!L!B!-3KHC3B`$3-]@\$YU("\`!"(O``@O;P`,``0O;P`0``@O;P`4
- + M``PO;P`8`!!(YPT`*"\`%"HO`!`N`'``2H%F!'!`Y8@`0``!+P`@!W+_80#_
- + M1EA/2H!F0'``2H1F!'!`Y8@`0``"+P`@!7+_80#_*%A/4X!F(G``2J\`'&8$
- + M<$#EB`!```(O`"`O`!QR_V$`_P983U6`9Q!![`IN+T@`$$S?`+!.^L[@3-\`
- + ML$YU```@;P`$(F\`""]O``P`!"`O`!`O;P`4``A(YP<T+@`D;P`@)DDJ2"PK
- + M`'0DKP`<0JH`$G`!-4``#D)J`!`E?````@``,C5```PE:P"``#8@*P!\9A`B
- + M*P`$;PHE?```"```%F`$)4``%B53``1!ZP"$3KK2?B5``"(E0``:)4``*B`K
- + M``1:@&<^58!G4%F`9T!5@&9F(`UG'$AX`/](;"BL+PU.NM+`3^\`#"H`;P8E
- + M10`68`@E?````0``%B5\``"@```(8$HE?```$```"&!`)7P``$````A\`&`T
- + M2I-F$$HK``AF"B5\```@```(8"`E?```@```"&`6("L`!&\&<$#AB&`&(#P`
- + M`(``)4``"$J'9P)\`"`&3KK?7(&J``A,WRS@3G4@;P`$(F\`"%E/2.<C%BI(
- + M?@`O20`80J<L;"H4<@(D#TZN_QQ/[P`$)D!*@&=0(@UT_DZN_ZPN`&=$(@<D
- + M"TZN_YI*@&<X(@=.KO\N2H!7QD0&2(9(QDJ`9P8B`$ZN_Z8@!^6`+R\`&"!`
- + M+R@`#")"(`8@36$`_GQ03WP`8`Y\_TZN_WQ.N@(`*4`IK$J'9P8B!TZN_Z8@
- + M"V<()`MR`DZN_Q8@!DS?:,183TYU```@+P`$64\O!RX`3KK54DAO``1(>`@`
- + M+P=.NM]63^\`#$J`9P1P`&`$("\`!"X?6$].=0``("\`!"!O``@B+P`,64](
- + MYP,T+`$N`"I(3KK5$"`'3KK0%"9`2H!G1`@K``$``V<V""L``P`#9Q8@:P`8
- + M+T@`%"!K``1P`'("(F\`%$Z1(&L`%"](`!0@!B!K``0B321O`!1.DF`(<`TI
- + M0"FL</],WRS`6$].=2`O``0@;P`((B\`#$CG`P1,WR#`8(`@;P`$44\O#2I(
- + M0>\`!$ZZS]A*@&H$</]@#B`-9P8@+P`$*H`@+P`$*E]03TYU```@;P`$GOP`
- + M0$CG.Q8J2$ZZU%X@#6=22A5G3B(-0>\`("0(+&PJ%'9`>`!.KOQV+@!M-DZN
- + M_WPL`%*`3KHA#"9`2H!G)+Z&9Q0F!E*#(@TD"TZN_'9*@&\0(`)@#B!"(DL2
- + MV&;\(`M@`G``3-]HW-[\`$!.=2`O``0@;P`((B\`#%E/2.<#-"P!+@`J2$ZZ
- + MT^`@!TZZSN0F0$J`9R8(*P````-G&"!K`!`O2``4(`8@:P`$(DTD;P`43I)@
- + M"'`-*4`IK'#_3-\LP%A/3G4@+P`$(&\`""(O``Q(YP,$3-\@P&">```@+P`$
- + M*4`1I$J`9P``AG)GD(%G``""58!G``"`<@F0@6=\4X!G>%.`9W13@&=P4X!G
- + M;%.`9VA3@&=H4X!G:')1D(%G9E.`9V93@&=F4X!G9E.`9V93@&=F58!G9E.`
- + M9V93@&=F4X!G9E6`9V93@&=F4X!G9E.`9V93@&=F4X!G9E6`9V93@&=F4X!G
- + M9E.`9V9@:'``8&9P#&!B<`M@7G`68%IP!V!6<`A@4G`08$YP$6!*<`)@1G`"
- + M8$)P%F`^<`=@.G`68#9P)&`R<!9@+G`68"IP'F`F<!)@(G`E8!YP)F`:<!-@
- + M%G`68!)P'&`.<`U@"G`-8`9P#6`"</].=2\.+&PJ%$ZN_WQA`/[Z*4`IK"Q?
- + M3G4@;P`$2.<`!BI((DTL>``$3J[_!"!-3-]@`$[Z'<@@+P`$2.<!!"X`*FPI
- + MN&`.("T`#+"'9@0@#6`(*E5*E6;N<`!,WR"`3G5(YR`"0>PIN$ZZ*[(@+!2P
- + M(BP4O"0`LX("@@!___\I0BFT4H(I0BFP+P$O`$AL#@!(;"G$3KK"PD_O`!`L
- + M>``$3J[]9BE`*>AG$$'L*<1P`$ZZ*\8I0"GD9@I(;`X.3KK)<EA/3-]`!$YU
- + M2.<`!B`L*>AG"B!`+'@`!$ZN_6!*K"GD9S@L>``$3J[_?&`,(DUP'"QX``1.
- + MKO\N(&PIY"QX``1.KOZ,*D!*@&;B(&PIY$ZZ*QXL>``$3J[_=DS?8`!.=0``
- + M(&\`!"`O``@B+P`,(F\`$"]O`!0`!"]O`!@`"%E/2.</-B@O`"PJ+P`H+`$N
- + M`"I)+T@`("QX``1.KOUF)D!*@&<P($L@!$ZN_7(D0$J`9R(@#6<()4T`*"5%
- + M`"0@;P`@(`<B2B(&3J[^1$H`9@0@"F`6(`IG!B!*3J[];"`+9P8@2TZZ*HAP
- + M`$S?;/!83TYU(&\`!$CG``8J2"`-9Q@B32QX``1.KOX^(&T`#DZZ*EX@34ZN
- + M_6Q,WV``3G4@#Y!\`!RPK!&@90`:<)[\`!!(YR<4+B\`-"IO`#`O;P`L`"0O
- + M30`@8``%C@@'``1G,A`O`!E(@$C`1^P/Z=?`"!,``&<>"!,``&<.$"\`&4B`
- + M2,!R(-"!8!(0+P`92(!(P&`($"\`&4B`2,`L`!`&2(!(P'(JD(%G``$(<A60
- + M@6<0<AR0@6<``EA3@&=*8``$TB!O`"`0$&<`!4X(!P``9PH0$'(OL`%G``4^
- + M"`<``F<`!0)P+K`09@`$^K'-9P`%*`@'``!G``3L<"^P*/__9@`$XF``!1((
- + M!P`!9DP@;P`D$!@?0``8+T@`)`@'``1G+DB`2,!'[`_IU\`($P``9QX($P``
- + M9PX0+P`82(!(P'(@T(%@$A`O`!A(@$C`8`@0+P`82(!(P"P`"`<`!&<X(&\`
- + M(!`02(!(P$?L#^G7P`@3``!G(@@3``!G$"!O`"`0$$B`2,!R(-"!8!8@;P`@
- + M$!!(@$C`8`H@;P`@$!!(@$C`$@9(@4C!L(%G``0X8``$:`@'``)G('`N(&\`
- + M(+`09A:QS6<`!%((!P``9PIP+[`H__]G``1"(&\`)!P88"X(!P``9PX@;P`@
- + M$!!R+[`!9P`$)G`_O`!F"B!O`"!*$&<`!!8@;P`D'!A2KP`@+T@`)'`_O`!G
- + MR'`JO`!GPDH&9@9P`&```_0(!P`!9@YP7+P`9@@@;P`D$!!@`A`&2(!(P!]`
- + M`!@(!P`$9RY(@$C`2^P/Z=O`"!4``&<>"!4``&<.$"\`&$B`2,!R(-"!8!(0
- + M+P`82(!(P&`($"\`&$B`2,`J;P`D4XT?0``88'9P6[P`9TP(!P`$9S`@;P`@
- + M$!!(@$C`1^P/Z=?`"!,``&<:"!,``&<,$!!(@$C`<B#0@6`2$!!(@$C`8`H@
- + M;P`@$!!(@$C`$B\`&$B!2,&P@68@(`<"0/_[+P`O+P`D+PUA`/U`3^\`#$J`
- + M9@9P`&```QQ2KP`@(&\`($H09H)@``,*(&\`(!`09P`#``@'``)G''`NL!!F
- + M%K'-9P`"[@@'``!G"G`OL"C__V<``MX@;P`D$!!R(;`!9PIR7K`!9P1P`&`"
- + M<`$J`&<$4J\`)"!O`"0<&"](`"0?1@`?"`<``684<%R\`&8.(&\`)!(8'T$`
- + M'R](`"0(!P`$9S(0+P`?2(!(P$?L#^G7P`@3``!G'@@3``!G#A`O`!](@$C`
- + M<B#0@6`2$"\`'TB`2,!@"!`O`!](@$C`'T``&A]``!Y*!F<``D@@;P`D$!@?
- + M0``8+T@`)`@'``1G+DB`2,!'[`_IU\`($P``9QX($P``9PX0+P`82(!(P'(@
- + MT(%@$A`O`!A(@$C`8`@0+P`82(!(P"P`"`<``&<(<"^\`&<``>YP+;P`9GAP
- + M7;`09W(2&!]!`!XO2``D"`<``680=%RR`F8*%!@?0@`>+T@`)!(O`!YG``&Z
- + M"`<`!&<N2(%(P4?L#^G7P0@3``!G'@@3``!G#A`O`!Y(@$C`<B#0@6`2$"\`
- + M'DB`2,!@"!`O`!Y(@$C`(&\`)!P8'T``'B](`"0(!P`$9S@@;P`@$!!(@$C`
- + M1^P/Z=?`"!,``&<B"!,``&<0(F\`(!`12(!(P'(@T(%@%B)O`"`0$4B`2,!@
- + M"B!O`"`0$$B`2,`2+P`:2(%(P;"!;50(!P`$9S@@;P`@$!!(@$C`1^P/Z=?`
- + M"!,``&<B"!,``&<0(&\`(!`02(!(P'(@T(%@%B!O`"`0$$B`2,!@"B!O`"`0
- + M$$B`2,`2+P`>2(%(P;"!;S)P7;P`9@#^#DJ%9@``AF```+9*!F<``+`@;P`D
- + M'!@O2``D"`<``68*<%R\`&8$4J\`)'!=O`!FVDJ%9U9@``"("`<`!&<X(&\`
- + M(!`02(!(P$?L#^G7P`@3``!G(@@3``!G$"!O`"`0$$B`2,!R(-"!8!8@;P`@
- + M$!!(@$C`8`H@;P`@$!!(@$C`$@9(@4C!LH!F-%*O`"`@;P`D$!@?0``9+T@`
- + M)$H`9@#Z8B!O`"`0$&8$<`!@$@@'``-G"G`OL!!F!'``8`)P`4S?*.3>_``0
- + M3G4@#U%`L*P1H&4`%'XO#2IO``@@34H89OQ3B)'-(`A2@"\`3KH`$")`$MUF
- + M_%A/*E].=0``(`^0?``,L*P1H&4`%$@O#2`O``@O`$ZZ%T183RI`2H!F$DAL
- + M#AA"ITAX``).N@R^3^\`#"`-*E].=2`/D'P`#+"L$:!E`!0.2.<!%"XO`!0F
- + M;P`0(`MF"B]'`!!,WRB`8)Y*AV8,+PM.NA6&6$]P`&`D+P<O"TZZ%/!03R9`
- + M2H!F$DAL#C)"ITAX``).N@Q>3^\`#"`+3-\H@$YU(`^0?``@L*P1H&4`$ZR>
- + M_``42.<!%#XO`"8J;"GL8!`P%;!'9@8@+0`"8&(J;0`&(`UF['``,`<O`$ZZ
- + MQ;0J0$AX``I.NO\>4$\F0"!`,(<@#68@<``P!R\`2&P.3$AO`!1.NAE82&\`
- + M&$ZZ_L1/[P`08`@O%4ZZ_KA83R=```(G;"GL``8I2RGL("L``DS?*(#>_``4
- + M3G4@#U%`L*P1H&4`$Q9(YP`T*F\`$"9L*>Q@("!K``(0$+`59A(B31`8L!EF
- + M"DH`9O9F!"`+8&XF:P`&(`MFW"9L*?!@'"!K``(0$+`59@XB31`8L!EF!DH`
- + M9O9G1B9K``8@"V;@+PU.NL4")D!(>``*3KK^6B1`+HU.NOX>4$\E0``"(`MG
- + M$C2K``A+["GL)54`!BJ*(!U@#"5L*?``!BE**?!P`$S?+`!.=2`/D'P`(+"L
- + M$:!E`!)JGOP`%$CG`10^+P`F*FPI]&`0,!6P1V8&("T``F!B*FT`!B`-9NQP
- + M`#`'+P!.NL7V*D!(>``*3KK]W%!/)D`@0#"'(`UF('``,`<O`$AL#E!(;P`4
- + M3KH8%DAO`!A.NOV"3^\`$&`(+Q5.NOUV6$\G0``")VPI]``&*4LI]"`K``),
- + MWRB`WOP`%$YU(`]10+"L$:!E`!'42.<`-"IO`!`F;"GT8"`@:P`"$!"P%682
- + M(DT0&+`99@I*`&;V9@0@"V!N)FL`!B`+9MPF;"GX8!P@:P`"$!"P%68.(DT0
- + M&+`99@9*`&;V9T8F:P`&(`MFX"\-3KK%1"9`2'@`"DZZ_1@D0"Z-3KK\W%!/
- + M)4```B`+9Q(TJP`(2^PI]"55``8JBB`=8`PE;"GX``8I2BGX<`!,WRP`3G4@
- + M#Y!\`!BPK!&@90`1*"`O``0@;P`,(F\`"$*G+R\`&"\O`!@O""\)+P!.N@$Z
- + M3^\`&$YU(`^0?``8L*P1H&4`$/0@+P`$(&\`#")O``A(>``!+R\`&"\O`!@O
- + M""\)+P!.N@$$3^\`&$YU``"_[!&@90`0PDCG`00N+P`0*F\`#&`0$!5(@$C`
- + ML(=F!"`-8`A2C4H59NQP`$S?((!.=;_L$:!E`!"02.<#%"XO`!PF;P`8*F\`
- + M%'P`8`@7M6@`:`!2AKR';?1,WRC`3G4@#Y!\``RPK!&@90`07$CG`10J;P`0
- + M+BPJ")ZL*@3EAR\'3KK#?B9`(BPJ!.6!($W1P2Z'+P`O"&&8("PJ""(`Y8$@
- + M3='!(BPJ!.6!(DW3P2(L#EB2@.6!+H$O"2\(80#_<B(L*@32K`Y8DJPJ".6!
- + MV\$NAR\-+PMA`/]8("P.6$OL*@0B'=*`DI5/[P`<*L`I02H$3-\H@$YU(`^0
- + M?``DL*P1H&4`#\*>_``02.<_-"IO`$@D;P!$0JP.5$JL#EAF5'`!*4`.6$*L
- + M*?PI0"H$*4`J""!O`$`2$'0ML@)F#'0"*4(J`%*O`$!@*G0KL@)F"D*L*@!2
- + MKP!`8!I(;`YD3KH4QEA/2H!G!D*L*@!@!G`!*4`J`"XO`#A*K"G\9PH@;"G\
- + M2A!F``$P<`&PK"H`9EP@+"H((BPJ!+*`9Q*PK`Y89PPO+P`\80#^MEA/8`PB
- + M+`Y8L(%G!"E!*@0B+`Y8Y8$F;P`\U\%@!E*L#EA8BR`L#EBPAVP.(E-P+;`1
- + M9NI**0`!9^0@+`Y8*4`J""`L#EB^@&=0Y8!(;`YT(&\`0"\P"`!.N@].4$]*
- + M@&8X4JP.6"`L*@@B+"H$LH!G$K"L#EAG#"\O`#QA`/XV6$]@#+*`9@@@+`Y8
- + M*4`J!"`'*4`.6"E`*@@@+`Y8L(=F%B`L*@0B+"H(LH!G!"E`#EAP_V``!$0B
- + M+`Y8Y8$@;P`\)G`8`!03=BVT`V8*(G`8`$HI``%F'$JL*@!F!G#_8``$&%*L
- + M#E@I<!@`#E1P`6``!`A2BR`*9PBV$V8$<`%@`G``(DO3P"E)*?P@"F<``L8B
- + M+`Y8Y8$@;P`\('`8`'`ML!!F``*PL"@``6<(2J\`3&<``J(F;"G\0J\`+'P`
- + M0J\`*&`"4HL0$V<&<CVP`6;T+TH`,'H`8&(@"Y"L*?PO`"\L*?P@;P`X+Q!.
- + MN@X*3^\`#$J`9CPN"YZL*?P@;P`P+Q!.N@VF6$^^@&82(&\`,"@%<`$O0``L
- + M+T@`*&`D2J\`*&8,(&\`,"@%+T@`*&`"?`%P$-&O`#!2A2!O`#!*D&:62H9G
- + M1$JO`"QF/DJL#EQG("(L#ECE@2!O`#PO,!@`+Q!(;`YX2&P1-$ZZ$Z!/[P`0
- + M+RPI_$ZZ#3+1K"G\4JP.6%A/<#]@``+P+B\`.$JO`"AG``$F4JP.6$H39W@@
- + M;P`H2J@`!&<,0^L``2E)#E1@``#02JP.7&=((BP.6.6!(F\`/"1Q&/QP+;`J
- + M``%F%B\0+Q%(;`Z62&P1-$ZZ$RY/[P`08!P0$DB`2,`O$"\`+Q%(;`[$2&P1
- + M-$ZZ$Q!/[P`4+RPI_$ZZ#*+1K"G\6$]P/V```F1P`2!O`"BPJ``$9F`B+`Y8
- + MLH=L$E*L#ECE@2!O`#PI<!@`#E1@1DJL#EQG'.6!(&\`/"\P&/PO$$AL#O)(
- + M;!$T3KH2M$_O`!`O+"G\3KH,1EA/T:PI_'`Z(&\`0+`09@9P.F```?YP/V``
- + M`?@O+"G\3KH,(EA/T:PI_"`-9P(JA"!O`"@@*``(9PXB*``,($`@@7``8``!
- + MS"!O`"@@*``,8``!P$JO`$QG,"(L#ECE@2!O`#P@<!@`<"VP*``!9QH@;"G\
- + M$!!(@$C`+P`O+P!$80#ZZE!/2H!F9$JL#EQG3"(L#ECE@2!O`#PD<!@`<"VP
- + M*@`!9A@O+"G\+Q!(;`\82&P1-$ZZ$?!/[P`08!X0$DB`2,`O+"G\+P`O$$AL
- + M#SA(;!$T3KH1T$_O`!1![`]84JP.6"E(*?QP/V```29+["G\(%40&"J('T``
- + M)TB`2,`O`"\O`$0JR&$`^F)03R1`(&PI_$H09@12K`Y8(`IG"A`O`"=R.K`!
- + M9CA*K`Y<9R`0+P`G2(!(P"\`(&\`0"\02&P/6DAL$31.NA%<3^\`$!`O`"=(
- + M@$C`*4`.8'`_8```LG`ZL"H``68``*"P*@`"9AX@;"G\$!!G"BE(#E12K`Y8
- + M8`1"K`Y4D\DI22G\8'H@;"G\2A!G"BE(#E12K`Y88&0@+`Y8L(=F2DJL#EQG
- + M(!`O`"=(@$C`+P`@;P!`+Q!(;`]T2&P1-$ZZ$-Q/[P`0$"\`)TB`2,`I0`Y@
- + M<#H@;P!`L!!F!A]``"=@&G`_'T``)V`24JP.6"(`Y8$@;P`\*7`8``Y40JPI
- + M_!`O`"=(@$C`3-\L_-[\`!!.=2`/D'P`&+"L$:!E``H,("\`!"!O``PB;P`(
- + M0J="IT*G+P@O"2\`80#Z(D_O`!A.=2`/44"PK!&@90`)WDCG`!0@;P`0(F\`
- + M#"`I``@O0``,+T@`$$S?*`!@```"(`]10+"L$:!E``FR2.<!!#XO``XJ;P`0
- + M<``P!R\`80``[%A/&H!*K!309P``B@@'``=G!'!H8`)P+1M```$(!P`&9P1P
- + M<V`"<"T;0``""`<`!6<$<'!@`G`M&T```P@'``1G!'!A8`)P+1M```0(!P`#
- + M9P1P+6`"<'(;0``%"`<``F<$<"U@`G!W&T``!@@'``%G!'`M8`)P91M```<(
- + M!P``9P1P+6`"<&0;0``(&WP`(``)8%`P!P)``<!R`#(`2&T``2\!80``KC`'
- + M`D``.$C`YX!![0`$+H@O`&$``)@P!P)```=(P.V`0>T`!RZ(+P!A``""<``P
- + M!RZ-+P!A``"^3^\`%$S?((!.=;_L$:!E``BJ("\`!`*```#P``R```!@`&8$
- + M<&)@2@R````@`&8$<&-@/@R```!``&8$<&1@,@R```"``&8$<"U@)@R````0
- + M`&8$<'!@&@R```"@`&8$<&Q@#@R```#``&8$<'-@`G`_3G6_[!&@90`(0$CG
- + M`00^+P`.*F\`$`@'``AG!'!R8`)P+1J`"`<`!V<$<'=@`G`M&T```0@'``9G
- + M!'!X8`)P+1M```),WR"`3G6_[!&@90`'^$CG`00^+P`.*F\`$`@'``MG$G!X
- + ML"T``V<$<E-@`G)S&T$``P@'``IG%G!XL"T`!F<(&WP`4P`&8`8;?`!S``8(
- + M!P`)9Q9P>+`M``EG"!M\`%0`"6`&&WP`=``)3-\@@$YUO^P1H&4`!XXO!RXO
- + M``AO$KZL#?IN#.6'0>P-7B`P>`!@!D'L#YP@""X?3G4@#Y!\`"BPK!&@90`'
- + M7$CG`Q0L+P`8+B\`%"9O`"`J;P`<+RP1[$AL#[)(;!$T3KH-JBZO`$@O+P!$
- + M+R\`1"\O`$0O+P!$+R\`1"\O`$0O"R\-2&P1-$ZZ#8)/[P`P2H9G&"\&80#_
- + M;BZ`2&P/N$AL$31.N@UF3^\`#`@L``$13V="4JP10"`L$4"PK!%(;B`@;!$X
- + M4JP1.!"\``H(+``&$4]G+DAL$31.NA#R6$]@(E.L$4!(;!$T2'@`"DZZ#BY0
- + M3V`.2&P1-$AX``I.N@X>4$](;!$T3KH0Q%A/2H=G""\'3KH,(%A/3-\HP$YU
- + M```@#Y!\``RPK!&@90`&;$CG#Q0J;P`<?O]\`"\-3KH&:EA/*@!X`"9O`"!@
- + M,B\%+PTO$TZZ!J!/[P`,2H!F'"\33KH&1EA/L(5F!"`$8!X@!U*`9@0N!&`"
- + M?`%2A%B+2I-FRDJ&9P1P_F`"(`=,WRCP3G4@#Y!\`!"PK!&@90`%^DCG`10N
- + M+P`8)F\`%"IO`!`O+!'L2&P/P$AL$31.N@Q,3^\`#%*'9@Y(;`_&2&P1-$ZZ
- + M##A@#$AL#\Y(;!$T3KH,*E!/+PLO#4AL#]A(;!$T3KH,&$_O`!!,WRB`3G4`
- + M`%E/0?D`````+HAG""!Y_____$Z06$].=5E/0?D`````+HAG""!Y_____$Z0
- + M6$].=4CG`P0J;P`0($U*&&;\4XB1S2X(8`H@!D'L$1).N@S6?``<'4J&9NY!
- + M[!$23KH/<B`'3-\@P$YUGOP`$$CG!Q1^`$OO`"Q@``":<"6P+P`49@``@"!O
- + M`"A2KP`H$!!R`!(`'T``%7!DDH!G.G`,DH!G#E>!9P9;@6<&8$0F76`T+!U'
- + M[P`>>@<@!G(/P(%!^@!XT<`6D%.+Z(93A4J%:NA"+P`?8`H@'4'O`!=.N@(:
- + M1^\`%R\+3KK_2%A/WH!@(E*'<``0+P`50>P1$DZZ#"9@$%*'<``0+P`40>P1
- + M$DZZ#!0@;P`H4J\`*!`0'T``%&8`_UA![!$23KH.IB`'3-\HX-[\`!!.=3`Q
- + M,C,T-38W.#E!0D-$148`````2.<#%RIL*@Q@%"95<!30K0`$(DTL>``$3J[_
- + M+BI+(`UFZ$*L*@Q@3"IL*AAPG-"L$:`F0"`M``0I0"H8*6T`"!&@+BT`&$J`
- + M9AX@;!'$#&@`)``491(@3RP(0>T`#"QX``1.KOTD+D8B2R`'+'@`!$ZN_RY*
- + MK"H89JY,W^C`3G4@;P`$(F\`""!0(E$0&+`99@1*`&;VD"%(@$C`3G4@;P`$
- + M("\`"$/Z_^!R!$[Z""H@;P`$(F\`""`O``Q*@&\*$A`0T1+!4X!F]DYU(&\`
- + M!")O``AP`'(`$!@2&0P``&%M"@P``'IN!`0``"`,`0!A;0H,`0!Z;@0$`0`@
- + MD(%F!$H!9M1.=0``("\`""!O``1.5?_T(D]R"DZZ`G`&00`P$L%*@&;P(`D0
- + MX;_)9OI"$)"/3EU.=0``("\`""!O``1.5?_T(D\B``)!``<&00`P$L'FB&;P
- + M(`D0X;_)9OI"$)"/3EU.=0``,#$R,S0U-C<X.6%B8V1E9B`O``@@;P`$44\B
- + M3S(``D$`#Q+[$-SHB&;R(`D0X;_)9OI"$)")4$].=0``("\`""!O``0O"$J`
- + M3E7_]")/;`80_``M1(!R"DZZ`<@&00`P$L%*@&;P$.&_R6;Z0A`@"$Y=D)].
- + M=0``(&\`!")O``A(YS`@)$AR`"`!)@$,$``K9P@,$``M9@1V`5)($!@$```P
- + M;1H,```);A0D`>6!TH+2@4H#9@32@BDH!@WB*!(`B0BE.`3-\$#$YU(&\`
- + M!"\-*D@(+0`#`!MF,"`L$5A.N@4.*T``!"M``!!F"G`,*4`IK'#_8!8K;!%8
- + M`!1P\\&M`!A"K0`,0JT`"'``*E].=0``(&\`!$CG(!0J2"9-8"!P`!`30>P/
- + MZ0@P``$(`&<*<@`2`'0@DH)@!'(`$@`6P4H39MP@#4S?*`1.=0``GOP`4$CG
- + M,39#^@"$<``L>``$3J[]V"I`2H!F!G`43KK!BGX`(&P1T!XH__\@!T/O`!Q@
- + M`A+84X!D^D(W>!Q![P`<*4@1:$/L$7!'[!&$+$V1R)7*<``B`'1]U()V*$ZN
- + M_J1P%$ZZP41,WVR,WOP`4$YU*BH@4W1A8VL@3W9E<F9L;W<@*BH``$58250`
- + M`&EN='5I=&EO;BYL:6)R87)Y`$J`:@``'D2`2H%J```,1(%A```@1(%.=6$`
- + M`!A$@$2!3G5*@6H```Q$@6$```9$@$YU+P)(030!9@``(DA`2$%(0C0`9P``
- + M!H3!,`)(0#0`A,$P`DA",@(D'TYU+P-V$`Q!`(!D```&X9E10PQ!"`!D```&
- + MZ9E90PQ!(`!D```&Y9E50TI!:P``!N.94T,T`.:H2$)"0N:J2$.`P38`,`(T
- + M`TA!Q,&0@F0```930]"!<@`R`TA#Y[A(0,%!)A\D'TYU``!(YW``)`!G($J!
- + M9@1"@&`8)@#&P4A"Q,%(0D)"UH)(0<#!2$!"0-"#3-\`#DYU```@+!',!$`!
- + M]"Y`3OK^8```(&\`!"`(2AAF_%-(D<`@"$YU```@;P`$("\`"")\`````$H0
- + M9PJP&&;X0^C__V#R(`E.=2!O``0@+P`(L!!G"$H89OAP`$YU(`A.=2!O``0B
- + M;P`(("\`#$J`9Q!3@!(8LAEF#$H!9P13@&KR<`!.=6X$</].=7`!3G4``"!O
- + M``0B;P`($ABR&68(2@%F]G``3G5N!'#_3G5P`4YU(F\`""!O``0@"$H89OQ3
- + MB!#99OQ.=0``(F\`""!O``0@+P`,(@A@!!#99PA3@&3X8`9"&%.`9/H@`4YU
- + M(F\`""!O``0@+P`,(@A*@&\6L<EE#-/`T<`1(5.`9OI@!A#94X!F^B`!3G4@
- + M;P`$("\`"$CG`Q0N`"I(9A(@#68$<`!@:"!-3KH`;G``8%X@#68*(`=,WRC`
- + M3OH!R"9-58LP/'__P%-(P.6`+``($P`/9PP,:X``__YF!"PK__(@!TZZ`:`F
- + M0$J`9@1P`&`>O(=C!"`'8`(@!B!-(DM@`A+84X!D^B!-3KH`#B`+3-\HP$YU
- + M(&\`!"`(9@).=5F`2.<\,B(L*@QF#BE\````%BFL3-],/$YU(D&P@6\2)`'4
- + MJ0`$!H(````4L()L`F`((BD``&?48.`F`0:#````$+"#;<9G$B1#0H(T*@`"
- + M:[KEBM:"6(-@Z"1`-"H``&JJ"*H`!P``0H,V*@`"`D-__^6+2FH``FM`1_(X
- + M!$IK``!K-D*$."L``@)$?__EC-B#6(3DC%B#2FL``FH$`$2``#5$``)K$BH$
- + MY8PT,D@$`D*``(I"-85(!$*$."H``&=,Y8Q$A$?R2/Q*:P``:SY"A#@K``+E
- + MC$*%.BH``@)%?__EC=B%6(18@^2,2FH``FH$`$2``#=$``)K$BH$Y8PT,T@$
- + M`D*``(I"-X5(!->I``@F*0`$MJP/Y&X,MJD`"&8Z2JD``&<T("PJ#"!`LH!F
- + M#"EI```J#&`0(&@``+*H``!F]B%I`````"`I``0&@````!0L>``$3J[_+DS?
- + M3#Q.=2`O``1*@&8,*7P````6*:QP`$YU2.<^,E:``H#____\#(```?_\;@``
- + MN+"L#^1N``"P)BPJ#&<``*@B0["I``AN,B(L*A"RJ0`,9BA%Z0`02E)K$$*$
- + M."H``@)$?__EC+"$;QI"A#@J``)K".6,1?)(!<)BD``&=F(D-@O@CJ``<`
- + M`$?R"`1"A;"$9SPL!)R`689F!"`$8##DCDIJ``)J!`!&@``J`.2--T8``C=%
- + M```U10`">@1*1FL.-#)(!`)"@`",0C6&2`0F*0`(EH"6A2-#``@@"EB`3-],
- + M?$YU*@"PK`_D:@0@+`_D*``&@````!0B+"H0+'@`!$ZN_SI*@&8**7P````,
- + M*:Q@S")`1>D`$"-L*@P``"E)*@PC1``$(VPJ$``,)@26A6<H68-G)"-#``A'
- + M\E@$-7R`````Y(TU10`"-T4``.2+`$.``#=#``)@%$*I``@U?(````#DC`!$
- + M@``U1``"(`I8@$S?3'Q.=2!O``0@+P`((B\`#")O`!!93TCG#S8L`2X`*D@O
- + M20`@<`&^@&,``+(F3=?&(`=5@&8D+PLO#2!-(DLL;P`H3I903TJ`;P``DB`&
- + M($TB2TZZ]Z1@``"$(`?BB"(&3KKZ]B)-T\`@!B!-3KKWBB1->@!X`6`J+PTO
- + M"R!+(DTL;P`H3I903TJ`:A)2A=7&M<MG"B`&($LB2DZZ]US7QE*$N(=ETK7-
- + M9PH@!B!-(DI.NO=&)F\`("`%(@8@32)+80#_4B!*T<8@!Y"%4X`B!B)+3-]L
- + M\%B/8`#_.DS?;/!83TYU3OK<:D[ZW&(@;P`$64\O"R`(9R0F0&`"4HMP`!`3
- + M0>P/Z0@P``,(`&;N($M#[P`$3KKX#B`O``0F7UA/3G4``"`O``1(YP$$+@`J
- + M;!&88`@@;0`$3I`J52`-9O1+[!#P<`;`K0`858!F&"`M``20K0`09PXB+0`<
- + M(&T`$,%!3KK;."!-*E`@#6;6(`=,WR"`3OJZ*"`O``0@;P`(0]!2F2!14ID0
- + M@$YU44\@;P`,0I<O2``$2&\`%"\O`!1!^O_>0^\`"$ZZ"3(@;P`,0A!03R`7
- + M4$].=0``("\`!"!O``@O#2(`*DA2E4/M``@@$5*1&X$(#"`9#(````(`;11!
- + M[0`,(FT`!'(!P4%.N@*@0JT`""I?3G6>_`(,+PTJ;P(40J\`#$*O``0O30`(
- + M2&\"'"\O`AQ!^O^J0^\`#$ZZ"+I03R`O``QG$$'O`!`B;P`(<@'!04ZZ`E8(
- + M+0`%`!MF"`@M``0`&V<$</]@!"`O``0J7][\`@Q.=2\-(@`J2$/54ID@$5*1
- + M&X$(""`9#(````(`;1)`TH&P@68,".L``0`;0JL`#&`T""L`!0`;9P9P`&```*IP
- + M;D8`P*L`&')N1@&P@68,".L``0`;0JL`#&`*0JL`#'``8```A$JK`!1F3`@K
- + M``(`&V9$($M.NO0P2H!G.@CK``4`&W``8&`@;P`4$!@B:P`$$H!2JP`$4JL`
- + M#%.%4H0O2``4<@JP`68.""L`!@`;9P8@2TZZ`#X@*P`,L*L`%&P$2H5NPDJ%
- + M;Q8@2TZZ`"8@*P`<(@4@;P`43KK6]-B`(`0B!TZZ]11,WPCP6$].=2!O``1(
- + MYP$$*D@@#6<``*!P0="`P*T`&&8L(&T`$$/M``0BR$*90BT`('``(L`(+0`'
- + M`!MG!@BM````&PBM``0`&V```(I*K0`49T0@+0`,:@9R`"M!``P@+0`,9R@B
- + M+0`<(&T`$,%!3KK6=BX`4H!F"`CM``4`&V`,OJT`#&<&".T`!``;*VT`$``$
- + M0JT`#'`PP*T`&&82""T`!P`;9P9P_,&M`!AP`&`D</]@('X`2^P0\$JM`!AG
- + M#"!-80#_1DJ`9P)^_RI5(`UFZ"`'3-\@@$YU(&\`!")O``@O;P`,``0O;P`0
- + M``B>_``T2.<O-B9O`&`J;P!<2.\#```L0B\`.T(O`#I"+P`Y0B\`.!]\`"``
- + M-T*O`%1P_R]``%!"+P`V?@!\`$7O`#Q@2G``(&\`+!`0<B"0@6<B5X!G)E&`
- + M9Q)5@&<&5X!G(F`R'WP``0`[8!X??``!`#I@%A]\``$`.6`.'WP``0`X8`8?
- + M?``P`#=2KP`L(&\`+$H09JYP`;`O`#MF!A]\`"``-W(J(&\`++(09AXL;P`P
- + M(E98EB(1+T$`5&P(1*\`5!]``#M2KP`L8`Q#[P!43KKQKM&O`"P@;P`L$!!R
- + M+K`!9D92KP`L<"H@;P`LL!!F'")O`#`@45B1(!`O0`!0;`9P_R]``%!2KP`L
- + M8!9#[P!03KKQ;"H`9@9"KP!08`3;KP`L'WP`(``W<``@;P`L$!!R3)"!9Q1R
- + M')"!9P99@&<*8!(??``"`#9@!A]\``$`-E*O`"P@;P`L4H@B;P`L$!%R`!(`
- + M'T``)"](`"9P4)*`9P`!$%&!9P`!''`+DH!G``'04X%G4%N!9TQ;@6<B4X%G
- + M``$"4X%G``#J5X%G``&`58%G``#P5X%G``#J8``!N"1O`#!P`K`O`#9F#B!2
- + M6)(B4"`3,H!@``)*(%)8DB)0(I-@``(^(F\`,"!16)$H$&H$?@%$A$J'9PQ%
- + M[P`]'WP`+0`\8")*+P`Z9PQ%[P`]'WP`*P`\8!!*+P`Y9PQ%[P`]'WP`(``\
- + M?`$@!"!*3KKOABH`("\`4&8&2H1G``'D("\`4&H&<@$O00!0*"\`4)B%;QP@
- + M2M'$(`4B2DZZ\XAR,"!*8`(0P5.$9/HJ+P!0W(4@!5.`9@`!!!`2L"\`-V8`
- + M`/I*KP!09@``\D(28```["`O`%!J!G`(+T``4!]\``$`-G`"L"\`-F80(F\`
- + M,"!16)$@$'@`.`!@"B)O`#`@45B1*!`0+P`D<G6P`6<`_UIR;[`!9AY*+P`X
- + M9PQ%[P`]'WP`,``\?`$@!"!*3KKN]F``_SY*+P`X9Q(??``P`#Q%[P`^'WP`
- + M>``]?`(@!"!*3KKO$BH`""\`!0`D9@#_%$'O`#Q.NN_^8`#_"")O`#`@45B1
- + M)%`@"F8$1?H`\B!*2AAF_%.(D<HJ""`O`%!K!+"%;P0O10!0+"\`4&`@?`$B
- + M;P`P(%%8D2`0'T``/$(O`#U@!G``8```K$7O`#P@+P!4L(9L"'(`+T$`5&`$
- + MG:\`5$HO`#MG'F`(<``0&B!+3I53AFST8`8@2W`@3I53KP!4;/1@:DJ'9@Q*
- + M+P`Y9@9*+P`Z9T80$G(@L`%G#'0KL`)G!G0ML`)F,DJ&:RZR+P`W9A)@"G``
- + M$"\`-R!+3I53KP!4;/!P`!`:($M.E5.&8`IP`!`O`#<@2TZ54Z\`5&SP8`AP
- + M`!`:($M.E5.&;/0@+P`F3-]L]-[\`#1.=0``(&\`!")O``@O;P`,``0O;P`0
- + M``B>_``,2.<`%"9)*D@O;P`<`!!@.'`EL"\`#&8F(&\`&+`09@92KP`88!@O
- + M"R\-0^\`&$ZZ^Y103TJ`9P8O0``88`IP`!`O``P@2TZ5(&\`&!`8'T``#"](
- + M`!A*`&:V3-\H`-[\``Q.=2!O``0@B%B00J@`!"%(``A.=0``(&\`!$CG``8J
- + M2$JM``IG"B)-+'@`!$ZN_I@;?`#_``AP_RM``!1P`!`M``\L>``$3J[^L")-
- + M<").KO\N3-]@`$YU```@;P`$("\`"$CG`Q8N`"I(</\L>``$3J[^MAP`2(9(
- + MQB`&4H!F!'``8&!P(B(\``$``4ZN_SHF0$J`9@@@!DZN_K!@1$'K``H@S1='
- + M``D7?``$``A"&!#&D\E.KO[:)T``$"`-9P@B2TZN_IY@&D'K`!@G2``40>L`
- + M%"=(`!Q"JP`8%WP``@`@(`M,WVC`3G4O""\`3KD```*T4$].=0`````#[```
- + M``H```````".X@``)2(``"4N```E*```)18``"4$```E$```)0H``"4<```D
- + M_@````$````!````"@````````/R```#Z@``!,QA;&P`97-C87!E``!D:7)E
- + M8W1O<GD`9G5L;"UT:6UE`&EN;V1E`&MI;&]B>71E<P!N=6UE<FEC+75I9"UG
- + M:60`;F\M9W)O=7```&AI9&4M8V]N=')O;"UC:&%R<P``<F5V97)S90!S:7IE
- + M``!W:61T:`!A;&UO<W0M86QL``!I9VYO<F4M8F%C:W5P<P``8VQA<W-I9GD`
- + M`&9I;&4M='EP90!I9VYO<F4``&1E<F5F97)E;F-E`&QI=&5R86P`<75O=&4M
- + M;F%M90``<F5C=7)S:79E`&9O<FUA=```<V]R=```=&%B<VEZ90!T:6UE``!H
- + M96QP``!V97)S:6]N`&%M:6=A`````````````````````&$````$````````
- + M``````!B````#```````````````9````!8````````2$`````$````@````
- + M``````````!I````)@``````````````:P```#```````````````&X```!`
- + M``````````````!'````2@``````````````<0```%X``````````````'(`
- + M``!F``````````````!S````;`````$`````````=P```'(`````````````
- + M`$$```!^``````````````!"````C@``````````````1@```)@`````````
- + M`````$8```"B`````0````````!)````J@``````````````3````+8`````
- + M`````````$X```"^``````````````!1````R@``````````````4@```-0`
- + M```!``````````P```#<`````0`````````*````X@````$`````````5```
- + M`.H````!``````````L```#P````````$G`````!````]@```````!)T````
- + M`0```/X```````````````T`````````````````````=F5R8F]S90!L;VYG
- + M``!C;VUM87,``&AO<FEZ;VYT86P``&%C<F]S<P``=F5R=&EC86P``'-I;F=L
- + M92UC;VQU;6X````"U````MP```+B```"Z@```O8```+^```#"```````````
- + M``````````0````#`````P````(````!;F]N90``=&EM90``<VEZ90``97AT
- + M96YS:6]N`````U(```-8```#7@```V0```````````````,````$`````F%T
- + M:6UE`&%C8V5S<P``=7-E`&-T:6UE`'-T871U<P`````#D@```Y@```.@```#
- + MI````ZH``````````@````(````"`````0````$E<PH``````````````%!/
- + M4TE83%E?0T]24D5#5`!#3TQ534Y3`%1!0E-)6D4`86)C9&9G:6ML;6YP<7)S
- + M='5W.GA!0D-&1TDZ3$Y14E-4.E58,0!I;G9A;&ED(&QI;F4@=VED=&@Z("5S
- + M```J(0``+BHA`&EN=F%L:60@=&%B('-I>F4Z("5S``!S;W)T('1Y<&4`=&EM
- + M92!T>7!E`&9O<FUA="!T>7!E`"5S```E<P``)7,Z"@``)7,Z"@``=&]T86P@
- + M)74*`"5S```E<P``)39U(```)2IU(```)7,@)3-U(``E+3AU(``E+3@N.',@
- + M`"4M.'4@`"4M."XX<R``)3-U+"`E,W4@`"4X;'4@`"5S(``@+3X@``!<7```
- + M7&X``%QB``!<<@``7'0``%QF``!<(```7"(``%PE,#-O`"4V=2```"4J=2``
- + M`%5S86=E.B`E<R!;+6%B8V1G:6ML;6YP<7)S='5X04)#1D=,3E%24U58,5T@
- + M6RUW(&-O;'-=(%LM5"!C;VQS72!;+4D@<&%T=&5R;ET*("`@("`@(%LM+6%L
- + M;%T@6RTM97-C87!E72!;+2UD:7)E8W1O<GE=(%LM+6EN;V1E72!;+2UK:6QO
- + M8GET97-=(%LM+6QI=&5R86Q="B`@("`@("!;+2UN=6UE<FEC+75I9"UG:61=
- + M(%LM+6AI9&4M8V]N=')O;"UC:&%R<UT@6RTM<F5V97)S95T@6RTM<VEZ95T*
- + M("`@("`@(%LM+7=I9'1H/6-O;'-=(%LM+71A8G-I>F4]8V]L<UT@6RTM86QM
- + M;W-T+6%L;%T@6RTM:6=N;W)E+6)A8VMU<'-="@`@("`@("`@6RTM8VQA<W-I
- + M9GE=(%LM+69I;&4M='EP95T@6RTM:6=N;W)E/7!A='1E<FY=(%LM+61E<F5F
- + M97)E;F-E70H@("`@("`@6RTM<75O=&4M;F%M95T@6RTM<F5C=7)S:79E72!;
- + M+2US;W)T/7MN;VYE+'1I;64L<VEZ92QE>'1E;G-I;VY]70H@("`@("`@6RTM
- + M9F]R;6%T/7ML;VYG+'9E<F)O<V4L8V]M;6%S+&%C<F]S<RQV97)T:6-A;"QS
- + M:6YG;&4M8V]L=6UN?5T*("`@("`@(%LM+71I;64]>V%T:6UE+&%C8V5S<RQU
- + M<V4L8W1I;64L<W1A='5S?5T@6RTM;F\M9W)O=7!="B`@("`@("!;+2UH96QP
- + M72!;+2UV97)S:6]N72!;<&%T:"XN+ET*``!'3E4@9FEL975T:6QS(#,N-@``
- + M``>,``!/:P``````%```````````````````!Z1C;VYS;VQE.@``)7,Z(```
- + M:6YT=6ET:6]N+FQI8G)A<GD```!T:6UE<BYD979I8V4`````_____V9I9F\N
- + M;&EB<F%R>0``````````````````"`0``0``````````"`8`````````````
- + M``!`*",I86QL;V-A+F,),2XQ````````````````=7-E<@`````(1`````!W
- + M:&5E;```````"%(```A8``````A*1F%I;&5D('1O(&-R96%T92!T:6UE<@``
- + M=7-E<B!I;G1E<G)U<'0```````!.;R!M96UO<GD```!A`$9A:6QE9"!T;R!C
- + M<F5A=&4@=&EM97(``$Y)3#H``$Y)3#H``$Y)3#H``"H`3DE,.@``26YV86QI
- + M9"!W:6QD8V%R9"`E<P!%<G)O<B!E>'!A;F1I;F<@87)G=6UE;G1S`%5315(`
- + M`'5S97(``%5315).04U%``!(3TU%``!S.@``4TA%3$P`8FEN.G-H``!(3U-4
- + M3D%-10``86UI9V$`3DE,.@````!'350`("`@`"`@(`````E,```)4```````
- + M````("`@`"`@(`!S.FQO8V%L=&EM90!S.GIO;F5I;F9O```O`````!\````<
- + M````'P```!X````?````'@```!\````?````'@```!\````>````'P```!\`
- + M```=````'P```!X````?````'@```!\````?````'@```!\````>````'P``
- + M`6T```%N<&]S:7AR=6QE<P``54Y)6%1:```@("``4W5N36]N5'5E5V5D5&AU
- + M1G)I4V%T2F%N1F5B36%R07!R36%Y2G5N2G5L075G4V5P3V-T3F]V1&5C`"4N
- + M,W,@)2XS<R4S9"`E,#(N,F0Z)3`R+C)D.B4P,BXR9"`E9`H```";,"!Q``!&
- + M86EL960@=&\@:6YI=&EA;&ES92!)+T\``&%M:6=A('-P96-I9FEC(&5R<F]R
- + M``````J(56YK;F]W;B!E<G)O<@!N;W0@;W=N97(`;F\@<W5C:"!F:6QE(&]R
- + M(&1I<F5C=&]R>0!N;R!S=6-H('!R;V-E<W,`:6YT97)R=7!T960@<WES=&5M
- + M(&-A;&P`:2]O(&5R<F]R`&YO('-U8V@@9&5V:6-E(&]R(&%D9')E<W,`87)G
- + M=6UE;G0@;&ES="!T;V\@;&]N9P``97AE8R!F;W)M870@97)R;W(`8F%D(&9I
- + M;&4@;G5M8F5R`&YO(&-H:6QD('!R;V-E<W,``&YO(&UO<F4@<')O8V5S<V5S
- + M`&YO="!E;F]U9V@@;65M;W)Y`'!E<FUI<W-I;VX@9&5N:65D`&)A9"!A9&1R
- + M97-S`&)L;V-K(&1E=FEC92!R97%U:7)E9`!M;W5N="!D979I8V5S(&)U<WD`
- + M`&9I;&4@97AI<W1S`&-R;W-S+61E=FEC92!L:6YK`&YO('-U8V@@9&5V:6-E
- + M``!N;W0@82!D:7)E8W1O<GD`:7,@82!D:7)E8W1O<GD``&EN=F%L:60@87)G
- + M=6UE;G0``&9I;&4@=&%B;&4@;W9E<F9L;W<`=&]O(&UA;GD@;W!E;B!F:6QE
- + M<P!N;W0@82!T>7!E=W)I=&5R``!T97AT(&9I;&4@8G5S>0``9FEL92!T;V\@
- + M8FEG``!N;R!S<&%C92!L969T(&]N(&1E=FEC90!I;&QE9V%L('-E96L``')E
- + M860M;VYL>2!F:6QE('-Y<W1E;0!T;V\@;6%N>2!L:6YK<P``8G)O:V5N('!I
- + M<&4`;6%T:"!A<F=U;65N=`!R97-U;'0@=&]O(&QA<F=E``!)+T\@<W1R96%M
- + M(&5M<'1Y``!F:6QE(&YA;64@=&]O(&QO;F<``&1I<F5C=&]R>2!N;W0@96UP
- + M='D`=&]O(&UA;GD@<V]F="!L:6YK<R`H;&]O<#\I````"J(```JP```*N@``
- + M"M0```KD```*_```"P8```L@```+.```"TH```M:```+;```"WX```N0```+
- + MH@``"ZX```O$```+V```"^0```OV```,!@``#!8```PF```,.```#$P```Q@
- + M```,<@``#((```R0```,J```#+8```S,```,W```#.@```SV```-"```#1H`
- + M``TN```-0@```"8``&1O;W(N)6QX+B5L>```3F\@;65M;W)Y`'9I<G1U86P@
- + M;65M;W)Y(&5X:&%U<W1E9```=FER='5A;"!M96UO<GD@97AH875S=&5D```E
- + M=0``)74``````````````````0```#]03U-)6$Q97T-/4E)%0U0`+2T``"5S
- + M.B!O<'1I;VX@8"5S)R!I<R!A;6)I9W5O=7,*`"5S.B!O<'1I;VX@8"TM)7,G
- + M(&1O97-N)W0@86QL;W<@86X@87)G=6UE;G0*```E<SH@;W!T:6]N(&`E8R5S
- + M)R!D;V5S;B=T(&%L;&]W(&%N(&%R9W5M96YT"@``)7,Z(&]P=&EO;B!@)7,G
- + M(')E<75I<F5S(&%N(&%R9W5M96YT"@`E<SH@=6YR96-O9VYI>F5D(&]P=&EO
- + M;B!@+2TE<R<*`"5S.B!U;G)E8V]G;FEZ960@;W!T:6]N(&`E8R5S)PH````E
- + M<SH@:6QL96=A;"!O<'1I;VX@+2T@)6,*`"5S.B!O<'1I;VX@<F5Q=6ER97,@
- + M86X@87)G=6UE;G0@+2T@)6,*``!5;FMN;W=N('-Y<W1E;2!E<G)O<@``)7,Z
- + M(```.B`E<P`````E<SH@``!I;G9A;&ED`&%M8FEG=6]U<P`@)7,@8"5S)PH`
- + M`````$```"`@("`@("`@("@H*"@H("`@("`@("`@("`@("`@("`@2!`0$!`0
- + M$!`0$!`0$!`0$(2$A(2$A(2$A(00$!`0$!`0@8&!@8&!`0$!`0$!`0$!`0$!
- + M`0$!`0$!`0$0$!`0$!""@H*"@H("`@("`@("`@("`@("`@("`@("`A`0$!`@
- + M````````````````````````````````````````````````````````````
- + M````````````````````````````````````````````````````````````
- + M``````````````````````````````````````````````````````````^@
- + M```1$@``````````````````````````````````````````$30`````````
- + M````````````````````````````````````````````````````````````
- + M``````````````````````(`__\````.``X```````````````#__P````0`
- + M!````````'T6```17/__````!``$````````?2P``````````````&0```/"
- + M```#O@```[H```.V```#L@```WH```-V```#<@```VX```,N```#*@```R8`
- + M``,B```#'@```QH```,6```"M````J0```*4```"A````G0```)D```"5```
- + M`D0```(T```")````A0```($```!]````>0```'4```!Q````;0```&D```!
- + ME````80```%T```!9````50```%$```!-````20```$4```!!````JP```*<
- + M```!/```!YX```>X```(&```"`P```AD```(7@``"%H```A*```)6```"50`
- + M``WV```-\@``#>X```WJ```-Y@``#>(```W>```-V@``#=8```W2```-S@``
- + M#<H```W&```-P@``#;X```VZ```-M@``#;(```VN```-J@``#:8```VB```-
- + MG@``#9H```V6```-D@``#8X```V*```-A@``#8(```U^```->@``#78```UR
- + M```-;@``#6H```UF```-8@``#5X```J>```1$@``$/```!&````#[`````(`
- + 3```````1D```$7P````````#\EX`
- + `
- + end
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/c/rmdir.uue emacs-18.59/amiga/amiga-extra/amiga/c/rmdir.uue
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/c/rmdir.uue Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/c/rmdir.uue Tue Jul 12 10:35:52 1994
- ***************
- *** 0 ****
- --- 1,404 ----
- + begin 666 rmdir
- + M```#\P`````````"``````````$```\'```"=````^D```\'2.=^_B1()`!)
- + M^0`````L>``$+P)(YP#@)FX!%"(K`*QG#.6)($$B*``TY8E@!B(/DJL`.G0`
- + M(#P```L$LJP(2&0((BP(2-"!=`$F02(\``$``4ZN_SI*@&8(3-\'!&```D`@
- + M0"1`(D`@/````CZ9_``````@W%.`9OH@'&<.($G1W-70((HD25.`8/`H2=G\
- + M`````"E\```+!`E$3-\'`"E."2!*`DS?``1([(``"2AG2"`,!(``````!H``
- + M``L$T*P(2"(`!(````"`#&X`)``4;1@I0`E`*4$)/)*L"$A![`DX((%.KOTD
- + M8`(N0"`L"$@O0``$T:P)1"(/DHL&@0```(`I00C\0JP))'``(CP``#``3J[^
- + MSB9N`11#^@&(<`!.KOW8*4`*_&8&<&1@``#F*6L`F`D<2JL`K&<``'X@:P"L
- + MT<C1R")H`!#3R=/)(`)R`!(9*4D)+-"!7H`"0/_\*4`)-$CG0$`B/``!``%.
- + MKO\Z3-\"`DJ`9@AP%"\`9P`!!"!`*4`),"`"4X#4@1&R```@`E."4<C_]A&\
- + M`"`@`E."$;P`(B`"$;$@`"`!4<K_^!"\`"(O"&!*0>L`7$ZN_H!!ZP!<3J[^
- + MC"E`"20O`"1`("H`)&<8+&P*_"!`(B@``$ZN_Z`I0`D<(@!.KO^"(&P))"\(
- + M2&P(^"!H`"0I:``$"2Q.NB:X3KH-TG``8`0@+P`$)&P)*"4`+'@`!`QN`"0`
- + M%&T22JP).&<,0>P).%FL"4!.KOTD+DH@+`D49P0@0$Z03KHFD$ZZ)J1*K`DD
- + M9R`L;`K\(BP)'&<$3J[_IBQX``1.KO]\(FP))$ZN_H9@$BQX``0@+`DT9P@B
- + M;`DP3J[_+B)L"OQ.KOYB("P)1"),D_P`````3J[_+B`?3-]_?DYU9&]S+FQI
- + M8G)A<GD````@#Y!\`!2PK`C\90`J!$CG!Q0N+P`8*F\`''P`*54)2$*L"4R7
- + MRV`:(`5*@&<4<G"0@6<"8`AP`2E`"4Q@!&$``1`O"TAL`!1(;`!4+PTO!TZZ
- + M'5)/[P`4*@!2@&;*2JP)5&<:+RP`IDAL`%9(;`B03KHO9$*73KHNS$_O``Q*
- + MK`E09P1A``#*("P%V+"'9F)A``"^8%PB+`78Y8$O-1@`3KH<PB(L!=CE@2ZU
- + M&`!.NA@X6$]*@&<@(BP%V.6!+S48`$AL`%HO+`JD0J=.NB1.3^\`$'P!8!9*
- + MK`E,9Q`B+`78Y8$O-1@`80``'%A/4JP%V"`L!=BPAVV<+T8`&$S?*.!.^BY`
- + M(`]10+"L"/QE`"D`2.<`%"IO``Q(>``O+PU.NBD24$\F0$J`9@1@'%.+M\UC
- + M!G`OL!-G]$(K``$O#4ZZ%Z983TJ`9]!,WR@`3G4@#Y!\``RPK`C\90`HM"\L
- + M"4A(;`!>2&P(D$ZZ+FI(>``!3KHMT$_O`!!.=4CG(#(@;P`80^\`'$7Z`!PF
- + M;P`4)`LL>0````1.KOWV(`N0@DS?3`1.=1;`3G4``"!O``0B;P`(64](YS,V
- + M*DA^`"!L"H0L*`#@+TD`($J&9B!*K`DD9AI![`#$(@@L;`K\)#P```/M3J[_
- + MXBP`9P)^`4J&9S8B!D'L`,XD"$'L"2PF""QL"OQ.KOZ>(@8D#28O`"!.KOZ>
- + M(@9T"DZN_LA*AV=8(@9.KO_<8%`@;`J$)F@`N#!\__^WR&=`0^P`U'`E+'@`
- + M!$ZN_=@D0$J`9RPI;`DL`+@I30"\+PH@2RQ*0^P`L)7*)F\`)$ZN_;1,WP0`
- + M(DHL>``$3J[^8DS?;,Q83TYU(&\`!$/O``AA`/\J3G4@;P`$0^\`"&$`_QQP
- + M%$ZZ+*I.=0``2.<`!G`(<@`L>``$3J[_.BI`2H!F!'``8"Y"K0`$2'@`*'``
- + M+P!![`#H<@&3R<%!3KH9[E!/*H!F#")-<`A.KO\N<`!@`B`-3-]@`$YU(&\`
- + M!$CG``8J2"`-9Q@@36$``!X@54ZZ&C(B37`(+'@`!$ZN_RY,WV``3G4@;P`$
- + M2.<`!BI(2JT`!&<4(E4L>``$3J[^(")53J[^)D*M``1,WV``3G4@;P`$(%`B
- + M:``.<``0*0`/<@'AH2`!3G4@;P`$("\`""(O``Q(YP,&+`$N`"I(8:I*AV8$
- + M2H9G'B)5(T<`("-&`"0S?``)`!PL>``$3J[^,G`!*T``!$S?8,!.=2!O``1(
- + MYP`&*DA*K0`$9QPB52QX``1.KOXL2D!G#B)53J[^)D*M``1P`6`"<`!,WV``
- + M3G4O#B`L"I`B`$A!0D'2@"`L"H2S@"E`"5Q"K`E@0^P`_'``+'@`!$ZN_=@I
- + M0`E8</].KOZV2(!(P"E``/A*K`E89PA*@&L$<`%@`G``*4`)9"Q?3G4O#B`L
- + M`/AK""QX``1.KOZP("P)6&<*(D`L>``$3J[^8BQ?3G4@+P`$44](YP,`+@!.
- + MN@4`(`=.N@&02H!G*")`(&D`'')`Y8G"D2](``P@`2!I``0B;P`,3I$L`"`'
- + M3KH!2"`&8`)P_TS?`,!03TYU("\`!"\'+A]@K@``(&\`!"`O``@B;P`,+V\`
- + M$``$+V\`%``(+V\`&``,+V\`'``0+V\`(``4+V\`)``844](YP<4+@!([P,`
- + M`!1\`"IL"6A@%DJM``1F"C!\``$K2``$8`Q2AMK\`"2\K`EL;>0@+`ELO(!F
- + M>'(*TZP);"`L"6PB`.>!TH#E@2`!3KHGQ"I`2H!F#'`,*4`*I'#_8```CG#V
- + MT*P);"(`YX'2@.6!(&P):")-8`(2V%.!9/H@+`EH9P8@0$ZZ)AXI30EH>O;:
- + MK`EL(`7G@-"%Y8#;P)?+*TL`!%*%VOP`)+JL"6QM\"`&YX#0AN6`(&P):"&O
- + M`!0(!"&'"``AKP`8"`A+[P`@(9T(#"&="!`AG0@42^\`+"&="!@AG0@<(9T(
- + M("`&3-\HX%!/3G4@+P`$(@!K%K*L"6QL$"`!YX#0@>6`(&P):$*P"`1.=2`O
- + M``1(YP$$+@!K'KZL"6QL&"`'YX#0A^6`*FP):-O`2JT`!&<$(`U@"'`)*4`*
- + MI'``3-\@@$YU("P);$YU```@+P`$64\N@$'L`1`@"%A/3G4@;P`$64\NB$'L
- + M`1`@"%A/3G4@+`$03G4``%E/2JP!0F8,0>\``RE(`4)A[F`60>\``R)L`4*S
- + MR&0$<`%@`G#_*4`)<%A/3G593TCG`10N+P`42JP)<&8"8<`J;`%&8"X@+`EP
- + M;PQ![P`/(FT`!+/(8A!*@&H<0>\`#R)M``2SR&00)E4O#4ZZ)+)83RI+(`UF
- + MSBE-`49*AV8$<`!@(E"'+P=.NB8"($`@K`%&0^\`$R%)``1#Z``(6$\I0`%&
- + M(`E,WRB`6$].=0``("\`!%E/+H`@+`J`9PX@0$ZZ_(I*@&<$<@%@`G(`(`%8
- + M3TYU("\`!"!L"H!R`$[Z_#!.NOMD*4`*@&8*2&P!3$ZZ^T!83R!L"H!.NOOT
- + M@:P)=$YU(&P*@$[Z^Y`([``,"79.=2`O``0(```,5L!$`$B`2,!.=0CL``T)
- + M=DYU("\`!`@```U6P$0`2(!(P$YU3KH41G``(&P*W!`H``]R`>&A@ZP)=$YU
- + M3OH4F"`O``193TCG`18O0``0?@!@+B`M`!1.NA/N)D!*@&<42JL`%&8.?@%P
- + M`2=``!0G;0`8`!@B37`<+'@`!$ZN_RX@;`K<+'@`!$ZN_HPJ0$J`9L`@!TS?
- + M:(!83TYU("\`!$CG#P0N`'`![Z`L`'`)OH!F!G``3KH*'"`L"GC`AF<&C:P*
- + M?&!Z*@9&A<NL"GQ*AVMF<""^@&Q@(`?G@$'L"7@J<`@`,'P``;O(9BP@!U6`
- + M9Q13@&<0<@V0@6<\68!G.%&`9S1@"DAL`61.NOG\6$]P`$ZZ";Y@("`-9QP@
- + M!^>`*`9![`EXB+`(!(FL"G@@!TZ51H3)K`IX("P*?,"&9HI,WR#P3G4@+P`$
- + M+PXB+`ET@H!P`"QX``1.KO[.+%].=2`O``0O#B(`("P)=("!+'@`!$ZN_L(L
- + M7TYU("\`!$CG`P`N`'P`80#^$$J`9PA\`7`.80#_#"`'80#^8DJ`9PA\`7`"
- + M80#^^B`'80#^:DJ`9PA\`7`#80#^Z"`'80#^ADJ`9PA\`7`480#^UB`&3-\`
- + MP$YU("\`!"\'*4`)!'`(+A]@`/Z\<`!A`/]@8)!@]DCG`11^`$OL"7@V?``!
- + M*HM"K0`$4H=0C7`@OH!M\$*L"GQ"K`IX0JP)=&$`_=1A`/WJ80#]HDS?*(!@
- + M`/WX80#]N&``_@@``$AL`7A.NOC86$].=2`O``0O#4ZZ(R@J0$J`9@)AXB`-
- + M*E].=2!O``0@+P`(+PM.NB$<)D!*@&8"8<8@"R9?3G4@;P`$+PTJ2"`-9@1+
- + M[`&"($U*&&;\4XB1S2`(4H!.NB+<($!*@&8$<`!@"")($MUF_"`(*E].=5E/
- + M2.<#-'X`?``@;`J$)F@`T&`L2BL`"&8D,#P%`,!K``YF&E*'(&L`"B`(2AAF
- + M_%.(D<`@"-R`W*L`%%2&)E-*DV;0(`=2@.6`T(9A`/]**4`*G.6'($`B0-/'
- + M1>D`!"]``!1F"D'L`70I2`J<8%8@;`J$*F@`T&!"2BT`"&8Z,#P%`,!M``YF
- + M,"9M``HN+0`4(&\`%"#*+T@`%&`"%-M*$V;Z%/P`/29M`!!@`A3;(`=3ATJ`
- + M9O9"&BI52I5FNB!O`!1"D$S?+,!83TYU(&\`!"`O``@O#2I(*H!"K0`$Y8!A
- + M`/ZT*T``""I?3G4@;P`$(F\`""`O``Q(YR(T)DDJ2$J`9PH@2V$`_L(D0&`"
- + M)$L@"F<^(A4D+0`$M(%M(BP!W(9T$-*"O(%M`B(&*H$@`>6`(&T`"$ZZ'YHK
- + M0``(9Q)'[0`$(A-2F^6!(%LABA@`<`%,WRQ$3G4@;P`$(F\`""`O``QADDJ`
- + M9@1A`/X:3G4@;P`$(F\`"$CG`!0F22I(("T`!-"K``2PE6\2T(`J@.6`(&T`
- + M"&$`_AHK0``((BT`!.6!(&T`"-'!("L`!"(`Y8$B:P`(8`(0V5.!9/K1K0`$
- + M(&L`"$S?*`!.^A^*(&\`!")O``@O;P`,``0@+P`0(B\`%%E/2.<"-"P!*DDD
- + M2"](`!!*@&=$4X!G"E.`9P``MF```/13AF<B("\`&"(-D($@;P`00C`(`"!!
- + M(F\`$&`"$MA3@&3Z8```SD'L`80B;P`0$MAF_&```+XF;P`88&YP7+`59F9*
- + M+0`!9V!4C7`!O(!F!A3\`&%@5"`&58!F1A`M__](@$C`<B.0@6<N58!G*E6`
- + M9R93@&<B4X!G'E.`9QIR%9"!9Q1R')"!9PY5@&<*<A^0@6<$58!F!!3\`"<4
- + M[?__8`@4[?__8`(4W;O+98Y@0"9O`!A@-G`JL!5F+DHM``%G*%2-$"W__TB`
- + M2,!R99"!9PQR"9"!9@P4_``*8`X4_``;8`@4[?__8`(4W;O+9<9"$DS?+$!8
- + M3TYUGOP!+$CG/S8J;P%8(&P)(`QH`"4`%&0*2'@`%$ZZ\A983T*L"&AP`2E`
- + M"&0I0`B*<`(I0`B&*4`(K"E\````A`BHD\DL>``$3J[^VBE`"H1.NO4H*4`*
- + MB&8*2&P!ADZZ]0183R!L"HA.NO6X*4`*C"QL"H@@5BQH`!0I3@J80>\!,$ZN
- + M_[XI;P$P"I!.NO8@3KK[K"!L"H0@*`"L9Q#E@")`(BD`-.6!*4$*E&`&*6@`
- + MA`J42A5F``#H0>P!GB((+&P*_"0\```#[DZN_^(L`$'L`:0B"$ZN_^(N`$'L
- + M`:HB"$ZN_^(J`$J&9PA*AV<$2H5F(DJ&9P8B!DZN_]Q*AV<&(@=.KO_<2H5G
- + M!B(%3J[_W&$`^W)P`2\`+P4O`"\'(@;!04ZZ"A0@;`DD("@`'$'O`5AA`/R>
- + M3^\`$'P`?@!@4")L"20@:0`D(#!X`&<^(@!#[P`P)`DL;`K\=D#EBTZN_FY*
- + M@&<F(FP))"!I`"31QR`H``1G""(")`!.KOR.0>\!2$/O`#!P`6$`_-A2AE"'
- + M(&P))+RH`!QMIF```LPL;`K\3J[_RB@`3J[_Q"H`?@`@;`J$+"@`X&8H?@%!
- + M[`&P(@@D/````^U.KO_B+`!F$D'L`;(B"$ZN_^(L`&8$80#ZI"\'+P9P`"\`
- + M+P4B!,%!3KH)1D'O`5AP`6$`^]8@/```!1IA`/J.($`Q?`0``!(O0``\<$#E
- + MB&$`^GI/[P`0?D#ECR]``3A@`E*-$!5(@$C`0>P'10@P``,(`&;L$!5G``(6
- + M<B*P`68P4HTF36`0<"JP%68(2BT``6<"4HU2C1`59P9R(K`!9N8D31`5<B*P
- + M`68"4HU\`F!4<">P%68@4HTF36`"4HT0%6<&<B>P`6;T)$UP)[`59@)2C7P!
- + M8"XF36`0<%RP%68(2BT``6<"4HU2C1`59Q)R(+`!9PQR"K`!9P9R";`!9MHD
- + M37P`($LJ"IJ+(`52@"](`"AA`/FV)D!*KP%,9B`@!2!+(F\`*$ZZ&I)",U@`
- + M0>\!2")+<`!A`/M@8`#_)MJ%<A#:@;J';Q0@;P$X3KH;/"`%80#Y=BX%+T`!
- + M."\*(`8@2R)O`"QR`6$`^ZY83R(+)"\!."8'+&P*_$ZN_+@J`&P00A(O+P`H
- + M2&P!N$ZZ\@I03TJ%9B(O"B`&($LB;P`L<@!A`/MT0>\!3")+<`!A`/KH6$]@
- + M`/ZL>@$@;P`L0J@`"$(H`!%"*``0+PH@!B!+(F\`+'("80#[0$'O`4!P$&$`
- + M^B983R(+)"\`+"QL"OQ.KOS**`!F/&`J>@`B;P`LTOP!&$'O`3QP`6$`^B!*
- + M@&8$>&=@$B(O`"PL;`K\3J[\Q"@`2H1GTB(O`"PL;`K\3J[\OG!TT("X@&<*
- + M2&P!S$ZZ\5983TJ%9R(O"B`&($LB;P`L<@!A`/K`0>\!3")+<`!A`/HT6$]@
- + M`/WX("\!0"!O`41.NA5V0>\!2$/O`3QA`/HJ($M.NAH"8`#]UB!O`3A.NAGV
- + M(&\`+$ZZ&>YA`/B20>P!YDZZ"'HI0`$09@A$U@`E**M<MD!G`*L!)F]+?*9@0H"F`&0>H``2@(F(TB+P`H)`TF!"QL"OQ.
- + MKO_0+`!2@&8(3KH(6G#_8#[:AK:&9C9+Z@`!GH9P`$ZZ]8!.NO6P2H!F(DJ'
- + M9J1@'"(&)`TF!RQL"OQ.KO_0*@!2@&8(3KH('G#_8`(@!4S?;/Q03TYU64](
- + MYS\"+@`L$"]!`!Q**``-9P1P`&!24X$F`2(&)`<L;`K\3J[_OBH`3J[_?"@`
- + M4H5G!$J$9PX@!$ZZ!M@I0`JD</]@)"(&=``F`DZN_[XL`%*`9P1*A&<.(`1.
- + MN@:V*4`*I'#_8`(@!DS?0/Q83TYUGOP!`$CG/P8N`"I(+!4J+0`(("T`!&<*
- + M(@`L;`K\3J[_IA@M``U(A$C$($U.NA=H2H1G!'``8$0B!D'O`"`D""QL"OQV
- + M0.6+3J[^:"@`2H=F"B(&3J[_W$J`9QI*A&<2</^Z@&<,(@(D!4ZN_T9*@&<$
- + M<`!@!DZZ!R1P_TS?8/S>_`$`3G4@+P`$2.<@`B(`+&P*_'0`3J[_-$ZN_WQT
- + M+D8"L()7P40!2(%(P2`!3-]`!$YU("\`!"!O``@B;P`,GOP`$$CG-Q8N`"9)
- + M*DA\`&&X2H!F?"('+&P*_'0!3J[^5DJ`9VPB!T'L`B0D"'8$3J[_T%F`9E(B
- + M!R0\```G$$ZN_S1*@&="(@=![P`@)`AV$$ZN_]9R";"!;RYPF[`O`"!F)D'O
- + M`"4B""0+3J[\T"H`0>\`)M'`(@@D#4ZN_-!2@&<&4H5G`GP!(@=T`$ZN_E8@
- + M!DS?:.S>_``03G4@+P`$(B\`")[\`A!(YS\&+@!P_R]``B@O00`D(@<L;`K\
- + M=`!V`4ZN_[XO0``@(@=.KO^^+`!.KO]\*@`O0`(L9@``PB@O`"0B!R0$=O].
- + MKOXXL()F``"NO()L``">*@2:AB@%(`1R`4A!+'@`!$ZN_SHJ0$J`9FIR`DA!
- + M3J[_*.*(*@`,A0```@!M$"`%<@%(04ZN_SHJ0$J`9D9Z0.>-2^\`*#`\`?]R
- + M`$'O`"@0P5'(__Q@++B%;P0@!6`"(`0F`$ZZ\U(B!R0-+&P*_$ZN_]"P@V<*
- + M3J[_?"]``BQ@!IB#2H1NT$'O`"BQS6<,(DT@!2QX``1.KO\N*B\"+&8$0J\"
- + M*"PO`""\KP`D;`XB!R0&+&P*_';_3J[_OBPO`BAG"B`%3KH$'BE`"J0@!DS?
- + M8/S>_`(03G6>_`$(2.<W%BX`)DDJ2"P52BT`#68``1@@!P2````$`&<@!(``
- + M``0`9TI3@&=84X!G7%.`9UY3@&=F4X!G;&```.Y*+0`,9R8@!D'O`21#[P$@
- + M80#]UDJ`9Q0@+P$D-T```B`O`2`V@'``8```RG`98```OB(&+&P*_$ZN_R@F
- + M@'``8```LB:&<`!@``"J<`!@``"D(`8B$V$`_C9@``"8*U,`"'``8```CBH3
- + M2JT`!&8.(A4L;`K\3J[^C"M```0@+0`$9V(D`"(%+&P*_$ZN_EQ*@&92(@9!
- + M[P`@)`AV0.6+3J[^:$J`9SXB!4ZN_Z8B+0`$3J[_IB(&3J[_W"("=`!.KO]&
- + M&WP``0`-*H(K0@`$0>\`("((+&P*_$ZN_[A*@&<$(`)@#DZZ`]Q@!G`6*4`*
- + MI'#_3-]H[-[\`0A.=2`O``0B+P`(+V\`#``$2.</!BHO`!PL`2X`<`Y.NA4.
- + M*D!*@&8*<`PI0`JD</]@3D/5(L="F2+&0BT`#2('+&P*_$ZN_R@;0``,2'K^
- + M=$AZ^]I(>OMD2'KZK$AZ^G9(>OIH(`4@34/Z^E!.NNRL3^\`&"@`;`8@34ZZ
- + M$T8@!$S?8/!.=2`O``0B+P`(+V\`#``$+V\`$``(+V\`%``,+V\`&``02.<-
- + M`"@O`!0J+P`0+@!P`$J!9@1P0.6(`$```2\`(`=R_V$`_T983TJ`9D!P`$J$
- + M9@1P0.6(`$```B\`(`5R_V$`_RA83U.`9B)P`$JO`!QF!'!`Y8@`0``"+P`@
- + M+P`<<O]A`/\&6$]5@&<00>P"*B](`!!,WP"P3OKIL$S?`+!.=0``(&\`!$CG
- + M(Q8J2'X`0J<L;`K\<@(D#TZN_QQ/[P`$)D!*@&=2(@UT_DZN_ZPN`&=&(@<D
- + M"TZN_YI*@&<Z(BL`!%[`1`!(@$C`+``B!TZN_Z9R`DZN_Q9*AF<4(@U.KO^X
- + M2H!G!'``8#).N@(T8"IP%"E`"J1@(DZN_WQ.N@$H*4`*I$J'9P8B!TZN_Z8@
- + M"V<()`MR`DZN_Q9P_TS?:,1.=2`O``0@;P`((B\`#%E/2.<#-"P!+@`J2$ZZ
- + M[[P@!TZZ[$PF0$J`9T0(*P`!``-G-@@K``,``V<6(&L`&"](`!0@:P`$<`!R
- + M`B)O`!1.D2!K`!0O2``4(`8@:P`$(DTD;P`43I)@"'`-*4`*I'#_3-\LP%A/
- + M3G4@+P`$(&\`""(O``Q(YP,$3-\@P&"`(&\`!)[\`$!(YSL6*DA.NN\Z(`UG
- + M4DH59TXB#4'O`"`D""QL"OQV0'@`3J[\=BX`;39.KO]\+`!2@$ZZ$IPF0$J`
- + M9R2^AF<4)@92@R(-)`M.KOQV2H!O$"`"8`X@0B)+$MAF_"`+8`)P`$S?:-S>
- + M_`!`3G4@+P`$*4`)`$J`9P``AG)GD(%G``""58!G``"`<@F0@6=\4X!G>%.`
- + M9W13@&=P4X!G;%.`9VA3@&=H4X!G:')1D(%G9E.`9V93@&=F4X!G9E.`9V93
- + M@&=F58!G9E.`9V93@&=F4X!G9E6`9V93@&=F4X!G9E.`9V93@&=F4X!G9E6`
- + M9V93@&=F4X!G9E.`9V9@:'``8&9P#&!B<`M@7G`68%IP!V!6<`A@4G`08$YP
- + M$6!*<`)@1G`"8$)P%F`^<`=@.G`68#9P)&`R<!9@+G`68"IP'F`F<!)@(G`E
- + M8!YP)F`:<!-@%G`68!)P'&`.<`U@"G`-8`9P#6`"</].=2\.+&P*_$ZN_WQA
- + M`/[Z*4`*I"Q?3G4@;P`$2.<`!BI((DTL>``$3J[_!"!-3-]@`$[Z#\@@+P`$
- + M2.<!!"X`*FP*L&`.("T`#+"'9@0@#6`(*E5*E6;N<`!,WR"`3G5(YR`"0>P*
- + ML$ZZ'(8@+`J$(BP*D"0`LX("@@!___\I0@JL4H(I0@JH+P$O`$AL!;Q(;`J\
- + M3KKE8D_O`!`L>``$3J[]9BE`"N!G$$'L"KQP`$ZZ')HI0`K<9@I(;`7*3KKF
- + M2EA/3-]`!$YU2.<`!B`L"N!G"B!`+'@`!$ZN_6!*K`K<9S@L>``$3J[_?&`,
- + M(DUP'"QX``1.KO\N(&P*W"QX``1.KOZ,*D!*@&;B(&P*W$ZZ&_(L>``$3J[_
- + M=DS?8`!.=0``(&\`!"`O``@B+P`,(F\`$"]O`!0`!"]O`!@`"%E/2.</-B@O
- + M`"PJ+P`H+`$N`"I)+T@`("QX``1.KOUF)D!*@&<P($L@!$ZN_7(D0$J`9R(@
- + M#6<()4T`*"5%`"0@;P`@(`<B2B(&3J[^1$H`9@0@"F`6(`IG!B!*3J[];"`+
- + M9P8@2TZZ&UQP`$S?;/!83TYU(&\`!$CG``8J2"`-9Q@B32QX``1.KOX^(&T`
- + M#DZZ&S(@34ZN_6Q,WV``3G4@#UE`L*P(_&4`#*)(YP$$*F\`#"!-2AAF_%.(
- + MD<TN"%.'8`H@1U.'(`A"-0@`2H=O"'`OL#5X`&?J3-\@@$YU(`^0?``8L*P(
- + M_&4`#&`@+P`$(&\`#")O``A"IR\O`!@O+P`8+P@O"2\`3KH!.D_O`!A.=2`/
- + MD'P`&+"L"/QE``PL("\`!"!O``PB;P`(2'@``2\O`!@O+P`8+P@O"2\`3KH!
- + M!$_O`!A.=0``O^P(_&4`"_I(YP$$+B\`$"IO``Q@$!`52(!(P+"'9@0@#6`(
- + M4HU*%6;L<`!,WR"`3G6_[`C\90`+R$CG`Q0N+P`<)F\`&"IO`!1\`&`(%[5H
- + M`&@`4H:\AVWT3-\HP$YU(`^0?``,L*P(_&4`"Y1(YP$4*F\`$"XL"O">K`KL
- + MY8<O!TZZY_8F0"(L"NSE@2!-T<$NAR\`+PAAF"`L"O`B`.6!($W1P2(L"NSE
- + M@2)-T\$B+`78DH#E@2Z!+PDO"&$`_W(B+`KLTJP%V)*L"O#E@=O!+H<O#2\+
- + M80#_6"`L!=A+[`KL(AW2@)*53^\`'"K`*4$*[$S?*(!.=2`/D'P`)+"L"/QE
- + M``KZGOP`$$CG/S0J;P!()&\`1$*L!=1*K`789E1P`2E`!=A"K`KD*4`*["E`
- + M"O`@;P!`$A!T+;("9@QT`BE""NA2KP!`8"IT*[("9@I"K`KH4J\`0&`:2&P%
- + MY$ZZ#\Y83TJ`9P9"K`KH8`9P`2E`"N@N+P`X2JP*Y&<*(&P*Y$H09@`!,'`!
- + ML*P*Z&9<("P*\"(L"NRR@&<2L*P%V&<,+R\`/&$`_K983V`,(BP%V+"!9P0I
- + M00KL(BP%V.6!)F\`/-?!8`92K`786(L@+`78L(=L#B)3<"VP$6;J2BD``6?D
- + M("P%V"E`"O`@+`78OH!G4.6`2&P%]"!O`$`O,`@`3KH*;E!/2H!F.%*L!=@@
- + M+`KP(BP*[+*`9Q*PK`789PPO+P`\80#^-EA/8`RR@&8(("P%V"E`"NP@!RE`
- + M!=@I0`KP("P%V+"'9A8@+`KL(BP*\+*`9P0I0`78</]@``1$(BP%V.6!(&\`
- + M/"9P&``4$W8MM`-F"B)P&`!**0`!9AQ*K`KH9@9P_V``!!A2K`78*7`8``74
- + M<`%@``0(4HL@"F<(MA-F!'`!8`)P`")+T\`I20KD(`IG``+&(BP%V.6!(&\`
- + M/"!P&`!P+;`09@`"L+`H``%G"$JO`$QG``*B)FP*Y$*O`"Q\`$*O`"A@`E*+
- + M$!-G!G(]L`%F]"]*`#!Z`&!B(`N0K`KD+P`O+`KD(&\`."\03KH)*D_O``Q*
- + M@&8\+@N>K`KD(&\`,"\03KH(WEA/OH!F$B!O`#`H!7`!+T``+"](`"A@)$JO
- + M`"AF#"!O`#`H!2](`"A@`GP!<!#1KP`P4H4@;P`P2I!FEDJ&9T1*KP`L9CY*
- + MK`7<9R`B+`78Y8$@;P`\+S`8`"\02&P%^$AL")!.N@XL3^\`$"\L"N1.N@AJ
- + MT:P*Y%*L!=A83W`_8``"\"XO`#A*KP`H9P`!)E*L!=A*$V=X(&\`*$JH``1G
- + M#$/K``$I20748```T$JL!=QG2"(L!=CE@2)O`#PD<1C\<"VP*@`!9A8O$"\1
- + M2&P&%DAL")!.N@VZ3^\`$&`<$!)(@$C`+Q`O`"\12&P&1$AL")!.N@V<3^\`
- + M%"\L"N1.N@?:T:P*Y%A/<#]@``)D<`$@;P`HL*@`!&9@(BP%V+*';!)2K`78
- + MY8$@;P`\*7`8``748$9*K`7<9QSE@2!O`#PO,!C\+Q!(;`9R2&P(D$ZZ#4!/
- + M[P`0+RP*Y$ZZ!WY83]&L"N1P.B!O`$"P$&8&<#I@``'^<#]@``'X+RP*Y$ZZ
- + M!UI83]&L"N0@#6<"*H0@;P`H("@`"&<.(B@`#"!`((%P`&```<P@;P`H("@`
- + M#&```<!*KP!,9S`B+`78Y8$@;P`\('`8`'`ML"@``6<:(&P*Y!`02(!(P"\`
- + M+R\`1&$`^NI03TJ`9F1*K`7<9TPB+`78Y8$@;P`\)'`8`'`ML"H``688+RP*
- + MY"\02&P&F$AL")!.N@Q\3^\`$&`>$!)(@$C`+RP*Y"\`+Q!(;`:X2&P(D$ZZ
- + M#%Q/[P`40>P&V%*L!=@I2`KD<#]@``$F2^P*Y"!5$!@JB!]``"=(@$C`+P`O
- + M+P!$*LAA`/IB4$\D0"!L"N1*$&8$4JP%V"`*9PH0+P`G<CJP`68X2JP%W&<@
- + M$"\`)TB`2,`O`"!O`$`O$$AL!MI(;`B03KH+Z$_O`!`0+P`G2(!(P"E`!>!P
- + M/V```+)P.K`J``%F``"@L"H``F8>(&P*Y!`09PHI2`744JP%V&`$0JP%U)/)
- + M*4D*Y&!Z(&P*Y$H09PHI2`744JP%V&!D("P%V+"'9DI*K`7<9R`0+P`G2(!(
- + MP"\`(&\`0"\02&P&]$AL")!.N@MH3^\`$!`O`"=(@$C`*4`%X'`Z(&\`0+`0
- + M9@8?0``G8!IP/Q]``"=@$E*L!=@B`.6!(&\`/"EP&``%U$*L"N00+P`G2(!(
- + MP$S?+/S>_``03G4@#Y!\`!BPK`C\90`%1"`O``0@;P`,(F\`"$*G0J="IR\(
- + M+PDO`&$`^B)/[P`83G6_[`C\90`%&B\'+B\`"&\2OJP%MFX,Y8=![`4:(#!X
- + M`&`&0>P''"`(+A].=2`/D'P`*+"L"/QE``3H2.<#%"PO`!@N+P`4)F\`("IO
- + M`!PO+`E(2&P',DAL")!.N@J*+J\`2"\O`$0O+P!$+R\`1"\O`$0O+P!$+R\`
- + M1"\++PU(;`B03KH*8D_O`#!*AF<8+P9A`/]N+H!(;`<X2&P(D$ZZ"D9/[P`,
- + M""P``0BK9T)2K`B<("P(G+"L"*1N("!L")12K`B4$+P`"@@L``8(JV<N2&P(
- + MD$ZZ#2)83V`B4ZP(G$AL")!(>``*3KH*7E!/8`Y(;`B02'@`"DZZ"DY03TAL
- + M")!.N@ST6$]*AV<(+P=.N@E$6$],WRC`3G4``%E/0?D`````+HAG""!Y____
- + M_$Z06$].=5E/0?D`````+HAG""!Y_____$Z06$].=4CG`Q<J;`KT8!0F57`4
- + MT*T`!")-+'@`!$ZN_RXJ2R`-9NA"K`KT8$PJ;`L`<)S0K`C\)D`@+0`$*4`+
- + M`"EM``@(_"XM`!A*@&8>(&P)(`QH`"0`%&42($\L"$'M``PL>``$3J[])"Y&
- + M(DL@!RQX``1.KO\N2JP+`&:N3-_HP$YU(&\`!")O``@@4")1$!BP&68$2@!F
- + M]I`A2(!(P$YU(&\`!"`O``A#^O_@<@1.^@>"(&\`!")O``@@+P`,2H!O"A(0
- + M$-$2P5.`9O9.=2`O``@@;P`$3E7_]")/<@I.N@(T!D$`,!+!2H!F\"`)$.&_
- + MR6;Z0A"0CTY=3G4``"`O``@@;P`$3E7_]")/(@`"00`'!D$`,!+!YHAF\"`)
- + M$.&_R6;Z0A"0CTY=3G4``#`Q,C,T-38W.#EA8F-D968@+P`((&\`!%%/(D\R
- + M``)!``\2^Q#<Z(AF\B`)$.&_R6;Z0A"0B5!/3G4``"!O``0B;P`(2.<P("1(
- + M<@`@`28!#!``*V<(#!``+68$=@%22!`8!```,&T:#```"6X4)`'E@=*"TH%*
- + M`V8$TH!@XI*`8-XB@2`(D(I3@$S?!`Q.=2!O``0O#2I(""T``P`;9C`@+`BT
- + M3KH$WBM```0K0``09@IP#"E`"J1P_V`6*VP(M``4<//!K0`80JT`#$*M``AP
- + M`"I?3G4``"!O``1(YR`4*D@F36`@<``0$T'L!T4(,``!"`!G"G(`$@!T()*"
- + M8`1R`!(`%L%*$V;<(`U,WR@$3G4``)[\`%!(YS$V0_H`A'``+'@`!$ZN_=@J
- + M0$J`9@9P%$ZZZ:Y^`"!L"2P>*/__(`=#[P`<8`(2V%.`9/I"-W@<0>\`'"E(
- + M",1#[`C,1^P(X"Q-D<B5RG``(@!T?=2"=BA.KOZD<!1.NNEH3-]LC-[\`%!.
- + M=2HJ(%-T86-K($]V97)F;&]W("HJ``!%6$E4``!I;G1U:71I;VXN;&EB<F%R
- + M>0!*@&H``!Y$@$J!:@``#$2!80``($2!3G5A```81(!$@4YU2H%J```,1(%A
- + M```&1(!.=2\"2$$T`68``")(0$A!2$(T`&<```:$P3`"2$`T`(3!,`)(0C("
- + M)!].=2\#=A`,00"`9```!N&944,,00@`9```!NF964,,02``9```!N6954-*
- + M06L```;CF5-#-`#FJ$A"0D+FJDA#@,$V`#`"-`-(0<3!D()D```&4T/0@7(`
- + M,@-(0^>X2$#!028?)!].=0``2.=P`"0`9R!*@68$0H!@&"8`QL%(0L3!2$)"
- + M0M:"2$'`P4A`0D#0@TS?``Y.=0``("P)*`1``?0N0$[Z_F```"!O``0@"$H8
- + M9OQ32)'`(`A.=0``(&\`!"`O``@B?`````!*$&<*L!AF^$/H__]@\B`)3G4@
- + M;P`$(F\`""`O``Q*@&<04X`2&+(99@Q*`6<$4X!J\G``3G5N!'#_3G5P`4YU
- + M```@;P`$(F\`"!(8LAEF"$H!9O9P`$YU;@1P_TYU<`%.=2)O``@@;P`$("\`
- + M#"((8`00V6<(4X!D^&`&0AA3@&3Z(`%.=2)O``@@;P`$("\`#"((2H!O%K')
- + M90S3P-'`$2%3@&;Z8`80V5.`9OH@`4YU(&\`!"`O``A(YP,4+@`J2&82(`UF
- + M!'``8&@@34ZZ`&YP`&!>(`UF"B`'3-\HP$[Z`<@F356+,#Q__\!32,#E@"P`
- + M"!,`#V<,#&N``/_^9@0L*__R(`=.N@&@)D!*@&8$<`!@'KR'8P0@!V`"(`8@
- + M32)+8`(2V%.`9/H@34ZZ``X@"TS?*,!.=2!O``0@"&8"3G59@$CG/#(B+`KT
- + M9@XI?````!8*I$S?3#Q.=2)!L(%O$B0!U*D`!`:"````%+"";`)@""(I``!G
- + MU@)@$&@P```!"P@VW&9Q(D0T*"-"H``FNZY8K6@EB#8.@D0#0J``!JJ@BJ
- + M``<``$*#-BH``@)#?__EBTIJ``)K0$?R.`1*:P``:S9"A#@K``("1'__Y8S8
- + M@UB$Y(Q8@TIK``)J!`!$@``U1``":Q(J!.6,-#)(!`)"@`"*0C6%2`1"A#@J
- + M``!G3.6,1(1'\DC\2FL``&L^0H0X*P`"Y8Q"A3HJ``("17__Y8W8A5B$6(/D
- + MC$IJ``)J!`!$@``W1``":Q(J!.6,-#-(!`)"@`"*0C>%2`37J0`()BD`!+:L
- + M!T!N#+:I``AF.DJI``!G-"`L"O0@0+*`9@PI:0``"O1@$"!H``"RJ```9O8A
- + M:0`````@*0`$!H`````4+'@`!$ZN_RY,WTP\3G4@+P`$2H!F#"E\````%@JD
- + M<`!.=4CG/C)6@`*`_____`R```'__&X``+BPK`=`;@``L"8L"O1G``"H(D.P
- + MJ0`(;C(B+`KXLJD`#&8H1>D`$$I2:Q!"A#@J``("1'__Y8RPA&\:0H0X*@`"
- + M:PCEC$7R2`1@W"8I``!G9B)#8+X(Z@`'``!'\@@$0H6PA&<\+`2<@%F&9@0@
- + M!&`PY(Y*:@`":@0`1H``*@#DC3=&``(W10``-44``GH$2D9K#C0R2`0"0H``
- + MC$(UAD@$)BD`"):`EH4C0P`((`I8@$S?3'Q.=2H`L*P'0&H$("P'0"@`!H``
- + M```4(BP*^"QX``1.KO\Z2H!F"BE\````#`JD8,PB0$7I`!`C;`KT```I20KT
- + M(T0`!"-L"O@`#"8$EH5G*%F#9R0C0P`(1_)8!#5\@````.2--44``C=%``#D
- + MBP!#@``W0P`"8!1"J0`(-7R`````Y(P`1(``-40``B`*6(!,WTQ\3G4@;P`$
- + M("\`""(O``PB;P`064](YP\V+`$N`"I(+TD`('`!OH!C``"R)DW7QB`'58!F
- + M)"\++PT@32)++&\`*$Z64$]*@&\``)(@!B!-(DM.NOA,8```A"`'XH@B!DZZ
- + M^R8B3=/`(`8@34ZZ^#(D37H`>`%@*B\-+PL@2R)-+&\`*$Z64$]*@&H24H75
- + MQK7+9PH@!B!+(DI.NO@$U\92A+B'9=*US6<*(`8@32)*3KKW[B9O`"`@!2(&
- + M($TB2V$`_U(@2M'&(`>0A5.`(@8B2TS?;/!8CV``_SI,WVSP6$].=4[ZZMI.
- + M^NK2("\`!$CG`00N`"IL"/1@""!M``1.D"I5(`UF]$OL"$QP!L"M`!A5@&88
- + M("T`!)"M`!!G#B(M`!P@;0`0P4%.NNH0($TJ4"`-9M8@!TS?((!.^N*T("\`
- + M!"!O``@O#2(`*DA2E4/M``@@$5*1&X$(#"`9#(````(`;11![0`,(FT`!'(!
- + MP4%.N@'P0JT`""I?3G6>_`(,+PTJ;P(40J\`#$*O``0O30`(2&\"'"\O`AQ!
- + M^O^J0^\`#$ZZ"`I03R`O``QG$$'O`!`B;P`(<@'!04ZZ`:8(+0`%`!MF"`@M
- + M``0`&V<$</]@!"`O``0J7][\`@Q.=2`O``0@;P`(64](YP,$+@`J2'P`'T``
- + M#W)!TH'"K0`89@P([0`%`!MP_V```4!P,\"M`!A5@&=0<$Q&`,"M`!AR0-*!
- + ML(%F#`CM``$`&T*M``Q@-`@M``4`&V<&</]@``$,<&Y&`,"M`!AR;D8!L(%F
- + M#`CM``$`&T*M``Q@"G``*T``#&```.8@+0`,L*T`%&PR(&T`!%*M``0@!Q"`
- + M4JT`#`@M``8`&V<.<@J^@68(($U.N@(`+`!*AF<``*H@!F```*H(+0`"`!MG
- + M+D*M``P@+0`<0>\`#W(!3KKH@"P`4H!F"`CM``4`&V!R(`93@&=L".T`!``;
- + M8&1*K0`49B`@34ZZ]L!*@&<*".T`!0`;</]@6'``*T``#"MM`!``!"`M``RP
- + MK0`4;0@@34ZZ`88L``CM``$`&R!M``12K0`$(`<0@%*M``P(+0`&`!MG#G(*
- + MOH%F""!-3KH!6BP`2H9G!"`&8`9R`!('(`%,WR#`6$].=2!O``0@+P`((B\`
- + M#")O`!!93TCG#Q`L`2X`)DDO2``4(`8B!TZZ^`XJ`'@`2H=G!$J&9@9P`&``
- + M`/QP,,"K`!AF"G!!T(#`JP`89@P(ZP`%`!MP`&```-YP,\"K`!A5@&=0<$Q&
- + M`,"K`!AR0-*!L(%F#`CK``$`&T*K``Q@-`@K``4`&V<&<`!@``"J<&Y&`,"K
- + M`!AR;D8!L(%F#`CK``$`&T*K``Q@"D*K``QP`&```(1*JP`49DP(*P`"`!MF
- + M1"!+3KKUC$J`9SH(ZP`%`!MP`&!@(&\`%!`8(FL`!!*`4JL`!%*K``Q3A5*$
- + M+T@`%'(*L`%F#@@K``8`&V<&($M.N@`^("L`#+"K`!1L!$J%;L)*A6\6($M.
- + MN@`F("L`'"(%(&\`%$ZZYL#8@"`$(@=.NO9P3-\(\%A/3G4@;P`$2.<!!"I(
- + M(`UG``"@<$'0@,"M`!AF+"!M`!!#[0`$(LA"F4(M`"!P`"+`""T`!P`;9P8(
- + MK0```!L(K0`$`!M@``"*2JT`%&=$("T`#&H&<@`K00`,("T`#&<H(BT`'"!M
- + M`!#!04ZZYD(N`%*`9@@([0`%`!M@#+ZM``QG!@CM``0`&RMM`!``!$*M``QP
- + M,,"M`!AF$@@M``<`&V<&</S!K0`8<`!@)'#_8"!^`$OL"$Q*K0`89PP@36$`
- + M_T9*@&<"?O\J52`-9N@@!TS?((!.=2!O``0B;P`(+V\`#``$+V\`$``(GOP`
- + M-$CG+S8F;P!@*F\`7$CO`P``+$(O`#M"+P`Z0B\`.4(O`#@??``@`#="KP!4
- + M</\O0`!00B\`-GX`?`!%[P`\8$IP`"!O`"P0$'(@D(%G(E>`9R91@&<258!G
- + M!E>`9R)@,A]\``$`.V`>'WP``0`Z8!8??``!`#E@#A]\``$`.&`&'WP`,``W
- + M4J\`+"!O`"Q*$&:N<`&P+P`[9@8??``@`#=R*B!O`"RR$&8>+&\`,")66)8B
- + M$2]!`%1L"$2O`%0?0``[4J\`+&`,0^\`5$ZZ\PK1KP`L(&\`+!`0<BZP`69&
- + M4J\`+'`J(&\`++`09APB;P`P(%%8D2`0+T``4&P&</\O0`!04J\`+&`60^\`
- + M4$ZZ\L@J`&8&0J\`4&`$VZ\`+!]\`"``-W``(&\`+!`0<DR0@6<4<AR0@6<&
- + M68!G"F`2'WP``@`V8`8??``!`#92KP`L(&\`+%*((F\`+!`1<@`2`!]``"0O
- + M2``F<%"2@&<``1!1@6<``1QP"Y*`9P`!T%.!9U!;@6=,6X%G(E.!9P`!`E.!
- + M9P``ZE>!9P`!@%6!9P``\%>!9P``ZF```;@D;P`P<`*P+P`V9@X@4EB2(E`@
- + M$S*`8``"2B!26)(B4"*38``"/B)O`#`@45B1*!!J!'X!1(1*AV<,1>\`/1]\
- + M`"T`/&`B2B\`.F<,1>\`/1]\`"L`/&`02B\`.6<,1>\`/1]\`"``/'P!(`0@
- + M2DZZ\1XJ`"`O`%!F!DJ$9P`!Y"`O`%!J!G(!+T$`4"@O`%"8A6\<($K1Q"`%
- + M(DI.NO2T<C`@2F`"$,%3A&3Z*B\`4-R%(`53@&8``000$K`O`#=F``#Z2J\`
- + M4&8``/)"$F```.P@+P!0:@9P""]``%`??``!`#9P`K`O`#9F$")O`#`@45B1
- + M(!!X`#@`8`HB;P`P(%%8D2@0$"\`)')UL`%G`/]:<F^P`68>2B\`.&<,1>\`
- + M/1]\`#``/'P!(`0@2DZZ\(Y@`/\^2B\`.&<2'WP`,``\1>\`/A]\`'@`/7P"
- + M(`0@2DZZ\*HJ``@O``4`)&8`_Q1![P`\3KKQ6F``_P@B;P`P(%%8D210(`IF
- + M!$7Z`/(@2DH89OQ3B)'**@@@+P!0:P2PA6\$+T4`4"PO`%!@('P!(F\`,"!1
- + M6)$@$!]``#Q"+P`]8`9P`&```*Q%[P`\("\`5+"&;`AR`"]!`%1@!)VO`%1*
- + M+P`[9QY@"'``$!H@2TZ54X9L]&`&($MP($Z54Z\`5&ST8&I*AV8,2B\`.68&
- + M2B\`.F=&$!)R(+`!9PQT*[`"9P9T+;`"9C)*AFLNLB\`-V828`IP`!`O`#<@
- + M2TZ54Z\`5&SP<``0&B!+3I53AF`*<``0+P`W($M.E5.O`%1L\&`(<``0&B!+
- + M3I53AFST("\`)DS?;/3>_``T3G4``"!O``0B;P`(+V\`#``$+V\`$``(GOP`
- + M#$CG`!0F22I(+V\`'``08#AP);`O``QF)B!O`!BP$&8&4J\`&&`8+PLO#4/O
- + M`!A.NON44$]*@&<&+T``&&`*<``0+P`,($M.E2!O`!@0&!]```PO2``82@!F
- + MMDS?*`#>_``,3G4@;P`$((A8D$*H``0A2``(3G4``"!O``1(YP`&*DA*K0`*
- + M9PHB32QX``1.KOZ8&WP`_P`(</\K0``4<``0+0`/+'@`!$ZN_K`B37`B3J[_
- + M+DS?8`!.=0``(&\`!"`O``A(YP,6+@`J2'#_+'@`!$ZN_K8<`$B&2,8@!E*`
- + M9@1P`&!@<"(B/``!``%.KO\Z)D!*@&8((`9.KOZP8$1!ZP`*(,T71P`)%WP`
- + M!``(0A@0QI/)3J[^VB=``!`@#6<((DM.KOZ>8!I!ZP`8)T@`%$'K`!0G2``<
- + M0JL`&!=\``(`("`+3-]HP$YU+P@O`$ZY```"M%!/3G4``````^P````!````
- + M````/!(````!`````0````H````````#\@```^H```)T<&%T:```:&5L<```
- + M=F5R<VEO;@``````````````"4P````!````!@````````E0`````0````P`
- + M```````)5`````$`````````````````````<``E<PH`)7,``%5S86=E.B`E
- + M<R!;+7!=(%LM+7!A=&A=(%LM+6AE;'!=(%LM+79E<G-I;VY=(&1I<BXN+@H`
- + M`$=.52!F:6QE=71I;',@,RXV`````)0``$]K```````4````````````````
- + M````K&-O;G-O;&4Z```E<SH@``!I;G1U:71I;VXN;&EB<F%R>0```'1I;65R
- + M+F1E=FEC90````#_____9FEF;RYL:6)R87)Y```````````````````!#``!
- + M```````````!#@```````````````$`H(REA;&QO8V$N8PDQ+C$`````````
- + M``````!&86EL960@=&\@8W)E871E('1I;65R``!U<V5R(&EN=&5R<G5P=```
- + M`````$YO(&UE;6]R>0```&$`1F%I;&5D('1O(&-R96%T92!T:6UE<@``3DE,
- + M.@``3DE,.@``3DE,.@``*@!.24PZ``!);G9A;&ED('=I;&1C87)D("5S`$5R
- + M<F]R(&5X<&%N9&EN9R!A<F=U;65N=',`55-%4@``=7-E<@``55-%4DY!344`
- + M`$A/344``',Z``!32$5,3`!B:6XZ<V@``$A/4U1.04U%``!A;6EG80";,"!Q
- + M``!&86EL960@=&\@:6YI=&EA;&ES92!)+T\``&%M:6=A('-P96-I9FEC(&5R
- + M<F]R``````)$56YK;F]W;B!E<G)O<@!N;W0@;W=N97(`;F\@<W5C:"!F:6QE
- + M(&]R(&1I<F5C=&]R>0!N;R!S=6-H('!R;V-E<W,`:6YT97)R=7!T960@<WES
- + M=&5M(&-A;&P`:2]O(&5R<F]R`&YO('-U8V@@9&5V:6-E(&]R(&%D9')E<W,`
- + M87)G=6UE;G0@;&ES="!T;V\@;&]N9P``97AE8R!F;W)M870@97)R;W(`8F%D
- + M(&9I;&4@;G5M8F5R`&YO(&-H:6QD('!R;V-E<W,``&YO(&UO<F4@<')O8V5S
- + M<V5S`&YO="!E;F]U9V@@;65M;W)Y`'!E<FUI<W-I;VX@9&5N:65D`&)A9"!A
- + M9&1R97-S`&)L;V-K(&1E=FEC92!R97%U:7)E9`!M;W5N="!D979I8V5S(&)U
- + M<WD``&9I;&4@97AI<W1S`&-R;W-S+61E=FEC92!L:6YK`&YO('-U8V@@9&5V
- + M:6-E``!N;W0@82!D:7)E8W1O<GD`:7,@82!D:7)E8W1O<GD``&EN=F%L:60@
- + M87)G=6UE;G0``&9I;&4@=&%B;&4@;W9E<F9L;W<`=&]O(&UA;GD@;W!E;B!F
- + M:6QE<P!N;W0@82!T>7!E=W)I=&5R``!T97AT(&9I;&4@8G5S>0``9FEL92!T
- + M;V\@8FEG``!N;R!S<&%C92!L969T(&]N(&1E=FEC90!I;&QE9V%L('-E96L`
- + M`')E860M;VYL>2!F:6QE('-Y<W1E;0!T;V\@;6%N>2!L:6YK<P``8G)O:V5N
- + M('!I<&4`;6%T:"!A<F=U;65N=`!R97-U;'0@=&]O(&QA<F=E``!)+T\@<W1R
- + M96%M(&5M<'1Y``!F:6QE(&YA;64@=&]O(&QO;F<``&1I<F5C=&]R>2!N;W0@
- + M96UP='D`=&]O(&UA;GD@<V]F="!L:6YK<R`H;&]O<#\I`````EX```)L```"
- + M=@```I````*@```"N````L(```+<```"]````P8```,6```#*````SH```-,
- + M```#7@```VH```.````#E````Z````.R```#P@```](```/B```#]```!`@`
- + M``0<```$+@``!#X```1,```$9```!'(```2(```$F```!*0```2R```$Q```
- + M!-8```3J```$_@```"8``&1O;W(N)6QX+B5L>```3F\@;65M;W)Y````````
- + M`````````0```#]03U-)6$Q97T-/4E)%0U0`+2T``"5S.B!O<'1I;VX@8"5S
- + M)R!I<R!A;6)I9W5O=7,*`"5S.B!O<'1I;VX@8"TM)7,G(&1O97-N)W0@86QL
- + M;W<@86X@87)G=6UE;G0*```E<SH@;W!T:6]N(&`E8R5S)R!D;V5S;B=T(&%L
- + M;&]W(&%N(&%R9W5M96YT"@``)7,Z(&]P=&EO;B!@)7,G(')E<75I<F5S(&%N
- + M(&%R9W5M96YT"@`E<SH@=6YR96-O9VYI>F5D(&]P=&EO;B!@+2TE<R<*`"5S
- + M.B!U;G)E8V]G;FEZ960@;W!T:6]N(&`E8R5S)PH````E<SH@:6QL96=A;"!O
- + M<'1I;VX@+2T@)6,*`"5S.B!O<'1I;VX@<F5Q=6ER97,@86X@87)G=6UE;G0@
- + M+2T@)6,*``!5;FMN;W=N('-Y<W1E;2!E<G)O<@``)7,Z(```.B`E<P``````
- + M`$```"`@("`@("`@("@H*"@H("`@("`@("`@("`@("`@("`@2!`0$!`0$!`0
- + M$!`0$!`0$(2$A(2$A(2$A(00$!`0$!`0@8&!@8&!`0$!`0$!`0$!`0$!`0$!
- + M`0$!`0$0$!`0$!""@H*"@H("`@("`@("`@("`@("`@("`@("`A`0$!`@````
- + M````````````````````````````````````````````````````````````
- + M````````````````````````````````````````````````````````````
- + M``````````````````````````````````````````````````````^@```(
- + M;@``````````````````````````````````````````")``````````````
- + M````````````````````````````````````````````````````````````
- + M``````````````````(`__\````.``X```````````````#__P````0`!```
- + M`````"NB```(N/__````!``$````````*[@``````````````#4````T````
- + M)````!0````\````+````!P```"F````P````2````$4```%L@``!:X```6J
- + M```%I@``!:(```6>```%F@``!98```62```%C@``!8H```6&```%@@``!7X`
- + M``5Z```%=@``!7(```5N```%:@``!68```5B```%7@``!5H```56```%4@``
- + M!4X```5*```%1@``!4(```4^```%.@``!38```4R```%+@``!2H```4F```%
- + M(@``!1X```4:```"6@``"&X```A,```(W````^P````"````````".P```C8
- + (`````````_(:
- + `
- + end
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/c/sort.uue emacs-18.59/amiga/amiga-extra/amiga/c/sort.uue
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/c/sort.uue Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/c/sort.uue Tue Jul 12 10:36:08 1994
- ***************
- *** 0 ****
- --- 1,650 ----
- + begin 666 sort
- + M```#\P`````````"``````````$``!F=```"L@```^D``!F=2.=^_B1()`!)
- + M^0`````L>``$+P)(YP#@)FX!%"(K`*QG#.6)($$B*``TY8E@!B(/DJL`.G0`
- + M(#P``!T<LJP)(&0((BP)(-"!=`$F02(\``$``4ZN_SI*@&8(3-\'!&```D`@
- + M0"1`(D`@/````G:9_``````@W%.`9OH@'&<.($G1W-70((HD25.`8/`H2=G\
- + M`````"E\```='`HD3-\'`"E."@!*`DS?``1([(``"@AG2"`,!(``````!H``
- + M`!T<T*P)("(`!(````"`#&X`)``4;1@I0`H@*4$*')*L"2!![`H8((%.KOTD
- + M8`(N0"`L"2`O0``$T:P*)"(/DHL&@0```(`I00G<0JP*!'``(CP``#``3J[^
- + MSB9N`11#^@&(<`!.KOW8*4`=%&8&<&1@``#F*6L`F`G\2JL`K&<``'X@:P"L
- + MT<C1R")H`!#3R=/)(`)R`!(9*4D*#-"!7H`"0/_\*4`*%$CG0$`B/``!``%.
- + MKO\Z3-\"`DJ`9@AP%"\`9P`!!"!`*4`*$"`"4X#4@1&R```@`E."4<C_]A&\
- + M`"`@`E."$;P`(B`"$;$@`"`!4<K_^!"\`"(O"&!*0>L`7$ZN_H!!ZP!<3J[^
- + MC"E`"@0O`"1`("H`)&<8+&P=%"!`(B@``$ZN_Z`I0`G\(@!.KO^"(&P*!"\(
- + M2&P)V"!H`"0I:``$"@Q.NDPD3KHVGG``8`0@+P`$)&P*""4`+'@`!`QN`"0`
- + M%&T22JP*&&<,0>P*&%FL"B!.KOTD+DH@+`GT9P0@0$Z03KI+_$ZZ32Q*K`H$
- + M9R`L;!T4(BP)_&<$3J[_IBQX``1.KO]\(FP*!$ZN_H9@$BQX``0@+`H49P@B
- + M;`H03J[_+B)L'11.KOYB("P*)"),D_P`````3J[_+B`?3-]_?DYU9&]S+FQI
- + M8G)A<GD````@#UE`L*P)W&4`408O#2IL&WI@#"\53KHO2%A/*FT`!"`-9O`J
- + M7TYU(`^0?``,L*P)W&4`4-PO#2`O``@O`$ZZ4TA83RI`2H!F'$AL`)QP`"\`
- + M+P!.NBA"8:9(>``"3KI5?$_O`!`@#2I?3G4@#Y!\``RPK`G<90!0F$CG`10N
- + M+P`4)F\`$"`+9@HO1P`03-\H@&"42H=F#"\+3KI1@%A/<`!@,"\'+PM.NE#J
- + M4$\F0$J`9AY(;`"V<``O`"\`3KHGV&$`_SQ(>``"3KI5$$_O`!`@"TS?*(!.
- + M=2`/D'P`$+"L"=QE`%`J2.<`%"IO``P@34/L`-`0&+`99@9*`&;V9Q`O+P`0
- + M+PU.NERF4$\@0&`$0>P))"9((`AF("\-2&P`TB\L',Q"ITZZ)VYA`/[22'@`
- + M`DZZ5*9/[P`40>P))+'+9@9P`2E`&T(@"TS?*`!.=2`/D'P`#+"L"=QE`$^R
- + M+PTJ;P`(+PU.NEG.6$]![`DDL<UG-$'L"4:QS6<L+PU.NEJ*6$]*@&<F2&P`
- + MUB\L',Q"ITZZ)P)A`/YF2'@``DZZ5#I/[P`08`9PS\&M`!@J7TYU(`^0?``0
- + ML*P)W&4`3U`O!BPO`!`@+P`,(&\`%")O``@O""\&+P`O"4ZZ5JI/[P`0L(9G
- + M'DAL`.HO+!S,0J=.NB:D80#^"$AX``).NE/<3^\`$"P?3G4@#Y!\`!2PK`G<
- + M90!.^DCG`10@;!LP(`A*&&;\4XB1P"X((`AR$-"!+P!A`/WR*D!(>``(80#]
- + MZ%!/)D!*AV<J<"\@;!LPL#!X_V<>3KHG8%*L"B@O+`HH+P`O+!LP2&P`]B\-
- + M3KI3U&`<3KHG0E*L"B@O+`HH+P`O+!LP2&P!""\-3KI3MD_O`!0FC2=L&WH`
- + M!"E+&WH@#4S?*(!.=2`/44"PK`G<90!.7DCG`#0F;P`02^P;=F`6(&T`!")+
- + M)%`0&;`:9@9*`&;V9P@J2$JM``1FY"9M``0@"V<:+Q-.NBQV+I-.ND\L*VL`
- + M!``$+HM.ND\@6$],WRP`3G6_[`G<90!.!$CG(P1^`'P`<""^@&<&<@F^@68*
- + M<@%![`XP(8%H`')_OH%B%D'L"!T(,``">`!G"G0!0^P*,".":`"^@6(,=%=!
- + M[`@=Q#!X`&8*=`%![!(P(8)H`+Z!8@QT!T'L"!W$,'@`9A2^@&<0=`F^@F<*
- + M=`%![!8P(8)H`+Z!8B9+[`@=V\<(%0`!9QH(%0`!9P@@!W(@D(%@`B`'0>P:
- + M,!&`>`!@"B`'0>P:,!&`"`!2AUB(<```$`;0#_4$S?(,1.=2`/64"PK`G<
- + M90!-."\-("\`#"IO``@K0``(+P!A`/P\*H!"K0`,0JT`!%A/*E].=2`/D'P`
- + M$+"L"=QE`$T&2.<!%"9O`!0J;P`0(%4B2-/M``0@+0`,D\`O`"\)+PA.NDTZ
- + M3^\`#"MM``P`!&!J("T`""(M``2R@&82T(`K0``(+P`O%6$`_!A03RJ`("T`
- + M!"!5T<`B+0`(DH`O"R\!2'@``2\(3KI54$_O`!`N``@K``4`&V<>2&P!&B\L
- + M',Q"ITZZ)`AA`/ML2'@``DZZ44!/[P`0WZT`!`@K``0`&V8<("T`!&>(+P!(
- + M>``*+Q5.NDQB3^\`#$J`9P#_=`@K``0`&V=`2JT`!&<Z("T`!")5T\!R"K(I
- + M__]G*B(M``BP@682TH$K00`(+P$O%6$`^W!03RJ`("T`!%*M``0@51&\``H(
- + M`"`M``1,WRB`3G4@#UE`L*P)W&4`2^I(YP($+"\`%"(O`!`J;P`,*T$`".F!
- + M+P%A`/KF*H!"K0`$*T8`#%A/3-\@0$YUO^P)W&4`2[1(YP,T*F\`'"!O`!@F
- + M4"1+(F\`&-7I``0N%2PM``1*+!L\9UY@%%*+M\ID"!`3L"P;/&;RM\ID`E*+
- + MM\ID4"`'4X=*@&;B8$92B[?*9!H0$W(`$@!(P2`!Y8!![`XP2K`(`&;D8`)2
- + MB[?*9!80$W(`$@!(P2`!Y8!![`XP2K`(`&?DM\ID""`'4X=*@&:\2JT`"&<B
- + M8`)2B[?*9!H0$W(`$@!(P2`!Y8!![`XP2K`(`&;D8`)2B[?*9`@@!E.&2H!F
- + M\B`+3-\LP$YUO^P)W&4`2N)(YP,T*F\`'"!O`!@F4"1+(F\`&-7I``0N+0`,
- + M+"T`$$HL&SQG:&`>4HNWRF0($!.P+!L\9O*WRF0,2H=F!DJM`!1G`E*+M\ID
- + M4"`'4X=*@&;88$92B[?*9!H0$W(`$@!(P2`!Y8!![`XP2K`(`&;D8`)2B[?*
- + M9!80$W(`$@!(P2`!Y8!![`XP2K`(`&?DM\ID""`'4X=*@&:\2JT`%&<B8`)2
- + MB[?*9!H0$W(`$@!(P2`!Y8!![`XP2K`(`&;D8`)2B[?*9`@@!E.&2H!F\B`+
- + M3-\LP$YU(`^0?``8L*P)W&4`2?Z>_``,2.<@-"IO`"0@;P`@)E`@2R)O`"#1
- + MZ0`$(FP;<D*M``0O2``8+TD`$&```.1"$B`M``@B+0`$LH!F%-"`*T``".F`
- + M+P`O%6$`^0Q03RJ`(BT`!.F!(E73P2*+(`J0BR-```0D;P`0(`IG``"(("H`
- + M#&L<("T`!.F`)%75P"\O`!`O"F$`_HQ03R5```Q@$"0M``3I@B)5T\(C;P`4
- + M``PD;P`0(!)K'"(M``3I@215U<$O+P`0+PIA`/V&4$\E0``(8$)*J@`(9QI@
- + M`E*+$!-R`!(`2,$@`>6`0>P.,$JP"`!FZ"(M``3I@2)5T\$C2P`(8!(B+0`$
- + MZ8$@5='!0J@`"$*H``Q2K0`$)F\`%%*+)&\`&+?*9"H@"B(+D($O`$AX``HO
- + M`4ZZ2.)/[P`,)$`O0``49PPB+0`$LJT`#&T`_NX@+P`8D(L@;P`@(4``#$S?
- + M+`3>_``,3G6_[`G<90!(FDCG`S0F;P`<*F\`&!`5?@`>`!`3?``<`'`NOH!F
- + M``">O(!F``"84HT0%7X`'@!2BQ`3?``<`+R'9@X@!^6`0>P*,$JP"`!FWB`'
- + MY8!![`HP)$C5P"`29Q(B!N6!2K`8`&<((`>0AF```)Y*DF<@8`A2C1`5?@`>
- + M`'`POH!G\N6'0>P*,$JP>`!G>G`!8'@@!N6`0>P*,$JP"`!G:&`(4HL0$WP`
- + M'`!P,+R`9_+EAD'L"C!*L&@`9TQP_V!*<"Z^@&8>4HT0%7X`'@!P,+Z`9_+E
- + MAT'L"C!*L'@`9RAP`6`F<"Z\@&8>4HL0$WX`'@!P,+Z`9_+EAT'L"C!*L'@`
- + M9P1P_V`"<`!,WRS`3G4@#U%`L*P)W&4`1X)(YR\4)F\`)"IO`"`0%7X`'@`0
- + M$WP`'`!@"%*-$!5^`!X`(`?E@$'L#C!*L`@`9NI@"%*+$!-\`!P`(`;E@$'L
- + M#C!*L`@`9NIP+;Z`9@`!)E*-$A5^`!X!O(!G(.6'0>P*,$JP>`!G#N6&2K!H
- + M`&<&</]@``(><`!@``(84HL0$WP`'`!@"%*-$!5^`!X`<#"^@&?R8`A2BQ`3
- + M?``<`'`PO(!G\F`04HT0%7X`'@!2BQ`3?``<`+R'9@X@!^6`0>P*,$JP"`!F
- + MWG`NOH!F#B(&Y8%![`HP2K`8`&<2O(!F'B`'Y8!![`HP2K`(`&80+PLO#6$`
- + M_>Q$@%!/8``!EB`'Y8!![`HP2K`(`&<@>@%@`E*%4HT0%7(`$@!(P2`!Y8!!
- + M[`HP2K`(`&;F8`)Z`"`&Y8!![`HP2K`(`&<@>`%@`E*$4HL0$W(`$@!(P2`!
- + MY8!![`HP2K`(`&;F8`)X`"`$D(5F``$N(`5G``$H(`:0AV```2!P+;R`9CIR
- + M`!('2,$D`>6"0>P*,$JP*`!G&!(K``%T`!0!2,+E@DJP*`!G!G`!8```[G``
- + M8```Z%*-$!5^`!X`<#"^@&?R8`A2BQ`3?``<`'`PO(!G\F`04HT0%7X`'@!2
- + MBQ`3?``<`+R'9@X@!^6`0>P*,$JP"`!FWG`NOH!F#B(&Y8%![`HP2K`8`&<2
- + MO(!F'B`'Y8!![`HP2K`(`&80+TT`("]+`"1,WRCT8`#\OB`'Y8!![`HP2K`(
- + M`&<@>@%@`E*%4HT0%7(`$@!(P2`!Y8!![`HP2K`(`&;F8`)Z`"`&Y8!![`HP
- + M2K`(`&<@>`%@`E*$4HL0$W(`$@!(P2`!Y8!![`HP2K`(`&;F8`)X`"`%D(1F
- + M""`%9P0@!Y"&3-\H]$YU(`^0?``,L*P)W&4`1-Q93TCG#A0H+P`@)F\`''P`
- + M>@Q@!%*+4X1*A&\6$!-R`!(`2,$@`>6`0>P.,$JP"`!FXG`#N(!M``"$2],0
- + M'7(`$@!![!HP1^\`%!;P$``0'7(`$@`6\!``$!UR`!(`%O`0`$(;*`;8A6H"
- + M4H3BA"`$YX!![P`40^P`,")Q"``2&+(99@1*`6;V;`0J!&`"+`0@!9"&<@&P
- + M@6[*(`;G@$?L`##7P$'O`!0B4Q`8L!EF#$H`9O9F!B`K``1@`G``3-\H<%A/
- + M3G4@#Y!\`""PK`G<90!$")[\`!1(YS\V?@!\`"]L&W(`,&```Y@F;0`8(&T`
- + M'"1O`$`O2``J2H9F$DJJ``AG#")O`$1*J0`(9@``MB`M``QK("\-+PIA`/C6
- + M+HTO+P!,+T``1&$`^,A/[P`,+T``-&`8(E+3Z@`$(&\`1"Q0W>@`!"])`#@O
- + M3@`T(!5K'B\-+PIA`/?(*D`NKP`X+R\`3&$`][I/[P`,)$!@<"I2(&\`1"10
- + M(&\`,$JH``AG7F`"4HV[[P`X9!H0%7(`$@!(P2`!Y8!![`XP2K`(`&;B8`)2
- + MBK7O`#1D-!`2<@`2`$C!(`'E@$'L#C!*L`@`9N)@'"IJ``@@:@`,+&\`1"1N
- + M``@B;@`,+T@`."])`#0J+P`X(@V:@2`O`#0D`"8*E(,H`DJ%:@)Z`$J$:@)X
- + M`"!O`#!*J``@9UHF0"!O`#@0$&8$2A-G(A030A-"$"\#+P$?0``Q80#[)E!/
- + M+@`@;P`X$*\`*1:"8`PO`R\!80#[#E!/+@!*AV<``BH@;P`P2J@`*&<((`=$
- + M@&```C`@!V```BH@;P`P2J@`)&<T+P4O#6$`_7XN`"Z$+P-A`/UT3^\`#)Z`
- + M9P`!["!O`#!*J``H9P@@!T2`8``!\B`'8``!["`+9P``I$JO`"IG``"<8```
- + MA%*-N^\`.&06$!5R`!(`2,$@`>6`2K,(`&;F8`)2BK7O`#1D$A`2<@`2`$C!
- + M(`'E@$JS"`!FYKOO`#AD1K7O`#1D0!`:<@`2`!`==``4`"!O`"H0,"``L#`0
- + M`&<F$"K__W(`$@`0,!``2(!(P!(M__]T`!0!$C`@`$B!2,&2@&```0J[[P`X
- + M9``!!+7O`#1E`/]R8```^"`+9WA@9E*-N^\`.&06$!5R`!(`2,$@`>6`2K,(
- + M`&;F8`)2BK7O`#1D$A`2<@`2`$C!(`'E@$JS"`!FYKOO`#AD*K7O`#1D)!(=
- + MLAI6P$0`2(!*`&<6$"K__TB`2,`2+?__2(%(P9*`8```BKOO`#AD``"$M>\`
- + M-&6.8'I*KP`J9U`F;P`T8#X0&G(`$@`0'70`%``@;P`J$#`@`+`P$`!G)!`J
- + M__]R`!(`$#`0`$B`2,`2+?__=``4`1(P(`!(@4C!DH!@+KOO`#AD*K7+9;A@
- + M)+J$;`0@!6`"(`0@32)*<@!*@&<.$AB2&68$4X!F]DB!2,$N`4J'9Q8@;P`P
- + M("@`*&<&(@=$@6`"(@<@`6`R+@6>A&<4(&\`,$JH`"AG!B`'1(!@'"`'8!@@
- + M;P`P+V@`+``P4H8J;P`P(`UF`/QB<`!,WVS\WOP`%$YU(`^0?``,L*P)W&4`
- + M0#A(YR\4)F\`)"IO`"!*K!MR9QXO"R\-80#\"E!/2H!F:$JL&SYF!DJL&SAG
- + M!'``8%@N+0`$+"L`!+Z&;`0@!V`"(`8J`&<P(%4B4Q`1<@`2`!`0=``4`)2!
- + M*`)F'B`%<@!*@&<.$AB2&68$4X!F]DB!2,$H`68$*`>8ADJL&S1G!B`$1(!@
- + M`B`$3-\H]$YU(`^0?`!`L*P)W&4`/YR>_``T2.</!"IO`$QP`2]``!0O+`"4
- + M2&\`/&$`\CP@+`"4(BP`F$ZZ/GY2@$AX`@`O`$AO`#AA`/-N+BP`F"Z'80#N
- + M<"]``"PNC4AO`$QA`/(X+`!(;P!`2&\`5&$`]3)/[P`@2H9G``#R?`!Z`&`P
- + M(&\`*-'%2&@`$"\(80#^V%!/*`!*K!L^9P1*A&H$2H1O"$*O`!1@``#"4H9P
- + M$-J`("\`+%.`O(!MQB(O`"SI@2!O`"C1P9#\`!`@*``$L(=O'"P`4H9@`MZ'
- + MO(=N^B\'+R\`'&$`[B!03R]``!@B+P`LZ8$@;P`HT<$@*/_T4H`O`"\H__`O
- + M+P`@3KH^]B(O`#CI@2!O`#31P2]H__0`*"Z-2&\`1&$`\7!/[P`0+`!G,DAO
- + M`"A(;P`\80#T9"ZO`#!(;P`@80#^'D_O``PJ`$JL&SYG!$J%:@1*A6\&0J\`
- + M%&`&2H9F`/\2+PUA`.Y^+J\`/$ZZ/T`NKP`L3KH_."ZO`!Q.NC\P6$\@+P`4
- + M3-\@\-[\`#1.=2`/D'P"M+"L"=QE`#X&GOP"I$CG+S8N+P+0*F\"U$*O`+1*
- + MK!L^9Q0@+`"8+P`O0`"T80#L]EA/+T``N'H`?`!X`&```*!'[P'(U\8O+`"4
- + M+PMA`/!\4$]@)"\280#M]EA/4X<L!2`&Y8`D;P+,U<!@""2J``12AEB*O(=M
- + M]+J';!0D;P+,U<0O$B\+80#P<E!/2H!GQ"PO`"RZAV8*+Q-.NCY\6$]@-$7O
- + M`,C5QB`L`)0B+`"83KH\9E*`2'@"`"\`+PIA`/%8+HHO"V$`\SI/[P`00>\`
- + M<$*P2`!2A7`0W(!8A"]&`"RZAVT`_UI\`$7O`#!@!"3&4H:\AVWX?`%@7B`&
- + MY8!%[P`PU<`@*O_\(@#E@4/O`'#I@$WO`,@@3B(Q&`#I@2)P"`#3P2`2(@#E
- + M@4'O`'#I@"(P&`#I@2!V"`#1P2\(+PEA`/R$4$]*@&\,("K__"52__PD@'P`
- + M4H:\AVV>)&\"S&```[Q*K!L^9P`!?DJ&9P``GB`O`#`B`.6!0>\`<.F`0^\`
- + MR"(P&`#I@2!Q"`#1P2\(2&\`O&$`_"Y03TJ`9VXO#2\O`,!(>``!+R\`Q&$`
- + M[/Y/[P`0""T``0`;9SY2K0`,("T`#+"M`!1N'B!M``12K0`$$+P`"@@M``8`
- + M&V<H+PU.ND9.6$]@'E.M``PO#4AX``I.ND(84$]@#"\-2'@`"DZZ0@I03WP`
- + M0J\`M$J&9@`!6B`O`#`B`.6!0>\`<"0P&`#I@NF`0>\`R")P"`#3PBPI``12
- + MABHO`+"ZAFP<8`+:A;J&;?HO10"P+P4O+P"\80#K$E!/+T``N"`O`#`B`.6!
- + M0>\`<.F`0^\`R"(P&`#I@2!Q"`#1P2`H``0O0`"\4H`O`"\0+R\`P$ZZ.]1/
- + M[P`,("\`,"(`Y8%-[P!P(C88`.F!Z8!-[P#(W<`O3@`H(F\`*"91U\$B*P`(
- + M9PR2DRQO`+C=P2].`,`B*P`,9PR2DR)O`+C3P2])`,1R`2]!`+1@``"&("\`
- + M,"(`Y8%![P!PZ8!#[P#((C`8`.F!('$(`-'!+PTO*``$2'@``2\080#KFD_O
- + M`!`(+0`!`!MG/E*M``P@+0`,L*T`%&X>(&T`!%*M``00O``*""T`!@`;9R@O
- + M#4ZZ1.I83V`>4ZT`#"\-2'@`"DZZ0+103V`,+PU(>``*3KI`IE!/(B\`,.6!
- + M0>\`<-'!4I`D+P`PZ8)#[P#(T\(@$+"I``1F``$$0>\!R-'"+S(8`"\(80#M
- + M6E!/2H!G+B(O`##I@4'O`<C1P4/O`,C3P2\)+PAA`/!"4$\B+P`PY8%![P!P
- + M0K`8`&```,!\`4?O`#1@#B`3L*\`,&\"4Y-2AEB+O(=M[E.'(B\`,.6!+S(8
- + M`&$`ZE`B+P`TZ8%![P',+K`8`$ZZ.P@B+P`TZ8%![P#,+K`8`$ZZ.O983RPO
- + M`#`J!N6%*`;IA&`\);)8!%@`0>\!R-'$0^@`$"#9(-D@V2#90>\`R-'$0^@`
- + M$"#9(-D@V2#90>\`<-'%(*@`!%*&6(5P$-B`O(=MP'P`1^\`-&`0(`;E@"!/
- + MT/P`,"&;"`!2AKR';>Q@``".>@%'[P`T8%0@+P`P(@#E@4/O`'#I@$WO`,@@
- + M3B(Q&`#I@2)P"`#3P2`3(@#E@4'O`'#I@"(P&`#I@2!V"`#1P2\(+PEA`/CN
- + M4$\L`&8&+"\`,)R32H9K"%*%6(NZAVVH*"\`,'P!1^\`,&`0(`;E@"!/T/P`
- + M,";P"`!2AKR%;>SEA2!/T/P`+"&$6``L+P"T2H=F`/P^2JP;/F=V2H9G<B\-
- + M+R\`P$AX``$O+P#$80#I;$_O`!`(+0`!`!MG/E*M``P@+0`,L*T`%&X>(&T`
- + M!%*M``00O``*""T`!@`;9R@O#4ZZ0KQ83V`>4ZT`#"\-2'@`"DZZ/H903V`,
- + M+PU(>``*3KH^>%!/+R\`N$ZZ.7983TS?;/3>_`*D3G4@#Y!\`!"PK`G<90`X
- + M4%E/2.<.-"PO`"0J;P`@)F\`*"`&58!F.$AM`!`O#6$`]^I03TJ`;P``^B!-
- + M(DLBV"+8(M@BV$'M`!`B2"K9*MDJV2K9(-L@VR#;(-M@``#4*@9J`E*%XH4D
- + M32@&F(4@!>F`V\`O30`8<`&Z@&\.+PLO!2\*80#_?$_O``QP`;B`;PXO"R\$
- + M+PUA`/]H3^\`#"I+8$(O+P`8+PIA`/=N4$]'[0`02H!N%B!-*DLB2B#9(-D@
- + MV2#9U/P`$%.%8!@@32I+(F\`&"#9(-D@V2#9<!#1KP`84X1*A6<:2H1FMF`4
- + M($HB32+8(M@BV"+8U/P`$-K\`!`@!5.%2H!FY"IO`""<A"9O`"A@%B!+(DTB
- + MV"+8(M@BV-K\`!#6_``04X9*AF;F3-\L<%A/3G4@#Y!\``RPK`G<90`W&$CG
- + M!Q`N+P`8)F\`%'P`>@!@+DAL`28O$V$`YL8N@&$`]TY03TJ`9A0O$R\L"BQ(
- + M;`$H3KHQLD_O``Q2AE*%6(NZAVW.(`9,WPC@3G4@#Y!\`%2PK`G<90`VOI[\
- + M`$A(YP\T*F\`:&```1I^`"`&<A!.NC6P>@`O30`@+T``'&!X1^\`)"(%TH;E
- + M@4AL`3PO-1@`80#F3%!/)L!2AG`0O(!MXF$`YVPD0$AL`3XO`&$`YC`F0"Z`
- + M2'@`$$AO`#!A`/A$+HMA`.:23^\`$'P`(@72AN6!+S48`&$`Y]183U*&<!"\
- + M@&WH4H<@;P`@(,I2A'`0VH`O2``@?`"XKP`<;8`@+P!L<A!.NC4:*@%'[P`D
- + M8!HB!.F!TH;E@4AL`4`O-1@`80#EO%!/)L!2AKR%;>)A`.;>)D!(;`%"+P!A
- + M`.6B)$`N@"\%2&\`,&$`][@NBF$`Y@9/[P`0?`!@%"($Z8'2AN6!+S48`&$`
- + MYT183U*&O(5MZ"`'Y8`KBP@`4H<O1P!L>``L+P!L<!"\@&X`_MQZ`&`<2&P!
- + M1"\U6`!A`.5"4$\@3]#\`"0A@%@`4H18A;B&;>`O+P!P+P1(;P`L80#W1$_O
- + M``QZ`"9-8`HO&V$`YMY83U*%NH9M\DS?+/#>_`!(3G4@#Y!\`#2PK`G<90`U
- + M)I[\`"1(YR\T?@`O+`"02&\`.&$`Y\X@+`"0(BP`F$ZZ-!!2@$AX0``O`$AO
- + M`#1A`.D`+"\`0"`&Z8`N@&$`X_Y/[P`4*D`H+P!,8``!9"!O`$A8KP!(2&P!
- + M1B\080#DD%!/)D!@``$L2&\`)$AO`#AA`.JH4$\@+P`HL(9O&BH`8`+<AKJ&
- + M;OH@!NF`+P`O#6$`X^Y03RI`+PTO+P`L+R\`+&$`_"1/[P`,""L`!``;9Q1*
- + MA&802H=F#$JO`$!F!B1O`%!@%%*'80#E5$AL`4@O`&$`Y!I03R1`>`!Z`&``
- + M`)I*K!L^9R!*A&<<(&\`)-'%+T@`($AH__`O+P`D80#SX%!/2H!G;"!O`"31
- + MQ2\*+R@`!$AX``$O$&$`Y*Q/[P`0""H``0`;9SY2J@`,("H`#+"J`!1N'B!J
- + M``12J@`$$+P`"@@J``8`&V<H+PI.NCW\6$]@'E.J``PO"DAX``I.NCG&4$]@
- + M#"\*2'@`"DZZ.;A03U*$<!#:@+BO`"AM`/]B(&\`4+'*9P@O"F$`X]A83R\+
- + M2&\`.&$`YGA03R@O`$Q*@&8`_L(O"V$`X[I83R`$4X`O0`!,2H1F`/Z2+R\`
- + M-$ZZ-&PNKP`H3KHT9"Z-3KHT7EA/2H=G1"`'Y8`O`&$`XEI83R9`*`<D;!MZ
- + M)`=3@N6"*D#;PF`*4X0JDB1J``19C4J$;O(O+P!0+P<O"V$`_$@NBTZZ-!A/
- + M[P`,3-\L]-[\`"1.=;_L"=QE`#+V2.<`%"IO``Q'[!M&8`0F:P`L2JL`+&;V
- + M)TT`+$*M`"Q,WR@`3G4@#Y!\`!"PK`G<90`RPB!O``0O"$AL`4I"ITAX``).
- + MN@HV3^\`$$YU(`]10+"L"=QE`#*<+P<N+P`(,'P``2\(+P=.N@N880#A=DZZ
- + M"RHNAR\`3KHJG$_O``PN'TYUO^P)W&4`,FI(YP$4+B\`&"9O`!0J;P`08```
- + M@A`52(!(P')-D(%G7'(5D(%G%E6`9S15@&<Z5X!G0%N`9TY9@&=28%Y*AV<&
- + M<`*^@&8&<`$G0``(<`&^@&<&(@=5@68Z)T``%&`T0>P6,"=(`!A@*D'L&C`G
- + M2``<8"!![!(P)T@`&&`6<`$G0``D8`YP`2=``"!@!G`!)T``*%*-2A5F`/]\
- + M(`U,WRB`3G4@#Y!\(&2PK`G<90`QNI[\(%1(YP\T+B\@=)?+0J\@/$*O(#A"
- + MKR`T0>P!;"]((#`J;R!X*54*+$*L&T(O2"`L80#C>DAL`6Y.NB906$\I0!LP
- + M9@A![`%V*4@;,$*G2'@``DZZ"G!03TJ`9PY(>OZR2'@``DZZ"EY03T*G2'@`
- + M`4ZZ"E)03TJ`9PY(>OZ42'@``4ZZ"D!03T*G2'@`#4ZZ"C103TJ`9PY(>OYV
- + M2'@`#4ZZ"B)03T*G2'@`#TZZ"A903TJ`9PY(>OY82'@`#TZZ"@103W#_+T`@
- + M3"]`($!#[R!80IE"F4*O(&A"KR!D0IE"KR!40J\@2"`'Y8`O`&$`W]Y83W@!
- + M1>T`!$'M``@O0``@+T`@*"](`"1@``56(%)P*[`09@``_B`+9P@O"V$`_9I8
- + M3TAX`#!A`-^D6$\F0'+_($`A00`,0^@`&$*90IE"J``40J@`"$*H`"A"J``D
- + M0ID@4DOH``$0%7(`$@!(P2`!Y8!#[`HP2K$(`&8(+PAA`/UV6$]Z`&`6$!U(
- + M@$C`(@7E@=*%TH'2@"H!<#":@!`5<@`2`$C!(`'E@$'L"C!*L`@`9M1\`'`N
- + ML!5F,%*-8!80'4B`2,`B!N6!TH;2@=*`+`%P,)R`$!5R`!(`2,$@`>6`0>P*
- + M,$JP"`!FU$J&9@1*A6<()H4G1@`$8`1P_R:`0J<O"R\-80#]3$_O``P@0$H0
- + M9P`$5"\280#\W%A/8``$2"I2$!5R+;`!9@`$+"!22B@``6<`!")2C1`5<@`2
- + M`$C!Y8%![`HP2K`8`&<`!`(@"V8$80`&GGH`8!80'4B`2,`B!>6!TH72@=*`
- + M*@%P,)J`$!5R`!(`2,$@`>6`0>P*,$JP"`!FU'P`<"ZP%68P4HU@%A`=2(!(
- + MP"(&Y8'2AM*!TH`L`7`PG(`0%7(`$@!(P2`!Y8!![`HP2K`(`&;4)T4`#"=&
- + M`!!(>``!+PLO#6$`_()/[P`,($!*$&<(+Q)A`/P46$\O"V$`^]Y83Y?+8``#
- + M=DAX``)(;R!$+PUA`/Q43^\`#"I`($`2$$B!2,%*@6<``S9P5)*`9P`"R'`/
- + MDH!G)E&!9RQ5@6<``AY5@6<``B)9@6<``F!3@6<``F13@6<``MQ@``+@<`$O
- + M0"`\8``"^$HM``%G!%*-8"H@!U.`N(!F%$AL`7Q"ITAX``).N@7:3^\`#&`.
- + M4H0@;P`D*EA8BB](`"0@2B](`!P@"V<(+PMA`/LR6$](>``P80#=/%A/)D!R
- + M_R!`(4$`#$/H`!A"F4*90J@`%$*H``A"J``H0J@`)$*9$!5R`!(`2,$@`>6`
- + M0>P*,$JP"`!F""\280#[%%A/>@!@%A`=2(!(P"(%Y8'2A=*!TH`J`7`PFH`0
- + M%7(`$@!(P2`!Y8!![`HP2K`(`&;42H5G`E.%?`!P+K`59C92C6`6$!U(@$C`
- + M(@;E@=*&TH'2@"P!<#"<@!`5<@`2`$C!(`'E@$'L"C!*L`@`9M1*AF<"4X9*
- + MAF8$2H5G"":%)T8`!&`$</\F@$*G+PLO#6$`^MY/[P`,)$`@0$H09Q1P++`2
- + M9PXD;P`<+Q)A`/ID8```I"!*2^@``21O`!Q*$&<``)9Z`&`6$!U(@$C`(@7E
- + M@=*%TH'2@"H!<#":@!`5<@`2`$C!(`'E@$'L"C!*L`@`9M1\`'`NL!5F-E*-
- + M8!80'4B`2,`B!N6!TH;2@=*`+`%P,)R`$!5R`!(`2,$@`>6`0>P*,$JP"`!F
- + MU$J&9P)3A2=%``PG1@`02'@``2\++PUA`/HL3^\`#"!`2A!G""\280#YOEA/
- + M+PMA`/F(6$^7RV```2!P`2]`(#A@``#X2BT``6<,0>T``2](("Q@``$$(`=3
- + M@+B`9A9(;`&>0J=(>``"3KH#TD_O``Q@``#F4H0@;P`D+U@@+%B*+T@`)&``
- + M`-)P`2E`&SA@``"J2BT``6<*4HT951L\8```FB`'4X"X@&P64H0B;P`D(%D9
- + M4!L\6(HO20`D8```FDAL`<!"ITAX``).N@-P3^\`#&!F2BT``6<(4HTI31LP
- + M8%@@!U.`N(!L$E*$(&\`)"E8&S!8BB](`"1@7$AL`>)"ITAX``).N@,T3^\`
- + M#&`J<`$I0!L^8"(0%4B`2,`O`"!O('PO$$AL`@1(;`EH3KHQ)F$``K!/[P`0
- + M2A5G`E*-2A5F`/R@8!!2AB!O`"`@S2]&(#0O2``@4H18BEBO`"0L+R`TN(=M
- + M`/JD(`MG""\+80#X1EA/*FP;<F!42JT`&&9*2JT`'&9$2JT`"&8^2JT`*&8X
- + M2JT`%&8R2JT`)&8L2JT`(&8F1^\@6$7M`!@DVR3;*V\@2``(*V\@5``4*V\@
- + M9``D)-LK;R!H`"@J;0`L(`UFJ$JL&W)F+DJO(%AF'DJO(%QF&$JO($AF$DJO
- + M(%1F#$JO(&1F!DJO(&!G"DAO($!A`/>T6$\I;R!H&S1*AF8*?`%![R`P+T@@
- + M*"1O("A*KR`\9QHO!B\*80#S9$J`5L%$`4B!2,$N@4ZZ+T103RIO("P@34/L
- + M`B00&+`99@A*`&;V9P``W'H`8!0@32)2$!BP&68&2@!F]F<(4H58BKJ&;>BZ
- + MAF822&P")B\-80#9_E!/)D!@``"N2&P"*"\-80#9["1`80#;%B9`2&P"*B\`
- + M80#9VD_O`!`J0&`4+PTO!$AX``%(;P`T80#:G$_O`!`O"DAX(`!(>``!2&\`
- + M-$ZZ,I9/[P`0*`!NT@@J``4`&V<B+R\@+$AL`BPO+!S,0J=.N@%(80#8K$AX
- + M``).NBZ`3^\`%"\-80#9["Z*80#9YN6%(&\@+"&+6``J;R`P2&P","\-80#9
- + M5D_O``PF0&`$1^P)1B!O("A*KR`X9PPO"R\&+PAA`/*B8`HO"R\&+PAA`/0N
- + M3^\`#&$`V$@O"TZZ,WI83TJ`:A8O#4AL`C(O+!S,2'@``4ZZ`,)/[P`02JP;
- + M0F<B2&P))$ZZ-"183U*`9A1(;`(Z+RP<S$AX``%.N@":3^\`#`@L``4)868.
- + M2&P)1DZZ,_I83U*`9A1(;`(\+RP<S$AX``%.N@!P3^\`#$*G3KHMJEA/3-\L
- + M\-[\(%1.=2`/D'P`#+"L"=QE`"C$+RP*+$AL`DA(;`EH3KHN5DAX``).NBUX
- + M3^\`$$YUO^P)W&4`*)XO!RXO``AO$KZL!_IN#.6'0>P'7B`P>`!@!D'L`N`@
- + M""X?3G4@#Y!\`"BPK`G<90`H;$CG`Q0L+P`8+B\`%"9O`"`J;P`<+RP*+$AL
- + M`O9(;`EH3KHMZBZO`$@O+P!$+R\`1"\O`$0O+P!$+R\`1"\O`$0O"R\-2&P)
- + M:$ZZ+<)/[P`P2H9G&"\&80#_;BZ`2&P"_$AL"6A.NBVF3^\`#`@L``$)@V="
- + M4JP)="`L"72PK`E\;B`@;`EL4JP);!"\``H(+``&"8-G+DAL"6A.NC'V6$]@
- + M(E.L"71(;`EH2'@`"DZZ+;Y03V`.2&P):$AX``I.NBVN4$](;`EH3KHQR%A/
- + M2H=G""\'3KHL8%A/3-\HP$YU``!(YR`R(&\`&$/O`!Q%^@`<)F\`%"0++'D`
- + M```$3J[]]B`+D(),WTP$3G46P$YU``!.N@AP("P<U$YU```@+P`$(&\`"")O
- + M``Q(YP$4+@`F22I(3KH(3G`!OH!M+'`@OH!L)B`+9PX@!^>`0^P;G-/`)MDF
- + MV2`-9PSGAT'L&YS1QR#=(-UP`&`(<!8I0!S,</],WRB`3G4@+P`$(&\`")[\
- + M`!`O2``(0J\`#$'O``A#UV&62H!G"#!\__\@"&`"(!?>_``03G4``"!O``0B
- + M;P`(64](YS,V*DA^`"!L'*@L*`#@+TD`($J&9B!*K`H$9AI![`,<(@@L;!T4
- + M)#P```/M3J[_XBP`9P)^`4J&9S8B!D'L`R8D"$'L"@PF""QL'11.KOZ>(@8D
- + M#28O`"!.KOZ>(@9T"DZN_LA*AV=8(@9.KO_<8%`@;!RH)F@`N#!\__^WR&=`
- + M0^P#+'`E+'@`!$ZN_=@D0$J`9RPI;`H,`Q`I30,4+PH@2RQ*0^P#")7*)F\`
- + M)$ZN_;1,WP0`(DHL>``$3J[^8DS?;,Q83TYU(&\`!$/O``AA`/\J3G4@;P`$
- + M0^\`"&$`_QQP%$ZZ*IY.=0``2.<`!G`(<@`L>``$3J[_.BI`2H!F!'``8"Y"
- + MK0`$2'@`*'``+P!![`-`<@&3R<%!3KH?7E!/*H!F#")-<`A.KO\N<`!@`B`-
- + M3-]@`$YU(&\`!$CG``8J2"`-9Q@@36$``!X@54ZZ'Z(B37`(+'@`!$ZN_RY,
- + MWV``3G4@;P`$2.<`!BI(2JT`!&<4(E4L>``$3J[^(")53J[^)D*M``1,WV``
- + M3G4@;P`$(%`B:``.<``0*0`/<@'AH2`!3G4@;P`$("\`""(O``Q(YP,&+`$N
- + M`"I(8:I*AV8$2H9G'B)5(T<`("-&`"0S?``)`!PL>``$3J[^,G`!*T``!$S?
- + M8,!.=2!O``1(YP`&*DA*K0`$9QPB52QX``1.KOXL2D!G#B)53J[^)D*M``1P
- + M`6`"<`!,WV``3G4O#B`L'+0B`$A!0D'2@"`L'*BS@"E`&X1"K!N(0^P#5'``
- + M+'@`!$ZN_=@I0!N`</].KOZV2(!(P"E``U!*K!N`9PA*@&L$<`%@`G``*4`;
- + MC"Q?3G4O#B`L`U!K""QX``1.KOZP("P;@&<*(D`L>``$3J[^8BQ?3G4@+P`$
- + M44](YP,`+@!.N@4H(`=.N@&02H!G*")`(&D`'')`Y8G"D2](``P@`2!I``0B
- + M;P`,3I$L`"`'3KH!2"`&8`)P_TS?`,!03TYU("\`!"\'+A]@K@``(&\`!"`O
- + M``@B;P`,+V\`$``$+V\`%``(+V\`&``,+V\`'``0+V\`(``4+V\`)``844](
- + MYP<4+@!([P,``!1\`"IL&Y!@%DJM``1F"C!\``$K2``$8`Q2AMK\`"2\K!N4
- + M;>0@+!N4O(!F>'(*TZP;E"`L&Y0B`.>!TH#E@2`!3KHEP"I`2H!F#'`,*4`<
- + MS'#_8```CG#VT*P;E"(`YX'2@.6!(&P;D")-8`(2V%.!9/H@+!N09P8@0$ZZ
- + M)!HI31N0>O;:K!N4(`7G@-"%Y8#;P)?+*TL`!%*%VOP`)+JL&Y1M\"`&YX#0
- + MAN6`(&P;D"&O`!0(!"&'"``AKP`8"`A+[P`@(9T(#"&="!`AG0@42^\`+"&=
- + M"!@AG0@<(9T(("`&3-\HX%!/3G4@+P`$(@!K%K*L&Y1L$"`!YX#0@>6`(&P;
- + MD$*P"`1.=2`O``1(YP$$+@!K'KZL&Y1L&"`'YX#0A^6`*FP;D-O`2JT`!&<$
- + M(`U@"'`)*4`<S'``3-\@@$YU("P;E$YU```@+P`$64\N@$'L`V@@"%A/3G4@
- + M;P`$64\NB$'L`V@@"%A/3G4@+`-H3G4``"!O``193TCG(P(B""QL'11T_DZN
- + M_ZPO0``09SHN+!S,3KK_JBP`8!Y(;P`02'@(!2\&3KH-"$_O``Q*@&8(*4<<
- + MS'``8!)3AFS>(B\`$"QL'11.KO^F</],WT#$6$].=2!O``1(YR$&*DA.N@*^
- + M(@TL;!T43J[_N$J`9P1P`&!03J[_?"X`<F_2@;"!9B`B#70`3J[_1DJ`9PXB
- + M#4ZN_[A*@&<$(`)@*$ZN_WPN`'!ET("^@&8.($UA`/]*2H!F!'``8`P@!TZZ
- + M%W0I0!S,</],WV"$3G4``"`O``193RZ`("P<I&<.($!.NOQB2H!G!'(!8`)R
- + M`"`!6$].=2`O``0@;!RD<@!.^OP(3KK[/"E`'*1F"DAL`XA.NOL86$\@;!RD
- + M3KK[S(&L&YA.=2!L'*1.^OMH".P`#!N:3G4@+P`$"```#%;`1`!(@$C`3G4(
- + M[``-&YI.=2`O``0(```-5L!$`$B`2,!.=4ZZ&8YP`"!L'000*``/<@'AH8.L
- + M&YA.=4[Z&>`@+P`$64](YP$6+T``$'X`8"X@+0`43KH9-B9`2H!G%$JK`!1F
- + M#GX!<`$G0``4)VT`&``8(DUP'"QX``1.KO\N(&P=!"QX``1.KOZ,*D!*@&;`
- + M(`=,WVB`6$].=2`O``1(YP\$+@!P`>^@+`!P";Z`9@9P`$ZZ"Q0@+!R<P(9G
- + M!HVL'*!@>BH&1H7+K!R@2H=K9G`@OH!L8"`'YX!![!N<*G`(`#!\``&[R&8L
- + M(`=5@&<44X!G$'(-D(%G/%F`9SA1@&<T8`I(;`.@3KKYU%A/<`!.N@JV8"`@
- + M#6<<(`?G@"@&0>P;G(BP"`2)K!R<(`=.E4:$R:P<G"`L'*#`AF:*3-\@\$YU
- + M("\`!"\.(BP;F(*`<``L>``$3J[^SBQ?3G4@+P`$+PXB`"`L&YB`@2QX``1.
- + MKO["+%].=2`O``1(YP,`+@!\`&$`_A!*@&<(?`%P#F$`_PP@!V$`_F)*@&<(
- + M?`%P`F$`_OH@!V$`_FI*@&<(?`%P`V$`_N@@!V$`_H9*@&<(?`%P%&$`_M8@
- + M!DS?`,!.=2`O``0O!RE`">1P""X?8`#^O'``80#_8&"08/9(YP$4?@!+[!N<
- + M-GP``2J+0JT`!%*'4(UP(+Z`;?!"K!R@0JP<G$*L&YAA`/W480#]ZF$`_:),
- + MWRB`8`#]^&$`_;A@`/X(``!(;`.T3KKXL%A/3G4@+P`$+PU.NB#\*D!*@&8"
- + M8>(@#2I?3G4@;P`$("\`""\+3KH>\"9`2H!F`F'&(`LF7TYU(&\`!"\-*D@@
- + M#68$2^P#OB!-2AAF_%.(D<T@"%*`3KH@L"!`2H!F!'``8`@B2!+=9OP@""I?
- + M3G593TCG`S1^`'P`(&P<J"9H`-!@+$HK``AF)#`\!0#`:P`.9AI2AR!K``H@
- + M"$H89OQ3B)'`(`C<@-RK`!14AB932I-FT"`'4H#E@-"&80#_2BE`',#EAR!`
- + M(D#3QT7I``0O0``49@IO``@@+P`,2.<B-"9)*DA*@&<*($MA`/["
- + M)$!@`B1+(`IG/B(5)"T`!+2!;2(L`=R&=!#2@KR!;0(B!BJ!(`'E@"!M``A.
- + MNAUN*T``"&<21^T`!"(34IOE@2!;(8H8`'`!3-\L1$YU(&\`!")O``@@+P`,
- + M89)*@&8$80#^&DYU(&\`!")O``A(YP`4)DDJ2"`M``30JP`$L)5O$M"`*H#E
- + M@"!M``AA`/X:*T``""(M``3E@2!M``C1P2`K``0B`.6!(FL`"&`"$-E3@63Z
- + MT:T`!"!K``A,WR@`3OH=7B!O``0B;P`(+V\`#``$("\`$"(O`!193TCG`C0L
- + M`2I))$@O2``02H!G1%.`9PI3@&<``+9@``#T4X9G(B`O`!@B#9"!(&\`$$(P
- + M"``@02)O`!!@`A+84X!D^F```,Y,
- + MWRQ`6$].=9[\`2Q(YS\V*F\!6"!L"@`,:``E`!1D"DAX`!1.NLE*6$]"K`E`
- + M<`$I0`D\*4`)8G`"*4`)7BE`"80I?````(0)@)/)+'@`!$ZN_MHI0!RH3KKU
- + M`"E`'*QF"DAL`\).NO3<6$\@;!RL3KKUD"E`'+`L;!RL(%8L:``4*4X<O$'O
- + M`3!.KO^^*6\!,!RT3KKU^$ZZ^ZP@;!RH("@`K&<0Y8`B0"(I`#3E@2E!'+A@
- + M!BEH`(0<N$H59@``Z$'L`]HB""QL'10D/````^Y.KO_B+`!![`/@(@A.KO_B
- + M+@!![`/F(@A.KO_B*@!*AF<(2H=G!$J%9B)*AF<&(@9.KO_<2H=G!B('3J[_
- + MW$J%9P8B!4ZN_]QA`/MR<`$O`"\%+P`O!R(&P4%.N@VX(&P*!"`H`!Q![P%8
- + M80#\GD_O`!!\`'X`8%`B;`H$(&D`)"`P>`!G/B(`0^\`,"0)+&P=%'9`Y8M.
- + MKOYN2H!G)B)L"@0@:0`DT<<@*``$9P@B`B0`3J[\CD'O`4A#[P`P<`%A`/S8
- + M4H90AR!L"@2\J``<;:9@``+,+&P=%$ZN_\HH`$ZN_\0J`'X`(&P<J"PH`.!F
- + M*'X!0>P#["(()#P```/M3J[_XBP`9A)![`/N(@A.KO_B+`!F!&$`^J0O!R\&
- + M<``O`"\%(@3!04ZZ#.I![P%8<`%A`/O6(#P```4:80#ZCB!`,7P$```2+T``
- + M/'!`Y8AA`/IZ3^\`$'Y`Y8\O0`$X8`)2C1`52(!(P$'L"!T(,``#"`!F[!`5
- + M9P`"%G(BL`%F,%*-)DU@$'`JL!5F"$HM``%G`E*-4HT0%6<&<B*P`6;F)$T0
- + M%7(BL`%F`E*-?`)@5'`GL!5F(%*-)DU@`E*-$!5G!G(GL`%F]"1-<">P%68"
- + M4HU\`6`N)DU@$'!<L!5F"$HM``%G`E*-4HT0%6<2<B"P`6<,<@JP`6<&<@FP
- + M`6;:)$U\`"!+*@J:BR`%4H`O2``H80#YMB9`2J\!3&8@(`4@2R)O`"A.NAAF
- + M0C-8`$'O`4@B2W``80#[8&``_R;:A7(0VH&ZAV\4(&\!.$ZZ&1`@!6$`^78N
- + M!2]``3@O"B`&($LB;P`L<@%A`/NN6$\B"R0O`3@F!RQL'11.KORX*@!L$$(2
- + M+R\`*$AL`_1.NO'B4$]*A68B+PH@!B!+(F\`+'(`80#[=$'O`4PB2W``80#Z
- + MZ%A/8`#^K'H!(&\`+$*H``A"*``10B@`$"\*(`8@2R)O`"QR`F$`^T!.N@M^*4`#:&8(0>P$*"E(`VA![`0N3KH+
- + M:"E``WQF!BEL`V@#?$'L!#A.N@M4*4`#@&8(0>P$/BE(`X!![`1"3KH+/BE`
- + M`X1F"$'L!$@I2`.$0>P$4$ZZ"R@I0!S$9@A![`1:*4@<Q"`O`4P@;P%0(FP<
- + MP$ZZ*-)P`$ZZ&OQ,WVS\WOP!+$YU("\`!$CG`P`N`$JL',AG!"`'8&!\`"`'
- + M`H````$D9P)\"`@'``=G!`!&``4(!P`$9P0(Q@`""`<``6<$",8```@'``-G
- + M!`C&``$(!P``9P0(Q@`&(`=R2<"!<D"P@68$`$8`0@@'``EG!`C&``4@!@I`
- + M``],WP#`3G4@+P`$2.<&`"P`2JP<R&<((`8"0`__8%YZ``I&``\(!@`#9P1Z
- + M2>6-(`9R!<"!6X!F!`C%``<(!@`"9P0(Q0`$"`8``&<$",4``2`&<D+`@6<$
- + M",4`!@@&``%G!`C%``,(!@`&9P0(Q0``"`8`!6<$",4`"2`%3-\`8$YU``!(
- + MYP,`3KKRWBX`?`!@"B\&3KKQ1EA/4H:\AVWR3-\`P$YU("\`!"\'+@!AU$ZZ
- + M\+I.NO98(&P<K$ZZ[W@O!TZZPS983RX?3G4@+P`$+P<N'V#4```@+P`$(B\`
- + M""!O``Q13TCG`R0L`2X`*DA.NO74(`=.NO(\2H!G&B)`(&D`("](`!0@!B!I
- + M``0B321O`!1.DF`"</],WR3`4$].=0``GOP`#$CG+S8J;P`T?@/.KP`X?`$@
- + M;!RH)F@`N"H\```#[$ZZ]7Y*AV<*<`*^@&<$<@!@`G(!+T$`*'`!OH!G"%6'
- + M9P1P`&`"<`$O0``L($U#[`1@3KH0NDJ`9@9X_V```51P_R!L'*@A0`"X(@TL
- + M;!T4=/Y.KO^L+@`@;!RH(4L`N$J`9G@L;!T43J[_?$ZZ"B0L`"`L">!R+D8!
- + ML(%G!$J`9@I^`2H\```#[F`6(`95@&8,""\`"``Z9P1P`6`"<``N`$J'9RQ\
- + M``@O``@`.F<<""\`#P`Z9P9X`F```-8@+P`\3KK]AB@`8```R'C_8```PBE&
- + M',QP_V```4)"IRQL'11R`B0/3J[_'$_O``0D0$J`9PPB!R0*3J[_FDJ`9A8@
- + M"F<()`IR`DZN_Q9.N@I^</]@``$(*"H`="0*<@).KO\6(@=.KO^F<%#IB,"O
- + M`#@,@```!0!F#'`1*4`<S'#_8```VDJO`"AG!@@$``-F#$JO`"QG$@@$``)G
- + M#'`-*4`<S'#_8```M@@O``D`.F<B(@TD/````^Y.KO_B2H!G""(`3J[_W&`*
- + M3KH*`G#_8```C`@O``@`.F<$(`5@!B`\```#[20`(@TL;!T43J[_XBH`9@A.
- + MN@G6</]@8`@O``D`.F8$2H9F!"P$8`)\_WX`2J\`*&<"?@%*KP`L9P0(QP`!
- + M""\``P`[9P0(QP`#+P<@!2(&3KH%GEA/+@!L''#_(&P<J"%``+@B!2QL'11.
- + MKO_<(&P<J"%+`+@@!TS?;/3>_``,3G4@;P`$+R\`#"\O``PO"&$`_:A/[P`,
- + M3G6>_``,2-<!`W#_WOP`#$YU44](UP,`4$].=4CG,`(B$$HH``UG!'``8!PD
- + M"28`+&P=%$ZN_]8B`%*`9@A.N@D0</]@`B`!3-]`#$YU44](YS\V+@`J229(
- + M+!,O1@`H+T@`+$HK``UG!G``8```C$HK``QG9B9-U\=Z`&!8)$U@`E**M<MD
- + M!G`*L!)F]+?*9@0H"F`&0>H``2@(F(TB+P`H)`TF!"QL'11.KO_0+`!2@&8(
- + M3KH(FG#_8#[:AK:&9C9+Z@`!GH9P`$ZZ\=Q.NO(,2H!F(DJ'9J1@'"(&)`TF
- + M!RQL'11.KO_0*@!2@&8(3KH(7G#_8`(@!4S?;/Q03TYU64](YS\"+@`L$"]!
- + M`!Q**``-9P1P`&!24X$F`2(&)`<L;!T43J[_OBH`3J[_?"@`4H5G!$J$9PX@
- + M!$ZZ!Q@I0!S,</]@)"(&=``F`DZN_[XL`%*`9P1*A&<.(`1.N@;V*4`<S'#_
- + M8`(@!DS?0/Q83TYUGOP!`$CG/P8N`"I(+!4J+0`(("T`!&<*(@`L;!T43J[_
- + MIA@M``U(A$C$($U.NA&82H1G!'``8$0B!D'O`"`D""QL'11V0.6+3J[^:"@`
- + M2H=F"B(&3J[_W$J`9QI*A&<2</^Z@&<,(@(D!4ZN_T9*@&<$<`!@!DZZ!V1P
- + M_TS?8/S>_`$`3G4@+P`$2.<@`B(`+&P=%'0`3J[_-$ZN_WQT+D8"L()7P40!
- + M2(%(P2`!3-]`!$YU("\`!"!O``@B;P`,GOP`$$CG-Q8N`"9)*DA\`&&X2H!F
- + M?"('+&P=%'0!3J[^5DJ`9VPB!T'L!&@D"'8$3J[_T%F`9E(B!R0\```G$$ZN
- + M_S1*@&="(@=![P`@)`AV$$ZN_]9R";"!;RYPF[`O`"!F)D'O`"4B""0+3J[\
- + MT"H`0>\`)M'`(@@D#4ZN_-!2@&<&4H5G`GP!(@=T`$ZN_E8@!DS?:.S>_``0
- + M3G4@+P`$(B\`")[\`A!(YS\&+@!P_R]``B@O00`D(@<L;!T4=`!V`4ZN_[XO
- + M0``@(@=.KO^^+`!.KO]\*@`O0`(L9@``PB@O`"0B!R0$=O].KOXXL()F``"N
- + MO()L``">*@2:AB@%(`1R`4A!+'@`!$ZN_SHJ0$J`9FIR`DA!3J[_*.*(*@`,
- + MA0```@!M$"`%<@%(04ZN_SHJ0$J`9D9Z0.>-2^\`*#`\`?]R`$'O`"@0P5'(
- + M__Q@++B%;P0@!6`"(`0F`$ZZ[ZXB!R0-+&P=%$ZN_]"P@V<*3J[_?"]``BQ@
- + M!IB#2H1NT$'O`"BQS6<,(DT@!2QX``1.KO\N*B\"+&8$0J\"*"PO`""\KP`D
- + M;`XB!R0&+&P=%';_3J[_OBPO`BAG"B`%3KH$7BE`',P@!DS?8/S>_`(03G6>
- + M_`$(2.<W%BX`)DDJ2"P52BT`#68``1@@!P2````$`&<@!(````0`9TI3@&=8
- + M4X!G7%.`9UY3@&=F4X!G;&```.Y*+0`,9R8@!D'O`21#[P$@80#]UDJ`9Q0@
- + M+P$D-T```B`O`2`V@'``8```RG`98```OB(&+&P=%$ZN_R@F@'``8```LB:&
- + M<`!@``"J<`!@``"D(`8B$V$`_C9@``"8*U,`"'``8```CBH32JT`!&8.(A4L
- + M;!T43J[^C"M```0@+0`$9V(D`"(%+&P=%$ZN_EQ*@&92(@9![P`@)`AV0.6+
- + M3J[^:$J`9SXB!4ZN_Z8B+0`$3J[_IB(&3J[_W"("=`!.KO]&&WP``0`-*H(K
- + M0@`$0>\`("((+&P=%$ZN_[A*@&<$(`)@#DZZ!!Q@!G`6*4`<S'#_3-]H[-[\
- + M`0A.=2`O``0B+P`(+V\`#``$2.</!BHO`!PL`2X`<`Y.N@\^*D!*@&8*<`PI
- + M0!S,</]@3D/5(L="F2+&0BT`#2('+&P=%$ZN_R@;0``,2'K^=$AZ^]I(>OMD
- + M2'KZK$AZ^G9(>OIH(`4@34/Z^E!.NNC@3^\`&"@`;`8@34ZZ#78@!$S?8/!.
- + M=2`O``0B+P`(+V\`#``$+V\`$``(+V\`%``,+V\`&``02.<-`"@O`!0J+P`0
- + M+@!P`$J!9@1P0.6(`$```2\`(`=R_V$`_T983TJ`9D!P`$J$9@1P0.6(`$``
- + M`B\`(`5R_V$`_RA83U.`9B)P`$JO`!QF!'!`Y8@`0``"+P`@+P`<<O]A`/\&
- + M6$]5@&<00>P$;B](`!!,WP"P3OKEY$S?`+!.=0``("\`!"!O``@B+P`,64](
- + MYP,T+`$N`"I(3KKLN"`'3KKI("9`2H!G1`@K``$``V<V""L``P`#9Q8@:P`8
- + M+T@`%"!K``1P`'("(F\`%$Z1(&L`%"](`!0@!B!K``0B321O`!1.DF`(<`TI
- + M0!S,</],WRS`6$].=2`O``0@;P`((B\`#$CG`P1,WR#`8(`@;P`$GOP`0$CG
- + M.Q8J2$ZZ[#8@#6=22A5G3B(-0>\`("0(+&P=%'9`>`!.KOQV+@!M-DZN_WPL
- + M`%*`3KH-;"9`2H!G)+Z&9Q0F!E*#(@TD"TZN_'9*@&\0(`)@#B!"(DL2V&;\
- + M(`M@`G``3-]HW-[\`$!.=2`O``0B+P`(+V\`#``$44](YP<`*B\`&"P!+@!.
- + MNNNT(`=.NN@<2H!G&B)`(&D`&"](`!`@!B(%(&D`!")O`!!.D6`"</],WP#@
- + M4$].=2`O``0B+P`(+V\`#``$2.<'`"HO`!`O10`03-\`X&"@```@+P`$(&\`
- + M""(O``Q93TCG`S0L`2X`*DA.NNM((`=.NN>P)D!*@&<F""L````#9Q@@:P`0
- + M+T@`%"`&(&L`!")-)&\`%$Z28`AP#2E`',QP_TS?+,!83TYU("\`!"!O``@B
- + M+P`,2.<#!$S?(,!@G@``("\`!"E`">!*@&<``(9R9Y"!9P``@E6`9P``@'()
- + MD(%G?%.`9WA3@&=T4X!G<%.`9VQ3@&=H4X!G:%.`9VAR49"!9V93@&=F4X!G
- + M9E.`9V93@&=F4X!G9E6`9V93@&=F4X!G9E.`9V95@&=F4X!G9E.`9V93@&=F
- + M4X!G9E.`9V95@&=F4X!G9E.`9V93@&=F8&AP`&!F<`Q@8G`+8%YP%F!:<`=@
- + M5G`(8%)P$&!.<!%@2G`"8$9P`F!"<!9@/G`'8#IP%F`V<"1@,G`68"YP%F`J
- + M<!Y@)G`28")P)6`><"9@&G`38!9P%F`2<!Q@#G`-8`IP#6`&<`U@`G#_3G4O
- + M#BQL'11.KO]\80#^^BE`',PL7TYU(&\`!"`O``A93TCG`18N`"](`!`@;P`0
- + M*E!@9'`-L"T`"&9:("T`K&<&Y8`@0&`"D<@F2"`M`)RPAV<T("T`H+"'9RP@
- + M+0#@L(=G)"`+9RX@*P`<L(=G&"`K`""PAV<0("L`.+"'9P@@*P`PL(=F#B)-
- + M<OB"QX``1.KOZ\*E5*E6:83-]H@%A/3G4@+P`$(B\`"$CG`0(N`"`!4X!G
- + M#%.`9PA3@&<$78!F+"QX``1.KO]\(&P*`-#\`98@!V$`_T@@;`H`T/P!I"`'
- + M80#_.DZN_W9P`&`(<!8I0!S,</],WT"`3G4@+P`$(B\`"$CG!@0L`2H`3KKH
- + MYDJ%:@)$A;JL'-1F#DJ&9P8@!DZZYXIP`&!((`5.N@!N*D!*@&<&2JT`%&<*
- + M<`,I0!S,</]@+"`&9R@B+0`0P4%A`/]8(@!P";R`9A1R`2M!`!0K0``8<!1.
- + MNN=$<`!@`B`!3-\@8$YU```@;P`$2.<`!BI((DTL>``$3J[_!"!-3-]@`$[Z
- + M"%0@+P`$2.<!!"X`*FP<V&`.("T`#+"'9@0@#6`(*E5*E6;N<`!,WR"`3G5(
- + MYR`"0>P<V$ZZ&,H@+!RH(BP<M"0`LX("@@!___\I0AS44H(I0AS0+P$O`$AL
- + M"`!(;!SD3KK?6D_O`!`L>``$3J[]9BE`'0AG$$'L'.1P`$ZZ&-XI0!T$9@I(
- + M;`@.3KK@VEA/3-]`!$YU2.<`!B`L'0AG"B!`+'@`!$ZN_6!*K!T$9S@L>``$
- + M3J[_?&`,(DUP'"QX``1.KO\N(&P=!"QX``1.KOZ,*D!*@&;B(&P=!$ZZL
- + M>``$3J[_=DS?8`!.=0``(&\`!"`O``@B+P`,(F\`$"]O`!0`!"]O`!@`"%E/
- + M2.</-B@O`"PJ+P`H+`$N`"I)+T@`("QX``1.KOUF)D!*@&<P($L@!$ZN_7(D
- + M0$J`9R(@#6<()4T`*"5%`"0@;P`@(`<B2B(&3J[^1$H`9@0@"F`6(`IG!B!*
- + M3J[];"`+9P8@2TZZ%Z!P`$S?;/!83TYU(&\`!$CG``8J2"`-9Q@B32QX``1.
- + MKOX^(&T`#DZZ%W8@34ZN_6Q,WV``3G593T'Y`````"Z(9P@@>?____Q.D%A/
- + M3G593T'Y`````"Z(9P@@>?____Q.D%A/3G5(YP,$*F\`$"!-2AAF_%.(D<TN
- + M"&`*(`9![`E&3KH+5GP`'!U*AF;N0>P)1DZZ#V8@!TS?(,!.=9[\`!!(YP<4
- + M?@!+[P`L8```FG`EL"\`%&8``(`@;P`H4J\`*!`0<@`2`!]``!5P9)*`9SIP
- + M#)*`9PY7@6<&6X%G!F!$)EU@-"P=1^\`'GH'(`9R#\"!0?H`>-'`%I!3B^B&
- + M4X5*A6KH0B\`'V`*(!U![P`73KH"&D?O`!<O"TZZ_TA83]Z`8")2AW``$"\`
- + M%4'L"49.N@JF8!!2AW``$"\`%$'L"49.N@J4(&\`*%*O`"@0$!]``!1F`/]8
- + M0>P)1DZZ#IH@!TS?*.#>_``03G4P,3(S-#4V-S@Y04)#1$5&`````$CG`Q<J
- + M;!T,8!0F57`4T*T`!")-+'@`!$ZN_RXJ2R`-9NA"K!T,8$PJ;!T8<)S0K`G<
- + M)D`@+0`$*4`=&"EM``@)W"XM`!A*@&8>(&P*``QH`"0`%&42($\L"$'M``PL
- + M>``$3J[])"Y&(DL@!RQX``1.KO\N2JP=&&:N3-_HP$YU(&\`!")O``@@4")1
- + M$!BP&68$2@!F]I`A2(!(P$YU(&\`!"`O``A#^O_@<@1.^@>:(&\`!")O``@@
- + M+P`,2H!O"A(0$-$2P5.`9O9.=2!O``0B;P`(<`!R`!`8$AD,``!A;0H,``!Z
- + M;@0$```@#`$`86T*#`$`>FX$!`$`()"!9@1*`6;43G4``"`O``@@;P`$3E7_
- + M]")/<@I.N@)P!D$`,!+!2H!F\"`)$.&_R6;Z0A"0CTY=3G4``"`O``@@;P`$
- + M3E7_]")/(@`"00`'!D$`,!+!YHAF\"`)$.&_R6;Z0A"0CTY=3G4``#`Q,C,T
- + M-38W.#EA8F-D968@+P`((&\`!%%/(D\R``)!``\2^Q#<Z(AF\B`)$.&_R6;Z
- + M0A"0B5!/3G4``"`O``@@;P`$+PA*@$Y5__0B3VP&$/P`+42`<@I.N@'(!D$`
- + M,!+!2H!F\!#AO\EF^D(0(`A.79"?3G4``"!O``0B;P`(2.<P("1(<@`@`28!
- + M#!``*V<(#!``+68$=@%22!`8!```,&T:#```"6X4)`'E@=*"TH%*`V8$TH!@
- + MXI*`8-XB@2`(D(I3@$S?!`Q.=2!O``0O#2I(""T``P`;9C`@+`F,3KH$?BM`
- + M``0K0``09@IP#"E`',QP_V`6*VP)C``4<//!K0`80JT`#$*M``AP`"I?3G4`
- + M`"!O``1(YR`4*D@F36`@<``0$T'L"!T(,``!"`!G"G(`$@!T()*"8`1R`!(`
- + M%L%*$V;<(`U,WR@$3G4``)[\`%!(YS$V0_H`A'``+'@`!$ZN_=@J0$J`9@9P
- + M%$ZZ[')^`"!L"@P>*/__(`=#[P`<8`(2V%.`9/I"-W@<0>\`'"E(":1#[`FL
- + M1^P)P"Q-D<B5RG``(@!T?=2"=BA.KOZD<!1.NNPL3-]LC-[\`%!.=2HJ(%-T
- + M86-K($]V97)F;&]W("HJ``!%6$E4``!I;G1U:71I;VXN;&EB<F%R>0!*@&H`
- + M`!Y$@$J!:@``#$2!80``($2!3G5A```81(!$@4YU2H%J```,1(%A```&1(!.
- + M=2\"2$$T`68``")(0$A!2$(T`&<```:$P3`"2$`T`(3!,`)(0C(")!].=2\#
- + M=A`,00"`9```!N&944,,00@`9```!NF964,,02``9```!N6954-*06L```;C
- + MF5-#-`#FJ$A"0D+FJDA#@,$V`#`"-`-(0<3!D()D```&4T/0@7(`,@-(0^>X
- + M2$#!028?)!].=0``2.=P`"0`9R!*@68$0H!@&"8`QL%(0L3!2$)"0M:"2$'`
- + MP4A`0D#0@TS?``Y.=0``("P*"`1``?0N0$[Z_F```"!O``0@+P`((B\`#%.!
- + M:P2P&&;X4TA2@4J!9@``!)'((`A.=2)O``@@;P`$("\`#"((8`00V6<(4X!D
- + M^&`&0AA3@&3Z(`%.=2)O``@@;P`$("\`#"((2H!O%K')90S3P-'`$2%3@&;Z
- + M8`80V5.`9OH@`4YU(&\`!"`O``A(YP,4+@`J2&82(`UF!'``8&@@34ZZ`&YP
- + M`&!>(`UF"B`'3-\HP$[Z`<@F356+,#Q__\!32,#E@"P`"!,`#V<,#&N``/_^
- + M9@0L*__R(`=.N@&@)D!*@&8$<`!@'KR'8P0@!V`"(`8@32)+8`(2V%.`9/H@
- + M34ZZ``X@"TS?*,!.=2!O``0@"&8"3G59@$CG/#(B+!T,9@XI?````!8<S$S?
- + M3#Q.=2)!L(%O$B0!U*D`!`:"````%+"";`)@""(I``!GU@)@$&@P```!"P
- + M@VW&9Q(D0T*"-"H``FNZY8K6@EB#8.@D0#0J``!JJ@BJ``<``$*#-BH``@)#
- + M?__EBTIJ``)K0$?R.`1*:P``:S9"A#@K``("1'__Y8S8@UB$Y(Q8@TIK``)J
- + M!`!$@``U1``":Q(J!.6,-#)(!`)"@`"*0C6%2`1"A#@J``!G3.6,1(1'\DC\
- + M2FL``&L^0H0X*P`"Y8Q"A3HJ``("17__Y8W8A5B$6(/DC$IJ``)J!`!$@``W
- + M1``":Q(J!.6,-#-(!`)"@`"*0C>%2`37J0`()BD`!+:L"!AN#+:I``AF.DJI
- + M``!G-"`L'0P@0+*`9@PI:0``'0Q@$"!H``"RJ```9O8A:0`````@*0`$!H``
- + M```4+'@`!$ZN_RY,WTP\3G4@+P`$2H!F#"E\````%AS,<`!.=4CG/C)6@`*`
- + M_____`R```'__&X``+BPK`@8;@``L"8L'0QG``"H(D.PJ0`(;C(B+!T0LJD`
- + M#&8H1>D`$$I2:Q!"A#@J``("1'__Y8RPA&\:0H0X*@`":PCEC$7R2`1@W"8I
- + M``!G9B)#8+X(Z@`'``!'\@@$0H6PA&<\+`2<@%F&9@0@!&`PY(Y*:@`":@0`
- + M1H``*@#DC3=&``(W10``-44``GH$2D9K#C0R2`0"0H``C$(UAD@$)BD`"):`
- + MEH4C0P`((`I8@$S?3'Q.=2H`L*P(&&H$("P(&"@`!H`````4(BP=$"QX``1.
- + MKO\Z2H!F"BE\````#!S,8,PB0$7I`!`C;!T,```I21T,(T0`!"-L'1``#"8$
- + MEH5G*%F#9R0C0P`(1_)8!#5\@````.2--44``C=%``#DBP!#@``W0P`"8!1"
- + MJ0`(-7R`````Y(P`1(``-40``B`*6(!,WTQ\3G4@;P`$("\`""(O``PB;P`0
- + M64](YP\V+`$N`"I(+TD`('`!OH!C``"R)DW7QB`'58!F)"\++PT@32)++&\`
- + M*$Z64$]*@&\``)(@!B!-(DM.NO@T8```A"`'XH@B!DZZ^X8B3=/`(`8@34ZZ
- + M^!HD37H`>`%@*B\-+PL@2R)-+&\`*$Z64$]*@&H24H75QK7+9PH@!B!+(DI.
- + MNO?LU\92A+B'9=*US6<*(`8@32)*3KKWUB9O`"`@!2(&($TB2V$`_U(@2M'&
- + M(`>0A5.`(@8B2TS?;/!8CV``_SI,WVSP6$].=2`O``1(YP$$+@`J;`G48`@@
- + M;0`$3I`J52`-9O1+[`DD<`;`K0`858!F&"`M``20K0`09PXB+0`<(&T`$,%!
- + M3KKO2"!-*E`@#6;6(`=,WR"`3OKEX"`O``0@;P`(0]!2F2!14ID0@$YU44\@
- + M;P`,0I<O2``$2&\`%"\O`!1!^O_>0^\`"$ZZ"_X@;P`,0A!03R`74$].=0``
- + M("\`!"!O``@O#2(`*DA2E4/M``@@$5*1&X$(#"`9#(````(`;11![0`,(FT`
- + M!'(!P4%.N@'P0JT`""I?3G6>_`(,+PTJ;P(40J\`#$*O``0O30`(2&\"'"\O
- + M`AQ!^O^J0^\`#$ZZ"X903R`O``QG$$'O`!`B;P`(<@'!04ZZ`:8(+0`%`!MF
- + M"`@M``0`&V<$</]@!"`O``0J7][\`@Q.=2`O``0@;P`(64](YP,$+@`J2'P`
- + M'T``#W)!TH'"K0`89@P([0`%`!MP_V```4!P,\"M`!A5@&=0<$Q&`,"M`!AR
- + M0-*!L(%F#`CM``$`&T*M``Q@-`@M``4`&V<&</]@``$,<&Y&`,"M`!AR;D8!
- + ML(%F#`CM``$`&T*M``Q@"G``*T``#&```.8@+0`,L*T`%&PR(&T`!%*M``0@
- + M!Q"`4JT`#`@M``8`&V<.<@J^@68(($U.N@-T+`!*AF<``*H@!F```*H(+0`"
- + M`!MG+D*M``P@+0`<0>\`#W(!3KKM="P`4H!F"`CM``4`&V!R(`93@&=L".T`
- + M!``;8&1*K0`49B`@34ZZ]N1*@&<*".T`!0`;</]@6'``*T``#"MM`!``!"`M
- + M``RPK0`4;0@@34ZZ`OHL``CM``$`&R!M``12K0`$(`<0@%*M``P(+0`&`!MG
- + M#G(*OH%F""!-3KH"SBP`2H9G!"`&8`9R`!('(`%,WR#`6$].=2!O``0@+P`(
- + M(B\`#")O`!!93TCG#Q`L`2X`)DDO2``4(`8B!TZZ^#(J`'@`2H=G!$J&9@9P
- + M`&```/QP,,"K`!AF"G!!T(#`JP`89@P(ZP`%`!MP`&```-YP,\"K`!A5@&=0
- + M<$Q&`,"K`!AR0-*!L(%F#`CK``$`&T*K``Q@-`@K``4`&V<&<`!@``"J<&Y&
- + M`,"K`!AR;D8!L(%F#`CK``$`&T*K``Q@"D*K``QP`&```(1*JP`49DP(*P`"
- + M`!MF1"!+3KKUL$J`9SH(ZP`%`!MP`&!@(&\`%!`8(FL`!!*`4JL`!%*K``Q3
- + MA5*$+T@`%'(*L`%F#@@K``8`&V<&($M.N@&R("L`#+"K`!1L!$J%;L)*A6\6
- + M($M.N@&:("L`'"(%(&\`%$ZZZ[38@"`$(@=.NO:43-\(\%A/3G4@;P`$("\`
- + M""(O``PB;P`044](YP\4+@`J22P!)D@O00`8+T@`'$J'9P1*AF8&<`!@``$X
- + M(`8B!TZZ]N(L`'H`<##`K0`89P9P`&```1YP?D8`P*T`&&<``1)P,\"M`!A3
- + M@&<T<%Q&`,"M`!AR0-*!L(%F%`CM````&P@M``0`&V<6<`!@``#D0JT`"`CM
- + M``4`&W``8```U$JM`!1F+@@M``(`&V8F($U.NO2.2H!G'`CM``4`&W``8```
- + ML$/M``0@41;04IE3F5.&4H5*K0`(9P1*AF[F2H9O``"(""T``@`;9@:\K0`4
- + M;S`@+0`<(@8@2TZZ[!PH`$J&:A`([0`%`!L@!2('3KKU@F!>N(9L!@CM``0`
- + M&]J$8$@@;0`0*T@`!"`M`!PB+0`4(&T`$$ZZZ^`H`&P0".T`!0`;(`4B!TZZ
- + M]4A@)$J$9A`([0`$`!L@!2('3KKU-&`0*T0`"&``_VP@!2('3KKU(DS?*/!0
- + M3TYU```@;P`$2.<!!"I((`UG``"@<$'0@,"M`!AF+"!M`!!#[0`$(LA"F4(M
- + M`"!P`"+`""T`!P`;9P8(K0```!L(K0`$`!M@``"*2JT`%&=$("T`#&H&<@`K
- + M00`,("T`#&<H(BT`'"!M`!#!04ZZZ<(N`%*`9@@([0`%`!M@#+ZM``QG!@CM
- + M``0`&RMM`!``!$*M``QP,,"M`!AF$@@M``<`&V<&</S!K0`8<`!@)'#_8"!^
- + M`$OL"21*K0`89PP@36$`_T9*@&<"?O\J52`-9N@@!TS?((!.=2!O``1(YP$$
- + M*DA^`"`-9P8@+0`89@1P_V!`""T``0`;9P@@34ZZ_PHN`'`,P*T`&&8.2JT`
- + M%&<((&T`$$ZZ]=9"K0`8("T`'$ZZT*)2AV<$2H!G!'#_8`)P`$S?((!.=2!O
- + M``0B;P`(+V\`#``$64](YP\4)F\`("I)+T@`&'X`+"P)D'H`2JL`&&<&($M.
- + MNO]T<``0+0`!<BN0@6<@<C:0@6<&4X!G!&`@?`!R*[(M``)7P$0`2(!(P"H`
- + M8`QZ`7!AL"T``F8"?`!P`!`5<F&0@6<,<A&0@6<:6X!G)&`V2H56P'(!D@``
- + M00$(C(%^0.&/8"A*A5;`<@"2`)(`C(%@&DJ%5L!R`9(``$$!``!!`@",@6`&
- + M<`!@``"`+RP)E"\&+R\`($ZZWU1/[P`,*`!2@&8$<`!@8DJ%9P8(QP`'8#!P
- + M`!`5<F&0@6<,<A&0@6<:6X!G&F`:",<``4AX``(@!'(`3KKH]%A/8`9^`6`"
- + M?@((!@`/9@0(QP`/D<A+ZP`0*L@JR"=$`!PG2``$)T@`#"=(``@JQR`+3-\H
- + M\%A/3G4``"!O``0B;P`(44](YP`42.\#```(2^P))&`$)DTJ4R`-9P9*K0`8
- + M9O(@#68><").NO6L*D!*@&8$<`!@'B!-)HAP(7(`$,%1R/_\+PT@;P`,(F\`
- + M$$ZZ_G183TS?*`!03TYU```@;P`$(F\`""]O``P`!"]O`!``")[\`#1(YR\V
- + M)F\`8"IO`%Q([P,``"Q"+P`[0B\`.D(O`#E"+P`X'WP`(``W0J\`5'#_+T``
- + M4$(O`#9^`'P`1>\`/&!*<``@;P`L$!!R()"!9R)7@&<F48!G$E6`9P97@&<B
- + M8#(??``!`#M@'A]\``$`.F`6'WP``0`Y8`X??``!`#A@!A]\`#``-U*O`"P@
- + M;P`L2A!FKG`!L"\`.V8&'WP`(``W<BH@;P`LLA!F'BQO`#`B5EB6(A$O00!4
- + M;`A$KP!4'T``.U*O`"Q@#$/O`%1.NN^RT:\`+"!O`"P0$'(NL`%F1E*O`"QP
- + M*B!O`"RP$&8<(F\`,"!16)$@$"]``%!L!G#_+T``4%*O`"Q@%D/O`%!.NN]P
- + M*@!F!D*O`%!@!-NO`"P??``@`#=P`"!O`"P0$'),D(%G%'(<D(%G!EF`9PI@
- + M$A]\``(`-F`&'WP``0`V4J\`+"!O`"Q2B")O`"P0$7(`$@`?0``D+T@`)G!0
- + MDH!G``$048%G``$<<`N2@&<``=!3@6=06X%G3%N!9R)3@6<``0)3@6<``.I7
- + M@6<``8!5@6<``/!7@6<``.I@``&X)&\`,'`"L"\`-F8.(%)8DB)0(!,R@&``
- + M`DH@4EB2(E`BDV```CXB;P`P(%%8D2@0:@1^`42$2H=G#$7O`#T??``M`#Q@
- + M(DHO`#IG#$7O`#T??``K`#Q@$$HO`#EG#$7O`#T??``@`#Q\`2`$($I.NNV*
- + M*@`@+P!09@9*A&<``>0@+P!0:@9R`2]!`%`H+P!0F(5O'"!*T<0@!2)*3KKP
- + M_'(P($I@`A#!4X1D^BHO`%#<A2`%4X!F``$$$!*P+P`W9@``^DJO`%!F``#R
- + M0A)@``#L("\`4&H&<`@O0`!0'WP``0`V<`*P+P`V9A`B;P`P(%%8D2`0>``X
- + M`&`*(F\`,"!16)$H$!`O`"1R=;`!9P#_6G)OL`%F'DHO`#AG#$7O`#T??``P
- + M`#Q\`2`$($I.NNSZ8`#_/DHO`#AG$A]\`#``/$7O`#X??`!X`#U\`B`$($I.
- + MNNT6*@`(+P`%`"1F`/\40>\`/$ZZ[@)@`/\((F\`,"!16)$D4"`*9@1%^@#R
- + M($I*&&;\4XB1RBH(("\`4&L$L(5O!"]%`%`L+P!08"!\`2)O`#`@45B1(!`?
- + M0``\0B\`/6`&<`!@``"L1>\`/"`O`%2PAFP(<@`O00!48`2=KP!42B\`.V<>
- + M8`AP`!`:($M.E5.&;/1@!B!+<"!.E5.O`%1L]&!J2H=F#$HO`#EF!DHO`#IG
- + M1A`2<B"P`6<,="NP`F<&="VP`F8R2H9K+K(O`#=F$F`*<``0+P`W($M.E5.O
- + M`%1L\'``$!H@2TZ54X9@"G``$"\`-R!+3I53KP!4;/!@"'``$!H@2TZ54X9L
- + M]"`O`"9,WVSTWOP`-$YU```@;P`$(F\`""]O``P`!"]O`!``")[\``Q(YP`4
- + M)DDJ2"]O`!P`$&`X<"6P+P`,9B8@;P`8L!!F!E*O`!A@&"\++PU#[P`83KK[
- + ME%!/2H!G!B]``!A@"G``$"\`#"!+3I4@;P`8$!@?0``,+T@`&$H`9K9,WR@`
- + MWOP`#$YU(&\`!""(6)!"J``$(4@`"$YU```@;P`$2.<`!BI(2JT`"F<*(DTL
- + M>``$3J[^F!M\`/\`"'#_*T``%'``$"T`#RQX``1.KOZP(DUP(DZN_RY,WV``
- + M3G4``"!O``0@+P`(2.<#%BX`*DAP_RQX``1.KOZV'`!(ADC&(`92@&8$<`!@
- + M8'`B(CP``0`!3J[_.B9`2H!F""`&3J[^L&!$0>L`"B#-%T<`"1=\``0`"$(8
- + M$,:3R4ZN_MHG0``0(`UG"")+3J[^GF`:0>L`&"=(`!1!ZP`4)T@`'$*K`!@7
- + M?``"`"`@"TS?:,!.=2\(+P!.N0``(?Y03TYU``````/L`````0```````&9J
- + M`````0````$````*`````````_(```/J```"LD%04@!!54<`1$5#`$9%0@!*
- + M04X`2E5,`$I53@!-05(`34%9`$Y/5@!/0U0`4T50```````````$````!```
- + M``@````(````#`````P````"````$`````$````4````!P```!@````&````
- + M'`````,````@````!0```"0````+````*`````H````L````"0`(`````$``
- + M````'G9I<G1U86P@;65M;W)Y(&5X:&%U<W1E9```=FER='5A;"!M96UO<GD@
- + M97AH875S=&5D```M`"5S``!E<G)O<B!C;&]S:6YG(&9I;&4``'=R:71E(&5R
- + M<F]R`"5S+W-O<G0E-2XU9"4U+C5D`"5S<V]R="4U+C5D)34N-60``')E860@
- + M97)R;W(``'(`)7,Z(&1I<V]R9&5R(&]N("5S"@!R`'<`<@!W`'(`<@!W`&EN
- + M=F%L:60@9FEE;&0@<W!E8VEF:6-A=&EO;B!@)7,G```M`%1-4$1)4@``+W1M
- + M<```;W!T:6]N(&`M:R<@<F5Q=6ER97,@86X@87)G=6UE;G0``&]P=&EO;B!@
- + M+6\G(')E<75I<F5S(&%N(&%R9W5M96YT``!O<'1I;VX@8"UT)R!R97%U:7)E
- + M<R!A;B!A<F=U;65N=```;W!T:6]N(&`M5"<@<F5Q=6ER97,@86X@87)G=6UE
- + M;G0``"5S.B!U;G)E8V]G;FEZ960@;W!T:6]N(&`M)6,G"@``+0!W`'(`=P`E
- + M<P``=P!F9FQU<V@``"T`=W)I=&4@97)R;W(`57-A9V4Z("5S(%LM8VUU<UT@
- + M6RUT('-E<&%R871O<ET@6RUO(&]U='!U="UF:6QE72!;+50@=&5M<&1I<ET@
- + M6RUB9&9I36YR70H@("`@("`@6RM03U,Q(%LM4$]3,EU=(%LM:R!03U,Q6RQ0
- + M3U,R75T@6V9I;&4N+BY="@````!'3E4@=&5X='5T:6QS(#$N-@````+(``!5
- + M;FMN;W=N('-Y<W1E;2!E<G)O<@``)7,Z(```.B`E<P````!/:P``````%```
- + M`````````````````P1C;VYS;VQE.@``)7,Z(```:6YT=6ET:6]N+FQI8G)A
- + M<GD```!T:6UE<BYD979I8V4`````_____V9I9F\N;&EB<F%R>0``````````
- + M`````````V0``0```````````V8```````````````!&86EL960@=&\@8W)E
- + M871E('1I;65R``!U<V5R(&EN=&5R<G5P=````````$YO(&UE;6]R>0```&$`
- + M1F%I;&5D('1O(&-R96%T92!T:6UE<@``3DE,.@``3DE,.@``3DE,.@``*@!.
- + M24PZ``!);G9A;&ED('=I;&1C87)D("5S`$5R<F]R(&5X<&%N9&EN9R!A<F=U
- + M;65N=',`55-%4@``=7-E<@``55-%4DY!344``$A/344``',Z``!32$5,3`!B
- + M:6XZ<V@``$A/4U1.04U%``!A;6EG80!.24PZ`````)LP('$``$9A:6QE9"!T
- + M;R!I;FET:6%L:7-E($DO3P``86UI9V$@<W!E8VEF:6,@97)R;W(`````!(A5
- + M;FMN;W=N(&5R<F]R`&YO="!O=VYE<@!N;R!S=6-H(&9I;&4@;W(@9&ER96-T
- + M;W)Y`&YO('-U8V@@<')O8V5S<P!I;G1E<G)U<'1E9"!S>7-T96T@8V%L;`!I
- + M+V\@97)R;W(`;F\@<W5C:"!D979I8V4@;W(@861D<F5S<P!A<F=U;65N="!L
- + M:7-T('1O;R!L;VYG``!E>&5C(&9O<FUA="!E<G)O<@!B860@9FEL92!N=6UB
- + M97(`;F\@8VAI;&0@<')O8V5S<P``;F\@;6]R92!P<F]C97-S97,`;F]T(&5N
- + M;W5G:"!M96UO<GD`<&5R;6ES<VEO;B!D96YI960`8F%D(&%D9')E<W,`8FQO
- + M8VL@9&5V:6-E(')E<75I<F5D`&UO=6YT(&1E=FEC97,@8G5S>0``9FEL92!E
- + M>&ES=',`8W)O<W,M9&5V:6-E(&QI;FL`;F\@<W5C:"!D979I8V4``&YO="!A
- + M(&1I<F5C=&]R>0!I<R!A(&1I<F5C=&]R>0``:6YV86QI9"!A<F=U;65N=```
- + M9FEL92!T86)L92!O=F5R9FQO=P!T;V\@;6%N>2!O<&5N(&9I;&5S`&YO="!A
- + M('1Y<&5W<FET97(``'1E>'0@9FEL92!B=7-Y``!F:6QE('1O;R!B:6<``&YO
- + M('-P86-E(&QE9G0@;VX@9&5V:6-E`&EL;&5G86P@<V5E:P``<F5A9"UO;FQY
- + M(&9I;&4@<WES=&5M`'1O;R!M86YY(&QI;FMS``!B<F]K96X@<&EP90!M871H
- + M(&%R9W5M96YT`')E<W5L="!T;V\@;&%R9V4``$DO3R!S=')E86T@96UP='D`
- + M`&9I;&4@;F%M92!T;V\@;&]N9P``9&ER96-T;W)Y(&YO="!E;7!T>0!T;V\@
- + M;6%N>2!S;V9T(&QI;FMS("AL;V]P/RD````$H@``!+````2Z```$U```!.0`
- + M``3\```%!@``!2````4X```%2@``!5H```5L```%?@``!9````6B```%K@``
- + M!<0```78```%Y```!?8```8&```&%@``!B8```8X```&3```!F````9R```&
- + M@@``!I````:H```&M@``!LP```;<```&Z```!O8```<(```'&@``!RX```="
- + M````)@``9&]O<BXE;'@N)6QX``!.;R!M96UO<GD```!````@("`@("`@("`H
- + M*"@H*"`@("`@("`@("`@("`@("`@($@0$!`0$!`0$!`0$!`0$!"$A(2$A(2$
- + MA(2$$!`0$!`0$(&!@8&!@0$!`0$!`0$!`0$!`0$!`0$!`0$!$!`0$!`0@H*"
- + M@H*"`@("`@("`@("`@("`@("`@("`@(0$!`0(```````````````````````
- + M````````````````````````````````````````````````````````````
- + M````````````````````````````````````````````````````````````
- + M```````````````````````````````````/H```"48`````````````````
- + M``````````````````````````EH````````````````````````````````
- + M```````````````````````````````````````````````````````````"
- + M````@``````-__\````.``X```````````````#__P````0`!````````%*B
- + M```)F/__````!``$````````4K@``````````````#L```"(````@````'@`
- + M``!P````:````&````!8````4````$@```!`````.````#````+:```#&```
- + M`W@```-L```']@``!_(```?N```'Z@``!^8```?B```'W@``!]H```?6```'
- + MT@``!\X```?*```'Q@``!\(```>^```'N@``![8```>R```'K@``!ZH```>F
- + M```'H@``!YX```>:```'E@``!Y(```>.```'B@``!X8```>"```'?@``!WH`
- + M``=V```'<@``!VX```=J```'9@``!V(```=>```$G@``"48```DD```)O```
- + :`^P````"````````"<P```FX`````````_)>
- + `
- + end
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/compile.doc emacs-18.59/amiga/amiga-extra/amiga/compile.doc
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/compile.doc Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/compile.doc Sun Jan 17 12:21:18 1993
- ***************
- *** 0 ****
- --- 1,34 ----
- + To compile emacs, you will need SAS C 6.01. If you try to make it work
- + with Aztec C or gcc, you might run into difficulties with the dumping code:
- + - The "small" data model (A4-relative) is used, to get all the variables
- + in one hunk.
- + - Some variables are declared with the "far" attribute to get them out
- + of this hunk (and the dumping code depends on this). Move these to
- + the amiga_data.c module (which is for variables that shouldn't be
- + dumped).
- +
- + To compile:
- +
- + a) Install my 'unix compatibility' library (available by ftp and on fish
- + disks).
- +
- + b) Install as usual (see INSTALLATION).
- +
- + c) Compile the C preprocessor (SAS's one has a few problems ...):
- +
- + cd gnuemacs:cpp
- + smake
- +
- + d) Compile & dump emacs
- +
- + stack 20000
- + cd gnuemacs:src
- + smake
- + copy temacs /
- +
- + (This takes around 20 minutes from scratch on an A2500/30).
- +
- + If all goes well, you should have a new version of emacs ...
- +
- + [Note: The DOC strings are not remade systematically. To change this,
- + edit ymakefile and remove the comment from the rule for xemacs]
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/chopps/lisp/amiga-user-name.el emacs-18.59/amiga/amiga-extra/amiga/contrib/chopps/lisp/amiga-user-name.el
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/chopps/lisp/amiga-user-name.el Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/chopps/lisp/amiga-user-name.el Thu Mar 18 22:26:08 1993
- ***************
- *** 0 ****
- --- 1,23 ----
- + ;;
- + ;; User-Name.el.
- + ;; ------------
- + ;; -ch3/11/93.
- + ;;
- + ;; This is a replacement for the (user-full-name) function that comes
- + ;; comes with emacs, so that it fetches the login name from $USERNAME
- + ;; and the full name from $REALNAME. As is the default on most amiga
- + ;; systems that are running UUCP and related utils.
- + ;;
- + ;; It will also check $USER for the login name.
- + ;;
- +
- + (defun user-login-name ()
- + (if (eq nil (getenv "UserName"))
- + (getenv "User")
- + (getenv "UserName")))
- +
- + (defun user-full-name ()
- + (if (eq nil (getenv "RealName"))
- + (user-login-name)
- + (getenv "RealName")))
- +
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/chopps/lisp/fix-endif-no-comment.el emacs-18.59/amiga/amiga-extra/amiga/contrib/chopps/lisp/fix-endif-no-comment.el
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/chopps/lisp/fix-endif-no-comment.el Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/chopps/lisp/fix-endif-no-comment.el Thu Mar 18 22:26:44 1993
- ***************
- *** 0 ****
- --- 1,14 ----
- + ;;
- + ;; This small bit of lisp will fix the so common #endif somthing
- + ;; (with no comment) code.
- + ;;
- +
- + (defun fix-endif-no-comment ()
- + (interactive)
- + (save-excursion
- + (beginning-of-buffer)
- + (replace-regexp "^#endif \\(.*\\)" "#endif /* \\1 */")
- + (beginning-of-buffer)
- + (replace-regexp "^#endif /\\* /\\* \\(.*\\) \\*/ \\*/" "#endif /* \\1 */")))
- +
- +
- \ No newline at end of file
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/chopps/rexx/invoker emacs-18.59/amiga/amiga-extra/amiga/contrib/chopps/rexx/invoker
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/chopps/rexx/invoker Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/chopps/rexx/invoker Sat May 8 12:38:48 1993
- ***************
- *** 0 ****
- --- 1,286 ----
- + From: chopps@ro-chp.UUCP (Chris Hopps)
- + Subject: Emacs invoker.
- +
- + This is the newest invoker of mine I am very pleased with it
- + and think it would be good for inclusion in the main distribution.
- + With the included rexx file (and some of the mods to emacs I sent you
- + earlier,) this invoker supports multiple files on the cmd line. It
- + also supports turning backups off for the files loaded on that line,
- + and a WAIT command that will have Emacs return the prompt only after
- + the files specified on the command line have been killed. The invoker
- + also checks to see if Emacs is iconified if so it will de-iconify it.
- + It brings emacs to the front and activates it (my mods needed for
- + this.)
- +
- + This makes leaving GNUEmacs up and running all the time very feasable.
- + The invoker can be used for programs like ``Arn'', ``Elm'' or whatever
- + else kind of program that does something with a file after the editor
- + returns.
- +
- + Here is the lisp code required for using the ``WAIT'' option of the
- + invoker. It should be loaded in the .emacs file.
- +
- + -------8<-------------8<-------------8<-------------8<-------------8<--
- + ;; [notify-rexx-wait.el] notification of kill of a buffer to rexx.
- + ;; Copyright © 1993 Christian E. Hopps.
- +
- + ;; This program is free software; you can redistribute it and/or modify
- + ;; it under the terms of the GNU General Public License as published by
- + ;; the Free Software Foundation; either version 2 of the License, or
- + ;; (at your option) any later version.
- +
- + ;; This program is distributed in the hope that it will be useful,
- + ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
- + ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- + ;; GNU General Public License for more details.
- +
- + ;; You should have received a copy of the GNU General Public License
- + ;; along with this program; if not, write to the Free Software
- + ;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- +
- + ;; I can be contacted at:
- + ;; bix: chopps
- + ;; uucp: chopps@ro-chp.UUCP (sycom.mi.org!ro-chp!chopps)
- +
- + (provide 'notify-rexx-wait)
- +
- + (make-variable-buffer-local 'notify-rexx-port)
- + (set-default 'notify-rexx-port nil)
- +
- + ;;; Set old-kill-buffer to the internal version
- + ;; first check to see if it has already been bound.
- + ;; if not then bind it to the internal.
- + ;;
- + (if (not (fboundp 'old-rexx-notify-kill-buffer ))
- + (fset 'old-rexx-notify-kill-buffer (symbol-function 'kill-buffer)))
- +
- + ;;; redefine kill-buffer to check to see if it should
- + ;; notify rexx that the buffer is being killed.
- + ;;
- + (defun kill-buffer (buffer-strp)
- + "Notifys rexx that the current buffer is about to be killed. If it has one."
- + (interactive "bBuffer:")
- + (let ((buf nil))
- + (setq buf (get-buffer buffer-strp))
- + (switch-to-buffer buf)
- + (if (eq notify-rexx-port nil)
- + (old-rexx-notify-kill-buffer buffer-strp)
- + (amiga-arexx-send-command (concat "ADDRESS " notify-rexx-port "; QUIT") t)
- + (old-rexx-notify-kill-buffer buf))))
- + -------8<-------------8<-------------8<-------------8<-------------8<--
- +
- + Here is the rexx code for the invoker, it can be copied to ``rexx:g.rexx''
- + to be called from wshell with ``[prompt]g myfile.c WAIT'' or copied
- + to ``s:g'' (or somewhere in path) to be called from the AmigaShell
- + (make sure to set the ``s'' script bit.
- + -------8<-------------8<-------------8<-------------8<-------------8<--
- + /***[g.rexx]***************************************************/
- + /* An invoker for GNU Emacs.
- + * Copyright © 1993 Christian E. Hopps
- + *
- + * FILES/M,WAIT=STICKY/S,NOBACKUPS/S"
- + *
- + * use WAIT or STICKY option to have g.rexx wait for buffers
- + * to be killed before returning (same as TurboText's ``WAIT''
- + * option or CED's ``STICKY'')
- + *
- + * NOBACKUPS will cause the files loaded by g.rexx not
- + * to perform backup saves.
- + *
- + * all options aply only to FILES that are specified on this
- + * invocation of g.rexx.
- + *
- + * This program is free software; you can redistribute it and/or modify
- + * it under the terms of the GNU General Public License as published by
- + * the Free Software Foundation; either version 2 of the License, or
- + * (at your option) any later version.
- + *
- + * This program is distributed in the hope that it will be useful,
- + * but WITHOUT ANY WARRANTY; without even the implied warranty of
- + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- + * GNU General Public License for more details.
- + *
- + * You should have received a copy of the GNU General Public License
- + * along with this program; if not, write to the Free Software
- + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- + *
- + * I can be contacted at:
- + * bix: chopps
- + * uucp: chopps@ro-chp.UUCP (sycom.mi.org!ro-chp!chopps)
- + *
- + */
- +
- + options results
- + PARSE ARG argv
- +
- + /* wait for buffer to be killed */
- + wait = 0
- + /* files that are being waited on. */
- + waitingfiles = 0
- +
- + /* do not make backups */
- + nobackups = 0
- +
- + /* Parse the args from command line. */
- + idx = 0
- + DO WHILE argv ~= ""
- + carg = GetNextItem()
- + uarg = UPPER(carg)
- + IF uarg = "STICKY" | uarg = "WAIT" THEN
- + wait = 1
- + ELSE IF uarg = "NOBACKUPS" THEN
- + nobackups = 1
- + ELSE IF uarg = "?" THEN DO
- + SAY "template: FILES/M,WAIT=STICKY/S,NOBACKUPS/S"
- + EXIT 0
- + END
- + ELSE IF uarg ~= "" THEN DO
- + IF SUBSTR(uarg,1,5) = "FILES" THEN DO
- + IF uarg = "FILES" THEN DO
- + file = GetNextItem()
- + IF file = "" THEN DO
- + SAY "template: FILES/M,WAIT=STICKY/S,NOBACKUPS/S"
- + EXIT 0
- + END
- + END
- + ELSE IF SUBSTR(uarg,6,1) = "=" THEN DO
- + file = SUBSTR(carg,7)
- + IF file = "" THEN DO
- + SAY "template: FILES/M,WAIT=STICKY/S,NOBACKUPS/S"
- + EXIT 0
- + END
- + END
- +
- + END
- + ELSE DO
- + file = carg
- + IF file = "" THEN DO
- + SAY "template: FILES/M,WAIT=STICKY/S,NOBACKUPS/S"
- + EXIT 0
- + END
- + END
- + dir = PRAGMA('Directory')
- + IF 0 = pos(':',file) THEN DO
- + IF lc ~= '/' & lc ~= ':' THEN
- + dir = dir || '/'
- + filename = dir || file
- + END
- + ELSE DO
- + IF lc ~= '/' & lc ~= ':' THEN
- + dir = dir || '/'
- + filename = dir || file
- + END
- + filestoload.idx = filename
- + idx = idx + 1
- + END
- + END
- +
- + IF wait = 1 THEN DO
- + start = 1
- + notifyport = "EMACS_NOTIFY" || start
- + DO WHILE SHOW('P',notifyport)
- + start = start + 1
- + notifyport = "EMACS_NOTIFY" || start
- + END
- +
- + notifymp = OPENPORT(notifyport)
- + IF ~SHOW('P',notifyport) THEN DO
- + SAY "Cannot initialize the notification port."
- + EXIT 20
- + END
- + END
- +
- + /* Load emacs if it is not already running */
- + if (~show('p', 'EMACS1')) THEN DO
- + ADDRESS COMMAND
- + 'run >NIL: emacs'
- + 'waitforport EMACS1'
- + END
- +
- + ADDRESS EMACS1
- +
- + IF wait = 1 THEN
- + "(require 'notify-rexx-wait)"
- +
- + /* will return either nil or t */
- + "(symbol-value 'amiga-emacs-iconified)"
- +
- + IF result = "t" THEN
- + '(amiga-iconify)'
- +
- + fileidx = 0
- + DO WHILE fileidx < idx
- + '(buffer-name)'
- + curbuf = RESULT
- +
- + lisp = ' (progn '
- + IF curbuf ~= '"*scratch*"' THEN
- + lisp = lisp || ' (find-file-other-window "' || filestoload.fileidx || '"))'
- + ELSE
- + lisp = lisp || ' (find-file "' || filestoload.fileidx || '"))'
- +
- + ADDRESS EMACS1 lisp
- +
- + IF nobackups = 1 THEN DO
- + "(make-local-variable 'make-backup-files)"
- + '(setq make-backup-files nil)'
- + END
- +
- + IF wait = 1 THEN DO
- + '(setq notify-rexx-port "' || notifyport || '")'
- + waitingfiles = waitingfiles + 1;
- + END
- + fileidx = fileidx + 1
- + END
- +
- + '(amiga-window-to-front)'
- + '(amiga-activate-window)'
- +
- + IF wait = 1 THEN DO
- + quitflag = 0
- + DO FOREVER
- + IF waitingfiles = 0 THEN
- + EXIT 0
- + t = WAITPKT(notifyport)
- +
- + DO FOREVER
- + p = GETPKT(notifyport)
- + IF C2D(p) = 0 THEN BREAK
- + args = GETARG(p)
- +
- + PARSE VAR args argval args
- + IF argval = "QUIT" THEN
- + waitingfiles = waitingfiles - 1
- +
- + t = REPLY(p,1)
- + END
- + END
- + END
- +
- + EXIT 0
- +
- + GetNextItem: PROCEDURE EXPOSE argv
- + ch = LEFT(argv,1)
- + DO WHILE ch = " " | ch = " "
- + argv = SUBSTR(argv,2)
- + ch = LEFT(argv,1)
- + END
- + ch = LEFT(argv,1)
- + IF ch = '"' THEN
- + PARSE VAR argv '"'string'"' argv
- + ELSE
- + PARSE VAR argv string argv
- + RETURN string
- +
- +
- +
- + StripWS: PROCEDURE
- +
- + ARG string
- + RETURN string
- + -------8<-------------8<-------------8<-------------8<-------------8<--
- + ------------------------
- + The Royal Oak Chophouse >> Chris Hopps
- + Royal Oak, Michigan >> sycom.mi.org!ro-chp!chopps
- +
- +
- \ No newline at end of file
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/chopps/rexx/sayval.rexx emacs-18.59/amiga/amiga-extra/amiga/contrib/chopps/rexx/sayval.rexx
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/chopps/rexx/sayval.rexx Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/chopps/rexx/sayval.rexx Thu Mar 18 22:54:36 1993
- ***************
- *** 0 ****
- --- 1,29 ----
- + /* sayval.rexx
- + * -----------
- + * -ch3/18/93.
- + *
- + * call from dos prompt:
- + *
- + * sayval <some-emacs-symbol-name>
- + *
- + * ex: sayval amiga-emacs-iconified
- + *
- + * Christian E. Hopps.
- + */
- +
- + /* get the first arg from the command line and store in symbol */
- + parse arg symbol
- +
- + /* address the emacs port */
- + address EMACS1
- +
- + /* ask for full results */
- + options results
- +
- + /* construct lisp inside emacs this will look like this
- + *
- + * (symbol-value 'some-variable-name) */
- +
- + /* call function by quoting the lisp code. */
- + "(symbol-value '" || symbol || ")"
- + say RESULT
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/dgay/README emacs-18.59/amiga/amiga-extra/amiga/contrib/dgay/README
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/dgay/README Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/dgay/README Thu Oct 1 07:30:20 1992
- ***************
- *** 0 ****
- --- 1,50 ----
- + dtags allows you to quickly lookup the autodocs for the AmigaOS functions
- + while programming. It is a modification of the emacs TAGS facility.
- +
- + For example, you have forgotten the parameters for MakeLink. Your buffer contains:
- +
- + if (MakeLink(
- +
- + you press the magic key (in my case M-g), and you get in an other buffer:
- +
- + dos.library/MakeLink dos.library/MakeLink
- +
- + NAME
- + MakeLink -- Creates a filesystem link (V36)
- +
- + SYNOPSIS
- + [...]
- +
- + which should solve all your problems ...
- +
- + To install this facility, you must:
- +
- + a) Have an assign of DOCS: to the directory containing the AmigaOS 2.0 autodocs.
- +
- + b) Copy dtags.el and dtags.elc to your lisp directory (probably gnuemacs:lisp).
- +
- + c) Execute the make-dtags.el file once (with M-x load-file). This will create
- + a file called DTAGS in DOCS: to help emacs find the functions in the autodocs.
- +
- + d) Add the following lines to your .emacs file:
- +
- + (autoload 'visit-dtags-table "dtags" nil t)
- + (autoload 'doc-tag "dtags" nil t)
- + (autoload 'dtags-search "dtags" nil t)
- + (autoload 'list-dtags "dtags" nil t)
- + (autoload 'dtags-apropos "dtags" nil t)
- + (autoload 'make-dtags "dtags" nil t)
- +
- + and optionally a key definition to execute doc-tag (the autodoc lookup function):
- +
- + (define-key global-map "\M-g" 'doc-tag)
- +
- + Usage:
- + -----
- +
- + You just press M-g (if you chose that key). Emacs will prompt you for the
- + function to lookup, but it will propose as a default a word near your
- + cursor. Once this has been chosen, emacs will display the appropriate autodoc.
- + You can enter a substring of the function name, in which case emacs will display
- + the first one that matches it. If you want to see other functions containing the
- + same substring, press M-, (or M-x tags-loop-continue).
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/dgay/dtags.el emacs-18.59/amiga/amiga-extra/amiga/contrib/dgay/dtags.el
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/dgay/dtags.el Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/dgay/dtags.el Mon Dec 23 21:21:46 1991
- ***************
- *** 0 ****
- --- 1,237 ----
- + ;; Dtags facility for Emacs.
- + ;; Copyright (C) 1985, 1986, 1988 Free Software Foundation, Inc.
- +
- + ;; This file is part of GNU Emacs.
- +
- + ;; GNU Emacs is distributed in the hope that it will be useful,
- + ;; but WITHOUT ANY WARRANTY. No author or distributor
- + ;; accepts responsibility to anyone for the consequences of using it
- + ;; or for whether it serves any particular purpose or works at all,
- + ;; unless he says so in writing. Refer to the GNU Emacs General Public
- + ;; License for full details.
- +
- + ;; Everyone is granted permission to copy, modify and redistribute
- + ;; GNU Emacs, but only under the conditions described in the
- + ;; GNU Emacs General Public License. A copy of this license is
- + ;; supposed to have been given to you along with GNU Emacs so you
- + ;; can know your rights and responsibilities. It should be in a
- + ;; file named COPYING. Among other things, the copyright notice
- + ;; and this notice must be preserved on all copies.
- +
- +
- + (provide 'dtags)
- + (load "tags")
- +
- + (defvar dtag-table-files nil
- + "List of file names covered by current dtag table.
- + nil means it has not been computed yet; do (dtag-table-files) to compute it.")
- +
- + (defvar dtags-file-name "docs:DTAGS"
- + "Where to find the doc tags, use visit-dtags-table to change it.")
- +
- + (defun visit-dtags-table (file)
- + "Tell dtags commands to use tag table file FILE.
- + FILE should be the name of a file created with the `etags' program.
- + A directory name is ok too; it means file TAGS in that directory."
- + (interactive (list (read-file-name "Visit tags table: (default TAGS) "
- + default-directory
- + (concat default-directory "TAGS")
- + t)))
- + (setq file (expand-file-name file))
- + (if (file-directory-p file)
- + (setq file (concat file "DTAGS")))
- + (setq dtag-table-files nil
- + dtags-file-name file))
- +
- + (defun visit-dtags-table-buffer ()
- + "Select the buffer containing the current tag table.
- + This is a file whose name is in the variable tags-file-name."
- + (or dtags-file-name
- + (call-interactively 'visit-dtags-table))
- + (set-buffer (or (get-file-buffer dtags-file-name)
- + (progn
- + (setq dtag-table-files nil)
- + (find-file-noselect dtags-file-name))))
- + (or (verify-visited-file-modtime (get-file-buffer dtags-file-name))
- + (cond ((yes-or-no-p "Dtags file has changed, read new contents? ")
- + (revert-buffer t t)
- + (setq dtag-table-files nil))))
- + (or (eq (char-after 1) ?\^L)
- + (error "File %s not a valid dtag table" dtags-file-name)))
- +
- + (defun dtag-table-files ()
- + "Return a list of files in the current dtag table.
- + File names returned are absolute."
- + (save-excursion
- + (visit-dtags-table-buffer)
- + (or dtag-table-files
- + (let (files)
- + (goto-char (point-min))
- + (while (not (eobp))
- + (forward-line 1)
- + (end-of-line)
- + (skip-chars-backward "^,\n")
- + (setq prev (point))
- + (setq size (read (current-buffer)))
- + (goto-char prev)
- + (setq files (cons (expand-file-name
- + (buffer-substring (1- (point))
- + (save-excursion
- + (beginning-of-line)
- + (point)))
- + (file-name-directory dtags-file-name))
- + files))
- + (forward-line 1)
- + (forward-char size))
- + (setq dtag-table-files (nreverse files))))))
- +
- + (defun doc-tag (tagname &optional next)
- + "Find tag (in current tag table) whose name contains TAGNAME.
- + Selects the buffer that the tag is contained in
- + and puts point at its definition.
- + If TAGNAME is a null string, the expression in the buffer
- + around or before point is used as the tag name.
- + If second arg NEXT is non-nil (interactively, with prefix arg),
- + searches for the next tag in the tag table
- + that matches the tagname used in the previous find-tag.
- +
- + See documentation of variable tags-file-name."
- + (interactive (if current-prefix-arg
- + '(nil t)
- + (find-tag-tag "Find tag: ")))
- + (let (buffer file linebeg startpos)
- + (save-excursion
- + (visit-dtags-table-buffer)
- + (if (not next)
- + (goto-char (point-min))
- + (setq tagname last-tag))
- + (setq last-tag tagname)
- + (while (progn
- + (if (not (search-forward tagname nil t))
- + (error "No %sentries containing %s"
- + (if next "more " "") tagname))
- + (not (looking-at "[^\n\177]*\177"))))
- + (search-forward "\177")
- + (setq file (expand-file-name (file-of-tag)
- + (file-name-directory dtags-file-name)))
- + (setq linebeg
- + (buffer-substring (1- (point))
- + (save-excursion (beginning-of-line) (point))))
- + (search-forward ",")
- + (setq startpos (read (current-buffer))))
- + (let ((win (selected-window)))
- + (find-file-other-window file)
- + (widen)
- + (push-mark)
- + (let ((offset 1000)
- + found
- + (pat (concat (regexp-quote linebeg) "[ \t]")))
- + (or startpos (setq startpos (point-min)))
- + (while (and (not found)
- + (progn
- + (goto-char (- startpos offset))
- + (not (bobp))))
- + (setq found
- + (re-search-forward pat (+ startpos offset) t))
- + (setq offset (* 3 offset)))
- + (or found
- + (re-search-forward pat nil t)
- + (error "%s not found in %s" pat file)))
- + (beginning-of-line)
- + (recenter 0)
- + (select-window win)))
- + (setq tags-loop-form '(doc-tag nil t))
- + ;; Return t in case used as the tags-loop-form.
- + t)
- +
- + (defun dtags-search (regexp)
- + "Search through all files listed in tag table for match for REGEXP.
- + Stops when a match is found.
- + To continue searching for next match, use command \\[tags-loop-continue].
- +
- + See documentation of variable tags-file-name."
- + (interactive "sTags search (regexp): ")
- + (if (and (equal regexp "")
- + (eq (car tags-loop-form) 're-search-forward))
- + (tags-loop-continue nil)
- + (setq tags-loop-form
- + (list 're-search-forward regexp nil t))
- + (setq next-file-list (dtag-table-files))
- + (next-file)
- + (tags-loop-continue)))
- +
- + (defun list-dtags (string)
- + "Display list of dtags in file FILE.
- + FILE should not contain a directory spec
- + unless it has one in the dtag table."
- + (interactive "sList dtags (in file): ")
- + (with-output-to-temp-buffer "*Dtags List*"
- + (princ "Dtags in file ")
- + (princ string)
- + (terpri)
- + (save-excursion
- + (visit-dtags-table-buffer)
- + (goto-char 1)
- + (search-forward (concat "\f\n" string ","))
- + (forward-line 1)
- + (while (not (or (eobp) (looking-at "\f")))
- + (princ (buffer-substring (point)
- + (progn (skip-chars-forward "^\177")
- + (point))))
- + (terpri)
- + (forward-line 1)))))
- +
- + (defun dtags-apropos (string)
- + "Display list of all dtags in dtag table REGEXP matches."
- + (interactive "sDtag apropos (regexp): ")
- + (with-output-to-temp-buffer "*Dtags List*"
- + (princ "Dtags matching regexp ")
- + (prin1 string)
- + (terpri)
- + (save-excursion
- + (visit-dtags-table-buffer)
- + (goto-char 1)
- + (while (re-search-forward string nil t)
- + (beginning-of-line)
- + (princ (buffer-substring (point)
- + (progn (skip-chars-forward "^\177")
- + (point))))
- + (terpri)
- + (forward-line 1)))))
- +
- + (defun make-dtags (file)
- + (interactive "FDoc file: ")
- + (setq file (expand-file-name file))
- + (save-excursion
- + (find-file-noselect dtags-file-name)
- + (let ((buf-doc (get-buffer-create "*make-doc-temp*"))
- + (buf-tags (get-buffer-create dtags-file-name)))
- + ; First, create the header for the tags
- + (set-buffer buf-tags)
- + (goto-char (point-max))
- + (insert ?\f ?\n file ?,)
- + (let ((size-pos (point)))
- + (insert ?\n)
- + ; Now, we prepare the doc file
- + (set-buffer buf-doc)
- + (erase-buffer)
- + (insert-file file)
- + (goto-char (point-min))
- + ; We are now ready to find entries
- + (while (and (search-forward "\f" nil t)
- + (progn
- + (skip-chars-forward "\n")
- + (not (eobp))))
- + (let ((beg (point)))
- + (skip-chars-forward "^ \t")
- + (let ((fn (buffer-substring beg (point)))
- + (line (1+ (count-lines 1 beg))))
- + (set-buffer buf-tags)
- + (insert fn 127 (int-to-string line) ?, (int-to-string beg) ?\n)
- + (set-buffer buf-doc))))
- + (set-buffer buf-tags)
- + (let ((size (- (point) size-pos 1)))
- + (goto-char size-pos)
- + (insert (int-to-string size))))))
- + (pop-to-buffer (get-buffer dtags-file-name) t))
- +
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/dgay/dtags.elc and emacs-18.59/amiga/amiga-extra/amiga/contrib/dgay/dtags.elc differ
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/dgay/make-dtags.el emacs-18.59/amiga/amiga-extra/amiga/contrib/dgay/make-dtags.el
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/dgay/make-dtags.el Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/dgay/make-dtags.el Thu Oct 1 07:24:18 1992
- ***************
- *** 0 ****
- --- 1,47 ----
- + (require 'dtags)
- + (make-dtags "docs:amiga.lib.doc")
- + (make-dtags "docs:asl.doc")
- + (make-dtags "docs:audio.doc")
- + (make-dtags "docs:battclock.doc")
- + (make-dtags "docs:battmem.doc")
- + (make-dtags "docs:cia.doc")
- + (make-dtags "docs:clipboard.doc")
- + (make-dtags "docs:commodities.doc")
- + (make-dtags "docs:console.doc")
- + (make-dtags "docs:cx_lib.doc")
- + (make-dtags "docs:debug.doc")
- + (make-dtags "docs:disk.doc")
- + (make-dtags "docs:diskfont.doc")
- + (make-dtags "docs:dos.doc")
- + (make-dtags "docs:exec.doc")
- + (make-dtags "docs:expansion.doc")
- + (make-dtags "docs:filesysres.doc")
- + (make-dtags "docs:gadtools.doc")
- + (make-dtags "docs:gameport.doc")
- + (make-dtags "docs:graphics.doc")
- + (make-dtags "docs:icon.doc")
- + (make-dtags "docs:iffparse.doc")
- + (make-dtags "docs:input.doc")
- + (make-dtags "docs:intuition.doc")
- + (make-dtags "docs:keyboard.doc")
- + (make-dtags "docs:keymap.doc")
- + (make-dtags "docs:layers.doc")
- + (make-dtags "docs:mathffp.doc")
- + (make-dtags "docs:mathieeedoubbas.doc")
- + (make-dtags "docs:mathieeedoubtrans.doc")
- + (make-dtags "docs:mathieeesingbas.doc")
- + (make-dtags "docs:mathieeesingtrans.doc")
- + (make-dtags "docs:mathtrans.doc")
- + (make-dtags "docs:misc.doc")
- + (make-dtags "docs:narrator.doc")
- + (make-dtags "docs:parallel.doc")
- + (make-dtags "docs:potgo.doc")
- + (make-dtags "docs:printer.doc")
- + (make-dtags "docs:rexxsyslib.doc")
- + (make-dtags "docs:serial.doc")
- + (make-dtags "docs:timer.doc")
- + (make-dtags "docs:trackdisk.doc")
- + (make-dtags "docs:translator.doc")
- + (make-dtags "docs:utility.doc")
- + (make-dtags "docs:wb.doc")
- +
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/README emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/README
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/README Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/README Thu Oct 1 07:17:36 1992
- ***************
- *** 0 ****
- --- 1,45 ----
- + This directory contains several utilities sent by Tapio Hesikanen.
- +
- + Here follow a few explanations:
- +
- + From: hessu@fipnet.fi (Tapio Heiskanen)
- + To: dgay@di.epfl.ch
- + Subject: Here's a couple of software for you
- +
- + I was in need of fakemail and movemail, so I made them with some help of my
- + friend. Both of those programs are in GNUEmacs distibution, so I thought if
- + you'd like to include them.
- +
- + They should be developed further, but they fill my needs.
- + If you make any changes to them, please send sources and binaries to me.
- +
- + I suppose you know how the progs should work so I won't write any docs for
- + them.
- +
- + I also have an AREXX version of inews made up. If you would like to have,
- + I could send to you. Maybe it should be in C, but REXX was enough for me.
- +
- + --
- + Tapio (hessu) Heiskanen _|_ Internet: hessu@diode.fipnet.fi
- + Sarkiniementie 11 B 18 \ / ICBM: 60 08 58 N / 24 52 53 E
- + 00210 HELSINKI _Y_ Telephone: +358 0 678284
- + FINLAND | Data: +358 0 6822206
- +
- + From: hessu@fipnet.fi (Tapio Heiskanen)
- + To: dgay@di.epfl.ch
- + Subject: Re: GNU Emacs 18.58, Amiga port 1.24
- +
- + [...]
- +
- + BTW: Included is a emacs.rexx script I made to ease my life. It checks first
- + if the REXX-port exists and then starts emacs or just sends a rexx command
- + respectively.
- +
- + --
- + Tapio (hessu) Heiskanen _|_ Internet: hessu@diode.fipnet.fi
- + Sarkiniementie 11 B 18 \ / ICBM: 60 08 58 N / 24 52 53 E
- + 00210 HELSINKI _Y_ Telephone: +358 0 678284
- + FINLAND | Data: +358 0 6822206
- +
- + distinews.lha contains directions for installing GNUS, the emacs news-reader,
- + and a replacement for the inews command.
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/distinews.lha and emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/distinews.lha differ
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/emacs.rexx emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/emacs.rexx
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/emacs.rexx Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/emacs.rexx Thu Oct 1 06:56:54 1992
- ***************
- *** 0 ****
- --- 1,25 ----
- + /* emacs.rexx */
- +
- +
- + parse arg params
- + id=pragma('id')
- +
- + if ~show('P', 'EMACS1') then do
- + if ~open(out, 't:emacs', 'w') then do
- + say "EMACS.REXX: Can't open temporary file!"
- + exit 5
- + end
- + call writeln(out, 'stack 49152')
- + call writeln(out, 'run >nil: <nil: temacs' params)
- + call writeln(out, 'stack 16384')
- + call close(out)
- + address command 'execute t:emacs'
- + exit
- + end
- +
- +
- + if word(params,1)='-f' then do
- + address 'EMACS1' '('subword(params, 2)')'
- + exit
- + end
- + address 'EMACS1' '(find-file "'params'")'
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/cc emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/cc
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/cc Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/cc Mon Jul 20 18:55:54 1992
- ***************
- *** 0 ****
- --- 1,6 ----
- + older fakemail.o fakemail.c
- + if warn
- + incver version.h
- + endif
- + lc -L -M -E fakemail.c
- + protect fakemail +p
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/fakemail and emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/fakemail differ
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/fakemail.c emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/fakemail.c
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/fakemail.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/fakemail.c Wed Jul 22 17:40:22 1992
- ***************
- *** 0 ****
- --- 1,68 ----
- + /*
- + * FAKEMAIL.C
- + *
- + * compile: cc
- + *
- + * Written by Tapio Heiskanen
- + *
- + * Copyright (c) 1992 Ferry Island Technologies
- + * All rights reserved
- + *
- + * Created: 20-Jul-92
- + */
- +
- + #include "version.h"
- +
- + #include <proto/dos.h>
- + #include <stdio.h>
- + #include <stdlib.h>
- +
- + char *version="$VER: fakemail V"VERSION;
- +
- + void main(int ac, char **arg)
- + {
- + char buf[256], hdr[256], name[256];
- + FILE *fifo, *sign;
- + int header=1;
- +
- + sprintf(name, "T:fakemail%d", (int)name);
- +
- + if(!(fifo=fopen(name, "w")))
- + {
- + printf("FAKEMAIL: Can't open temporary file %s\n", name);
- + exit(10);
- + }
- +
- + /* pipe stdin to t:<name> */
- +
- + while(fgets(buf, 256, stdin))
- + {
- + if(*buf=='\n' && header)
- + if(sign=fopen("uulib:.fakemailhdrs", "r"))
- + {
- + while(fgets(hdr, 256, sign))
- + fputs(hdr, fifo);
- + fclose(sign);
- + header=0;
- + }
- + fputs(buf, fifo);
- + }
- +
- +
- + /* cat uulib:.signature to t:<name> */
- +
- + if(sign=fopen("uulib:.signature", "r"))
- + {
- + while(fgets(buf, 256, sign))
- + fputs(buf, fifo);
- + fclose(sign);
- + }
- + fclose(fifo);
- +
- + /* give the file for sendmail */
- +
- + sprintf(name, "sendmail -f $user <T:fakemail%d", (int)name);
- + Execute(name, 0, 0);
- + sprintf(name, "T:fakemail%d", (int)name);
- + remove(name);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/sascopts emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/sascopts
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/sascopts Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/sascopts Mon Jul 20 18:55:52 1992
- ***************
- *** 0 ****
- --- 1,7 ----
- + -rr
- + -v
- + -cs
- + -ms
- + -Lc
- + -Ld
- + -Pfakemail
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/version.h emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/version.h
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/version.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/fakemail/version.h Wed Jul 22 17:40:32 1992
- ***************
- *** 0 ****
- --- 1 ----
- + #define VERSION "0.06"
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/cc emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/cc
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/cc Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/cc Wed Jul 22 17:01:58 1992
- ***************
- *** 0 ****
- --- 1,6 ----
- + older movemail.o movemail.c
- + if warn
- + incver version.h
- + endif
- + lc -L -M -E movemail.c
- + protect movemail +p
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/movemail and emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/movemail differ
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/movemail.c emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/movemail.c
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/movemail.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/movemail.c Wed Jul 22 17:36:28 1992
- ***************
- *** 0 ****
- --- 1,44 ----
- + /*
- + * MOVEMAIL.C
- + *
- + * compile: cc
- + *
- + * Written by Tapio Heiskanen
- + *
- + * Copyright (c) 1992 Ferry Island Technologies
- + * All rights reserved
- + *
- + * Created: 22-Jul-92
- + */
- +
- + #include "version.h"
- +
- + #include <proto/dos.h>
- + #include <stdio.h>
- + #include <stdlib.h>
- +
- + char *version="$VER: movemail V"VERSION;
- +
- + void main(int ac, char **arg)
- + {
- + char buf[256];
- + FILE *tofile, *spoolfile;
- +
- + if(!(spoolfile=fopen(arg[1], "r")))
- + {
- + printf("movemail: Can't open spool file %s\n", arg[1]);
- + exit(10);
- + }
- +
- + if(!(tofile=fopen(arg[2], "a")))
- + {
- + printf("movemail: Can't open to file %s\n", arg[2]);
- + exit(10);
- + }
- +
- + while(fgets(buf, 256, spoolfile))
- + fputs(buf, tofile);
- +
- + fcloseall();
- + remove(arg[1]);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/sascopts emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/sascopts
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/sascopts Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/sascopts Wed Jul 22 17:01:56 1992
- ***************
- *** 0 ****
- --- 1,7 ----
- + -rr
- + -v
- + -cs
- + -ms
- + -Lc
- + -Ld
- + -Pmovemail
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/version.h emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/version.h
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/version.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/hessu/movemail/version.h Wed Jul 22 17:36:32 1992
- ***************
- *** 0 ****
- --- 1 ----
- + #define VERSION "0.02"
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/kaiser/README emacs-18.59/amiga/amiga-extra/amiga/contrib/kaiser/README
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/kaiser/README Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/kaiser/README Sun Jan 17 11:48:08 1993
- ***************
- *** 0 ****
- --- 1,24 ----
- + Hi David !
- +
- + Just got your Emacs-port for my A 3000 - good work ! As I didn't have a
- + tool for creating public screens, too, I simply wrote one. It's appended
- + here (uuencoded). If you like it, include it in your next distribution.
- +
- + Regards, Michael
- +
- + ------------------------------------------------------------------------------
- + Michael Kaiser / Only my personal opinions
- + Universitaet Karlsruhe
- + Institut fuer Prozessrechentechnik und Robotik Internet : kaiser@ira.uka.de
- + Postfach 6980 Tel. : +49 721 608-4051
- + D-7500 Karlsruhe 1, FR Germany FAX : +49 721 606-740
- + ------------------------------------------------------------------------------
- + Privat:
- + Rintheimer Strasse 59 // Have you
- + D-7500 Karlsruhe 1, FR Germany // hugged
- + \\ // your
- + Tel. : (+49) (721) 61 18 19 \X/ Amiga today ?
- + Komm. : Michael_Kaiser@KA.maus.de [A3000/20/260]
- + ------------------------------------------------------------------------------
- + "Die schiessen auf mein schoenes Auto ... !" (Canardo)
- + ------------------------------------------------------------------------------
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/kaiser/pub and emacs-18.59/amiga/amiga-extra/amiga/contrib/kaiser/pub differ
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/COPYING emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/COPYING
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/COPYING Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/COPYING Thu Sep 30 17:29:32 1993
- ***************
- *** 0 ****
- --- 1,339 ----
- + GNU GENERAL PUBLIC LICENSE
- + Version 2, June 1991
- +
- + Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- + 675 Mass Ave, Cambridge, MA 02139, USA
- + Everyone is permitted to copy and distribute verbatim copies
- + of this license document, but changing it is not allowed.
- +
- + Preamble
- +
- + The licenses for most software are designed to take away your
- + freedom to share and change it. By contrast, the GNU General Public
- + License is intended to guarantee your freedom to share and change free
- + software--to make sure the software is free for all its users. This
- + General Public License applies to most of the Free Software
- + Foundation's software and to any other program whose authors commit to
- + using it. (Some other Free Software Foundation software is covered by
- + the GNU Library General Public License instead.) You can apply it to
- + your programs, too.
- +
- + When we speak of free software, we are referring to freedom, not
- + price. Our General Public Licenses are designed to make sure that you
- + have the freedom to distribute copies of free software (and charge for
- + this service if you wish), that you receive source code or can get it
- + if you want it, that you can change the software or use pieces of it
- + in new free programs; and that you know you can do these things.
- +
- + To protect your rights, we need to make restrictions that forbid
- + anyone to deny you these rights or to ask you to surrender the rights.
- + These restrictions translate to certain responsibilities for you if you
- + distribute copies of the software, or if you modify it.
- +
- + For example, if you distribute copies of such a program, whether
- + gratis or for a fee, you must give the recipients all the rights that
- + you have. You must make sure that they, too, receive or can get the
- + source code. And you must show them these terms so they know their
- + rights.
- +
- + We protect your rights with two steps: (1) copyright the software, and
- + (2) offer you this license which gives you legal permission to copy,
- + distribute and/or modify the software.
- +
- + Also, for each author's protection and ours, we want to make certain
- + that everyone understands that there is no warranty for this free
- + software. If the software is modified by someone else and passed on, we
- + want its recipients to know that what they have is not the original, so
- + that any problems introduced by others will not reflect on the original
- + authors' reputations.
- +
- + Finally, any free program is threatened constantly by software
- + patents. We wish to avoid the danger that redistributors of a free
- + program will individually obtain patent licenses, in effect making the
- + program proprietary. To prevent this, we have made it clear that any
- + patent must be licensed for everyone's free use or not licensed at all.
- +
- + The precise terms and conditions for copying, distribution and
- + modification follow.
- +
- + GNU GENERAL PUBLIC LICENSE
- + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
- +
- + 0. This License applies to any program or other work which contains
- + a notice placed by the copyright holder saying it may be distributed
- + under the terms of this General Public License. The "Program", below,
- + refers to any such program or work, and a "work based on the Program"
- + means either the Program or any derivative work under copyright law:
- + that is to say, a work containing the Program or a portion of it,
- + either verbatim or with modifications and/or translated into another
- + language. (Hereinafter, translation is included without limitation in
- + the term "modification".) Each licensee is addressed as "you".
- +
- + Activities other than copying, distribution and modification are not
- + covered by this License; they are outside its scope. The act of
- + running the Program is not restricted, and the output from the Program
- + is covered only if its contents constitute a work based on the
- + Program (independent of having been made by running the Program).
- + Whether that is true depends on what the Program does.
- +
- + 1. You may copy and distribute verbatim copies of the Program's
- + source code as you receive it, in any medium, provided that you
- + conspicuously and appropriately publish on each copy an appropriate
- + copyright notice and disclaimer of warranty; keep intact all the
- + notices that refer to this License and to the absence of any warranty;
- + and give any other recipients of the Program a copy of this License
- + along with the Program.
- +
- + You may charge a fee for the physical act of transferring a copy, and
- + you may at your option offer warranty protection in exchange for a fee.
- +
- + 2. You may modify your copy or copies of the Program or any portion
- + of it, thus forming a work based on the Program, and copy and
- + distribute such modifications or work under the terms of Section 1
- + above, provided that you also meet all of these conditions:
- +
- + a) You must cause the modified files to carry prominent notices
- + stating that you changed the files and the date of any change.
- +
- + b) You must cause any work that you distribute or publish, that in
- + whole or in part contains or is derived from the Program or any
- + part thereof, to be licensed as a whole at no charge to all third
- + parties under the terms of this License.
- +
- + c) If the modified program normally reads commands interactively
- + when run, you must cause it, when started running for such
- + interactive use in the most ordinary way, to print or display an
- + announcement including an appropriate copyright notice and a
- + notice that there is no warranty (or else, saying that you provide
- + a warranty) and that users may redistribute the program under
- + these conditions, and telling the user how to view a copy of this
- + License. (Exception: if the Program itself is interactive but
- + does not normally print such an announcement, your work based on
- + the Program is not required to print an announcement.)
- +
- + These requirements apply to the modified work as a whole. If
- + identifiable sections of that work are not derived from the Program,
- + and can be reasonably considered independent and separate works in
- + themselves, then this License, and its terms, do not apply to those
- + sections when you distribute them as separate works. But when you
- + distribute the same sections as part of a whole which is a work based
- + on the Program, the distribution of the whole must be on the terms of
- + this License, whose permissions for other licensees extend to the
- + entire whole, and thus to each and every part regardless of who wrote it.
- +
- + Thus, it is not the intent of this section to claim rights or contest
- + your rights to work written entirely by you; rather, the intent is to
- + exercise the right to control the distribution of derivative or
- + collective works based on the Program.
- +
- + In addition, mere aggregation of another work not based on the Program
- + with the Program (or with a work based on the Program) on a volume of
- + a storage or distribution medium does not bring the other work under
- + the scope of this License.
- +
- + 3. You may copy and distribute the Program (or a work based on it,
- + under Section 2) in object code or executable form under the terms of
- + Sections 1 and 2 above provided that you also do one of the following:
- +
- + a) Accompany it with the complete corresponding machine-readable
- + source code, which must be distributed under the terms of Sections
- + 1 and 2 above on a medium customarily used for software interchange; or,
- +
- + b) Accompany it with a written offer, valid for at least three
- + years, to give any third party, for a charge no more than your
- + cost of physically performing source distribution, a complete
- + machine-readable copy of the corresponding source code, to be
- + distributed under the terms of Sections 1 and 2 above on a medium
- + customarily used for software interchange; or,
- +
- + c) Accompany it with the information you received as to the offer
- + to distribute corresponding source code. (This alternative is
- + allowed only for noncommercial distribution and only if you
- + received the program in object code or executable form with such
- + an offer, in accord with Subsection b above.)
- +
- + The source code for a work means the preferred form of the work for
- + making modifications to it. For an executable work, complete source
- + code means all the source code for all modules it contains, plus any
- + associated interface definition files, plus the scripts used to
- + control compilation and installation of the executable. However, as a
- + special exception, the source code distributed need not include
- + anything that is normally distributed (in either source or binary
- + form) with the major components (compiler, kernel, and so on) of the
- + operating system on which the executable runs, unless that component
- + itself accompanies the executable.
- +
- + If distribution of executable or object code is made by offering
- + access to copy from a designated place, then offering equivalent
- + access to copy the source code from the same place counts as
- + distribution of the source code, even though third parties are not
- + compelled to copy the source along with the object code.
- +
- + 4. You may not copy, modify, sublicense, or distribute the Program
- + except as expressly provided under this License. Any attempt
- + otherwise to copy, modify, sublicense or distribute the Program is
- + void, and will automatically terminate your rights under this License.
- + However, parties who have received copies, or rights, from you under
- + this License will not have their licenses terminated so long as such
- + parties remain in full compliance.
- +
- + 5. You are not required to accept this License, since you have not
- + signed it. However, nothing else grants you permission to modify or
- + distribute the Program or its derivative works. These actions are
- + prohibited by law if you do not accept this License. Therefore, by
- + modifying or distributing the Program (or any work based on the
- + Program), you indicate your acceptance of this License to do so, and
- + all its terms and conditions for copying, distributing or modifying
- + the Program or works based on it.
- +
- + 6. Each time you redistribute the Program (or any work based on the
- + Program), the recipient automatically receives a license from the
- + original licensor to copy, distribute or modify the Program subject to
- + these terms and conditions. You may not impose any further
- + restrictions on the recipients' exercise of the rights granted herein.
- + You are not responsible for enforcing compliance by third parties to
- + this License.
- +
- + 7. If, as a consequence of a court judgment or allegation of patent
- + infringement or for any other reason (not limited to patent issues),
- + conditions are imposed on you (whether by court order, agreement or
- + otherwise) that contradict the conditions of this License, they do not
- + excuse you from the conditions of this License. If you cannot
- + distribute so as to satisfy simultaneously your obligations under this
- + License and any other pertinent obligations, then as a consequence you
- + may not distribute the Program at all. For example, if a patent
- + license would not permit royalty-free redistribution of the Program by
- + all those who receive copies directly or indirectly through you, then
- + the only way you could satisfy both it and this License would be to
- + refrain entirely from distribution of the Program.
- +
- + If any portion of this section is held invalid or unenforceable under
- + any particular circumstance, the balance of the section is intended to
- + apply and the section as a whole is intended to apply in other
- + circumstances.
- +
- + It is not the purpose of this section to induce you to infringe any
- + patents or other property right claims or to contest validity of any
- + such claims; this section has the sole purpose of protecting the
- + integrity of the free software distribution system, which is
- + implemented by public license practices. Many people have made
- + generous contributions to the wide range of software distributed
- + through that system in reliance on consistent application of that
- + system; it is up to the author/donor to decide if he or she is willing
- + to distribute software through any other system and a licensee cannot
- + impose that choice.
- +
- + This section is intended to make thoroughly clear what is believed to
- + be a consequence of the rest of this License.
- +
- + 8. If the distribution and/or use of the Program is restricted in
- + certain countries either by patents or by copyrighted interfaces, the
- + original copyright holder who places the Program under this License
- + may add an explicit geographical distribution limitation excluding
- + those countries, so that distribution is permitted only in or among
- + countries not thus excluded. In such case, this License incorporates
- + the limitation as if written in the body of this License.
- +
- + 9. The Free Software Foundation may publish revised and/or new versions
- + of the General Public License from time to time. Such new versions will
- + be similar in spirit to the present version, but may differ in detail to
- + address new problems or concerns.
- +
- + Each version is given a distinguishing version number. If the Program
- + specifies a version number of this License which applies to it and "any
- + later version", you have the option of following the terms and conditions
- + either of that version or of any later version published by the Free
- + Software Foundation. If the Program does not specify a version number of
- + this License, you may choose any version ever published by the Free Software
- + Foundation.
- +
- + 10. If you wish to incorporate parts of the Program into other free
- + programs whose distribution conditions are different, write to the author
- + to ask for permission. For software which is copyrighted by the Free
- + Software Foundation, write to the Free Software Foundation; we sometimes
- + make exceptions for this. Our decision will be guided by the two goals
- + of preserving the free status of all derivatives of our free software and
- + of promoting the sharing and reuse of software generally.
- +
- + NO WARRANTY
- +
- + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
- + FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
- + OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
- + PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
- + OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
- + TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
- + PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
- + REPAIR OR CORRECTION.
- +
- + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
- + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
- + REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
- + INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
- + OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
- + TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
- + YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
- + PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
- + POSSIBILITY OF SUCH DAMAGES.
- +
- + END OF TERMS AND CONDITIONS
- +
- + Appendix: How to Apply These Terms to Your New Programs
- +
- + If you develop a new program, and you want it to be of the greatest
- + possible use to the public, the best way to achieve this is to make it
- + free software which everyone can redistribute and change under these terms.
- +
- + To do so, attach the following notices to the program. It is safest
- + to attach them to the start of each source file to most effectively
- + convey the exclusion of warranty; and each file should have at least
- + the "copyright" line and a pointer to where the full notice is found.
- +
- + <one line to give the program's name and a brief idea of what it does.>
- + Copyright (C) 19yy <name of author>
- +
- + This program is free software; you can redistribute it and/or modify
- + it under the terms of the GNU General Public License as published by
- + the Free Software Foundation; either version 2 of the License, or
- + (at your option) any later version.
- +
- + This program is distributed in the hope that it will be useful,
- + but WITHOUT ANY WARRANTY; without even the implied warranty of
- + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- + GNU General Public License for more details.
- +
- + You should have received a copy of the GNU General Public License
- + along with this program; if not, write to the Free Software
- + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- +
- + Also add information on how to contact you by electronic and paper mail.
- +
- + If the program is interactive, make it output a short notice like this
- + when it starts in an interactive mode:
- +
- + Gnomovision version 69, Copyright (C) 19yy name of author
- + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- + This is free software, and you are welcome to redistribute it
- + under certain conditions; type `show c' for details.
- +
- + The hypothetical commands `show w' and `show c' should show the appropriate
- + parts of the General Public License. Of course, the commands you use may
- + be called something other than `show w' and `show c'; they could even be
- + mouse-clicks or menu items--whatever suits your program.
- +
- + You should also get your employer (if you work as a programmer) or your
- + school, if any, to sign a "copyright disclaimer" for the program, if
- + necessary. Here is a sample; alter the names:
- +
- + Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- + `Gnomovision' (which makes passes at compilers) written by James Hacker.
- +
- + <signature of Ty Coon>, 1 April 1989
- + Ty Coon, President of Vice
- +
- + This General Public License does not permit incorporating your program into
- + proprietary programs. If your program is a subroutine library, you may
- + consider it more useful to permit linking proprietary applications with the
- + library. If this is what you want to do, use the GNU Library General
- + Public License instead of this License.
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/COPYING.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/COPYING.info differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/Emacs.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/Emacs.info differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons/def_asm.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons/def_asm.info differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons/def_c.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons/def_c.info differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons/def_el.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons/def_el.info differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons/def_emacs.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons/def_emacs.info differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons/def_h.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons/def_h.info differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons/def_rexx.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons/def_rexx.info differ
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons.el emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons.el
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons.el Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons.el Wed Sep 29 22:43:36 1993
- ***************
- *** 0 ****
- --- 1,49 ----
- + ;;
- + ;; A new icon-creating scheme.
- + ;; When creating icons, the following replacement routine searches
- + ;; for icons of the name "def_<extension>.info".
- + ;; The routine searches first in the directories specified by the
- + ;; user in the variable "amiga-icon-path" and then in "env:Icons/".
- + ;; The directories in the list must contain the trailing slash.
- + ;;
- + ;; If it can't find any appropriate icons, and the file
- + ;; "env:Icons/def_emacs.info" exists, it is used. Otherwise
- + ;; the original function is called.
- + ;;
- + ;; Note that icons are only created when the variable
- + ;; "amiga-create-icons" is non-nil.
- + ;;
- + ;; Example: If the user would like to use the icons supplied by
- + ;; the SAS C-complier, the following lines could be placed
- + ;; in his or hers .emacs file:
- + ;; (setq amiga-icon-path '("sc:Icons/"))
- + ;; (setq amiga-create-icons t)
- + ;;
- +
- + (defvar amiga-icon-path '()
- + "A list of directories to scan when searching for new icons.")
- +
- + (if (not (fboundp 'old-amiga-put-icon))
- + (fset 'old-amiga-put-icon (symbol-function 'amiga-put-icon)))
- +
- + (defun amiga-put-icon (file force)
- + (if (or force (not (file-readable-p (concat file ".info"))))
- + (let ((extpos (string-match "\\.[a-zA-Z]\\'" file))
- + (iconname nil)
- + (path (append amiga-icon-path '("env:icons/")))
- + (found nil))
- + (if (and extpos (< 0 extpos))
- + (while (and (not found) path)
- + (setq iconname (concat (car path) "def_" (substring file (+ 1 extpos)) ".in\
- + fo"))
- + (if (and iconname (file-readable-p iconname))
- + (progn
- + (copy-file iconname (concat file ".info"))
- + (setq found t)))
- + (setq path (cdr path))))
- + (if (not found)
- + (if (file-readable-p "env:Icons/def_emacs.info")
- + (copy-file "env:Icons/def_emacs.info" (concat file ".info"))
- + (old-amiga-put-icon file force))))))
- +
- +
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/icons.info differ
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/newicon.el emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/newicon.el
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/newicon.el Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/newicon.el Thu Sep 30 21:02:52 1993
- ***************
- *** 0 ****
- --- 1,91 ----
- + ;;
- + ;; FILE
- + ;; newicon.el $VER: V1.00 newicon.el
- + ;;
- + ;; DESCRIPTION
- + ;; A new icon-creating scheme.
- + ;;
- + ;; When creating icons, the following replacement routine searches
- + ;; for icons of the name "def_<extension>.info".
- + ;; The routine searches first in the directories specified a _list_
- + ;; by the user in the variable "amiga-icon-path" and then in
- + ;; "Gnuemacs:Icons/". The directories in the list must contain the
- + ;; trailing slash.
- + ;;
- + ;; If it can't find any appropriate icons, and the file
- + ;; "Gnuemacs:Icons/def_emacs.info" exists, it is used. Otherwise
- + ;; the original function is called.
- + ;;
- + ;; Note: icons are only created when the variable
- + ;; "amiga-create-icons" is non-nil.
- + ;;
- + ;; INSTALLATION
- + ;; Copy this file to a lisp-directory, for example Gnuemacs:lisp
- + ;;
- + ;; Create a directory called Gnuemacs:icons and copy the icons to it.
- + ;;
- + ;; Place the following line in your s:.emacs
- + ;; (setq amiga-create-icons t)
- + ;; (load "newicon")
- + ;;
- + ;; Example: If the user would like to use the icons supplied by
- + ;; the SAS C-complier, the following lines could be placed
- + ;; in his or hers .emacs file:
- + ;; (setq amiga-icon-path '("sc:Icons/"))
- + ;;
- + ;; LICENSE
- + ;; Copyright (C) 1993 Anders Lindgren
- + ;;
- + ;; This program is free software; you can redistribute it and/or modify
- + ;; it under the terms of the GNU General Public License as published by
- + ;; the Free Software Foundation; either version 2 of the License,or
- + ;; (at your option) any later version.
- + ;;
- + ;; This program is distributed in the hope that it will be useful,
- + ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
- + ;; MERCHANTABILITY of FITNESS FOR A PARTICULAR PURPOSE. See the
- + ;; GNU General Public License for more details.
- + ;;
- + ;; You should have received a copy of the GNU General Public License
- + ;; along with this program; if not, write to the Free Software
- + ;; Foundation, Inc., 675 Mass Ave, Cambridge, Ma 02139, USA.
- + ;;
- + ;; HOW TO CONTACT ME:
- + ;; voice: Scream Anders Lindgren LOUD
- + ;; email: d91ali@csd.uu.se
- + ;; mail: Anders Lindgren
- + ;; Kantorsg. 2-331
- + ;; S-754 24 Uppsala
- + ;; SUGA BBS:+46 (0)8 34 85 23
- + ;; +46 (0)8 34 32 76
- + ;;
- +
- + (defvar amiga-icon-path '()
- + "A list of directories to scan when searching for new icons.")
- +
- + (if (not (fboundp 'old-amiga-put-icon))
- + (fset 'old-amiga-put-icon (symbol-function 'amiga-put-icon)))
- +
- + (defun amiga-put-icon (file force)
- + (if (or force (not (file-readable-p (concat file ".info"))))
- + (let ((extpos (string-match "\\.[a-zA-Z]*\\'" file))
- + (iconname nil)
- + (path (append amiga-icon-path '("gnuemacs:icons/")))
- + (found nil))
- + (if (and extpos (< 0 extpos))
- + (while (and (not found) path)
- + (setq iconname (concat (car path) "def_" (substring file (+ 1 extpos)) ".info"))
- + (if (and iconname (file-readable-p iconname))
- + (progn
- + (copy-file iconname (concat file ".info"))
- + (setq found t)))
- + (setq path (cdr path))))
- + (if (not found)
- + (if (file-readable-p "gnuemacs:Icons/def_emacs.info")
- + (copy-file "gnuemacs:Icons/def_emacs.info" (concat file ".info"))
- + (old-amiga-put-icon file force))))))
- +
- +
- +
- +
- +
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/newicon.el.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/newicon.el.info differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/newicon.elc and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/newicon.elc differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/newicon.elc.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/newicon.elc.info differ
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/sticky.el emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/sticky.el
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/sticky.el Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/sticky.el Thu Sep 30 21:11:14 1993
- ***************
- *** 0 ****
- --- 1,70 ----
- + ;;;
- + ;;; FILE
- + ;;; sticky.el $VER: V1.00 sticky.el
- + ;;;
- + ;;; DESCRIPTION
- + ;;; ELisp part of Emacs Starter Deluxe. This code
- + ;;; is loaded when Emacs is invoked in "sticky" mode.
- + ;;;
- + ;;; Place this file somewhere in your lisp-path, for example
- + ;;; in the directory GnuEmacs:lisp.
- + ;;;
- + ;;; Please read the file "starter.doc".
- + ;;;
- + ;;; AUTHORS
- + ;;; Anders Lindgren, d91ali@csd.uu.se
- + ;;; Bo Liljegren, bo-lilje@dsv.su.se
- + ;;;
- + ;;; LICENSE
- + ;;; Copyright (C) 1993 Anders Lindgren and Bo Liljegren
- + ;;;
- + ;;; This program is free software; you can redistribute it and/or modify
- + ;;; it under the terms of the GNU General Public License as published by
- + ;;; the Free Software Foundation; either version 2 of the License, or
- + ;;; (at your option) any later version.
- + ;;;
- + ;;; This program is distributed in the hope that it will be useful,
- + ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
- + ;;; MERCHANTABILITY of FITNESS FOR A PARTICULAR PURPOSE. See the
- + ;;; GNU General Public License for more details.
- + ;;;
- + ;;; You should have received a copy of the GNU General Public License
- + ;;; along with this program; if not, write to the Free Software
- + ;;; Foundation, Inc., 675 Mass Ave, Cambridge, Ma 02139, USA.
- + ;;;
- + ;;; HISTORY
- + ;;; 24-Sep-93 ALi Created this file.
- + ;;;
- +
- +
- + (provide 'sticky)
- +
- + (make-variable-buffer-local 'sticky-rexx-port)
- + (set-default 'sticky-rexx-port nil)
- +
- + (if (not (fboundp 'old-kill-buffer))
- + (fset 'old-kill-buffer (symbol-function 'kill-buffer)))
- +
- + ;;; Redefine the kill-buffer function.
- + ;;; If the buffer is in "sticky" mode, notify the client that this buffer is no more.
- + ;;; The reason why we're asking whether to kill the buffer or not, is to avoid a situation
- + ;;; where the client is notified but the user answers no.
- + (defun kill-buffer (buffer)
- + "One arg, a string or a buffer. Get rid of the specified buffer.
- + Any processes that have this buffer as the `process-buffer' are killed
- + with `delete-process'.
- + Patched to notify client."
- + (interactive "bKill buffer: ")
- + (if (eq (setq buffer (get-buffer buffer)) nil)
- + nil
- + (save-excursion
- + (set-buffer buffer)
- + (if (or (not (buffer-modified-p buffer))
- + (not (buffer-file-name))
- + noninteractive
- + (yes-or-no-p (format "Buffer %s modified; kill anyway? " (buffer-name))))
- + (progn
- + (set-buffer-modified-p nil)
- + (if sticky-rexx-port
- + (amiga-arexx-send-command (concat "ADDRESS " sticky-rexx-port " TERMINATING") t))
- + (old-kill-buffer buffer))))))
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/sticky.el.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/sticky.el.info differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/sticky.elc and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/sticky.elc differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/sticky.elc.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp/sticky.elc.info differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/lisp.info differ
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/rexx/emacs.rexx emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/rexx/emacs.rexx
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/rexx/emacs.rexx Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/rexx/emacs.rexx Fri Oct 1 08:56:48 1993
- ***************
- *** 0 ****
- --- 1,286 ----
- + /*
- + FILE Emacs.rexx
- + VERSION $VER: V1.06 Emacs.rexx
- + DESCRIPTION Load a file into a (running) emacs.
- + emacs [flags and files]
- +
- + The following options are supported:
- + -[not]tofront (Don't) move the Emacs window and screen
- + to the front.
- + -[not]sticky Do not terminate until the files on the
- + command line are killed.
- + -[no]screen Open a public screen (Requiers ScreenManager)
- +
- + where the third and fourth argument corresponds to the
- + the screensize.
- + AUTHOR Anders Lindgren, d91ali@csd.uu.se
- + Bo Liljegren, bo-lilje@dsv.su.se
- + STATUS This file is in the public domain
- + HISTORY
- + 11-Aug-92 ALi Created this file
- + 13-Aug-92 ALi Replaced "runwsh" with "run".
- + "else nop" added.
- + 14-Aug-92 ALi 1.00 V1.0 released.
- + 20-Aug-92 Bo L 1.01 Added ScreenManager stuff.
- + 03-Jan-93 ALi 1.02 MODE edited. COLOURS removed.
- + amiga-set-geometry moved to .emacs
- + 13-Jan-93 ALi 1.03 TOBACK added. SHANGHAI and DEFAULT removed,
- + emacs can now open itself correctly.
- + -nottofront flag added.
- + 20-Jan-93 Bo L 1.04 Replaced the static portname with the dynamic
- + in the 'WaitForPort'-line
- + 16 aug 93 Bo L 1.05 Changed screenresolution argument to DISPID.
- + To avoid nameconflict with different languages.
- + Changed ScrenManager parse part for those
- + (unblessed) who don't have WShell.
- + 22-Sep-93 ALi 1.06 Real option and filename parser added.
- + (amiga-window-to-front) and
- + (amiga-activate-window) called instead of
- + ScreenManager.
- + (cd ) removed. (Why should emacs move directry?)
- + Sticky option added.
- + Files loaded by (load-file ), even when Emacs
- + is started by the script.
- + Temporary file which sets the window size and
- + screen name added. (No use for anything in .emacs)
- + POPPUB option removed.
- + Now gets screen font from WB.
- + */
- +
- + OPTIONS RESULTS
- + OPTIONS FAILAT 21
- +
- + /* Make sure required libraries are present */
- + IF ~SHOW('l',"rexxsupport.library") THEN DO
- + IF ~ADDLIB("rexxsupport.library",0,-30,0) THEN DO
- + SAY "Can't find rexxsupport.library"
- + EXIT
- + END
- + END
- +
- +
- + /* The name for the public screen */
- + screenname = 'Emacs'
- +
- + portname = 'EMACS1'
- + args = ARG(1)
- +
- + /* The commandline to send to a new emacs */
- + cmd = ""
- +
- + /* A stem containing the options, the defaults are set here */
- + flags.batch = 0 /* Batch mode, always start a new Emacs */
- + flags.kill = 0 /* Kill a running emacs. */
- + flags.screen = 1 /* Use a public screen (Requiers ScreenManager) */
- + flags.sticky = 0 /* Wait until the buffers are terminated */
- + flags.tofront = 1 /* Send the screen to the front */
- +
- + /* Argument parser */
- +
- + filesidx = 0
- + DO WHILE LENGTH(args) > 1
- + args = strip(args, 'L') /* Strip leading blanks */
- + IF LEFT(args,1) = '"' THEN DO
- + filesidx = filesidx + 1
- + PARSE VAR args '"' files.filesidx '"' args
- + END
- + ELSE DO
- + PARSE VAR args onearg args
- + IF LEFT(onearg,1) = '-' THEN DO
- + SELECT
- + WHEN onearg = "-tofront" THEN flags.tofront = 1
- + WHEN onearg = "-nottofront" THEN flags.tofront = 0
- + WHEN onearg = "-sticky" THEN flags.sticky = 1
- + WHEN onearg = "-notsticky" THEN flags.sticky = 0
- + WHEN onearg = "-screen" THEN flags.screen = 1
- + WHEN onearg = "-noscreen" THEN flags.screen = 0
- + WHEN onearg = "-batch" THEN flags.batch = 1
- + WHEN onearg = "-kill" THEN DO
- + flags.kill = 1
- + cmd = cmd onearg
- + END
- + /* Emacs options with one argument */
- + WHEN (onearg = "-l" | onearg = "-load" | onearg = "-f",
- + | onearg = "-funcall" | onearg = "-i" | onearg = "-insert",
- + | onearg = "-t" | onearg = "-u" | onearg = "-user") THEN DO
- + PARSE VAR args optarg args
- + cmd = cmd onearg optarg
- + END
- + /* Emacs options with two arguments */
- + WHEN (onearg = "-dev" | onearg = "-fn") THEN DO
- + PARSE VAR args optarg1 optarg2 args
- + cmd = cmd onearg optarg1 optarg2
- + END
- + OTHERWISE cmd = cmd onearg
- + END
- + END
- + ELSE IF LEFT(onearg,1) = '+' THEN DO
- + PARSE VAR onearg '+' flags.linenumber
- + END
- + ELSE DO
- + filesidx = filesidx + 1
- + files.filesidx = onearg
- + END
- + END
- + END
- +
- + /* If in batch-mode, start a new Emacs synchronous using the
- + * original options */
- + IF flags.batch THEN DO
- + ADDRESS COMMAND "temacs" arg(1)
- + EXIT rc
- + END
- +
- +
- + /* If an Emacs Screen doesn't exists, create one */
- + IF flags.screen & ~SHOWLIST('W',screenname||'-Demon') THEN DO
- + filnamn = 'T:SM'||d2x(random(256,1024,time('s')))
- + ADDRESS COMMAND 'ScreenManager INFO Workbench EXPERT >'||filnamn
- + IF ~OPEN(fil,filnamn,'R') THEN EXIT 20
- + cnt = 4
- + rad = READLN(fil)
- + IF EOF(fil) THEN cnt = 0
- + DO WHILE cnt ~= 0
- + ord = WORD(rad,1)
- + SELECT
- + WHEN ord = 'Position:' THEN DO
- + PARSE VAR rad . '=' xpos ' ' . '=' ypos ' ' .
- + cnt = cnt - 1
- + END
- + WHEN ord = 'Size:' THEN DO
- + PARSE VAR rad . '=' xsize ' ' . '=' ysize ' ' .
- + cnt = cnt - 1
- + END
- + WHEN ord = 'DisplayID:' THEN DO
- + resmode = WORD(rad,2)
- + cnt = cnt - 1
- + END
- + WHEN ord = 'Font:' THEN DO
- + PARSE VAR rad 'Font:' font '.font ' fontsize
- + font = strip(font)
- + cnt = cnt - 1
- + END
- + OTHERWISE
- + NOP
- + END
- + rad = READLN(fil)
- + IF EOF(fil) THEN cnt = 0
- + END
- + CALL CLOSE(fil)
- + CALL DELETE(filnamn)
- + menubar = fontsize + 2
- + ypos = ypos + menubar
- + ysize = ysize - menubar
- + ScrMng = ' OPEN '||screenname||' TITLE="'||screenname||' Screen"'
- + ScrMng = ScrMng||' DISPID='||resmode
- + ScrMng = ScrMng||' PLANES=2'
- + ScrMng = ScrMng||' PENS=011213103'
- + ScrMng = ScrMng||' FONT='||font||'.'||fontsize
- + ScrMng = ScrMng||' AUTOCLOSE' /* close screen when Emacs exists */
- + ScrMng = ScrMng||' TOBACK' /* It's moved to the front below */
- + ScrMng = ScrMng||' CX_TOFRONT="LCOMMAND e"'
- + ScrMng = ScrMng||' CX_DEFAULT="LCOMMAND SHIFT e"'
- + ADDRESS COMMAND 'ScreenManager' ScrMng
- +
- + /* Create a small elisp file which sets the screen and size of Emacs */
- + sizefilename = 't:size' || d2x(random(256,1024,time('s'))) || '.el'
- + IF ~OPEN(fil, sizefilename, 'W') THEN EXIT 20
- + CALL WRITELN(fil, ';; Automagically created by Emacs.rexx')
- + CALL WRITELN(fil, '(amiga-set-geometry 0' fontsize+3 xsize ysize '"' || screenname || '")')
- + CALL CLOSE(fil)
- + cmd = cmd '-load' sizefilename
- + END
- +
- + /* Start a new Emacs, if no one exists. */
- + IF SHOW('P', portname) = 0 THEN DO
- +
- + CALL PRAGMA('stack', 40000)
- +
- + ADDRESS COMMAND 'run <nil: >nil: temacs' cmd
- + ADDRESS COMMAND 'WaitForPort' portname
- + flags.kill = 0
- +
- + END
- +
- +
- + ADDRESS VALUE portname
- +
- + /* This no-op call doesn't return until after the
- + * t:sizeXX file has been read */
- + "()"
- +
- + /* Delete the temporary file, if it was created. */
- + IF SYMBOL('sizefilename') = 'VAR' THEN CALL DELETE(sizefilename)
- +
- + /* If in sticky mode, load sticky module into Emacs and
- + * open a communication port */
- + IF flags.sticky THEN DO
- + "(require 'sticky)"
- +
- + count = 1
- + DO UNTIL ~SHOW('P', stickyportname)
- + stickyportname = "EMACS_CLIENT" || count
- + count = count + 1
- + END
- +
- + CALL OPENPORT(stickyportname)
- + IF ~SHOW('P', stickyportname) THEN DO
- + SAY "Emacs client: Can't open sticky port."
- + EXIT 20
- + END
- + END
- +
- + /* Get the current diretory. (There is no point in building a correct
- + * filename, since Emacs does that for us.) */
- + dir = PRAGMA('directory')
- + IF RIGHT(dir,1) ~= ':' THEN dir = dir || '/'
- +
- + stickycount = 0 /* The number of files to wait for */
- +
- + /* Load the files into emacs */
- + DO i = 1 TO filesidx
- + '(find-file "' || dir || files.i || '")'
- +
- + IF flags.sticky THEN DO
- + '(setq sticky-rexx-port "' || stickyportname || '")'
- + stickycount = stickycount + 1
- + END
- + END
- +
- + /* If the +linenumber option was given, go to the correct line */
- + IF SYMBOL('flags.linenumber') = 'VAR' THEN '(goto-line ' || flags.linenumber || ')'
- +
- + /* Bring an activated Emacs window and screen to the front */
- + IF flags.tofront THEN DO
- + '(amiga-window-to-front)'
- + '(amiga-activate-window)'
- + END
- +
- + /* If in sticky mode, wait for the buffers to be deleted */
- + IF flags.sticky THEN DO
- + DO WHILE stickycount > 0
- +
- + CALL WAITPKT(stickyportname)
- + pkt = GETPKT(stickyportname)
- + IF pkt = NULL() then iterate
- +
- + IF GETARG(pkt) = "TERMINATING" THEN
- + stickycount = stickycount - 1
- +
- + CALL REPLY(pkt, 0)
- +
- + END
- +
- + CALL CLOSEPORT(stickyportname)
- + END
- +
- +
- + IF flags.kill THEN DO
- + '(save-buffers-kill-emacs)'
- + /* Screen normally closed automatically, but this won't hurt */
- + IF flags.screen THEN DO
- + ADDRESS COMMAND 'ScreenManager close' screenname
- + END
- + END
- +
- + EXIT 0
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/rexx/emacs.rexx.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/rexx/emacs.rexx.info differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/rexx.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/rexx.info differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/rexxmode10.lha and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/rexxmode10.lha differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/sas-c-emacs.lha and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/sas-c-emacs.lha differ
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/starter.doc emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/starter.doc
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/starter.doc Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/starter.doc Thu Sep 30 23:30:30 1993
- ***************
- *** 0 ****
- --- 1,260 ----
- +
- +
- +
- + #### # # # ### ###
- + # ## ## # # # #
- + ## # # # # # # ##
- + # # #Â ##### # #
- + #### # # # # ### ###
- +
- + ### ##### # ### ##### #### ###
- + # # # # # # # # # #
- + ### # # # ### # ## ###
- + # # ##### # # # # # #
- + ### # # # # # # #### # #
- +
- + *** **** * * * * * ****
- + * * * * * * * * *
- + * * ** * * * * **
- + * * * * * * * * *
- + *** **** **** **** * * ****
- +
- +
- + ------------------------------------------------------
- + Release 1
- +
- + Written by:
- + Anders Lindgren
- + Bo Liljegren
- +
- + A (in our humble opinion) good Emacs starter
- + ------------------------------------------------------
- + FEATURING
- +
- + o Load files into a running Emacs.
- +
- + o Option to use a public screen (requiers ScreenManager).
- +
- + o Full WB support; double-click icons into a running Emacs.
- +
- + o New icon creating scheme, use different icons depending on what
- + type of file you are editing.
- +
- + o Sticky flag, the script doesn't terminate until the requested
- + buffers are terminated.
- +
- +
- + LICENSE
- +
- + Copyright (C) 1993 Anders Lindgren and Bo Liljegren
- +
- + This program is free software; you can redistribute it and/or modify
- + it under the terms of the GNU General Public License as published by
- + the Free Software Foundation; either version 2 of the License, or
- + (at your option) any later version.
- +
- + This program is distributed in the hope that it will be useful,
- + but WITHOUT ANY WARRANTY; without even the implied warranty of
- + MERCHANTABILITY of FITNESS FOR A PARTICULAR PURPOSE. See the
- + GNU General Public License for more details.
- +
- + You should have received a copy of the GNU General Public License
- + along with this program; if not, write to the Free Software
- + Foundation, Inc., 675 Mass Ave, Cambridge, Ma 02139, USA.
- +
- +
- +
- + CONTENTS
- +
- + The following files are contained in the archive:
- +
- + COPYING -- The Gnu General Public License
- + starter.doc -- This file
- + Emacs.info -- A nice Emacs icon drawn by Bo Liljegren
- + rexx/emacs.rexx V1.06 -- The main starter script
- + lisp/sticky.el V1.00 -- ELisp code used when a buffer is started with
- + the "-sticky" flag
- + lisp/newicon.el V1.00 -- The ELisp code for the new icon creating scheme
- + lisp/#?.elc -- Bytecompiled versions of the above files
- + wbarg/wbarg V1.00 -- A utility which converts WB arguments
- + to shell dito
- + wbarg/wbarg.c -- Source code for the above utility
- + wbarg/makefile -- Rules for building the above with SAS/C 6.x.
- + icons/def_#?.info -- Icons. All but def_el drawn by Christian A. Weber.
- +
- +
- +
- +
- +
- + NEWSFLASH
- +
- + SUGA, Swedish User Group of Amiga is a non-profit nation wide club for
- + Amiga-freaks in Sweden. It has been operating for many years (I joined
- + in around -87, and have been more or less active ever since.) A
- + newspaper with 16 to 20 pages is beeing distrubuted quaterly. A BBS is
- + runed using the command line program NiKom, which is written by a
- + member of the club. (Too bad for you non swedish speaking people that
- + it isn't translated yet.) For the members in Stockholm we have a
- + meeting every sunday between 11am and 3pm.
- +
- + Join by inserting only 150:- (less than $20) into the PostGiro account
- + 13 43 32-2. You can also just show up at the "Verksta'n" to see what
- + it's all about!
- +
- + Address: SUGA
- + Disponentvillan, Verkstan
- + Norrtullsgatan 12k
- + S-113 27 Stockholm
- +
- + SUGA BBS:+46 (0)8 34 85 23
- + +46 (0)8 34 32 76
- +
- +
- + INSTALLATION
- +
- + Copy the files in the "lisp" directory into a directory in the
- + Emacs load path, for example GnuEmacs:lisp.
- +
- + Copy the file in the "rexx" directory to REXX:
- +
- + Copy the file "wbarg/wbarg" into the GnuEmacs:etc directory.
- +
- +
- + If you would like to use the new icon creating scheme then
- + create a directory named GnuEmacs:icons and copy the contents
- + of the "icons" to it and add the following line to your
- + s:.emacs file.
- +
- + (load "newicon")
- + (setq amiga-create-icons t)
- +
- + Older revisions of the script Emacs.rexx required that the command
- + (amiga-set-geometry ) were executed in s:.emacs. This is no longer the
- + case, hence the line should be removed.
- +
- + If the -screen option should be used, the program ScreenManager must
- + be installed. The program is not included in this archive since its
- + license does not allow it to be fully freely distributable, it can be
- + found one ONE (yes, ONE I understood the license correctly) PD disk
- + serie, and on AmiNet. If you can't find it you can order it from the
- + author (you can also inform him of the existence of the Gnu General
- + Public License):
- +
- + Bernhard Möllemann
- + Luisenstraße 17
- + D-7500 Karlsruhe 1
- + Germany
- +
- + In the future we might rewrite Emacs.rexx so it uses some other screen
- + opener, if it turns out that ScreenManager is too difficult to find.
- +
- +
- + EMACS.REXX
- +
- + The heart of the Emacs Starter Deluxe is the script emacs.rexx. It loads
- + files into a running Emacs or starts a new Emacs. It is capable of opening
- + a public screen by the help of the utility ScreenManager. The resolution
- + and color of the screen is cloned from the Workbench, although the depth
- + will always be two bitplanes.
- +
- +
- + Usage: [rx] emacs [options|+linenumber] [filenames]
- +
- +
- + -[not]tofront Bring the Emacs window and screes to the front.
- + Default is -tofront.
- +
- + -[not]sticky Wait until the filenames requested are killed by
- + Emacs. Default is -notsticky.
- +
- + -[no]screen Open a public screen and place Emacs on it.
- + This option requiers the program "ScreenManager".
- + Default is -screen.
- +
- + The script also handles standard Emacs options, even though some are
- + implemented as no-ops when loading files into a running Emacs.
- +
- + The meaning of the standard option "-kill" is extended; if a running Emacs
- + exists it is terminated.
- +
- +
- + WORKBENCH SUPPORT
- +
- + The Emacs Starter Deluxe has full Workbench support. This means that a
- + file conneted to an icon can be loaded into a running Emacs.
- +
- + This feature requiers a project icon with the default tool set to
- + "GnuEmacs:etc/wbarg" and the tooltype:
- + COMMAND=sys:rexxc/rx emacs
- +
- + A number of icons with this setup can be found in the icons directory
- + of this archive.
- +
- + If no file is connected to an icon which is double-clicked Emacs will
- + be started, or brought to front, but no file would be loaded.
- +
- + Note that the icons Emacs normally creates does NOT have the tool and
- + tooltype set correctly. But, gentle reader, a solution to this problem
- + can be found in the next section.
- +
- +
- + NEW ICON SCHEME
- +
- + To make as life simple as possible for workbench users a new icon
- + creating scheme has been invented. To activate it please place the
- + following lines in your s:.emacs file:
- +
- + (load "newicon")
- + (setq amiga-create-icons t)
- +
- + The new scheme checks the extension of the file edited and tries to
- + find an icon with the name "def_<extension>.el" in the icon path. If
- + no one is found an icon named "GnuEmacs:icons/def_emacs.el" is used.
- + As an emergency exit, the old icon creation routine is called.
- +
- + The icon path is defined to be the directories contained in the list
- + "amiga-icon-path" and in the directory "GnuEmacs:Icons". Note that the
- + directories in the list must end in a colon or slash.
- +
- + Example: If the user would like to use the icons supplied by the SAS
- + C-complier and the icons supplied by DefaultIcon, the following lines
- + could be placed in his or hers .emacs file:
- + (setq amiga-icon-path '("sc:Icons/" "Env:Icons/"))
- +
- +
- + SO WHAT'S THE DARK SIDE?
- +
- + All programs must have something which isn't working properly, and yes,
- + there is one thing we don't recomend:
- + Don't iconify Emacs, since the screen closes automatically when the Emacs
- + window is closed. There is a way around it though; execute the emacs.rexx
- + script again to open a new screen and then deiconify Emacs.
- +
- + If for some reason Emacs fails to start but the screen shows up it must
- + be closed before the next attempt to start Emacs. This is done by issuing
- + the command "ScreenManager CLOSE Emacs".
- +
- +
- + HOW TO CONTACT US
- +
- + If you would like new features to be added to Emacs Starter Deluxe, or if
- + you whould discover a bug, don't hesitate to contact us:
- +
- + email: d91ali@csd.uu.se bo-lilje@dsv.su.se
- +
- + mail: Anders Lindgren Bo Liljegren
- + Kantorsg. 2-331 Skogvaktarg. 12
- + S-754 24 Uppsala 115 42 Stockholm
- +
- + voice: Scream Anders or Bosse LOUD
- +
- +
- + OTHER TITLES
- +
- + The following Emacs applications has been written by Anders Lindgren:
- +
- + rexx-mode -- A Complete editing mode and a source level
- + debugger for REXX. (Machine independent, but
- + it works on the Amiga.)
- + sas-c-mode -- A minor mode for communication with the SAS/C
- + 6.x message browser SCMSG and more.
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/starter.doc.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/starter.doc.info differ
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg/makefile emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg/makefile
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg/makefile Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg/makefile Thu Sep 9 23:57:48 1993
- ***************
- *** 0 ****
- --- 1,12 ----
- +
- + wbarg: wbarg.o
- + slink TO wbarg FROM lib:c.o wbarg.o LIB lib:sc.lib MAP wbarg.map hsflo
- + copy wbarg gnuemacs:etc
- +
- + wbarg.o: wbarg.c
- + sc wbarg.c
- +
- + release:
- + lha -x -a -r a wbarg.lha wbarg wbarg.c icons/\#? sc/\#? makefile newicon.el def_emacs.info README
- +
- +
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg/makefile.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg/makefile.info differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg/wbarg and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg/wbarg differ
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg/wbarg.c emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg/wbarg.c
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg/wbarg.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg/wbarg.c Thu Sep 30 21:29:50 1993
- ***************
- *** 0 ****
- --- 1,379 ----
- + /*
- + * FILE
- + * wbarg V1.0 by Anders Lindgren
- + *
- + * DESCRIPTION
- + * Convert WB arguments into shell dito.
- + *
- + * This programs looks for a tooltype of the name COMMAND, to which
- + * if adds the WB arguments, before executing the command as a shell
- + * process.
- + *
- + * One area of use is to set the COMMAND tooltype to:
- + * COMMAND=sys:rexxc/rx rexxscript
- + * to run the rexx script "rexxscript" with WB arguments.
- + *
- + * WARNING
- + * This is a HACK, it might stop to work on future OS-releases, if
- + * Commodore would change the path mechanism.
- + *
- + * This program should work under 1.3, but it hasn't been tested. If
- + * it is runed under V39 it takes advantage of new features. (under
- + * V37 AllocDosObject(DOS_CLI, ...) is buggy.)
- + *
- + * LICENSE
- + * Copyright (C) 1993 Anders Lindgren
- + *
- + * This program is free software; you can redistribute it and/or modify
- + * it under the terms of the GNU General Public License as published by
- + * the Free Software Foundation; either version 2 of the License,or
- + * (at your option) any later version.
- + *
- + * This program is distributed in the hope that it will be useful,
- + * but WITHOUT ANY WARRANTY; without even the implied warranty of
- + * MERCHANTABILITY of FITNESS FOR A PARTICULAR PURPOSE. See the
- + * GNU General Public License for more details.
- + *
- + * You should have received a copy of the GNU General Public License
- + * along with this program; if not, write to the Free Software
- + * Foundation, Inc., 675 Mass Ave, Cambridge, Ma 02139, USA.
- + *
- + * HOW TO CONTACT ME:
- + * voice: Scream Anders Lindgren LOUD
- + * email: d91ali@csd.uu.se
- + * mail: Anders Lindgren
- + * Kantorsg. 2-331
- + * S-754 24 Uppsala
- + * SUGA BBS:+46 (0)8 34 85 23
- + * +46 (0)8 34 32 76
- + *
- + * TODO
- + * Define a STACK tooltype to set the stack size.
- + *
- + * HISTORY
- + * 09-Sep-93 Wrote the program.
- + * 28-Sep-93 Added the add/free_cli functions
- + * V1.0 Released
- + */
- +
- + #include <exec/types.h>
- +
- + #include <exec/memory.h>
- + #include <exec/execbase.h>
- + #include <dos/dos.h>
- + #include <dos/dostags.h>
- + #include <workbench/startup.h>
- +
- + #define __USE_SYSBASE
- +
- + #include <proto/exec.h>
- + #include <proto/dos.h>
- + #include <proto/icon.h>
- +
- + #include <stdio.h>
- + #include <strings.h>
- +
- +
- + #define CMDLINE 512 /* Length of the command line */
- +
- +
- + /* Forward references */
- +
- + int get_command(struct WBArg * wbarg, char buffer[], int maxlen);
- + void name_of_lock(BPTR lock, char buffer[], int maxlen);
- + void usage(void);
- + int add_cli(void);
- + void free_cli(void);
- +
- +
- + /* The version string */
- + UBYTE *vers="\0$VER: wbarg 1.0 (" __DATE__ ")";
- +
- + /* The (secret?) structure of path */
- +
- + struct path {
- + BPTR next;
- + BPTR lock;
- + };
- +
- +
- + /* A combined cli-structure and BSTR:s used when KS < 39 */
- + struct mycli {
- + struct CommandLineInterface cli; /* Must be the first entry in the structure! */
- + UBYTE set_name[80];
- + UBYTE command_name[80];
- + UBYTE prompt[80];
- + UBYTE command_file[80];
- + };
- +
- +
- + void
- + main(int argc, char *argv[])
- + {
- + char commandline[CMDLINE]; /* The commandline to issue */
- + char args[CMDLINE];
- +
- + struct WBStartup * argmsg;
- + struct WBArg * wbarg;
- +
- + BPTR olddir;
- + BPTR lock;
- +
- + int found_cmd = FALSE; /* Flag: TRUE when a COMMAND tooltype is found */
- + int created_cli = FALSE; /* Flag: TRUE when we created our own cli-structure */
- +
- + int i;
- +
- + /* If we haven't got a Cli-structure, create one */
- + if (Cli() == NULL) {
- + if (add_cli()) {
- + created_cli = TRUE;
- + }
- + else {
- + puts("wbarg: Error while creating Cli-structure and path\n");
- + }
- +
- + }
- +
- +
- + if (argc) {
- + usage(); /* It's no point in running it from the shell */
- + }
- + else {
- + argmsg = (struct WBStartup *)argv;
- + wbarg = argmsg->sm_ArgList;
- +
- + args[0] = '\0';
- +
- + for (i=0; i<argmsg->sm_NumArgs; i++) {
- +
- + olddir = -1;
- + if ((wbarg->wa_Lock) && (*wbarg->wa_Name)) {
- + olddir = CurrentDir(wbarg->wa_Lock);
- + }
- +
- + /* Get the command to execute */
- + if (get_command(wbarg, commandline, CMDLINE)) {
- + found_cmd = TRUE;
- + }
- +
- + /* Build all the arguments */
- + if ((i>0) && *wbarg->wa_Name) {
- + if (lock = Lock(wbarg->wa_Name, ACCESS_READ)) {
- + strncat(args, " \"", CMDLINE);
- + name_of_lock(lock, args, CMDLINE);
- + strncat(args, "\"", CMDLINE);
- + UnLock(lock);
- + }
- + }
- +
- + if (olddir != -1) {
- + CurrentDir(olddir);
- + }
- +
- + wbarg++; /* Use the next argument to the next loop iteration */
- + }
- +
- + if (found_cmd) {
- + strncat(commandline, args, CMDLINE);
- + Execute(commandline, NULL, NULL);
- + }
- + else {
- + usage(); /* No COMMAND tooltype found */
- + }
- + }
- + if (created_cli) {
- + /* ((struct Process *) FindTask(NULL))->pr_CLI = NULL; */
- + free_cli();
- + }
- + }
- +
- +
- + /*
- + * FUNCTION
- + * get_command
- + *
- + * DESCRIPTION
- + * Find a icon with the COMMAND tooltype set.
- + */
- +
- + int
- + get_command(struct WBArg * wbarg, char buffer[], int maxlen)
- + {
- + struct DiskObject * dobj;
- + char ** toolarray;
- + char * s = NULL;
- +
- + if ((*wbarg->wa_Name) && (dobj = GetDiskObject(wbarg->wa_Name))) {
- + toolarray = (char **)dobj->do_ToolTypes;
- +
- + if (s = (char *)FindToolType(toolarray, "COMMAND")) {
- + s[maxlen-1] = '\0'; /* Make sure the string is nullterminated */
- + strncpy(buffer, s, maxlen-1);
- + }
- + FreeDiskObject(dobj);
- + }
- + return(s == NULL ? FALSE : TRUE);
- + }
- +
- +
- + /*
- + * FUNCTION
- + * name_of_lock
- + *
- + * DESCRIPTION
- + * Create the filename from the lock supplied.
- + * NOTE: The name is ADDED to the string in the buffer.
- + */
- +
- + void
- + name_of_lock(BPTR lock, char buffer[], int maxlen)
- + {
- + BPTR newlock;
- + /* Static to save space on the stack during recursion */
- + static __aligned struct FileInfoBlock fib;
- + int root;
- +
- + if (newlock = ParentDir(lock)) {
- + name_of_lock(newlock, buffer, maxlen);
- + UnLock(newlock);
- + root = FALSE;
- + }
- + else {
- + root = TRUE;
- + }
- +
- + if (Examine(lock, & fib)) {
- + strncat(buffer, fib.fib_FileName, maxlen);
- + if (fib.fib_DirEntryType > 0) {
- + strncat(buffer, root ? ":" : "/", maxlen);
- + }
- + }
- + }
- +
- +
- + /*
- + * FUNCTION
- + * usage
- + *
- + * DESCRIPTION
- + * Write a small information text.
- + */
- +
- + void
- + usage(void)
- + {
- + puts("WBARG A program which converts workbench");
- + puts(" arguments to command line dito.");
- + puts("Usage: Create a project icon and set");
- + puts(" the tooltype named COMMAND to the");
- + puts(" command you would like to run");
- + puts("Example: COMMAND=sys:rexxc/rx someprogram");
- + }
- +
- +
- + /*
- + * FUNCTION
- + * add_cli
- + *
- + * DESCRIPTION
- + * Attaches a CommandLineInterface-structure to the current (WB-started)
- + * process and copies the path from the Workbench task.
- + *
- + * Return non-FALSE on success;
- + */
- +
- + int
- + add_cli()
- + {
- + struct CommandLineInterface * cli = NULL;
- + struct mycli * mycli;
- + struct Process * wb;
- + BPTR p; /* The path structure to copy from */
- + struct path * newp; /* The new path structure */
- + BPTR * prev;
- +
- + /*
- + * Under 1.3 AllocDosObject does not exists, under <39 the DOS_CLI option is buggy
- + */
- + if (SysBase->LibNode.lib_Version < 39) {
- + if (mycli = (struct mycli *)AllocMem(sizeof(struct mycli), MEMF_CLEAR|MEMF_PUBLIC)) {
- + cli = & mycli->cli;
- + mycli->cli.cli_FailLevel = 10;
- + mycli->cli.cli_Background = DOSTRUE;
- + mycli->cli.cli_SetName = MKBADDR(& mycli->set_name);
- + mycli->cli.cli_CommandName = MKBADDR(& mycli->command_name);
- + mycli->cli.cli_Prompt = MKBADDR(& mycli->prompt);
- + mycli->cli.cli_CommandFile = MKBADDR(& mycli->command_file);
- + }
- + }
- + else {
- + cli = (struct CommandLineInterface *)AllocDosObjectTags(DOS_CLI, TAG_DONE);
- + }
- + if (cli) {
- + cli->cli_DefaultStack = 4096;
- + ((struct Process *) FindTask(NULL))->pr_CLI = MKBADDR(cli);
- +
- + if (wb = (struct Process *)FindTask("Workbench")) {
- + prev = & cli->cli_CommandDir;
- +
- + p = ((struct CommandLineInterface *)BADDR(wb->pr_CLI))->cli_CommandDir;
- + while(p){
- + if (newp = AllocMem(sizeof(struct path), MEMF_PUBLIC)) {
- + newp->lock = DupLock(((struct path *)BADDR(p))->lock);
- +
- + * prev = MKBADDR(newp);
- + prev = & newp->next;
- + }
- + else {
- + * prev = NULL;
- + free_cli();
- + return(FALSE);
- + }
- + p = ((struct path *)BADDR(p))->next;
- + }
- + * prev = NULL; /* Terminate the linked list */
- + }
- + return(TRUE); /* OK */
- + }
- + return(FALSE); /* No cli structure allocated */
- + }
- +
- +
- + /*
- + * FUNCTION
- + * free_cli
- + *
- + * DESCRIPTION
- + * Undo the work of add_cli
- + */
- +
- + void
- + free_cli()
- + {
- + struct CommandLineInterface * cli;
- + struct path * p;
- + struct path * p_next;
- +
- + if (cli = Cli()) {
- + p = (struct path *)BADDR(cli->cli_CommandDir);
- + cli->cli_CommandDir = NULL;
- +
- + while (p) {
- + p_next = (struct path *)BADDR(p->next);
- + if (p->lock) {
- + UnLock(p->lock);
- + }
- + FreeMem((void *)p, sizeof(struct path));
- + p = p_next;
- + }
- + if (SysBase->LibNode.lib_Version < 39) {
- + FreeMem((void *)cli, sizeof(struct mycli));
- + }
- + else {
- + FreeDosObject(DOS_CLI, (void *)cli);
- + }
- +
- + ((struct Process *) FindTask(NULL))->pr_CLI = NULL;
- + }
- + }
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg/wbarg.c.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg/wbarg.c.info differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg/wbarg.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg/wbarg.info differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg.info and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/wbarg.info differ
- Binary files /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/xsh11.lha and emacs-18.59/amiga/amiga-extra/amiga/contrib/lindgren/xsh11.lha differ
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/schinz/functions.el emacs-18.59/amiga/amiga-extra/amiga/contrib/schinz/functions.el
- *** /src/baseline/emacs-18.59/amiga/amiga-extra/amiga/contrib/schinz/functions.el Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/amiga-extra/amiga/contrib/schinz/functions.el Sat May 8 13:57:12 1993
- ***************
- *** 0 ****
- --- 1,88 ----
- + ;; Code contributed by :
- + ;; Michel Schinz | INTERNET: Week-end: schinz@guano.alphanet.ch
- + ;; Epinettes 10a | Week : schinz@di.epfl.ch
- + ;; CH-2013 COLOMBIER | FIDONET: 2:302/562 (Michel Schinz)
- +
- +
- + (defun amiga-arexx-add-lib (lib entry)
- + "Adds the specified ARexx library, with given entry point."
- + (interactive "sLibrary name: \nnOffset: ")
- + (amiga-arexx-do-command (concat "CALL ADDLIB('" lib "',0," entry ")") t))
- +
- + (defun amiga-reqtools-find-file ()
- + "Like find-file, but with RexxReqTools' file requester."
- + (interactive)
- + (amiga-arexx-add-lib "rexxreqtools.library" -30)
- + (amiga-arexx-do-command (concat "f = rtFileRequest('" default-directory
- + "',,'Find file')\n"
- + "IF f ~= '' THEN"
- + " '(find-file \"'||f||'\")'") t))
- +
- + (defun amiga-reqtools-insert-file ()
- + "Like insert-file, but with RexxReqTools' file requester."
- + (interactive)
- + (amiga-arexx-add-lib "rexxreqtools.library" -30)
- + (amiga-arexx-do-command (concat "f = rtFileRequest('" default-directory
- + "',,'Insert file')\n"
- + "IF f ~= '' THEN"
- + " '(insert-file \"'||f||'\")'") t))
- +
- + (defun amiga-reqtools-write-file ()
- + "Like write-file, but with RexxReqTools' file requester."
- + (interactive)
- + (let ((dir (file-name-directory buffer-file-name))
- + (file (file-name-nondirectory buffer-file-name)))
- + (amiga-arexx-add-lib "rexxreqtools.library" -30)
- + (amiga-arexx-do-command (concat "f = rtFileRequest('" dir "','" file
- + "','Write file',,"
- + "'rtfi_flags=freqf_save')\n"
- + "IF f ~= '' THEN"
- + " '(write-file \"'||f||'\")'") t)))
- +
- + ;;; amiga-update-version-string
- + ;;; Michel Schinz
- + ;;; $VER: amiga_verstring.el 1.0 (7.05.1993)
- +
- + (defun amiga-update-version-string ()
- + "Create/update a version string (CBM style) on the current line.
- + If no version string is present on the current line, create a new one
- + that looks like `$VER: <buffer-name> 1.0 (<current_date>)' at the
- + point position. If a version string is already present on the current
- + line, the date is ... updated and the revision is incremented.
- + Please note that currently, no spaces are allowed in the `name' field."
- + (interactive)
- + (save-excursion
- + (let (end-of-line-pos
- + name version revision date
- + (old-point-pos (point-marker)))
- + (let* ((date-string (current-time-string))
- + (garbage (string-match
- + " \\([A-Z][a-z][a-z]\\) *\\([0-9]*\\) .* \\([0-9]*\\)$"
- + date-string))
- + (day (substring date-string (match-beginning 2) (match-end 2)))
- + (month
- + (cdr (assoc
- + (substring date-string (match-beginning 1) (match-end 1))
- + '(("Jan" . "01") ("Feb" . "02") ("Mar" . "03") ("Apr" . "04")
- + ("May" . "05") ("Jun" . "06") ("Jul" . "07") ("Aug" . "08")
- + ("Sep" . "09") ("Oct" . "10") ("Nov" . "11") ("Dec" . "12")))))
- + (year (substring date-string (match-beginning 3) (match-end 3))))
- + (setq date (concat day "." month "." year)))
- + (end-of-line)
- + (setq end-of-line-pos (point))
- + (beginning-of-line)
- + (if (search-forward "$VER: " end-of-line-pos t)
- + (let ((start-of-version-string (- (point) 6)))
- + (re-search-forward
- + " *\\([^ ]*\\) *\\([0-9]*\\)\.\\([0-9]*\\) *([0-9.]*)" end-of-line-pos t)
- + (setq name (buffer-substring (match-beginning 1) (match-end 1))
- + version (buffer-substring (match-beginning 2) (match-end 2))
- + revision (+ 1 (string-to-int
- + (buffer-substring (match-beginning 3) (match-end 3)))))
- + (delete-region start-of-version-string (point)))
- + (progn (setq name (file-name-nondirectory (buffer-name))
- + version 1
- + revision 0)
- + (goto-char old-point-pos)))
- + (insert (concat "$VER: " name " " version "." revision " (" date ")")))))
- +
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/alloca.h emacs-18.59/amiga/unix/include/alloca.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/alloca.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/alloca.h Fri Aug 27 18:18:40 1993
- ***************
- *** 0 ****
- --- 1,8 ----
- + #ifndef ALLOCA_H
- + #define ALLOCA_H
- +
- + #include <stddef.h>
- +
- + void *alloca(size_t size);
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/amiga/ioctl.h emacs-18.59/amiga/unix/include/amiga/ioctl.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/amiga/ioctl.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/amiga/ioctl.h Sat Aug 8 21:05:28 1992
- ***************
- *** 0 ****
- --- 1,15 ----
- + #ifndef _AMIGA_H
- + #define _AMIGA_H
- +
- + /* Amiga specific ioctl's */
- +
- + #define _AMIGA_IOCTL_BASE 2048
- +
- + #define _AMIGA_INTERACTIVE (_AMIGA_IOCTL_BASE + 0) /* Is file Interactive ? */
- + #define _AMIGA_GET_FH (_AMIGA_IOCTL_BASE + 1) /* Get an AmigaDOS fh for file */
- + #define _AMIGA_FREE_FH (_AMIGA_IOCTL_BASE + 2) /* Free a fh obtained by GET_FH */
- + #define _AMIGA_TRUNCATE (_AMIGA_IOCTL_BASE + 3) /* Truncate file to given size */
- + #define _AMIGA_SETPROTECTION (_AMIGA_IOCTL_BASE + 4) /* Set (amiga) protection on file */
- + #define _AMIGA_DELETE_IF_ME (_AMIGA_IOCTL_BASE + 5) /* Delete myself if I am the file whose lock is passed as parameter */
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/errno.h emacs-18.59/amiga/unix/include/errno.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/errno.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/errno.h Sun Jul 5 18:00:02 1992
- ***************
- *** 0 ****
- --- 1,51 ----
- + /**
- + *
- + * The following symbols are the error codes returned by the UNIX system
- + * functions. Typically, a UNIX function returns -1 when an error occurs,
- + * and the global integer named errno contains one of these values.
- + *
- + */
- + #define EOSERR -1 /* Operating system error */
- +
- + #define EPERM 1 /* User is not owner */
- + #define ENOENT 2 /* No such file or directory */
- + #define ESRCH 3 /* No such process */
- + #define EINTR 4 /* Interrupted system call */
- + #define EIO 5 /* I/O error */
- + #define ENXIO 6 /* No such device or address */
- + #define E2BIG 7 /* Arg list is too long */
- + #define ENOEXEC 8 /* Exec format error */
- + #define EBADF 9 /* Bad file number */
- + #define ECHILD 10 /* No child process */
- + #define EAGAIN 11 /* No more processes allowed */
- + #define ENOMEM 12 /* No memory available */
- + #define EACCES 13 /* Access denied */
- + #define EFAULT 14 /* Bad address */
- + #define ENOTBLK 15 /* Bulk device required */
- + #define EBUSY 16 /* Resource is busy */
- + #define EEXIST 17 /* File already exists */
- + #define EXDEV 18 /* Cross-device link */
- + #define ENODEV 19 /* No such device */
- + #define ENOTDIR 20 /* Not a directory */
- + #define EISDIR 21 /* Is a directory */
- + #define EINVAL 22 /* Invalid argument */
- + #define ENFILE 23 /* No more files (units) allowed */
- + #define EMFILE 24 /* No more files (units) allowed for this process */
- + #define ENOTTY 25 /* Not a terminal */
- + #define ETXTBSY 26 /* Text file is busy */
- + #define EFBIG 27 /* File is too large */
- + #define ENOSPC 28 /* No space left */
- + #define ESPIPE 29 /* Seek issued to pipe */
- + #define EROFS 30 /* Read-only file system */
- + #define EMLINK 31 /* Too many links */
- + #define EPIPE 32 /* Broken pipe */
- + #define EDOM 33 /* Math function argument error */
- + #define ERANGE 34 /* Math function result is out of range */
- + #define EWOULDBLOCK 35 /* Operation would block */
- + #define ENAMETOOLONG 36 /* File name is too long */
- + #define ENOTEMPTY 37 /* Directory is not empty */
- + #define ELOOP 38 /* Too many soft links found */
- +
- + extern int errno, _OSERR;
- + extern int sys_nerr;
- + extern char *sys_errlist[];
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/fcntl.h emacs-18.59/amiga/unix/include/fcntl.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/fcntl.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/fcntl.h Thu Jul 9 22:05:10 1992
- ***************
- *** 0 ****
- --- 1 ----
- + #include <sys/fcntl.h>
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/grp.h emacs-18.59/amiga/unix/include/grp.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/grp.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/grp.h Wed Jul 8 21:23:48 1992
- ***************
- *** 0 ****
- --- 1,12 ----
- + #ifndef _GRP_H
- + #define _GRP_H
- +
- + struct group {
- + char *gr_name; /* name of the group */
- + char *gr_passwd; /* encrypted password of the group */
- + gid_t gr_gid; /* numerical group ID */
- + char **gr_mem; /* null-terminated array of pointers to the
- + individual member names */
- + };
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/internal/devices.h emacs-18.59/amiga/unix/include/internal/devices.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/internal/devices.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/internal/devices.h Sun Aug 16 11:07:18 1992
- ***************
- *** 0 ****
- --- 1,9 ----
- + #ifndef DEVICES_H
- + #define DEVICES_H
- +
- + struct IORequest *_device_open(char *name, unsigned long unit, unsigned long flags,
- + void *data, unsigned long data_len, int req_size);
- +
- + void _device_close(struct IORequest *ioreq);
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/internal/files.h emacs-18.59/amiga/unix/include/internal/files.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/internal/files.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/internal/files.h Sun Dec 6 13:12:24 1992
- ***************
- *** 0 ****
- --- 1,35 ----
- + #ifndef FILES_H
- + #define FILES_H
- +
- + struct fileinfo {
- + int flags;
- + void *userinfo;
- + unsigned long (*__regargs select_start)(void *userinfo, int rd, int wr);
- + void (*__regargs select_poll)(void *userinfo, int *rd, int *wr);
- + int (*__regargs read)(void *userinfo, void *buffer, unsigned int length);
- + int (*__regargs write)(void *userinfo, void *buffer, unsigned int length);
- + int (*__regargs lseek)(void *userinfo, long rpos, int mode);
- + int (*__regargs close)(void *userinfo, int internal);
- + int (*__regargs ioctl)(void *userinfo, int request, void *data);
- + };
- +
- + /* FI_READ & WRITE replace O_RDONLY, WRONLY & RDWR. Other flags are left untouched */
- + #define FI_READ 1
- + #define FI_WRITE 2
- +
- + int _alloc_fd(void *userinfo, int flags,
- + unsigned long (*__regargs select_start)(void *userinfo, int rd, int wr),
- + void (*__regargs select_poll)(void *userinfo, int *rd, int *wr),
- + int (*__regargs read)(void *userinfo, void *buffer, unsigned int length),
- + int (*__regargs write)(void *userinfo, void *buffer, unsigned int length),
- + int (*__regargs lseek)(void *userinfo, long rpos, int mode),
- + int (*__regargs close)(void *userinfo, int internal),
- + int (*__regargs ioctl)(void *userinfo, int request, void *data)
- + );
- +
- + void _free_fd(int fd);
- +
- + struct fileinfo *_find_fd(int fd);
- + int _last_fd(void);
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/internal/messages.h emacs-18.59/amiga/unix/include/internal/messages.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/internal/messages.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/internal/messages.h Sun Aug 16 12:43:04 1992
- ***************
- *** 0 ****
- --- 1,9 ----
- + void _message(char *format, ...);
- + /* Display a message which is as visible as possible (either to the console
- + or to a requester).
- + Assume very little about library state */
- + void _fail(char *format, ...);
- + /* Display a message which is as visible as possible (either to the console
- + or to a requester).
- + Assume very little about library state.
- + Exit with error code RETURN_FAIL after that. */
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/internal/timers.h emacs-18.59/amiga/unix/include/internal/timers.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/internal/timers.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/internal/timers.h Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,20 ----
- + #ifndef TIMERS_H
- + #define TIMERS_H
- +
- + struct timeinfo {
- + struct timerequest *io;
- + int sent;
- + };
- +
- + struct timeinfo *_alloc_timer(void);
- + void _free_timer(struct timeinfo *timer);
- + void _timer_abort(struct timeinfo *timer);
- + ULONG _timer_sig(struct timeinfo *timer);
- +
- + void _timer_start(struct timeinfo *timer, int secs, int micros);
- + /* _timer_start(timer, 0) stops a timer */
- +
- + int _timer_expired(struct timeinfo *timer);
- + /* A non-started timer is defined to not have expired */
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/internal/vars.h emacs-18.59/amiga/unix/include/internal/vars.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/internal/vars.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/internal/vars.h Sun Aug 16 10:58:12 1992
- ***************
- *** 0 ****
- --- 1,11 ----
- + #ifndef VARS_H
- + #define VARS_H
- +
- + /* <_us, _startup_time> should be a pretty good unique identifier of
- + this process */
- + extern struct Process *_us;
- + extern long _stack_size;
- + extern long _startup_time;
- + extern int use_amiga_flags;
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/pwd.h emacs-18.59/amiga/unix/include/pwd.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/pwd.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/pwd.h Wed Jul 8 20:19:36 1992
- ***************
- *** 0 ****
- --- 1,19 ----
- + #ifndef _PWD_H
- + #define _PWD_H
- +
- + struct passwd {
- + char *pw_name;
- + char *pw_passwd;
- + uid_t pw_uid;
- + gid_t pw_gid;
- + int pw_quota;
- + char *pw_comment;
- + char *pw_gecos;
- + char *pw_dir;
- + char *pw_shell;
- + };
- +
- + struct passwd *getpwuid(uid_t uid);
- + struct passwd *getpwnam(char *name);
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/setjmp.h emacs-18.59/amiga/unix/include/setjmp.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/setjmp.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/setjmp.h Sun Aug 16 11:57:38 1992
- ***************
- *** 0 ****
- --- 1,55 ----
- + /*-
- + * Copyright (c) 1990 The Regents of the University of California.
- + * All rights reserved.
- + *
- + * Redistribution and use in source and binary forms, with or without
- + * modification, are permitted provided that the following conditions
- + * are met:
- + * 1. Redistributions of source code must retain the above copyright
- + * notice, this list of conditions and the following disclaimer.
- + * 2. Redistributions in binary form must reproduce the above copyright
- + * notice, this list of conditions and the following disclaimer in the
- + * documentation and/or other materials provided with the distribution.
- + * 3. All advertising materials mentioning features or use of this software
- + * must display the following acknowledgement:
- + * This product includes software developed by the University of
- + * California, Berkeley and its contributors.
- + * 4. Neither the name of the University nor the names of its contributors
- + * may be used to endorse or promote products derived from this software
- + * without specific prior written permission.
- + *
- + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- + * SUCH DAMAGE.
- + *
- + * @(#)setjmp.h 5.5 (Berkeley) 6/8/91
- + */
- +
- + #ifndef _SETJMP_H_
- + #define _SETJMP_H_
- +
- + #define _JBLEN 14
- +
- + typedef int jmp_buf[_JBLEN];
- +
- + #include <sys/cdefs.h>
- +
- + __BEGIN_DECLS
- + int setjmp __P((jmp_buf));
- + void longjmp __P((jmp_buf, int));
- +
- + #if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
- + int _setjmp __P((jmp_buf));
- + void _longjmp __P((jmp_buf, int));
- + #endif /* neither ANSI nor POSIX */
- + __END_DECLS
- +
- + #endif /* !_SETJMP_H_ */
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/signal.h emacs-18.59/amiga/unix/include/signal.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/signal.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/signal.h Sun Oct 18 20:03:30 1992
- ***************
- *** 0 ****
- --- 1,59 ----
- + #ifndef _SIGNAL_H
- + #define _SIGNAL_H
- +
- + #define NSIG 32 /* We define lots of signals (though most are never
- + generated) */
- +
- + /* Signal number definitions */
- + /* Those which can be generated other than by kill are described with
- + <name>, amiga: <cause> */
- +
- +
- + #define SIGHUP 1 /* hangup */
- + #define SIGINT 2 /* interrupt, amiga: ctrl-c */
- + #define SIGQUIT 3 /* quit, amiga: ctrl-d */
- + #define SIGILL 4 /* illegal instruction */
- + #define SIGTRAP 5 /* trace trap */
- + #define SIGIOT 6 /* abort, amiga: abort() called */
- + #define SIGEMT 7 /* emulator trap */
- + #define SIGFPE 8 /* arithmetic exception, amiga: arith op */
- + #define SIGKILL 9 /* kill */
- + #define SIGBUS 10 /* bus error */
- + #define SIGSEGV 11 /* segmentation violation */
- + #define SIGSYS 12 /* bad argument to system call */
- + #define SIGPIPE 13 /* write on pipe or socket with no reader,
- + amiga: generated for 'pipe's or 'sktpair's */
- + #define SIGALRM 14 /* alarm clock, amiga: see alarm */
- + #define SIGTERM 15 /* software termination */
- + #define SIGURG 16 /* urgent condition on socket */
- + /* SIGSTOP, SIGTSTP, SIGCONT, SIGTTIN, SIGTTOU undefined to avoid creating the
- + belief that we support stopped processes */
- + #define SIGCHLD 20 /* child status has changed */
- + #define SIGIO 23 /* I/O possible on a descriptor */
- + /* Less usual signals: SIGXCPU, SIGXFSZ, SIGVTALARM, SIGPROF, SIGLOST not defined */
- + #define SIGWINCH 28 /* window changed */
- + #define SIGUSR1 30 /* user-defined signal 1 */
- + #define SIGUSR2 31 /* user-defined signal 2 */
- +
- + #define SIG_IGN (void *)0
- + #define SIG_DFL (void *)1
- +
- + struct sigvec {
- + void (*sv_handler)();
- + long sv_mask;
- + /*int sv_flags;*/ /* Not implemented */
- + };
- +
- + void (*signal(int sig,void (*fn)(int)))(int);
- + int sigvec(int sig, struct sigvec *vec, struct sigvec *ovec);
- + long sigsetmask(long mask);
- + long sigblock(long mask);
- +
- + #define sigmask(s) (1 << (s))
- +
- + /* Only kill(getpid(), sig) works */
- + /* Also, getpid() is a unique number for this process */
- + int getpid(void);
- + int kill(int pid, int sig);
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/stat.h emacs-18.59/amiga/unix/include/stat.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/stat.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/stat.h Fri Dec 4 20:34:06 1992
- ***************
- *** 0 ****
- --- 1 ----
- + #include <sys/stat.h>
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/stdio.h emacs-18.59/amiga/unix/include/stdio.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/stdio.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/stdio.h Fri Dec 4 22:35:48 1992
- ***************
- *** 0 ****
- --- 1,7 ----
- + /* Avoid problems with conflicting declarations for mkdir */
- + #define mkdir __fake_mkdir
- + #include "include:stdio.h"
- +
- + #define P_tmpdir "t:"
- +
- + #undef mkdir
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/stdlib.h emacs-18.59/amiga/unix/include/stdlib.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/stdlib.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/stdlib.h Sat Sep 26 14:17:40 1992
- ***************
- *** 0 ****
- --- 1,4 ----
- + /* Avoid problems with conflicting declarations for mkdir */
- + #define mkdir __fake_mkdir
- + #include "include:stdlib.h"
- + #undef mkdir
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/strings.h emacs-18.59/amiga/unix/include/strings.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/strings.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/strings.h Sat Aug 1 11:48:24 1992
- ***************
- *** 0 ****
- --- 1 ----
- + #include <string.h>
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/sys/cdefs.h emacs-18.59/amiga/unix/include/sys/cdefs.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/sys/cdefs.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/sys/cdefs.h Thu Jul 9 22:02:46 1992
- ***************
- *** 0 ****
- --- 1,78 ----
- + /*
- + * Copyright (c) 1991 The Regents of the University of California.
- + * All rights reserved.
- + *
- + * Redistribution and use in source and binary forms, with or without
- + * modification, are permitted provided that the following conditions
- + * are met:
- + * 1. Redistributions of source code must retain the above copyright
- + * notice, this list of conditions and the following disclaimer.
- + * 2. Redistributions in binary form must reproduce the above copyright
- + * notice, this list of conditions and the following disclaimer in the
- + * documentation and/or other materials provided with the distribution.
- + * 3. All advertising materials mentioning features or use of this software
- + * must display the following acknowledgement:
- + * This product includes software developed by the University of
- + * California, Berkeley and its contributors.
- + * 4. Neither the name of the University nor the names of its contributors
- + * may be used to endorse or promote products derived from this software
- + * without specific prior written permission.
- + *
- + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- + * SUCH DAMAGE.
- + *
- + * @(#)cdefs.h 7.6 (Berkeley) 5/4/91
- + */
- +
- + #ifndef _CDEFS_H_
- + #define _CDEFS_H_
- +
- + #if defined(__cplusplus)
- + #define __BEGIN_DECLS extern "C" {
- + #define __END_DECLS };
- + #else
- + #define __BEGIN_DECLS
- + #define __END_DECLS
- + #endif
- +
- + /*
- + * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- + * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- + * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- + * in between its arguments. __CONCAT can also concatenate double-quoted
- + * strings produced by the __STRING macro, but this only works with ANSI C.
- + */
- + #if defined(__STDC__) || defined(__cplusplus)
- + #define __P(protos) protos /* full-blown ANSI C */
- + #define __CONCAT(x,y) x ## y
- + #define __STRING(x) #x
- +
- + #else /* !(__STDC__ || __cplusplus) */
- + #define __P(protos) () /* traditional C preprocessor */
- + #define __CONCAT(x,y) x/**/y
- + #define __STRING(x) "x"
- +
- + #ifdef __GNUC__
- + #define const __const /* GCC: ANSI C with -traditional */
- + #define inline __inline
- + #define signed __signed
- + #define volatile __volatile
- +
- + #else /* !__GNUC__ */
- + #define const /* delete ANSI C keywords */
- + #define inline
- + #define signed
- + #define volatile
- + #endif /* !__GNUC__ */
- + #endif /* !(__STDC__ || __cplusplus) */
- +
- + #endif /* !_CDEFS_H_ */
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/sys/fcntl.h emacs-18.59/amiga/unix/include/sys/fcntl.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/sys/fcntl.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/sys/fcntl.h Sat Aug 9 09:22:26 2008
- ***************
- *** 0 ****
- --- 1,193 ----
- + /*-
- + * Copyright (c) 1983, 1990 The Regents of the University of California.
- + * All rights reserved.
- + *
- + * Redistribution and use in source and binary forms, with or without
- + * modification, are permitted provided that the following conditions
- + * are met:
- + * 1. Redistributions of source code must retain the above copyright
- + * notice, this list of conditions and the following disclaimer.
- + * 2. Redistributions in binary form must reproduce the above copyright
- + * notice, this list of conditions and the following disclaimer in the
- + * documentation and/or other materials provided with the distribution.
- + * 3. All advertising materials mentioning features or use of this software
- + * must display the following acknowledgement:
- + * This product includes software developed by the University of
- + * California, Berkeley and its contributors.
- + * 4. Neither the name of the University nor the names of its contributors
- + * may be used to endorse or promote products derived from this software
- + * without specific prior written permission.
- + *
- + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- + * SUCH DAMAGE.
- + *
- + * @(#)fcntl.h 5.14 (Berkeley) 7/1/91
- + */
- +
- + #ifndef _FCNTL_H_
- + #define _FCNTL_H_
- +
- + /*
- + * This file includes the definitions for open and fcntl
- + * described by POSIX for <fcntl.h>; it also includes
- + * related kernel definitions.
- + */
- +
- + #ifndef KERNEL
- + #include <sys/types.h>
- + #endif
- +
- + /*
- + * File status flags: these are used by open(2), fcntl(2).
- + * They are also used (indirectly) in the kernel file structure f_flags,
- + * which is a superset of the open/fcntl flags. Open flags and f_flags
- + * are inter-convertible using OFLAGS(fflags) and FFLAGS(oflags).
- + * Open/fcntl flags begin with O_; kernel-internal flags begin with F.
- + */
- + /* open-only flags */
- + #define O_RDONLY 0x0000 /* open for reading only */
- + #define O_WRONLY 0x0001 /* open for writing only */
- + #define O_RDWR 0x0002 /* open for reading and writing */
- + #define O_ACCMODE 0x0003 /* mask for above modes */
- +
- + #ifdef KERNEL
- + /*
- + * Kernel encoding of open mode; separate read and write bits
- + * that are independently testable: 1 greater than the above.
- + */
- + #define FREAD 0x0001
- + #define FWRITE 0x0002
- + #endif
- + #define O_NONBLOCK 0x0004 /* no delay */
- + #define O_APPEND 0x0008 /* set append mode */
- + #ifndef _POSIX_SOURCE
- + #define O_SHLOCK 0x0010 /* open with shared file lock */
- + #define O_EXLOCK 0x0020 /* open with exclusive file lock */
- + #define O_ASYNC 0x0040 /* signal pgrp when data ready */
- + #define O_FSYNC 0x0080 /* synchronous writes */
- + #endif
- + #define O_CREAT 0x0100 /* create if nonexistant */
- + #define O_TRUNC 0x0200 /* truncate to zero length */
- + #define O_EXCL 0x0400 /* error if already exists */
- + #ifdef KERNEL
- + #define FMARK 0x1000 /* mark during gc() */
- + #define FDEFER 0x2000 /* defer for next gc pass */
- + #define FHASLOCK 0x4000 /* descriptor holds advisory lock */
- + #endif
- +
- + /* defined by POSIX 1003.1; BSD default, so no bit required */
- + #define O_NOCTTY 0 /* don't assign controlling terminal */
- +
- + #ifdef KERNEL
- + /* convert from open() flags to/from fflags; convert O_RD/WR to FREAD/FWRITE */
- + #define FFLAGS(oflags) ((oflags) + 1)
- + #define OFLAGS(fflags) ((fflags) - 1)
- +
- + /* bits to save after open */
- + #define FMASK (FREAD|FWRITE|FAPPEND|FASYNC|FFSYNC|FNONBLOCK)
- + /* bits settable by fcntl(F_SETFL, ...) */
- + #define FCNTLFLAGS (FAPPEND|FASYNC|FFSYNC|FNONBLOCK)
- + #endif
- +
- + /*
- + * The O_* flags used to have only F* names, which were used in the kernel
- + * and by fcntl. We retain the F* names for the kernel f_flags field
- + * and for backward compatibility for fcntl.
- + */
- + #ifndef _POSIX_SOURCE
- + #define FAPPEND O_APPEND /* kernel/compat */
- + #define FASYNC O_ASYNC /* kernel/compat */
- + #define FFSYNC O_FSYNC /* kernel */
- + #define FNONBLOCK O_NONBLOCK /* kernel */
- + #define FNDELAY O_NONBLOCK /* compat */
- + #define O_NDELAY O_NONBLOCK /* compat */
- + #endif
- +
- + /*
- + * Constants used for fcntl(2)
- + */
- +
- + /* command values */
- + #define F_DUPFD 0 /* duplicate file descriptor */
- + #define F_GETFD 1 /* get file descriptor flags */
- + #define F_SETFD 2 /* set file descriptor flags */
- + #define F_GETFL 3 /* get file status flags */
- + #define F_SETFL 4 /* set file status flags */
- + #ifndef _POSIX_SOURCE
- + #define F_GETOWN 5 /* get SIGIO/SIGURG proc/pgrp */
- + #define F_SETOWN 6 /* set SIGIO/SIGURG proc/pgrp */
- + #endif
- + #define F_GETLK 7 /* get record locking information */
- + #define F_SETLK 8 /* set record locking information */
- + #define F_SETLKW 9 /* F_SETLK; wait if blocked */
- +
- + /* file descriptor flags (F_GETFD, F_SETFD) */
- + #define FD_CLOEXEC 1 /* close-on-exec flag */
- +
- + /* record locking flags (F_GETLK, F_SETLK, F_SETLKW) */
- + #define F_RDLCK 1 /* shared or read lock */
- + #define F_UNLCK 2 /* unlock */
- + #define F_WRLCK 3 /* exclusive or write lock */
- + #ifdef KERNEL
- + #define F_WAIT 0x010 /* Wait until lock is granted */
- + #define F_FLOCK 0x020 /* Use flock(2) semantics for lock */
- + #define F_POSIX 0x040 /* Use POSIX semantics for lock */
- + #endif
- +
- + /*
- + * Advisory file segment locking data type -
- + * information passed to system by user
- + */
- + struct flock {
- + short l_type; /* lock type: read/write, etc. */
- + short l_whence; /* type of l_start */
- + off_t l_start; /* starting offset */
- + off_t l_len; /* len = 0 means until end of file */
- + pid_t l_pid; /* lock owner */
- + };
- +
- +
- + #ifndef _POSIX_SOURCE
- + /* lock operations for flock(2) */
- + #define LOCK_SH 0x01 /* shared file lock */
- + #define LOCK_EX 0x02 /* exclusive file lock */
- + #define LOCK_NB 0x04 /* don't block when locking */
- + #define LOCK_UN 0x08 /* unlock file */
- + #endif
- +
- +
- + #ifndef KERNEL
- + #include <sys/cdefs.h>
- +
- + __BEGIN_DECLS
- + int open __P((const char *, int, ...));
- + int creat __P((const char *, mode_t));
- + int fcntl __P((int, int, ...));
- + #ifndef _POSIX_SOURCE
- + int flock __P((int, int));
- + #endif /* !_POSIX_SOURCE */
- + __END_DECLS
- + #endif
- +
- + #ifdef AMIGA
- + #define O_NO_CLOSE 0x100 /* An available value, means don't close
- + underlying resource */
- + /* Note: S_ISVTX (sticky) is mapped to the pure bit.
- + The amiga script bit is mapped to world execute ...
- + user S_IWRITE is the and of the amiga write & delete bits.
- + group S_IWRITE is the amiga write bit.
- + world S_IWRITE is the amiga delete bit.
- + We always set the archive bit off.
- + */
- + #endif
- +
- + #endif /* !_FCNTL_H_ */
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/sys/file.h emacs-18.59/amiga/unix/include/sys/file.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/sys/file.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/sys/file.h Thu Aug 13 21:26:00 1992
- ***************
- *** 0 ****
- --- 1,2 ----
- + #include <fcntl.h>
- + #include <sys/unistd.h>
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/sys/filio.h emacs-18.59/amiga/unix/include/sys/filio.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/sys/filio.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/sys/filio.h Sun Jul 5 14:26:20 1992
- ***************
- *** 0 ****
- --- 1,3 ----
- + #define FIONBIO 0 /* ioctl to change non blocking mode
- + data (an int *) is a pointer a boolean,
- + TRUE for non-blocking io */
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/sys/ioctl.h emacs-18.59/amiga/unix/include/sys/ioctl.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/sys/ioctl.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/sys/ioctl.h Tue Jul 7 20:44:40 1992
- ***************
- *** 0 ****
- --- 1 ----
- + #include <sys/termios.h>
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/sys/param.h emacs-18.59/amiga/unix/include/sys/param.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/sys/param.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/sys/param.h Fri Dec 4 22:38:06 1992
- ***************
- *** 0 ****
- --- 1,11 ----
- + #ifndef _PARAM_H
- + #define _PARAM_H
- +
- + #define MAXPATHLEN 1024
- + #define DEV_BSIZE 512
- +
- + #ifndef NULL
- + #define NULL (0)
- + #endif
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/sys/socket.h emacs-18.59/amiga/unix/include/sys/socket.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/sys/socket.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/sys/socket.h Sat Jul 4 14:31:08 1992
- ***************
- *** 0 ****
- --- 1,4 ----
- + /* Support for socket pairs only */
- +
- + #define AF_UNIX 0
- + #define SOCK_STREAM 0
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/sys/stat.h emacs-18.59/amiga/unix/include/sys/stat.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/sys/stat.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/sys/stat.h Fri Dec 4 20:34:52 1992
- ***************
- *** 0 ****
- --- 1,133 ----
- + #ifndef _STAT_H
- + #define _STAT_H
- +
- + /*-
- + * Copyright (c) 1982, 1986, 1989 The Regents of the University of California.
- + * All rights reserved.
- + *
- + * Redistribution and use in source and binary forms, with or without
- + * modification, are permitted provided that the following conditions
- + * are met:
- + * 1. Redistributions of source code must retain the above copyright
- + * notice, this list of conditions and the following disclaimer.
- + * 2. Redistributions in binary form must reproduce the above copyright
- + * notice, this list of conditions and the following disclaimer in the
- + * documentation and/or other materials provided with the distribution.
- + * 3. All advertising materials mentioning features or use of this software
- + * must display the following acknowledgement:
- + * This product includes software developed by the University of
- + * California, Berkeley and its contributors.
- + * 4. Neither the name of the University nor the names of its contributors
- + * may be used to endorse or promote products derived from this software
- + * without specific prior written permission.
- + *
- + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- + * SUCH DAMAGE.
- + *
- + * @(#)stat.h 7.11 (Berkeley) 3/3/91
- + */
- +
- + struct stat
- + {
- + dev_t st_dev; /* inode's device */
- + ino_t st_ino; /* inode's number */
- + mode_t st_mode; /* inode protection mode */
- + nlink_t st_nlink; /* number of hard links */
- + uid_t st_uid; /* user ID of the file's owner */
- + gid_t st_gid; /* group ID of the file's group */
- + dev_t st_rdev; /* device type */
- + off_t st_size; /* file size, in bytes */
- + time_t st_atime; /* time of last access */
- + long st_spare1;
- + time_t st_mtime; /* time of last data modification */
- + long st_spare2;
- + time_t st_ctime; /* time of last file status change */
- + long st_spare3;
- + long st_blksize; /* optimal blocksize for I/O */
- + long st_blocks; /* blocks allocated for file */
- + u_long st_flags; /* user defined flags for file */
- + u_long st_gen; /* file generation number */
- + };
- +
- + #define S_ISUID 0004000 /* set user id on execution */
- + #define S_ISGID 0002000 /* set group id on execution */
- + #ifndef _POSIX_SOURCE
- + #define S_ISTXT 0001000 /* sticky bit */
- + #endif
- +
- + #define S_IRWXU 0000700 /* RWX mask for owner */
- + #define S_IRUSR 0000400 /* R for owner */
- + #define S_IWUSR 0000200 /* W for owner */
- + #define S_IXUSR 0000100 /* X for owner */
- +
- + #ifndef _POSIX_SOURCE
- + #define S_IREAD S_IRUSR
- + #define S_IWRITE S_IWUSR
- + #define S_IEXEC S_IXUSR
- + #endif
- +
- + #define S_IRWXG 0000070 /* RWX mask for group */
- + #define S_IRGRP 0000040 /* R for group */
- + #define S_IWGRP 0000020 /* W for group */
- + #define S_IXGRP 0000010 /* X for group */
- +
- + #define S_IRWXO 0000007 /* RWX mask for other */
- + #define S_IROTH 0000004 /* R for other */
- + #define S_IWOTH 0000002 /* W for other */
- + #define S_IXOTH 0000001 /* X for other */
- +
- + #ifndef _POSIX_SOURCE
- + #define S_IFMT 0170000 /* type of file */
- + #define S_IFIFO 0010000 /* named pipe (fifo) */
- + #define S_IFCHR 0020000 /* character special */
- + #define S_IFDIR 0040000 /* directory */
- + #define S_IFBLK 0060000 /* block special */
- + #define S_IFREG 0100000 /* regular */
- + #define S_IFLNK 0120000 /* symbolic link */
- + #define S_IFSOCK 0140000 /* socket */
- +
- + #define S_ISVTX 0001000 /* save swapped text even after use */
- +
- + #define S_BLKSIZE 512 /* block size used in the stat struct */
- +
- + /* 0666 */
- + #define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
- + #endif
- +
- + #define S_ISDIR(m) ((m & 0170000) == 0040000) /* directory */
- + #define S_ISCHR(m) ((m & 0170000) == 0020000) /* char special */
- + #define S_ISBLK(m) ((m & 0170000) == 0060000) /* block special */
- + #define S_ISREG(m) ((m & 0170000) == 0100000) /* regular file */
- + #define S_ISFIFO(m) ((m & 0170000) == 0010000) /* fifo */
- + #ifndef _POSIX_SOURCE
- + #define S_ISLNK(m) ((m & 0170000) == 0120000) /* symbolic link */
- + #define S_ISSOCK(m) ((m & 0170000) == 0140000) /* socket */
- + #endif
- +
- + #ifndef KERNEL
- + #include <sys/cdefs.h>
- +
- + __BEGIN_DECLS
- + mode_t umask __P((mode_t));
- + int chmod __P((const char *, mode_t));
- + int fstat __P((int, struct stat *));
- + int mkdir __P((char *, mode_t));
- + int mkfifo __P((char *, mode_t));
- + int stat __P((char *, struct stat *));
- + #ifndef _POSIX_SOURCE
- + int fchmod __P((int, mode_t));
- + int lstat __P((char *, struct stat *));
- + #endif /* not POSIX */
- + __END_DECLS
- + #endif
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/sys/termios.h emacs-18.59/amiga/unix/include/sys/termios.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/sys/termios.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/sys/termios.h Thu Jul 9 21:49:32 1992
- ***************
- *** 0 ****
- --- 1,15 ----
- + #ifndef _TERMIOS_H
- + #define _TERMIOS_H
- +
- + struct winsize {
- + unsigned short ws_row; /* rows, in characters */
- + unsigned short ws_col; /* columns, in characters */
- + unsigned short ws_xpixel; /* horizontal size, pixels - not used */
- + unsigned short ws_ypixel; /* vertical size, pixels - not used */
- + };
- +
- + #define _TERMIO_IOCTL_BASE 1024
- +
- + #define TIOCGWINSZ (_TERMIO_IOCTL_BASE + 0)
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/sys/time.h emacs-18.59/amiga/unix/include/sys/time.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/sys/time.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/sys/time.h Mon Aug 17 20:40:54 1992
- ***************
- *** 0 ****
- --- 1,90 ----
- + /*
- + * Copyright (c) 1982, 1986 The Regents of the University of California.
- + * All rights reserved.
- + *
- + * Redistribution and use in source and binary forms, with or without
- + * modification, are permitted provided that the following conditions
- + * are met:
- + * 1. Redistributions of source code must retain the above copyright
- + * notice, this list of conditions and the following disclaimer.
- + * 2. Redistributions in binary form must reproduce the above copyright
- + * notice, this list of conditions and the following disclaimer in the
- + * documentation and/or other materials provided with the distribution.
- + * 3. All advertising materials mentioning features or use of this software
- + * must display the following acknowledgement:
- + * This product includes software developed by the University of
- + * California, Berkeley and its contributors.
- + * 4. Neither the name of the University nor the names of its contributors
- + * may be used to endorse or promote products derived from this software
- + * without specific prior written permission.
- + *
- + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- + * SUCH DAMAGE.
- + *
- + * @(#)time.h 7.6 (Berkeley) 2/22/91
- + */
- +
- + #ifndef _SYS_TIME_H_
- + #define _SYS_TIME_H_
- +
- + /*
- + * Structure returned by gettimeofday(2) system call,
- + * and used in other calls.
- + */
- + /* This defines a struct timeval, with basically equivalent fields. So we use it */
- + #undef LONGBITS /* This is for emacs's sake */
- + #include <devices/timer.h>
- + #undef LONGBITS
- + /* But we need these defines */
- + #define tv_sec tv_secs
- + #define tv_usec tv_micro
- +
- + struct timezone {
- + int tz_minuteswest; /* minutes west of Greenwich */
- + int tz_dsttime; /* type of dst correction */
- + };
- + #define DST_NONE 0 /* not on dst */
- + #define DST_USA 1 /* USA style dst */
- + #define DST_AUST 2 /* Australian style dst */
- + #define DST_WET 3 /* Western European dst */
- + #define DST_MET 4 /* Middle European dst */
- + #define DST_EET 5 /* Eastern European dst */
- + #define DST_CAN 6 /* Canada */
- +
- + /*
- + * Operations on timevals.
- + *
- + * NB: timercmp does not work for >= or <=.
- + */
- + #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
- + #define timercmp(tvp, uvp, cmp) \
- + ((tvp)->tv_sec cmp (uvp)->tv_sec || \
- + (tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec cmp (uvp)->tv_usec)
- + #define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0
- +
- + #ifndef KERNEL
- + #include <time.h>
- +
- + #ifndef _POSIX_SOURCE
- + #include <sys/cdefs.h>
- +
- + __BEGIN_DECLS
- + int adjtime __P((const struct timeval *, struct timeval *));
- + int gettimeofday __P((struct timeval *, struct timezone *));
- + int settimeofday __P((const struct timeval *, const struct timezone *));
- + int utimes __P((const char *, const struct timeval *));
- + __END_DECLS
- + #endif /* !POSIX */
- +
- + #endif /* !KERNEL */
- +
- + #endif /* !_SYS_TIME_H_ */
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/sys/timeb.h emacs-18.59/amiga/unix/include/sys/timeb.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/sys/timeb.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/sys/timeb.h Wed Jul 8 21:02:30 1992
- ***************
- *** 0 ****
- --- 1,12 ----
- + #ifndef _TIMEB_H
- + #define _TIMEB_H
- +
- + struct timeb
- + {
- + time_t time;
- + unsigned short millitm;
- + short timezone;
- + short dstflag;
- + };
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/sys/types.h emacs-18.59/amiga/unix/include/sys/types.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/sys/types.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/sys/types.h Fri Aug 14 19:58:50 1992
- ***************
- *** 0 ****
- --- 1,90 ----
- + /*-
- + * Copyright (c) 1982, 1986, 1991 The Regents of the University of California.
- + * All rights reserved.
- + *
- + * Redistribution and use in source and binary forms, with or without
- + * modification, are permitted provided that the following conditions
- + * are met:
- + * 1. Redistributions of source code must retain the above copyright
- + * notice, this list of conditions and the following disclaimer.
- + * 2. Redistributions in binary form must reproduce the above copyright
- + * notice, this list of conditions and the following disclaimer in the
- + * documentation and/or other materials provided with the distribution.
- + * 3. All advertising materials mentioning features or use of this software
- + * must display the following acknowledgement:
- + * This product includes software developed by the University of
- + * California, Berkeley and its contributors.
- + * 4. Neither the name of the University nor the names of its contributors
- + * may be used to endorse or promote products derived from this software
- + * without specific prior written permission.
- + *
- + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- + * SUCH DAMAGE.
- + *
- + * @(#)types.h 7.17 (Berkeley) 5/6/91
- + */
- +
- + #ifndef _TYPES_H_
- + #define _TYPES_H_
- +
- + typedef unsigned char u_char;
- + typedef unsigned short u_short;
- + typedef unsigned int u_int;
- + typedef unsigned long u_long;
- + typedef unsigned short ushort; /* Sys V compatibility */
- +
- + typedef char * caddr_t; /* core address */
- + typedef long daddr_t; /* disk address */
- + typedef long dev_t; /* device number */
- + typedef u_long ino_t; /* inode number */
- + typedef long off_t; /* file offset (should be a quad) */
- + typedef u_short nlink_t; /* link count */
- + typedef long swblk_t; /* swap offset */
- + typedef long segsz_t; /* segment size */
- + typedef u_short uid_t; /* user id */
- + typedef u_short gid_t; /* group id */
- + typedef int pid_t; /* process id */
- + typedef int mode_t; /* permissions */
- + typedef u_long fixpt_t; /* fixed point number */
- +
- + #ifndef _POSIX_SOURCE
- + typedef struct _uquad { u_long val[2]; } u_quad;
- + typedef struct _quad { long val[2]; } quad;
- + typedef long * qaddr_t; /* should be typedef quad * qaddr_t; */
- +
- + #define major(x) ((int)(((u_int)(x) >> 8)&0xff)) /* major number */
- + #define minor(x) ((int)((x)&0xff)) /* minor number */
- + #define makedev(x,y) ((dev_t)(((x)<<8) | (y))) /* create dev_t */
- + #endif
- +
- + typedef long clock_t;
- + typedef long time_t;
- + #ifndef _SIZE_T
- + #define _SIZE_T
- + typedef unsigned int size_t;
- + #endif
- +
- + #ifndef _POSIX_SOURCE
- + /*
- + * My implementation only allows 32 fds in select.
- + */
- + #define FD_SETSIZE 32
- +
- + typedef long fd_set;
- +
- + #define FD_SET(n, p) (*(p) |= (1 << (n)))
- + #define FD_CLR(n, p) (*(p) &= ~(1 << (n)))
- + #define FD_ISSET(n, p) (*(p) & (1 << (n)))
- + #define FD_ZERO(p) bzero((char *)(p), sizeof(*(p)))
- +
- + #endif /* !_POSIX_SOURCE */
- + #endif /* !_TYPES_H_ */
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/sys/unistd.h emacs-18.59/amiga/unix/include/sys/unistd.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/sys/unistd.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/sys/unistd.h Fri Dec 4 22:35:36 1992
- ***************
- *** 0 ****
- --- 1,61 ----
- + /*
- + * Copyright (c) 1989 The Regents of the University of California.
- + * All rights reserved.
- + *
- + * Redistribution and use in source and binary forms, with or without
- + * modification, are permitted provided that the following conditions
- + * are met:
- + * 1. Redistributions of source code must retain the above copyright
- + * notice, this list of conditions and the following disclaimer.
- + * 2. Redistributions in binary form must reproduce the above copyright
- + * notice, this list of conditions and the following disclaimer in the
- + * documentation and/or other materials provided with the distribution.
- + * 3. All advertising materials mentioning features or use of this software
- + * must display the following acknowledgement:
- + * This product includes software developed by the University of
- + * California, Berkeley and its contributors.
- + * 4. Neither the name of the University nor the names of its contributors
- + * may be used to endorse or promote products derived from this software
- + * without specific prior written permission.
- + *
- + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- + * SUCH DAMAGE.
- + *
- + * @(#)unistd.h 5.14 (Berkeley) 4/1/91
- + */
- +
- + #ifndef _SYS_UNISTD_H_
- + #define _SYS_UNISTD_H_
- +
- + /* compile-time symbolic constants */
- +
- + /* access function */
- + #ifndef F_OK
- + #define F_OK 0 /* test for existence of file */
- + #define X_OK 0x01 /* test for execute or search permission */
- + #define W_OK 0x02 /* test for write permission */
- + #define R_OK 0x04 /* test for read permission */
- + #endif
- +
- + /* whence values for lseek(2) */
- + #define SEEK_SET 0 /* set file offset to offset */
- + #define SEEK_CUR 1 /* set file offset to current plus offset */
- + #define SEEK_END 2 /* set file offset to EOF plus offset */
- +
- + #ifndef _POSIX_SOURCE
- + /* whence values for lseek(2); renamed by POSIX 1003.1 */
- + #define L_SET SEEK_SET
- + #define L_INCR SEEK_CUR
- + #define L_XTND SEEK_END
- + #endif
- +
- + #endif /* !_SYS_UNISTD_H_ */
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/sys/vlimit.h emacs-18.59/amiga/unix/include/sys/vlimit.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/sys/vlimit.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/sys/vlimit.h Sat Jul 4 14:31:04 1992
- ***************
- *** 0 ****
- --- 1,2 ----
- + /* Dummy for Emacs so that we can run on VMS... */
- + #define LIM_DATA 0
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/sys/wait.h emacs-18.59/amiga/unix/include/sys/wait.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/sys/wait.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/sys/wait.h Fri Aug 14 19:55:48 1992
- ***************
- *** 0 ****
- --- 1,82 ----
- + /*
- + * Copyright (c) 1982, 1986, 1989 The Regents of the University of California.
- + * All rights reserved.
- + *
- + * Redistribution and use in source and binary forms, with or without
- + * modification, are permitted provided that the following conditions
- + * are met:
- + * 1. Redistributions of source code must retain the above copyright
- + * notice, this list of conditions and the following disclaimer.
- + * 2. Redistributions in binary form must reproduce the above copyright
- + * notice, this list of conditions and the following disclaimer in the
- + * documentation and/or other materials provided with the distribution.
- + * 3. All advertising materials mentioning features or use of this software
- + * must display the following acknowledgement:
- + * This product includes software developed by the University of
- + * California, Berkeley and its contributors.
- + * 4. Neither the name of the University nor the names of its contributors
- + * may be used to endorse or promote products derived from this software
- + * without specific prior written permission.
- + *
- + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- + * SUCH DAMAGE.
- + *
- + * @(#)wait.h 7.17 (Berkeley) 6/19/91
- + */
- +
- + /*
- + * This file holds definitions relevent to the wait4 system call
- + * and the alternate interfaces that use it (wait, wait3, waitpid).
- + */
- +
- + /*
- + * Macros to test the exit status returned by wait
- + * and extract the relevant values.
- + */
- + #define _W_INT(i) (i)
- +
- + #define _WSTATUS(x) (_W_INT(x) & 0177)
- + #define _WSTOPPED 0177 /* _WSTATUS if process is stopped */
- + #define WIFSTOPPED(x) (_WSTATUS(x) == _WSTOPPED)
- + #define WSTOPSIG(x) (_W_INT(x) >> 8)
- + #define WIFSIGNALED(x) (_WSTATUS(x) != _WSTOPPED && _WSTATUS(x) != 0)
- + #define WTERMSIG(x) (_WSTATUS(x))
- + #define WIFEXITED(x) (_WSTATUS(x) == 0)
- + #define WEXITSTATUS(x) (_W_INT(x) >> 8)
- + #define W_EXITCODE(ret, sig) ((ret) << 8 | (sig))
- + #define W_STOPCODE(sig) ((sig) << 8 | _WSTOPPED)
- +
- + /*
- + * Option bits for the second argument of wait4. WNOHANG causes the
- + * wait to not hang if there are no stopped or terminated processes, rather
- + * returning an error indication in this case (pid==0). WUNTRACED
- + * indicates that the caller should receive status about untraced children
- + * which stop due to signals. If children are stopped and a wait without
- + * this option is done, it is as though they were still running... nothing
- + * about them is returned.
- + */
- + #define WNOHANG 1 /* dont hang in wait */
- + #define WUNTRACED 2 /* tell about stopped, untraced children */
- +
- + #ifndef KERNEL
- + #include <sys/types.h>
- + #include <sys/cdefs.h>
- +
- + __BEGIN_DECLS
- + struct rusage; /* forward declaration */
- +
- + pid_t wait __P((int *));
- + pid_t waitpid __P((pid_t, int *, int));
- + pid_t wait3 __P((int *, int, struct rusage *));
- + pid_t wait4 __P((pid_t, int *, int, struct rusage *));
- + __END_DECLS
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/time.h emacs-18.59/amiga/unix/include/time.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/time.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/time.h Sat Aug 1 18:53:58 1992
- ***************
- *** 0 ****
- --- 1,78 ----
- + /*
- + * Copyright (c) 1989 The Regents of the University of California.
- + * All rights reserved.
- + *
- + * Redistribution and use in source and binary forms, with or without
- + * modification, are permitted provided that the following conditions
- + * are met:
- + * 1. Redistributions of source code must retain the above copyright
- + * notice, this list of conditions and the following disclaimer.
- + * 2. Redistributions in binary form must reproduce the above copyright
- + * notice, this list of conditions and the following disclaimer in the
- + * documentation and/or other materials provided with the distribution.
- + * 3. All advertising materials mentioning features or use of this software
- + * must display the following acknowledgement:
- + * This product includes software developed by the University of
- + * California, Berkeley and its contributors.
- + * 4. Neither the name of the University nor the names of its contributors
- + * may be used to endorse or promote products derived from this software
- + * without specific prior written permission.
- + *
- + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- + * SUCH DAMAGE.
- + *
- + * @(#)time.h 5.12 (Berkeley) 3/9/91
- + */
- +
- + #ifndef _TIME_H_
- + #define _TIME_H_
- +
- + #include <sys/types.h>
- +
- + struct tm {
- + int tm_sec; /* seconds after the minute [0-60] */
- + int tm_min; /* minutes after the hour [0-59] */
- + int tm_hour; /* hours since midnight [0-23] */
- + int tm_mday; /* day of the month [1-31] */
- + int tm_mon; /* months since January [0-11] */
- + int tm_year; /* years since 1900 */
- + int tm_wday; /* days since Sunday [0-6] */
- + int tm_yday; /* days since January 1 [0-365] */
- + int tm_isdst; /* Daylight Savings Time flag */
- + long tm_gmtoff; /* offset from CUT in seconds */
- + char *tm_zone; /* timezone abbreviation */
- + };
- +
- + #include <sys/cdefs.h>
- +
- + __BEGIN_DECLS
- + char *asctime __P((const struct tm *));
- + clock_t clock __P((void));
- + char *ctime __P((const time_t *));
- + double difftime __P((time_t, time_t));
- + struct tm *gmtime __P((const time_t *));
- + struct tm *localtime __P((const time_t *));
- + time_t mktime __P((struct tm *));
- + size_t strftime __P((char *, size_t, const char *, const struct tm *));
- + time_t time __P((time_t *));
- +
- + #ifndef _ANSI_SOURCE
- + void tzset __P((void));
- + #endif /* not ANSI */
- +
- + #if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
- + /*char *timezone __P((int, int));*/
- + void tzsetwall __P((void));
- + #endif /* neither ANSI nor POSIX */
- + __END_DECLS
- +
- + #endif /* !_TIME_H_ */
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/tzfile.h emacs-18.59/amiga/unix/include/tzfile.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/tzfile.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/tzfile.h Fri Jul 31 23:33:04 1992
- ***************
- *** 0 ****
- --- 1,151 ----
- + /*
- + * Copyright (c) 1988 Regents of the University of California.
- + * All rights reserved.
- + *
- + * This code is derived from software contributed to Berkeley by
- + * Arthur David Olson of the National Cancer Institute.
- + *
- + * Redistribution and use in source and binary forms, with or without
- + * modification, are permitted provided that the following conditions
- + * are met:
- + * 1. Redistributions of source code must retain the above copyright
- + * notice, this list of conditions and the following disclaimer.
- + * 2. Redistributions in binary form must reproduce the above copyright
- + * notice, this list of conditions and the following disclaimer in the
- + * documentation and/or other materials provided with the distribution.
- + * 3. All advertising materials mentioning features or use of this software
- + * must display the following acknowledgement:
- + * This product includes software developed by the University of
- + * California, Berkeley and its contributors.
- + * 4. Neither the name of the University nor the names of its contributors
- + * may be used to endorse or promote products derived from this software
- + * without specific prior written permission.
- + *
- + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- + * SUCH DAMAGE.
- + *
- + * @(#)tzfile.h 5.10 (Berkeley) 4/3/91
- + */
- +
- + #ifndef _TZFILE_H_
- + #define _TZFILE_H_
- +
- + /*
- + * Information about time zone files.
- + */
- + /* Time zone object file directory */
- + #define TZDIR "s:zoneinfo"
- + #define TZDEFAULT "s:localtime"
- + #define TZDEFRULES "posixrules"
- +
- + /*
- + ** Each file begins with. . .
- + */
- +
- + struct tzhead {
- + char tzh_reserved[24]; /* reserved for future use */
- + char tzh_ttisstdcnt[4]; /* coded number of trans. time flags */
- + char tzh_leapcnt[4]; /* coded number of leap seconds */
- + char tzh_timecnt[4]; /* coded number of transition times */
- + char tzh_typecnt[4]; /* coded number of local time types */
- + char tzh_charcnt[4]; /* coded number of abbr. chars */
- + };
- +
- + /*
- + ** . . .followed by. . .
- + **
- + ** tzh_timecnt (char [4])s coded transition times a la time(2)
- + ** tzh_timecnt (unsigned char)s types of local time starting at above
- + ** tzh_typecnt repetitions of
- + ** one (char [4]) coded GMT offset in seconds
- + ** one (unsigned char) used to set tm_isdst
- + ** one (unsigned char) that's an abbreviation list index
- + ** tzh_charcnt (char)s '\0'-terminated zone abbreviations
- + ** tzh_leapcnt repetitions of
- + ** one (char [4]) coded leap second transition times
- + ** one (char [4]) total correction after above
- + ** tzh_ttisstdcnt (char)s indexed by type; if TRUE, transition
- + ** time is standard time, if FALSE,
- + ** transition time is wall clock time
- + ** if absent, transition times are
- + ** assumed to be wall clock time
- + */
- +
- + /*
- + ** In the current implementation, "tzset()" refuses to deal with files that
- + ** exceed any of the limits below.
- + */
- +
- + /*
- + ** The TZ_MAX_TIMES value below is enough to handle a bit more than a
- + ** year's worth of solar time (corrected daily to the nearest second) or
- + ** 138 years of Pacific Presidential Election time
- + ** (where there are three time zone transitions every fourth year).
- + */
- + #define TZ_MAX_TIMES 370
- +
- + #define NOSOLAR /* 4BSD doesn't currently handle solar time */
- +
- + #ifndef NOSOLAR
- + #define TZ_MAX_TYPES 256 /* Limited by what (unsigned char)'s can hold */
- + #else
- + #define TZ_MAX_TYPES 10 /* Maximum number of local time types */
- + #endif
- +
- + #define TZ_MAX_CHARS 50 /* Maximum number of abbreviation characters */
- +
- + #define TZ_MAX_LEAPS 50 /* Maximum number of leap second corrections */
- +
- + #define SECSPERMIN 60
- + #define MINSPERHOUR 60
- + #define HOURSPERDAY 24
- + #define DAYSPERWEEK 7
- + #define DAYSPERNYEAR 365
- + #define DAYSPERLYEAR 366
- + #define SECSPERHOUR (SECSPERMIN * MINSPERHOUR)
- + #define SECSPERDAY ((long) SECSPERHOUR * HOURSPERDAY)
- + #define MONSPERYEAR 12
- +
- + #define TM_SUNDAY 0
- + #define TM_MONDAY 1
- + #define TM_TUESDAY 2
- + #define TM_WEDNESDAY 3
- + #define TM_THURSDAY 4
- + #define TM_FRIDAY 5
- + #define TM_SATURDAY 6
- +
- + #define TM_JANUARY 0
- + #define TM_FEBRUARY 1
- + #define TM_MARCH 2
- + #define TM_APRIL 3
- + #define TM_MAY 4
- + #define TM_JUNE 5
- + #define TM_JULY 6
- + #define TM_AUGUST 7
- + #define TM_SEPTEMBER 8
- + #define TM_OCTOBER 9
- + #define TM_NOVEMBER 10
- + #define TM_DECEMBER 11
- +
- + #define TM_YEAR_BASE 1900
- +
- + #define EPOCH_YEAR 1970
- + #define EPOCH_WDAY TM_THURSDAY
- +
- + /*
- + ** Accurate only for the past couple of centuries;
- + ** that will probably do.
- + */
- +
- + #define isleap(y) (((y) % 4) == 0 && ((y) % 100) != 0 || ((y) % 400) == 0)
- +
- + #endif /* !_TZFILE_H_ */
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/unistd.h emacs-18.59/amiga/unix/include/unistd.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/unistd.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/unistd.h Wed Dec 2 19:54:00 1992
- ***************
- *** 0 ****
- --- 1,178 ----
- + /*-
- + * Copyright (c) 1991 The Regents of the University of California.
- + * All rights reserved.
- + *
- + * Redistribution and use in source and binary forms, with or without
- + * modification, are permitted provided that the following conditions
- + * are met:
- + * 1. Redistributions of source code must retain the above copyright
- + * notice, this list of conditions and the following disclaimer.
- + * 2. Redistributions in binary form must reproduce the above copyright
- + * notice, this list of conditions and the following disclaimer in the
- + * documentation and/or other materials provided with the distribution.
- + * 3. All advertising materials mentioning features or use of this software
- + * must display the following acknowledgement:
- + * This product includes software developed by the University of
- + * California, Berkeley and its contributors.
- + * 4. Neither the name of the University nor the names of its contributors
- + * may be used to endorse or promote products derived from this software
- + * without specific prior written permission.
- + *
- + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- + * SUCH DAMAGE.
- + *
- + * @(#)unistd.h 5.13 (Berkeley) 6/17/91
- + */
- +
- + #ifndef _UNISTD_H_
- + #define _UNISTD_H_
- +
- + #include <sys/cdefs.h>
- + #include <sys/types.h>
- + #include <sys/unistd.h>
- +
- + #define STDIN_FILENO 0 /* standard input file descriptor */
- + #define STDOUT_FILENO 1 /* standard output file descriptor */
- + #define STDERR_FILENO 2 /* standard error file descriptor */
- +
- + #ifndef NULL
- + #define NULL 0 /* null pointer constant */
- + #endif
- +
- + typedef int ssize_t; /* count of bytes or error indication */
- +
- + __BEGIN_DECLS
- + void _exit __P((int));
- + int access __P((const char *, int));
- + u_int alarm __P((u_int));
- + int chdir __P((const char *));
- + int chown __P((const char *, uid_t, gid_t));
- + int close __P((int));
- + char *cuserid __P((char *));
- + int dup __P((int));
- + int dup2 __P((int, int));
- + int execl __P((const char *, const char *, ...));
- + int execle __P((const char *, const char *, ...));
- + int execlp __P((const char *, const char *, ...));
- + int execv __P((const char *, char * const *));
- + int execve __P((const char *, char * const *, char * const *));
- + int execvp __P((const char *, char * const *));
- + pid_t fork __P((void));
- + long fpathconf __P((int, int)); /* not yet */
- + char *getcwd __P((const char *, int));
- + gid_t getegid __P((void));
- + uid_t geteuid __P((void));
- + gid_t getgid __P((void));
- + int getgroups __P((int, int *)); /* XXX (gid_t *) */
- + char *getlogin __P((void));
- + pid_t getpgrp __P((void));
- + pid_t getpid __P((void));
- + pid_t getppid __P((void));
- + uid_t getuid __P((void));
- + int isatty __P((int));
- + int link __P((const char *, const char *));
- + off_t lseek __P((int, off_t, int));
- + long pathconf __P((const char *, int)); /* not yet */
- + int pause __P((void));
- + int pipe __P((int *));
- + ssize_t read __P((int, void *, size_t));
- + int rmdir __P((const char *));
- + int setgid __P((gid_t));
- + int setpgid __P((pid_t, pid_t));
- + pid_t setsid __P((void));
- + int setuid __P((uid_t));
- + u_int sleep __P((u_int));
- + long sysconf __P((int)); /* not yet */
- + pid_t tcgetpgrp __P((int));
- + int tcsetpgrp __P((int, pid_t));
- + char *ttyname __P((int));
- + int unlink __P((const char *));
- + ssize_t write __P((int, const void *, size_t));
- +
- + #ifndef _POSIX_SOURCE
- +
- + /* structure timeval required for select() */
- + #include <sys/time.h>
- +
- + int acct __P((const char *));
- + int async_daemon __P((void));
- + char *brk __P((const char *));
- + int chflags __P((const char *, long));
- + int chroot __P((const char *));
- + char *crypt __P((const char *, const char *));
- + int des_cipher __P((const char *, char *, long, int));
- + int des_setkey __P((const char *key));
- + int encrypt __P((char *, int));
- + void endusershell __P((void));
- + int exect __P((const char *, char * const *, char * const *));
- + int fchdir __P((int));
- + int fchflags __P((int, long));
- + int fchown __P((int, int, int));
- + int fnmatch __P((const char *, const char *, int));
- + int fsync __P((int));
- + int ftruncate __P((int, off_t));
- + int getdtablesize __P((void));
- + long gethostid __P((void));
- + int gethostname __P((char *, int));
- + mode_t getmode __P((const void *, mode_t));
- + int getpagesize __P((void));
- + char *getpass __P((const char *));
- + char *getusershell __P((void));
- + char *getwd __P((char *)); /* obsoleted by getcwd() */
- + int initgroups __P((const char *, int));
- + int mknod __P((const char *, mode_t, dev_t));
- + int mkstemp __P((char *));
- + char *mktemp __P((char *));
- + int nfssvc __P((int));
- + int nice __P((int));
- + void psignal __P((u_int, const char *));
- + extern char *sys_siglist[];
- + int profil __P((char *, int, int, int));
- + int rcmd __P((char **, int, const char *,
- + const char *, const char *, int *));
- + char *re_comp __P((const char *));
- + int re_exec __P((const char *));
- + int readlink __P((const char *, char *, int));
- + int reboot __P((int));
- + int revoke __P((const char *));
- + int rresvport __P((int *));
- + int ruserok __P((const char *, int, const char *, const char *));
- + void *sbrk __P((unsigned));
- + int select __P((int, fd_set *, fd_set *, fd_set *, struct timeval *));
- + int setegid __P((gid_t));
- + int seteuid __P((uid_t));
- + int setgroups __P((int, const int *));
- + void sethostid __P((long));
- + int sethostname __P((const char *, int));
- + int setkey __P((const char *));
- + int setlogin __P((const char *));
- + void *setmode __P((const char *));
- + int setpgrp __P((pid_t pid, pid_t pgrp)); /* obsoleted by setpgid() */
- + int setregid __P((int, int));
- + int setreuid __P((int, int));
- + int setrgid __P((gid_t));
- + int setruid __P((uid_t));
- + void setusershell __P((void));
- + int swapon __P((const char *));
- + int symlink __P((const char *, const char *));
- + void sync __P((void));
- + int syscall __P((int, ...));
- + int truncate __P((const char *, off_t));
- + int ttyslot __P((void));
- + u_int ualarm __P((u_int, u_int));
- + void usleep __P((u_int));
- + int vfork __P((void));
- +
- + #endif /* !_POSIX_SOURCE */
- + __END_DECLS
- +
- + #endif /* !_UNISTD_H_ */
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/include/utime.h emacs-18.59/amiga/unix/include/utime.h
- *** /src/baseline/emacs-18.59/amiga/unix/include/utime.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/include/utime.h Sun Jul 5 18:02:02 1992
- ***************
- *** 0 ****
- --- 1,3 ----
- + struct utimbuf { time_t actime, modtime; };
- +
- + int utime(char *path, struct utimbuf *times);
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/intro.doc emacs-18.59/amiga/unix/intro.doc
- *** /src/baseline/emacs-18.59/amiga/unix/intro.doc Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/intro.doc Tue Sep 22 20:27:34 1992
- ***************
- *** 0 ****
- --- 1,44 ----
- + A quick guide to programs compiled with the unix library
- + --------------------------------------------------------
- +
- + If you are using programs compiled with my unix library, you should note
- + the following points:
- +
- + a) The following environment variables are taken into account by the unix library,
- + and therefore by any program compiled with it:
- +
- + USER - A user name for the sole Amiga user (default "user").
- + USERNAME - The full name of the sole Amiga user (default $USER).
- + HOME - A "home" directory (default "s:") for programs that want one. Configuration
- + files will probably end up here ...
- + SHELL - A program which behaves reasonably like a Unix shell (default "bin:sh").
- + You should copy the sh executable there if you don't have a Unix-like shell.
- + HOSTNAME - The name of your machine (default "amiga").
- +
- + b) Command line parsing is a mixture of AmigaDOS and Unix conventions (this
- + explanation assumes familiarity with Unix terminology ...) :
- +
- + - Arguments in single quotes (') are left as is.
- +
- + - Within arguments in double quotes ("), * acts as an escape character. Arguments
- + cotaining wildcards are expanded into several arguments (note that this is a
- + different from the Unix behaviour). ' must be used to escape wildcards (this is the
- + standard AmigaDOS convention).
- +
- + - Within unquoted arguments, \ acts as an escape character for wildcards, spaces,
- + etc. Arguments containing wildcards are expanded into several arguments.
- +
- + As an example, assume that uecho is an unix-like echo command compiled with the
- + unix library, and that the current directory contains one file, echo.c. Then
- +
- + uecho 'f*un\' "#?.c" "*.c" "\mad" \*.c \\ \n
- +
- + displays
- +
- + f*un\ echo.c .c \mad *.c \ n
- +
- + c) Timezones. If you install the timezone information (provided with the
- + unix library), you must set your system clock to GMT. Otherwise the times
- + displayed or set by the unix library will be incorrect. To compensate, you
- + won't have to adjust your system clock for daylight savings time (the local
- + time calculated from GMT will always be correct).
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/mkmkf emacs-18.59/amiga/unix/mkmkf
- *** /src/baseline/emacs-18.59/amiga/unix/mkmkf Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/mkmkf Wed Sep 29 23:08:18 1993
- ***************
- *** 0 ****
- --- 1,2 ----
- + copy smakefile smakefile!
- + perl src:unix/mkmkf.perl `glob *.c` >smakefile
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/mkmkf.perl emacs-18.59/amiga/unix/mkmkf.perl
- *** /src/baseline/emacs-18.59/amiga/unix/mkmkf.perl Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/mkmkf.perl Wed Sep 29 23:08:32 1993
- ***************
- *** 0 ****
- --- 1,72 ----
- + print "OBJS= ";
- + for ($i = $#ARGV; $i >= 0; $i--)
- + {
- + ($objs[$i] = $ARGV[$i]) =~ s/\.\w*$/\.o/;
- + }
- + &colprint(6, " ", @objs);
- + print "\n\n";
- +
- + if (-f "smakefile.base")
- + {
- + open(BASE, "smakefile.base");
- + print while (<BASE>);
- + close(BASE);
- + }
- +
- + foreach $file (@ARGV)
- + {
- + $dest = $file;
- + $dest =~ s/\.\w*$/\.o/;
- + if ($file =~ /\.c$/)
- + {
- + printf("%s: %s", $dest, $file);
- + $colto = length($dest) + length($file) + 2;
- + # Search for included files
- + %seen = ();
- + &included($file, 0);
- + &colprint($colto, " ", keys(%seen));
- + print "\n";
- + }
- + else
- + {
- + printf("%s: %s\n\n", $dest, $file);
- + }
- + }
- +
- + sub colprint
- + {
- + local($colto, $sep, @names) = @_;
- + $col = $colto;
- + $sl = length($sep);
- + foreach $name (@names)
- + {
- + $nl = length($name);
- + if ($col + $nl + $sl > 78)
- + {
- + print " \\\n", " " x $colto;
- + $col = $colto;
- + }
- + print $sep, $name;
- + $col += $sl + $nl;
- + }
- + }
- +
- + sub included
- + {
- + local($file, $input) = @_;
- + $input++;
- + if (!open($input, $file))
- + {
- + print STDERR "Can't open $file: $!\n";
- + return;
- + }
- + while (<$input>)
- + {
- + if (/^#\s*include\s*"([^"]*)"/ && !$seen{$1} && -e $1)
- + {
- + $seen{$1} = 1;
- + &included($1, $input);
- + }
- + }
- + close($input);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/SCOPTIONS emacs-18.59/amiga/unix/src/SCOPTIONS
- *** /src/baseline/emacs-18.59/amiga/unix/src/SCOPTIONS Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/SCOPTIONS Sat Dec 5 10:00:04 1992
- ***************
- *** 0 ****
- --- 1,9 ----
- + PARAMETERS=BOTH
- + NOSTACKCHECK
- + STRUCTUREEQUIVALENCE
- + NOVERSION
- + NOICONS
- + INCLUDEDIR=/include/internal/
- + INCLUDEDIR=/include/
- + IGNORE=104
- + IGNORE=74
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/_exit.c emacs-18.59/amiga/unix/src/_exit.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/_exit.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/_exit.c Fri Dec 4 22:18:52 1992
- ***************
- *** 0 ****
- --- 1,30 ----
- + #include "amiga.h"
- + #include "files.h"
- + #include "fifofd.h"
- + #include "signals.h"
- + #include "timers.h"
- + #include <fcntl.h>
- +
- + void _close_all(void)
- + {
- + int fd, lfd = _last_fd();
- +
- + for (fd = 0; fd < lfd; fd++) close(fd);
- + }
- +
- + #undef _exit
- +
- + void __exit(int rc)
- + {
- + _close_all();
- + _cleanup_fifo();
- + _cleanup_signals();
- + _free_timer(_odd_timer);
- + XCEXIT(rc);
- + }
- +
- + void _exit(int rc)
- + {
- + return __exit(rc);
- + }
- +
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/_main.c emacs-18.59/amiga/unix/src/_main.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/_main.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/_main.c Sat Jun 5 15:25:10 1993
- ***************
- *** 0 ****
- --- 1,471 ----
- + #include "amiga.h"
- + #include "signals.h"
- + #include "fifofd.h"
- + #include "timers.h"
- + #include "amigados.h"
- + #include <exec/execbase.h>
- + #include <dos/var.h>
- + #include <workbench/startup.h>
- + #include <proto/timer.h>
- + #include <stdlib.h>
- + #include <string.h>
- + #include <ctype.h>
- + #include <sys/time.h>
- + #include <pwd.h>
- +
- + struct Process *_us;
- + struct timeinfo *_odd_timer;
- + ULONG _odd_sig;
- + long _startup_time;
- + long _stack_size;
- + struct Library *TimerBase;
- +
- + static char *empty_env = 0; /* A default empty environment */
- + char **environ; /* Unix style environment variable list */
- + char *_system_name;
- +
- + extern struct ExecBase *SysBase;
- + extern struct passwd _amiga_user;
- + extern main(int argc, char **argv, char **envp);
- +
- + static void nomem(void)
- + {
- + _fail("No memory");
- + }
- +
- + static void *_xmalloc(unsigned n)
- + {
- + void *p = malloc(n);
- +
- + if (!p) nomem();
- +
- + return p;
- + }
- +
- + static void *_xrealloc(void *p, unsigned n)
- + {
- + void *p2 = realloc(p, n);
- +
- + if (!p2) nomem();
- +
- + return p2;
- + }
- +
- + static char *safe_copystr(char *str)
- + {
- + char *new;
- +
- + if (!str) str = "";
- + new = malloc(strlen(str) + 1);
- + if (!new) return 0;
- + return strcpy(new, str);
- + }
- +
- + static char *copystr(char *str)
- + {
- + char *new = safe_copystr(str);
- +
- + if (!new) nomem();
- +
- + return new;
- + }
- +
- + void make_environ(void)
- + /* Effect: Builds a UNIX style environ variable from the AmigaDOS environment.
- + */
- + {
- + int env_count = 0;
- + long env_len = 0;
- + struct LocalVar *scan_env;
- + char **new_environ, *env_text;
- +
- + for (scan_env = (struct LocalVar *)_us->pr_LocalVars.mlh_Head;
- + scan_env->lv_Node.ln_Succ;
- + scan_env = (struct LocalVar *)scan_env->lv_Node.ln_Succ)
- + if (scan_env->lv_Node.ln_Type == LV_VAR &&
- + !(scan_env->lv_Flags & (GVF_GLOBAL_ONLY | GVF_BINARY_VAR)))
- + {
- + /* We only handle local text variables */
- + env_count++;
- + env_len += 2 + strlen(scan_env->lv_Node.ln_Name) + scan_env->lv_Len;
- + }
- +
- + new_environ = environ = (char **)_xmalloc(sizeof(char *) * (1 + env_count) +
- + env_len);
- + env_text = (char *)(environ + (1 + env_count));
- + if (!environ) environ = &empty_env;
- + else
- + {
- + for (scan_env = (struct LocalVar *)_us->pr_LocalVars.mlh_Head;
- + scan_env->lv_Node.ln_Succ;
- + scan_env = (struct LocalVar *)scan_env->lv_Node.ln_Succ)
- + if (scan_env->lv_Node.ln_Type == LV_VAR &&
- + !(scan_env->lv_Flags & (GVF_GLOBAL_ONLY | GVF_BINARY_VAR)))
- + {
- + /* We only handle local text variables */
- + char *env_name = scan_env->lv_Node.ln_Name;
- + int env_len = scan_env->lv_Len;
- +
- + *new_environ++ = env_text;
- + while (*env_name) *env_text++ = *env_name++;
- + *env_text++ = '=';
- + env_name = scan_env->lv_Value;
- + while (env_len--) *env_text++ = *env_name++;
- + *env_text++ = '\0';
- + }
- + *new_environ = 0;
- + }
- + }
- +
- + /* _main routine.
- + Hides the differences between wb & cli.
- + Provides a unix-like environment (including coomand-line parsing &
- + wildcard expansion)
- + */
- +
- + #define DEFPATLEN 256
- + #define NAMELEN 1024
- +
- + struct args
- + {
- + int size;
- + int argc;
- + char **argv;
- + };
- +
- + static void make_argv(struct args *args, int argc)
- + {
- + args->size = argc;
- + args->argc = 0;
- + args->argv = _xmalloc(sizeof(char *) * argc);
- + }
- +
- + static int safe_add_arg(struct args *args, char *argument, int copy)
- + {
- + char *arg_copy;
- +
- + if (copy) arg_copy = safe_copystr(argument);
- + else arg_copy = argument;
- + if (!arg_copy) return 0;
- +
- + if (args->argc >= args->size)
- + {
- + /* Make argv bigger */
- + if (args->size * 2 < args->size + 16) args->size += 16;
- + else args->size *= 2;
- + args->argv = realloc(args->argv, sizeof(char *) * args->size);
- + if (!args->argv) return 0;
- + }
- + args->argv[args->argc++] = arg_copy;
- + return 1;
- + }
- +
- + static void add_arg(struct args *args, char *argument, int copy)
- + {
- + if (!safe_add_arg(args, argument, copy)) nomem();
- + }
- +
- + static void concat_args(struct args *args, struct args *add)
- + {
- + if (args->argc + add->argc > args->size)
- + {
- + args->size = (args->argc + add->argc) * 2;
- + args->argv = _xrealloc(args->argv, sizeof(char *) * args->size);
- + }
- + memcpy(args->argv + args->argc, add->argv, add->argc * sizeof(char *));
- + args->argc += add->argc;
- + free(add->argv);
- + }
- +
- + typedef enum { quote_none, quote_single, quote_double } quote_type;
- + typedef enum { extract_normal, extract_test, extract_pattern } extract_type;
- +
- + static void extract(char *buf, char *start, char *end,
- + quote_type type, extract_type extract)
- + {
- + char *res = buf;
- +
- + switch (type)
- + {
- + case quote_single:
- + if (extract != extract_test)
- + {
- + buf[end - start] = '\0';
- + memcpy(buf, start, end - start);
- + }
- + else strcpy(buf, "a"); /* Things in quotes are never patterns */
- + break;
- +
- + case quote_none:
- + while (start < end)
- + {
- + if (start[0] == '\\' && start[1])
- + {
- + start += 2;
- + /* Wildcard are escaped */
- + if (extract == extract_test) *res++ = 'a';
- + else if (extract == extract_pattern)
- + switch (start[-1])
- + {
- + case '?': case '#': case '(': case ')': case '|': case '[':
- + case ']': case '~': case '%': case '*': case '\'':
- + *res++ = '\'';
- + default:
- + *res++ = start[-1];
- + break;
- + }
- + else *res++ = start[-1];
- + }
- + else *res++ = *start++;
- + }
- + *res++ = '\0';
- + break;
- +
- + case quote_double:
- + while (start < end)
- + {
- + if (start[0] == '*' && start[1])
- + {
- + start += 2;
- + switch (start[-1])
- + {
- + case 'n': *res++ = '\n'; break;
- + case 'e': *res++ = '\x1b'; break;
- + default: *res++ = start[-1]; break;
- + }
- + }
- + else *res++ = *start++;
- + }
- + *res++ = '\0';
- + break;
- + }
- + }
- +
- + void __stdargs _main(char *line)
- + /* Effect: Call unix_main with wildcards in argc & argv expanded (like unix)
- + Also, do some early amiga initialisation for emacs.
- + */
- + {
- + struct args args, wildargs;
- + char *pattern, *arg_start, *arg_end, *arg;
- + quote_type arg_quoted;
- + long patlen = DEFPATLEN;
- + struct AnchorPath *anchor;
- + struct timeval now;
- +
- + if (SysBase->LibNode.lib_Version < 37) XCEXIT(20);
- +
- + stdin->_file = 0;
- + stdin->_flag = _IOREAD;
- + stdout->_file = 1;
- + stdout->_flag = _IOWRT;
- + stderr->_file = 2;
- + stderr->_flag = _IORW | _IONBF;
- +
- + _us = (struct Process *)FindTask(0);
- + _odd_timer = _alloc_timer();
- + if (!_odd_timer) _fail("Failed to create timer");
- + _odd_sig = _timer_sig(_odd_timer);
- + TimerBase = _odd_timer->io->tr_node.io_Device;
- + GetSysTime(&now);
- + _startup_time = now.tv_secs;
- +
- + /* These use _startup_time, so must be here */
- + _init_fifo();
- + _init_signals();
- +
- + if (_us->pr_CLI) _stack_size = ((struct CommandLineInterface *)BADDR(_us->pr_CLI))->cli_DefaultStack << 2;
- + else _stack_size = _us->pr_StackSize;
- +
- + /* Make unix-like argc, argv (expand wildcards) */
- + if (!line[0]) /* Workbench, create argc & argv from files passed */
- + {
- + extern struct WBStartup *_WBenchMsg;
- + int i;
- + BPTR nilin = Open("NIL:",MODE_NEWFILE);
- + BPTR nilout = Open("NIL:",MODE_NEWFILE);
- + BPTR nilerr = Open("NIL:",MODE_NEWFILE);
- +
- + /* Initialise I/O. Nothing is available */
- + if (!nilin || !nilout || !nilerr)
- + {
- + if (nilin) Close(nilin);
- + if (nilout) Close(nilout);
- + if (nilerr) Close(nilerr);
- + nomem();
- + }
- + _init_unixio(nilin, TRUE, nilout, TRUE, nilerr, TRUE);
- +
- + /* Make argc, argv from Workbench parameters */
- + make_argv(&args, _WBenchMsg->sm_NumArgs);
- +
- + for (i = 0; i < _WBenchMsg->sm_NumArgs; i++)
- + {
- + char filename[256];
- +
- + if (_WBenchMsg->sm_ArgList[i].wa_Lock &&
- + NameFromLock(_WBenchMsg->sm_ArgList[i].wa_Lock, filename, 256))
- + {
- + if (_WBenchMsg->sm_ArgList[i].wa_Name)
- + AddPart(filename, _WBenchMsg->sm_ArgList[i].wa_Name, 256);
- + add_arg(&args, filename, TRUE);
- + }
- + /* else A parameter was lost, cry, cry, cry */
- + }
- + }
- + else /* From CLI expand wildcards (with unix-like command line parsing) */
- + {
- + int close_error;
- + BPTR in, out, error;
- +
- + /* Initialise I/O. Copy CLI info */
- + in = Input();
- + out = Output();
- + close_error = FALSE;
- + if ((error = _us->pr_CES) == 0)
- + {
- + close_error = TRUE;
- + if ((error = Open("*", MODE_OLDFILE)) == 0)
- + if ((error = Open("NIL:", MODE_OLDFILE)) == 0) nomem();
- + }
- + _init_unixio(in, FALSE, out, FALSE, error, close_error);
- +
- + make_argv(&args, 1);
- +
- + anchor = _xmalloc(sizeof(struct AnchorPath) + NAMELEN);
- + anchor->ap_Strlen = NAMELEN;
- + pattern = _xmalloc(DEFPATLEN);
- + while (1)
- + {
- + long new_patlen;
- + int wild;
- +
- + /* Skip white space */
- + while (isspace(*line)) line++;
- + if (!*line) break; /* End of command line */
- +
- + /* Extract next word */
- + /* Words in double quotes are handled AmigaDOS style
- + (+ filename expansion) */
- + if (*line == '"')
- + {
- + line++;
- + arg_start = line;
- + /* Find end of word */
- + while (*line && *line != '"')
- + {
- + /* * is an escape character inside double quotes
- + (AmigaDOS compatibility) */
- + if ((*line == '*') && line[1]) line++;
- + line++;
- + }
- + arg_end = line;
- + if (*line == '"') line++;
- + arg_quoted = quote_double;
- + }
- + /* Words in single quotes are handled unix style */
- + else if (*line == '\'')
- + {
- + line++;
- + arg_start = line;
- + /* Find end of word */
- + while (*line && *line != '\'') line++;
- + arg_end = line;
- + if (*line == '\'') line++;
- + arg_quoted = quote_single;
- + }
- + /* Unquoted words are handled unix style */
- + else /* Plain word */
- + {
- + arg_start = line;
- + /* Find end of word */
- + while (*line && *line != ' ' && *line != '\n' && *line != '\t')
- + {
- + if (*line == '\\' && line[1]) line++;
- + line++;
- + }
- + arg_end = line;
- + arg_quoted = quote_none;
- + }
- + arg = _xmalloc(arg_end - arg_start + 1);
- + if (args.argc == 0) /* Command name is left untouched */
- + {
- + strncpy(arg, arg_start, arg_end - arg_start);
- + arg[arg_end - arg_start] = 0;
- + add_arg(&args, arg, FALSE);
- + }
- + else
- + {
- + new_patlen = (arg_end - arg_start) * 2 + 16;
- + if (new_patlen > patlen)
- + {
- + free(pattern);
- + pattern = _xmalloc(new_patlen);
- + patlen = new_patlen;
- + }
- + extract(arg, arg_start, arg_end, arg_quoted, extract_test);
- + wild = ParsePattern(arg, pattern, patlen);
- + if (wild < 0)
- + {
- + *arg_end = 0;
- + _fail("Invalid wildcard %s", arg_start);
- + }
- + if (!wild)
- + {
- + extract(arg, arg_start, arg_end, arg_quoted, extract_normal);
- + add_arg(&args, arg, FALSE);
- + }
- + else
- + {
- + int none = TRUE;
- + long error;
- +
- + anchor->ap_Flags = anchor->ap_Reserved = anchor->ap_BreakBits = 0;
- + extract(arg, arg_start, arg_end, arg_quoted, extract_pattern);
- + make_argv(&wildargs, 16);
- + if (!(error = MatchFirst(arg, anchor)))
- + {
- + while (!error)
- + {
- + none = FALSE;
- + if (!safe_add_arg(&wildargs, anchor->ap_Buf, TRUE))
- + {
- + error = ERROR_NO_FREE_STORE;
- + break;
- + }
- + error = MatchNext(anchor);
- + }
- + MatchEnd(anchor);
- + }
- + if (error != ERROR_NO_MORE_ENTRIES)
- + _fail("Error expanding arguments");
- + if (none)
- + {
- + extract(arg, arg_start, arg_end, arg_quoted, extract_normal);
- + add_arg(&args, arg, FALSE);
- + }
- + else
- + {
- + tqsort(wildargs.argv, wildargs.argc);
- + concat_args(&args, &wildargs);
- + free(arg);
- + }
- + }
- + }
- + }
- + free(pattern);
- + free(anchor);
- + }
- +
- + make_environ();
- +
- + if (!(_amiga_user.pw_name = getenv("USER"))) _amiga_user.pw_name = "user";
- + if (!(_amiga_user.pw_gecos = getenv("USERNAME")))
- + _amiga_user.pw_gecos = _amiga_user.pw_name;
- + if (!(_amiga_user.pw_dir = getenv("HOME"))) _amiga_user.pw_dir = "s:";
- + if (!(_amiga_user.pw_shell = getenv("SHELL"))) _amiga_user.pw_shell = "bin:sh";
- + if (!(_system_name = getenv("HOSTNAME"))) _system_name = "amiga";
- +
- + main(args.argc, args.argv, environ);
- + exit(0);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/_setjmp.asm emacs-18.59/amiga/unix/src/_setjmp.asm
- *** /src/baseline/emacs-18.59/amiga/unix/src/_setjmp.asm Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/_setjmp.asm Sat Dec 5 18:18:18 1992
- ***************
- *** 0 ****
- --- 1,27 ----
- + XDEF __setjmp
- + XDEF __longjmp
- + XDEF @_setjmp
- + XDEF @_longjmp
- +
- + csect text,0,,2,2
- +
- + __setjmp:
- + move.l 4(a7),a0 ; Get jmp_buf
- + @_setjmp
- + move.l (a7),(a0)+ ; Save return address
- + movem.l a2-a7/d2-d7,(a0) ; Save registers
- + moveq #0,d0
- + rts
- +
- + __longjmp:
- + move.l 4(a7),a0 ; Get jmp_buf
- + move.l 8(a7),d0 ; Get result
- + @_longjmp
- + bne.s ok
- + moveq #1,d0 ; Return must be != 0
- + ok move.l (a0)+,a1 ; Get return address
- + movem.l (a0),a2-a7/d2-d7 ; Get registers
- + addq.l #4,a7 ; Pop return address
- + jmp (a1) ; And return to setjmp call
- +
- + end
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/abort.c emacs-18.59/amiga/unix/src/abort.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/abort.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/abort.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,11 ----
- + #include "amiga.h"
- + #include <signal.h>
- +
- + extern void _close_all(void);
- +
- + void abort(void)
- + {
- + chkabort();
- + _close_all();
- + kill(getpid(), SIGIOT);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/access.c emacs-18.59/amiga/unix/src/access.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/access.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/access.c Fri Dec 4 22:18:18 1992
- ***************
- *** 0 ****
- --- 1,29 ----
- + #include "amiga.h"
- + #include "fibstat.h"
- + #include <sys/types.h>
- + #include <sys/stat.h>
- +
- + #undef access
- +
- + int __access(const char *name, int mode)
- + {
- + int ret = -1;
- + struct stat sbuf;
- +
- + chkabort();
- + if (_fibstat(name, &sbuf) == 0)
- + {
- + int fmode = (sbuf.st_mode & (S_IREAD | S_IEXEC)) >> 6 |
- + (sbuf.st_mode & (S_IWRITE >> 3)) >> 3;
- +
- + if ((fmode & mode) == mode) ret = 0;
- + else errno = EACCES;
- + }
- + return ret;
- + }
- +
- + int access(const char *name, int mode)
- + {
- + return __access(name, mode);
- + }
- +
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/alloca.c emacs-18.59/amiga/unix/src/alloca.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/alloca.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/alloca.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,194 ----
- + /*
- + alloca -- (mostly) portable public-domain implementation -- D A Gwyn
- +
- + last edit: 86/05/30 rms
- + include config.h, since on VMS it renames some symbols.
- + Use xmalloc instead of malloc.
- +
- + This implementation of the PWB library alloca() function,
- + which is used to allocate space off the run-time stack so
- + that it is automatically reclaimed upon procedure exit,
- + was inspired by discussions with J. Q. Johnson of Cornell.
- +
- + It should work under any C implementation that uses an
- + actual procedure stack (as opposed to a linked list of
- + frames). There are some preprocessor constants that can
- + be defined when compiling for your specific system, for
- + improved efficiency; however, the defaults should be okay.
- +
- + The general concept of this implementation is to keep
- + track of all alloca()-allocated blocks, and reclaim any
- + that are found to be deeper in the stack than the current
- + invocation. This heuristic does not reclaim storage as
- + soon as it becomes invalid, but it will do so eventually.
- +
- + As a special case, alloca(0) reclaims storage without
- + allocating any. It is a good idea to use alloca(0) in
- + your main control loop, etc. to force garbage collection.
- + */
- + #ifndef lint
- + static char SCCSid[] = "@(#)alloca.c 1.1"; /* for the "what" utility */
- + #endif
- +
- + #ifdef emacs
- + #include "config.h"
- + #ifdef static
- + /* actually, only want this if static is defined as ""
- + -- this is for usg, in which emacs must undefine static
- + in order to make unexec workable
- + */
- + #ifndef STACK_DIRECTION
- + you
- + lose
- + -- must know STACK_DIRECTION at compile-time
- + #endif /* STACK_DIRECTION undefined */
- + #endif static
- + #endif emacs
- +
- + #ifndef alloca /* If compiling with GCC, this file's not needed. */
- +
- + #ifdef __STDC__
- + typedef void *pointer; /* generic pointer type */
- + #else
- + typedef char *pointer; /* generic pointer type */
- + #endif
- +
- + #define NULL 0 /* null pointer constant */
- +
- + extern void free();
- + extern pointer malloc();
- +
- + /*
- + Define STACK_DIRECTION if you know the direction of stack
- + growth for your system; otherwise it will be automatically
- + deduced at run-time.
- +
- + STACK_DIRECTION > 0 => grows toward higher addresses
- + STACK_DIRECTION < 0 => grows toward lower addresses
- + STACK_DIRECTION = 0 => direction of growth unknown
- + */
- +
- + #ifndef STACK_DIRECTION
- + #define STACK_DIRECTION 0 /* direction unknown */
- + #endif
- +
- + #if (STACK_DIRECTION) != 0
- +
- + #define STACK_DIR STACK_DIRECTION /* known at compile-time */
- +
- + #else /* STACK_DIRECTION == 0; need run-time code */
- +
- + static int stack_dir; /* 1 or -1 once known */
- + #define STACK_DIR stack_dir
- +
- + static void
- + find_stack_direction (/* void */)
- + {
- + static char *addr = NULL; /* address of first
- + `dummy', once known */
- + auto char dummy; /* to get stack address */
- +
- + if (addr == NULL)
- + { /* initial entry */
- + addr = &dummy;
- +
- + find_stack_direction (); /* recurse once */
- + }
- + else /* second entry */
- + if (&dummy > addr)
- + stack_dir = 1; /* stack grew upward */
- + else
- + stack_dir = -1; /* stack grew downward */
- + }
- +
- + #endif /* STACK_DIRECTION == 0 */
- +
- + /*
- + An "alloca header" is used to:
- + (a) chain together all alloca()ed blocks;
- + (b) keep track of stack depth.
- +
- + It is very important that sizeof(header) agree with malloc()
- + alignment chunk size. The following default should work okay.
- + */
- +
- + #ifndef ALIGN_SIZE
- + #define ALIGN_SIZE sizeof(double)
- + #endif
- +
- + typedef union hdr
- + {
- + char align[ALIGN_SIZE]; /* to force sizeof(header) */
- + struct
- + {
- + union hdr *next; /* for chaining headers */
- + char *deep; /* for stack depth measure */
- + } h;
- + } header;
- +
- + /*
- + alloca( size ) returns a pointer to at least `size' bytes of
- + storage which will be automatically reclaimed upon exit from
- + the procedure that called alloca(). Originally, this space
- + was supposed to be taken from the current stack frame of the
- + caller, but that method cannot be made to work for some
- + implementations of C, for example under Gould's UTX/32.
- + */
- +
- + static header *last_alloca_header = NULL; /* -> last alloca header */
- +
- + pointer
- + alloca (size) /* returns pointer to storage */
- + unsigned size; /* # bytes to allocate */
- + {
- + auto char probe; /* probes stack depth: */
- + register char *depth = &probe;
- +
- + #if STACK_DIRECTION == 0
- + if (STACK_DIR == 0) /* unknown growth direction */
- + find_stack_direction ();
- + #endif
- +
- + /* Reclaim garbage, defined as all alloca()ed storage that
- + was allocated from deeper in the stack than currently. */
- +
- + {
- + register header *hp; /* traverses linked list */
- +
- + for (hp = last_alloca_header; hp != NULL;)
- + if (STACK_DIR > 0 && hp->h.deep > depth
- + || STACK_DIR < 0 && hp->h.deep < depth)
- + {
- + register header *np = hp->h.next;
- +
- + free ((pointer) hp); /* collect garbage */
- +
- + hp = np; /* -> next header */
- + }
- + else
- + break; /* rest are not deeper */
- +
- + last_alloca_header = hp; /* -> last valid storage */
- + }
- +
- + if (size == 0)
- + return NULL; /* no allocation required */
- +
- + /* Allocate combined header + user data storage. */
- +
- + {
- + register pointer new = malloc (sizeof (header) + size);
- + /* address of header */
- +
- + ((header *)new)->h.next = last_alloca_header;
- + ((header *)new)->h.deep = depth;
- +
- + last_alloca_header = (header *)new;
- +
- + /* User storage begins just after header. */
- +
- + return (pointer)((char *)new + sizeof(header));
- + }
- + }
- +
- + #endif /* no alloca */
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/allocdos.c emacs-18.59/amiga/unix/src/allocdos.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/allocdos.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/allocdos.c Sun Oct 11 13:04:22 1992
- ***************
- *** 0 ****
- --- 1,6 ----
- + #include <proto/dos.h>
- +
- + void *AllocDosObjectTags(ULONG type, ULONG tag1, ...)
- + {
- + return AllocDosObject(type, &tag1);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/amiga.h emacs-18.59/amiga/unix/src/amiga.h
- *** /src/baseline/emacs-18.59/amiga/unix/src/amiga.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/amiga.h Wed Dec 2 20:12:34 1992
- ***************
- *** 0 ****
- --- 1,39 ----
- + #include <exec/types.h>
- + #include <dos/dos.h>
- + #include <proto/dos.h>
- + #include <proto/exec.h>
- +
- + #include <errno.h>
- + #include <stddef.h>
- + #include <stdlib.h>
- + #include <stdio.h>
- + #include <sys/types.h>
- + #include <internal/vars.h>
- +
- + extern struct timeinfo *_odd_timer;
- + extern ULONG _odd_sig;
- + extern struct Library *TimerBase;
- +
- + int convert_oserr(int ioerr);
- + void _seterr(void);
- + void chkabort(void);
- +
- + #define ERROR do { _seterr(); return -1; } while(0)
- + #define AMIGA_UID 1
- + #define AMIGA_GID 0
- +
- + int _make_protection(int mode);
- + int _make_mode(int protection);
- +
- + void _message(char *format, ...);
- + /* Display a message which is as visible as possible (either to the console
- + or to as a requester).
- + Assume very little about library state */
- +
- + void _fail(char *format, ...);
- + /* Display a message which is as visible as possible (either to the console
- + or to as a requester).
- + Assume very little about library state.
- + Exit with error code RETURN_FAIL after that. */
- +
- + void _sprintf(char *dest, char *format, ...);
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/amigados.c emacs-18.59/amiga/unix/src/amigados.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/amigados.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/amigados.c Sun Dec 6 13:14:12 1992
- ***************
- *** 0 ****
- --- 1,299 ----
- + #include "amiga.h"
- + #include "files.h"
- + #include "signals.h"
- + #include <exec/memory.h>
- + #include <fcntl.h>
- + #include <sys/termios.h>
- + #include <amiga/ioctl.h>
- + #include <string.h>
- +
- + /* Code for fd's describing AmigaDOS files */
- +
- + struct amigainfo
- + {
- + BPTR fh;
- + BPTR lock; /* A lock on the file (may be null) */
- + long protection; /* To be set when file is closed, -1 for none */
- + char interactive; /* True if file was interactive */
- + char deleted; /* True if file has been deleted but not closed */
- + };
- +
- + static ULONG __regargs file_select_start(void *userinfo, int rd, int wr)
- + {
- + /* Input always immediately available, gniark */
- + return (ULONG)-1;
- + }
- +
- + static void __regargs file_select_poll(void *userinfo, int *rd, int *wr)
- + {
- + /* Input always immediately available, gniark */
- + }
- +
- + static int __regargs file_read(void *userinfo, void *buffer, unsigned int length)
- + {
- + struct amigainfo *info = userinfo;
- + BPTR fh = info->fh;
- + LONG cnt;
- +
- + if (info->deleted) return 0;
- + if ((cnt = Read(fh, buffer, length)) == -1) ERROR;
- + return (int)cnt;
- + }
- +
- + static int __regargs file_write(void *userinfo, void *buffer, unsigned int length)
- + {
- + struct amigainfo *info = userinfo;
- + BPTR fh = info->fh;
- + int cnt;
- +
- + if (info->deleted) return 0;
- + if (info->interactive)
- + {
- + char *bufend = (char *)buffer + length;
- +
- + /* Write by lines, more pleasant for user */
- + cnt = 0;
- + while (length)
- + {
- + char *end = buffer;
- + long nb;
- + unsigned len;
- +
- + while (end < bufend && *end != '\n') end++;
- + if (end == bufend) len = end - (char *)buffer;
- + else len = end + 1 - (char *)buffer;
- +
- + if ((nb = Write(fh, buffer, len)) == -1) ERROR;
- + cnt += nb;
- + if (nb != len) break;
- +
- + buffer = end + 1;
- + length -= nb;
- + /* Interrupt write ? */
- + if (_handle_signals(_check_signals(0))) break;
- + }
- + }
- + else if ((cnt = Write(fh, buffer, length)) == -1) ERROR;
- + return cnt;
- + }
- +
- + static int __regargs file_lseek(void *userinfo, long rpos, int mode)
- + {
- + struct amigainfo *info = userinfo;
- + BPTR fh = info->fh;
- + LONG pos, err;
- +
- + if (info->deleted) return 0;
- + pos = Seek(fh, rpos, mode - 1);
- + err = IoErr();
- + if (pos == -1 || err)
- + {
- + errno = convert_oserr(err);
- + return -1;
- + }
- + pos = Seek(fh, 0, OFFSET_CURRENT);
- + if (pos == -1 || err)
- + {
- + errno = convert_oserr(err);
- + return -1;
- + }
- + return pos;
- + }
- +
- + static int __regargs file_close(void *userinfo, int internal)
- + {
- + struct amigainfo *info = userinfo;
- + BPTR fh = info->fh;
- + long protection = info->protection;
- + char name[256];
- + int ok, deleted;
- +
- + if (info->lock) UnLock(info->lock);
- + deleted = info->deleted;
- + free(info);
- + if (deleted) return 0;
- +
- + ok = NameFromFH(fh, name, 256);
- + if (internal || Close(fh))
- + if (!ok || protection == -1 || SetProtection(name, protection)) return 0;
- + ERROR;
- + }
- +
- + static int isfifo(BPTR fh)
- + /* Requires: IsInteractive(fh) */
- + /* Try & find out if fh is a fifo: file */
- + {
- + WaitForChar(fh, 0);
- +
- + return IoErr() == ERROR_ACTION_NOT_KNOWN;
- + }
- +
- + static int GetWinBounds (BPTR fh, long *width, long *height)
- + {
- + char buffer[16];
- + int ok = 0;
- +
- + if (!isfifo(fh) && SetMode (fh, 1))
- + {
- + if ((Write (fh, "\x9b" "0 q", 4) == 4) &&
- + WaitForChar (fh, 10000L) &&
- + (Read (fh, buffer, sizeof (buffer)) > 9) &&
- + (buffer[0] == '\x9b'))
- + {
- + int y = StrToLong (buffer+5, height);
- + int x = StrToLong (buffer+5+y+1, width);
- + if ((x != -1) && (y != -1)) ok = 1;
- + }
- + SetMode (fh, 0);
- + }
- + return ok;
- + }
- +
- + int _do_truncate(BPTR fh, off_t length)
- + {
- + int err, ret = -1;
- + long oldsize, oldpos;
- +
- + oldpos = Seek(fh, 0, OFFSET_END);
- + oldsize = Seek(fh, 0, OFFSET_END);
- +
- + if (!(err = IoErr()) &&
- + SetFileSize(fh, length, OFFSET_BEGINNING) == length)
- + {
- + if (oldsize < length)
- + {
- + /* Zero extra bytes */
- + off_t bufsize = length - oldsize, left = bufsize;
- + char *buf;
- + char reserve[512];
- +
- + if (!(buf = AllocMem(bufsize, MEMF_CLEAR)))
- + {
- + bufsize = AvailMem(MEMF_LARGEST) / 2;
- +
- + if (bufsize < 512 || !(buf = AllocMem(bufsize, MEMF_CLEAR)))
- + {
- + bufsize = 512;
- + buf = reserve;
- + memset(reserve, 0, 512);
- + }
- + }
- + while (left > 0)
- + {
- + long count = left > bufsize ? bufsize : left;
- +
- + chkabort();
- + if (Write(fh, buf, count) != count)
- + {
- + err = IoErr();
- + break;
- + }
- + left -= count;
- + }
- + if (buf != reserve) FreeMem(buf, bufsize);
- + }
- + if (!err) ret = 0;
- + }
- + if (oldpos < length) Seek(fh, oldpos, OFFSET_BEGINNING);
- +
- + if (ret) errno = convert_oserr(err);
- + return ret;
- + }
- +
- + static int __regargs file_ioctl(void *userinfo, int request, void *data)
- + {
- + struct amigainfo *info = userinfo;
- + BPTR fh = info->fh;
- +
- + if (!info->deleted)
- + switch (request)
- + {
- + case TIOCGWINSZ: {
- + struct winsize *ws = data;
- + long col, row;
- +
- + if (info->interactive && GetWinBounds(fh, &col, &row))
- + {
- + ws->ws_col = col; ws->ws_row = row;
- + return 0;
- + }
- + errno = ENOTTY;
- + return -1;
- + }
- + case _AMIGA_INTERACTIVE: {
- + int *inter = data;
- +
- + *inter = IsInteractive(fh);
- + return 0;
- + }
- + case _AMIGA_GET_FH: {
- + BPTR *gotfh = data;
- +
- + *gotfh = fh;
- + return 0;
- + }
- + case _AMIGA_FREE_FH: return 0;
- + case _AMIGA_TRUNCATE: {
- + off_t length = *(off_t *)data;
- +
- + return _do_truncate(fh, length);
- + }
- + case _AMIGA_SETPROTECTION:
- + info->protection = *(long *)data;
- + return 0;
- + case _AMIGA_DELETE_IF_ME: {
- + BPTR nlock = *(BPTR *)data;
- +
- + if (!info->lock) info->lock = DupLockFromFH(info->fh);
- + if (info->lock && SameLock(nlock, info->lock) == LOCK_SAME)
- + {
- + char name[256];
- +
- + if (NameFromFH(fh, name, 256))
- + {
- + UnLock(nlock);
- + UnLock(info->lock);
- + Close(fh);
- + SetProtection(name, 0);
- + info->deleted = TRUE;
- + info->lock = info->fh = 0;
- + if (DeleteFile(name)) return 0;
- + }
- + }
- + ERROR;
- + }
- + }
- + errno = EINVAL;
- + return -1;
- + }
- +
- + int _alloc_amigafd(BPTR fh, long protection, long flags)
- + {
- + struct amigainfo *new = (struct amigainfo *)malloc(sizeof(struct amigainfo));
- + int fd;
- +
- + if (!new) { errno = ENOMEM; return -1; }
- + new->fh = fh;
- + new->lock = NULL;
- + new->protection = protection;
- + new->deleted = FALSE;
- + new->interactive = IsInteractive(fh);
- +
- + fd = _alloc_fd(new, flags,
- + file_select_start, file_select_poll, file_read, file_write,
- + file_lseek, file_close, file_ioctl);
- + if (fd < 0) free(new);
- +
- + return fd;
- + }
- +
- + void _init_unixio(BPTR in, int close_in, BPTR out, int close_out,
- + BPTR error, int close_error)
- + {
- + if (_alloc_amigafd(in, -1, FI_READ | (close_in ? 0 : O_NO_CLOSE)) == 0 &&
- + _alloc_amigafd(out, -1, FI_WRITE | (close_out ? 0 : O_NO_CLOSE)) == 1 &&
- + _alloc_amigafd(error, -1, FI_WRITE | (close_error ? 0 : O_NO_CLOSE)) == 2)
- + return;
- +
- + _fail("Failed to initialise I/O");
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/amigados.h emacs-18.59/amiga/unix/src/amigados.h
- *** /src/baseline/emacs-18.59/amiga/unix/src/amigados.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/amigados.h Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,10 ----
- + #ifndef AMIGADOS_H
- + #define AMIGADOS_H
- +
- + int _alloc_amigafd(BPTR fh, long protection, long flags);
- +
- + void _init_unixio(BPTR in, int close_in, BPTR out, int close_out,
- + BPTR error, int close_error);
- + int _do_truncate(BPTR fh, off_t length);
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/amigatime.c emacs-18.59/amiga/unix/src/amigatime.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/amigatime.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/amigatime.c Tue Aug 25 22:08:14 1992
- ***************
- *** 0 ****
- --- 1,55 ----
- + #include "amiga.h"
- + #include "timeconvert.h"
- + #include <sys/time.h>
- + #include <sys/timeb.h>
- + #include <string.h>
- +
- + extern char *tzname[2];
- + extern int daylight;
- +
- + int gettimeofday(struct timeval *tp, struct timezone *tzp)
- + {
- + struct timeval now;
- +
- + chkabort();
- +
- + _gettime(&now);
- + if (tp) *tp = now;
- +
- + if (tzp)
- + {
- + int dst;
- + struct tm *local;
- +
- + local = localtime(&now.tv_secs);
- +
- + tzp->tz_minuteswest = -local->tm_gmtoff / 60;
- + /* Guess a value for tz_dsttime, based on tzname[1] */
- + /* These guesses are not very good. */
- + dst = DST_NONE;
- + if (!strcmp(tzname[1], "MET DST")) dst = DST_MET;
- + else if (!strcmp(tzname[1], "WET DST")) dst = DST_WET;
- + else if (!strcmp(tzname[1], "EET DST")) dst = DST_EET;
- + else if (!strcmp(tzname[1], "EDT")) dst = DST_USA;
- + else if (!strcmp(tzname[1], "CDT")) dst = DST_USA;
- + else if (!strcmp(tzname[1], "MDT")) dst = DST_USA;
- + else if (!strcmp(tzname[1], "PDT")) dst = DST_USA;
- + else if (!strcmp(tzname[1], "AKDT")) dst = DST_USA;
- + tzp->tz_dsttime = dst;
- + }
- + return 0;
- + }
- +
- + int ftime(struct timeb *ft)
- + {
- + struct timeval now;
- + struct timezone zone;
- +
- + gettimeofday(&now, &zone);
- + ft->time = now.tv_sec;
- + ft->millitm = now.tv_usec;
- + ft->timezone = zone.tz_minuteswest;
- + ft->dstflag = daylight;
- +
- + return 0;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/bcmp.c emacs-18.59/amiga/unix/src/bcmp.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/bcmp.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/bcmp.c Wed Dec 2 19:59:32 1992
- ***************
- *** 0 ****
- --- 1,9 ----
- + #include "amiga.h"
- + #include <string.h>
- +
- + #undef bcmp
- +
- + int bcmp(char *b1, char *b2, int length)
- + {
- + return length == 0 ? 0 : memcmp(b2, b1, length);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/bcopy.c emacs-18.59/amiga/unix/src/bcopy.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/bcopy.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/bcopy.c Wed Dec 2 19:59:46 1992
- ***************
- *** 0 ****
- --- 1,10 ----
- + #include "amiga.h"
- + #include <string.h>
- +
- + #undef bcopy
- +
- + void bcopy(char *b1, char *b2, int length)
- + {
- + /* Unoptimised version */
- + memmove(b2, b1, length);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/bzero.c emacs-18.59/amiga/unix/src/bzero.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/bzero.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/bzero.c Wed Dec 2 19:59:04 1992
- ***************
- *** 0 ****
- --- 1,9 ----
- + #include "amiga.h"
- + #include <string.h>
- +
- + #undef bzero
- +
- + void bzero(char *b, int length)
- + {
- + memset(b, 0, length);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/chmod.c emacs-18.59/amiga/unix/src/chmod.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/chmod.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/chmod.c Wed Dec 2 19:52:06 1992
- ***************
- *** 0 ****
- --- 1,8 ----
- + #include "amiga.h"
- +
- + int chmod(const char *name, int mode)
- + {
- + chkabort();
- + if (SetProtection(name, _make_protection(mode))) return 0;
- + ERROR;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/chown.c emacs-18.59/amiga/unix/src/chown.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/chown.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/chown.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,4 ----
- + #include "amiga.h"
- +
- + int chown(char *path, int owner, int group) { return 0; }
- + int fchown(int fd, int owner, int group) { return 0; }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/close.c emacs-18.59/amiga/unix/src/close.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/close.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/close.c Fri Dec 4 22:17:50 1992
- ***************
- *** 0 ****
- --- 1,26 ----
- + #include "amiga.h"
- + #include "files.h"
- + #include <fcntl.h>
- +
- + #undef close
- +
- + int __close(int fd)
- + {
- + struct fileinfo *fi;
- +
- + chkabort();
- + if (fi = _find_fd(fd))
- + {
- + int err = fi->close(fi->userinfo, fi->flags & O_NO_CLOSE);
- +
- + _free_fd(fd);
- + return err;
- + }
- + return -1;
- + }
- +
- + int close(int fd)
- + {
- + return __close(fd);
- + }
- +
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/creat.c emacs-18.59/amiga/unix/src/creat.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/creat.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/creat.c Fri Dec 4 22:17:08 1992
- ***************
- *** 0 ****
- --- 1,17 ----
- + #include "amiga.h"
- + #include "files.h"
- + #include <fcntl.h>
- +
- + #undef creat
- +
- + int __creat(const char *file, int prot)
- + {
- + chkabort();
- + return open(file, O_WRONLY | O_CREAT | O_TRUNC, prot);
- + }
- +
- + int creat(const char *file, int prot)
- + {
- + return __creat(file, prot);
- + }
- +
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/ctime.c emacs-18.59/amiga/unix/src/ctime.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/ctime.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/ctime.c Sat Dec 5 11:00:58 1992
- ***************
- *** 0 ****
- --- 1,1381 ----
- + /*
- + * Copyright (c) 1987, 1989 Regents of the University of California.
- + * All rights reserved.
- + *
- + * This code is derived from software contributed to Berkeley by
- + * Arthur David Olson of the National Cancer Institute.
- + *
- + * Redistribution and use in source and binary forms, with or without
- + * modification, are permitted provided that the following conditions
- + * are met:
- + * 1. Redistributions of source code must retain the above copyright
- + * notice, this list of conditions and the following disclaimer.
- + * 2. Redistributions in binary form must reproduce the above copyright
- + * notice, this list of conditions and the following disclaimer in the
- + * documentation and/or other materials provided with the distribution.
- + * 3. All advertising materials mentioning features or use of this software
- + * must display the following acknowledgement:
- + * This product includes software developed by the University of
- + * California, Berkeley and its contributors.
- + * 4. Neither the name of the University nor the names of its contributors
- + * may be used to endorse or promote products derived from this software
- + * without specific prior written permission.
- + *
- + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- + * SUCH DAMAGE.
- + */
- +
- + #if defined(LIBC_SCCS) && !defined(lint)
- + static char sccsid[] = "@(#)ctime.c 5.26 (Berkeley) 2/23/91";
- + #endif /* LIBC_SCCS and not lint */
- +
- + /*
- + ** Leap second handling from Bradley White (bww@k.gp.cs.cmu.edu).
- + ** POSIX-style TZ environment variable handling from Guy Harris
- + ** (guy@auspex.com).
- + */
- +
- + /*LINTLIBRARY*/
- +
- + #include <sys/param.h>
- + #include <fcntl.h>
- + #include <time.h>
- + #include <tzfile.h>
- + #include <string.h>
- + #include <ctype.h>
- + #include <stdio.h>
- + #include <unistd.h>
- +
- + #ifdef __STDC__
- + #include <stdlib.h>
- +
- + #define P(s) s
- + #define alloc_size_t size_t
- + #define qsort_size_t size_t
- + #define fread_size_t size_t
- + #define fwrite_size_t size_t
- +
- + #else /* !defined __STDC__ */
- +
- + #define P(s) ()
- +
- + typedef char * genericptr_t;
- + typedef unsigned alloc_size_t;
- + typedef int qsort_size_t;
- + typedef int fread_size_t;
- + typedef int fwrite_size_t;
- +
- + extern char * calloc();
- + extern char * malloc();
- + extern char * realloc();
- + extern char * getenv();
- +
- + #endif /* !defined __STDC__ */
- +
- + extern time_t time();
- +
- + #define ACCESS_MODE O_RDONLY
- + #define OPEN_MODE O_RDONLY
- +
- + #ifndef WILDABBR
- + /*
- + ** Someone might make incorrect use of a time zone abbreviation:
- + ** 1. They might reference tzname[0] before calling tzset (explicitly
- + ** or implicitly).
- + ** 2. They might reference tzname[1] before calling tzset (explicitly
- + ** or implicitly).
- + ** 3. They might reference tzname[1] after setting to a time zone
- + ** in which Daylight Saving Time is never observed.
- + ** 4. They might reference tzname[0] after setting to a time zone
- + ** in which Standard Time is never observed.
- + ** 5. They might reference tm.TM_ZONE after calling offtime.
- + ** What's best to do in the above cases is open to debate;
- + ** for now, we just set things up so that in any of the five cases
- + ** WILDABBR is used. Another possibility: initialize tzname[0] to the
- + ** string "tzname[0] used before set", and similarly for the other cases.
- + ** And another: initialize tzname[0] to "ERA", with an explanation in the
- + ** manual page of what this "time zone abbreviation" means (doing this so
- + ** that tzname[0] has the "normal" length of three characters).
- + */
- + #define WILDABBR " "
- + #endif /* !defined WILDABBR */
- +
- + #ifndef TRUE
- + #define TRUE 1
- + #define FALSE 0
- + #endif /* !defined TRUE */
- +
- + static const char GMT[] = "GMT";
- +
- + struct ttinfo { /* time type information */
- + long tt_gmtoff; /* GMT offset in seconds */
- + int tt_isdst; /* used to set tm_isdst */
- + int tt_abbrind; /* abbreviation list index */
- + int tt_ttisstd; /* TRUE if transition is std time */
- + };
- +
- + struct lsinfo { /* leap second information */
- + time_t ls_trans; /* transition time */
- + long ls_corr; /* correction to apply */
- + };
- +
- + struct state {
- + int leapcnt;
- + int timecnt;
- + int typecnt;
- + int charcnt;
- + time_t ats[TZ_MAX_TIMES];
- + unsigned char types[TZ_MAX_TIMES];
- + struct ttinfo ttis[TZ_MAX_TYPES];
- + char chars[(TZ_MAX_CHARS + 1 > sizeof GMT) ?
- + TZ_MAX_CHARS + 1 : sizeof GMT];
- + struct lsinfo lsis[TZ_MAX_LEAPS];
- + };
- +
- + struct rule {
- + int r_type; /* type of rule--see below */
- + int r_day; /* day number of rule */
- + int r_week; /* week number of rule */
- + int r_mon; /* month number of rule */
- + long r_time; /* transition time of rule */
- + };
- +
- + #define JULIAN_DAY 0 /* Jn - Julian day */
- + #define DAY_OF_YEAR 1 /* n - day of year */
- + #define MONTH_NTH_DAY_OF_WEEK 2 /* Mm.n.d - month, week, day of week */
- +
- + /*
- + ** Prototypes for static functions.
- + */
- +
- + static long detzcode P((const char * codep));
- + static const char * getzname P((const char * strp));
- + static const char * getnum P((const char * strp, int * nump, int min,
- + int max));
- + static const char * getsecs P((const char * strp, long * secsp));
- + static const char * getoffset P((const char * strp, long * offsetp));
- + static const char * getrule P((const char * strp, struct rule * rulep));
- + static void gmtload P((struct state * sp));
- + static void gmtsub P((const time_t * timep, long offset,
- + struct tm * tmp));
- + static void localsub P((const time_t * timep, long offset,
- + struct tm * tmp));
- + static void normalize P((int * tensptr, int * unitsptr, int base));
- + static void settzname P((void));
- + static time_t time1 P((struct tm * tmp, void (* funcp)(),
- + long offset));
- + static time_t time2 P((struct tm *tmp, void (* funcp)(),
- + long offset, int * okayp));
- + static void timesub P((const time_t * timep, long offset,
- + const struct state * sp, struct tm * tmp));
- + static int tmcomp P((const struct tm * atmp,
- + const struct tm * btmp));
- + static time_t transtime P((time_t janfirst, int year,
- + const struct rule * rulep, long offset));
- + static int tzload P((const char * name, struct state * sp));
- + static int tzparse P((const char * name, struct state * sp,
- + int lastditch));
- +
- + #ifdef ALL_STATE
- + static struct state * lclptr;
- + static struct state * gmtptr;
- + #endif /* defined ALL_STATE */
- +
- + #ifndef ALL_STATE
- + static struct state lclmem;
- + static struct state gmtmem;
- + #define lclptr (&lclmem)
- + #define gmtptr (&gmtmem)
- + #endif /* State Farm */
- +
- + static int lcl_is_set;
- + static int gmt_is_set;
- +
- + char * tzname[2] = {
- + WILDABBR,
- + WILDABBR
- + };
- +
- + time_t timezone = 0;
- + int daylight = 0;
- +
- + #ifdef ALTZONE
- + time_t altzone = 0;
- + #endif /* defined ALTZONE */
- +
- + static long
- + detzcode(codep)
- + const char * const codep;
- + {
- + register long result;
- + register int i;
- +
- + result = 0;
- + for (i = 0; i < 4; ++i)
- + result = (result << 8) | (codep[i] & 0xff);
- + return result;
- + }
- +
- + static void
- + settzname()
- + {
- + register const struct state * const sp = lclptr;
- + register int i;
- +
- + tzname[0] = WILDABBR;
- + tzname[1] = WILDABBR;
- + daylight = 0;
- + timezone = 0;
- + #ifdef ALTZONE
- + altzone = 0;
- + #endif /* defined ALTZONE */
- + #ifdef ALL_STATE
- + if (sp == NULL) {
- + tzname[0] = tzname[1] = GMT;
- + return;
- + }
- + #endif /* defined ALL_STATE */
- + for (i = 0; i < sp->typecnt; ++i) {
- + register const struct ttinfo * const ttisp = &sp->ttis[i];
- +
- + tzname[ttisp->tt_isdst] =
- + (char *) &sp->chars[ttisp->tt_abbrind];
- + if (ttisp->tt_isdst)
- + daylight = 1;
- + if (i == 0 || !ttisp->tt_isdst)
- + timezone = -(ttisp->tt_gmtoff);
- + #ifdef ALTZONE
- + if (i == 0 || ttisp->tt_isdst)
- + altzone = -(ttisp->tt_gmtoff);
- + #endif /* defined ALTZONE */
- + }
- + /*
- + ** And to get the latest zone names into tzname. . .
- + */
- + for (i = 0; i < sp->timecnt; ++i) {
- + register const struct ttinfo * const ttisp =
- + &sp->ttis[sp->types[i]];
- +
- + tzname[ttisp->tt_isdst] =
- + (char *) &sp->chars[ttisp->tt_abbrind];
- + }
- + }
- +
- + static int
- + tzload(name, sp)
- + register const char * name;
- + register struct state * const sp;
- + {
- + register const char * p;
- + register int i;
- + register int fid;
- +
- + if (name == NULL && (name = TZDEFAULT) == NULL)
- + return -1;
- + {
- + char fullname[FILENAME_MAX + 1];
- +
- + if (name[0] == ':')
- + ++name;
- + if (!strchr(name, ':')) {
- + if ((p = TZDIR) == NULL)
- + return -1;
- + if ((strlen(p) + strlen(name) + 1) >= sizeof fullname)
- + return -1;
- + (void) strcpy(fullname, p);
- + (void) strcat(fullname, "/");
- + (void) strcat(fullname, name);
- + name = fullname;
- + }
- + if ((fid = open(name, OPEN_MODE)) == -1)
- + return -1;
- + }
- + {
- + register const struct tzhead * tzhp;
- + char buf[sizeof *sp + sizeof *tzhp];
- + int ttisstdcnt;
- +
- + i = read(fid, buf, sizeof buf);
- + if (close(fid) != 0 || i < sizeof *tzhp)
- + return -1;
- + tzhp = (struct tzhead *) buf;
- + ttisstdcnt = (int) detzcode(tzhp->tzh_ttisstdcnt);
- + sp->leapcnt = (int) detzcode(tzhp->tzh_leapcnt);
- + sp->timecnt = (int) detzcode(tzhp->tzh_timecnt);
- + sp->typecnt = (int) detzcode(tzhp->tzh_typecnt);
- + sp->charcnt = (int) detzcode(tzhp->tzh_charcnt);
- + if (sp->leapcnt < 0 || sp->leapcnt > TZ_MAX_LEAPS ||
- + sp->typecnt <= 0 || sp->typecnt > TZ_MAX_TYPES ||
- + sp->timecnt < 0 || sp->timecnt > TZ_MAX_TIMES ||
- + sp->charcnt < 0 || sp->charcnt > TZ_MAX_CHARS ||
- + (ttisstdcnt != sp->typecnt && ttisstdcnt != 0))
- + return -1;
- + if (i < sizeof *tzhp +
- + sp->timecnt * (4 + sizeof (char)) +
- + sp->typecnt * (4 + 2 * sizeof (char)) +
- + sp->charcnt * sizeof (char) +
- + sp->leapcnt * 2 * 4 +
- + ttisstdcnt * sizeof (char))
- + return -1;
- + p = buf + sizeof *tzhp;
- + for (i = 0; i < sp->timecnt; ++i) {
- + sp->ats[i] = detzcode(p);
- + p += 4;
- + }
- + for (i = 0; i < sp->timecnt; ++i) {
- + sp->types[i] = (unsigned char) *p++;
- + if (sp->types[i] >= sp->typecnt)
- + return -1;
- + }
- + for (i = 0; i < sp->typecnt; ++i) {
- + register struct ttinfo * ttisp;
- +
- + ttisp = &sp->ttis[i];
- + ttisp->tt_gmtoff = detzcode(p);
- + p += 4;
- + ttisp->tt_isdst = (unsigned char) *p++;
- + if (ttisp->tt_isdst != 0 && ttisp->tt_isdst != 1)
- + return -1;
- + ttisp->tt_abbrind = (unsigned char) *p++;
- + if (ttisp->tt_abbrind < 0 ||
- + ttisp->tt_abbrind > sp->charcnt)
- + return -1;
- + }
- + for (i = 0; i < sp->charcnt; ++i)
- + sp->chars[i] = *p++;
- + sp->chars[i] = '\0'; /* ensure '\0' at end */
- + for (i = 0; i < sp->leapcnt; ++i) {
- + register struct lsinfo * lsisp;
- +
- + lsisp = &sp->lsis[i];
- + lsisp->ls_trans = detzcode(p);
- + p += 4;
- + lsisp->ls_corr = detzcode(p);
- + p += 4;
- + }
- + for (i = 0; i < sp->typecnt; ++i) {
- + register struct ttinfo * ttisp;
- +
- + ttisp = &sp->ttis[i];
- + if (ttisstdcnt == 0)
- + ttisp->tt_ttisstd = FALSE;
- + else {
- + ttisp->tt_ttisstd = *p++;
- + if (ttisp->tt_ttisstd != TRUE &&
- + ttisp->tt_ttisstd != FALSE)
- + return -1;
- + }
- + }
- + }
- + return 0;
- + }
- +
- + static const int mon_lengths[2][MONSPERYEAR] = {
- + 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,
- + 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
- + };
- +
- + static const int year_lengths[2] = {
- + DAYSPERNYEAR, DAYSPERLYEAR
- + };
- +
- + /*
- + ** Given a pointer into a time zone string, scan until a character that is not
- + ** a valid character in a zone name is found. Return a pointer to that
- + ** character.
- + */
- +
- + static const char *
- + getzname(strp)
- + register const char * strp;
- + {
- + register char c;
- +
- + while ((c = *strp) != '\0' && !isdigit(c) && c != ',' && c != '-' &&
- + c != '+')
- + ++strp;
- + return strp;
- + }
- +
- + /*
- + ** Given a pointer into a time zone string, extract a number from that string.
- + ** Check that the number is within a specified range; if it is not, return
- + ** NULL.
- + ** Otherwise, return a pointer to the first character not part of the number.
- + */
- +
- + static const char *
- + getnum(strp, nump, min, max)
- + register const char * strp;
- + int * const nump;
- + const int min;
- + const int max;
- + {
- + register char c;
- + register int num;
- +
- + if (strp == NULL || !isdigit(*strp))
- + return NULL;
- + num = 0;
- + while ((c = *strp) != '\0' && isdigit(c)) {
- + num = num * 10 + (c - '0');
- + if (num > max)
- + return NULL; /* illegal value */
- + ++strp;
- + }
- + if (num < min)
- + return NULL; /* illegal value */
- + *nump = num;
- + return strp;
- + }
- +
- + /*
- + ** Given a pointer into a time zone string, extract a number of seconds,
- + ** in hh[:mm[:ss]] form, from the string.
- + ** If any error occurs, return NULL.
- + ** Otherwise, return a pointer to the first character not part of the number
- + ** of seconds.
- + */
- +
- + static const char *
- + getsecs(strp, secsp)
- + register const char * strp;
- + long * const secsp;
- + {
- + int num;
- +
- + strp = getnum(strp, &num, 0, HOURSPERDAY);
- + if (strp == NULL)
- + return NULL;
- + *secsp = num * SECSPERHOUR;
- + if (*strp == ':') {
- + ++strp;
- + strp = getnum(strp, &num, 0, MINSPERHOUR - 1);
- + if (strp == NULL)
- + return NULL;
- + *secsp += num * SECSPERMIN;
- + if (*strp == ':') {
- + ++strp;
- + strp = getnum(strp, &num, 0, SECSPERMIN - 1);
- + if (strp == NULL)
- + return NULL;
- + *secsp += num;
- + }
- + }
- + return strp;
- + }
- +
- + /*
- + ** Given a pointer into a time zone string, extract an offset, in
- + ** [+-]hh[:mm[:ss]] form, from the string.
- + ** If any error occurs, return NULL.
- + ** Otherwise, return a pointer to the first character not part of the time.
- + */
- +
- + static const char *
- + getoffset(strp, offsetp)
- + register const char * strp;
- + long * const offsetp;
- + {
- + register int neg;
- +
- + if (*strp == '-') {
- + neg = 1;
- + ++strp;
- + } else if (isdigit(*strp) || *strp++ == '+')
- + neg = 0;
- + else return NULL; /* illegal offset */
- + strp = getsecs(strp, offsetp);
- + if (strp == NULL)
- + return NULL; /* illegal time */
- + if (neg)
- + *offsetp = -*offsetp;
- + return strp;
- + }
- +
- + /*
- + ** Given a pointer into a time zone string, extract a rule in the form
- + ** date[/time]. See POSIX section 8 for the format of "date" and "time".
- + ** If a valid rule is not found, return NULL.
- + ** Otherwise, return a pointer to the first character not part of the rule.
- + */
- +
- + static const char *
- + getrule(strp, rulep)
- + const char * strp;
- + register struct rule * const rulep;
- + {
- + if (*strp == 'J') {
- + /*
- + ** Julian day.
- + */
- + rulep->r_type = JULIAN_DAY;
- + ++strp;
- + strp = getnum(strp, &rulep->r_day, 1, DAYSPERNYEAR);
- + } else if (*strp == 'M') {
- + /*
- + ** Month, week, day.
- + */
- + rulep->r_type = MONTH_NTH_DAY_OF_WEEK;
- + ++strp;
- + strp = getnum(strp, &rulep->r_mon, 1, MONSPERYEAR);
- + if (strp == NULL)
- + return NULL;
- + if (*strp++ != '.')
- + return NULL;
- + strp = getnum(strp, &rulep->r_week, 1, 5);
- + if (strp == NULL)
- + return NULL;
- + if (*strp++ != '.')
- + return NULL;
- + strp = getnum(strp, &rulep->r_day, 0, DAYSPERWEEK - 1);
- + } else if (isdigit(*strp)) {
- + /*
- + ** Day of year.
- + */
- + rulep->r_type = DAY_OF_YEAR;
- + strp = getnum(strp, &rulep->r_day, 0, DAYSPERLYEAR - 1);
- + } else return NULL; /* invalid format */
- + if (strp == NULL)
- + return NULL;
- + if (*strp == '/') {
- + /*
- + ** Time specified.
- + */
- + ++strp;
- + strp = getsecs(strp, &rulep->r_time);
- + } else rulep->r_time = 2 * SECSPERHOUR; /* default = 2:00:00 */
- + return strp;
- + }
- +
- + /*
- + ** Given the Epoch-relative time of January 1, 00:00:00 GMT, in a year, the
- + ** year, a rule, and the offset from GMT at the time that rule takes effect,
- + ** calculate the Epoch-relative time that rule takes effect.
- + */
- +
- + static time_t
- + transtime(janfirst, year, rulep, offset)
- + const time_t janfirst;
- + const int year;
- + register const struct rule * const rulep;
- + const long offset;
- + {
- + register int leapyear;
- + register time_t value;
- + register int i;
- + int d, m1, yy0, yy1, yy2, dow;
- +
- + leapyear = isleap(year);
- + switch (rulep->r_type) {
- +
- + case JULIAN_DAY:
- + /*
- + ** Jn - Julian day, 1 == January 1, 60 == March 1 even in leap
- + ** years.
- + ** In non-leap years, or if the day number is 59 or less, just
- + ** add SECSPERDAY times the day number-1 to the time of
- + ** January 1, midnight, to get the day.
- + */
- + value = janfirst + (rulep->r_day - 1) * SECSPERDAY;
- + if (leapyear && rulep->r_day >= 60)
- + value += SECSPERDAY;
- + break;
- +
- + case DAY_OF_YEAR:
- + /*
- + ** n - day of year.
- + ** Just add SECSPERDAY times the day number to the time of
- + ** January 1, midnight, to get the day.
- + */
- + value = janfirst + rulep->r_day * SECSPERDAY;
- + break;
- +
- + case MONTH_NTH_DAY_OF_WEEK:
- + /*
- + ** Mm.n.d - nth "dth day" of month m.
- + */
- + value = janfirst;
- + for (i = 0; i < rulep->r_mon - 1; ++i)
- + value += mon_lengths[leapyear][i] * SECSPERDAY;
- +
- + /*
- + ** Use Zeller's Congruence to get day-of-week of first day of
- + ** month.
- + */
- + m1 = (rulep->r_mon + 9) % 12 + 1;
- + yy0 = (rulep->r_mon <= 2) ? (year - 1) : year;
- + yy1 = yy0 / 100;
- + yy2 = yy0 % 100;
- + dow = ((26 * m1 - 2) / 10 +
- + 1 + yy2 + yy2 / 4 + yy1 / 4 - 2 * yy1) % 7;
- + if (dow < 0)
- + dow += DAYSPERWEEK;
- +
- + /*
- + ** "dow" is the day-of-week of the first day of the month. Get
- + ** the day-of-month (zero-origin) of the first "dow" day of the
- + ** month.
- + */
- + d = rulep->r_day - dow;
- + if (d < 0)
- + d += DAYSPERWEEK;
- + for (i = 1; i < rulep->r_week; ++i) {
- + if (d + DAYSPERWEEK >=
- + mon_lengths[leapyear][rulep->r_mon - 1])
- + break;
- + d += DAYSPERWEEK;
- + }
- +
- + /*
- + ** "d" is the day-of-month (zero-origin) of the day we want.
- + */
- + value += d * SECSPERDAY;
- + break;
- + }
- +
- + /*
- + ** "value" is the Epoch-relative time of 00:00:00 GMT on the day in
- + ** question. To get the Epoch-relative time of the specified local
- + ** time on that day, add the transition time and the current offset
- + ** from GMT.
- + */
- + return value + rulep->r_time + offset;
- + }
- +
- + /*
- + ** Given a POSIX section 8-style TZ string, fill in the rule tables as
- + ** appropriate.
- + */
- +
- + static int
- + tzparse(name, sp, lastditch)
- + const char * name;
- + register struct state * const sp;
- + const int lastditch;
- + {
- + const char * stdname;
- + const char * dstname;
- + int stdlen;
- + int dstlen;
- + long stdoffset;
- + long dstoffset;
- + register time_t * atp;
- + register unsigned char * typep;
- + register char * cp;
- + register int load_result;
- +
- + stdname = name;
- + if (lastditch) {
- + stdlen = strlen(name); /* length of standard zone name */
- + name += stdlen;
- + if (stdlen >= sizeof sp->chars)
- + stdlen = (sizeof sp->chars) - 1;
- + } else {
- + name = getzname(name);
- + stdlen = name - stdname;
- + if (stdlen < 3)
- + return -1;
- + }
- + if (*name == '\0')
- + return -1;
- + else {
- + name = getoffset(name, &stdoffset);
- + if (name == NULL)
- + return -1;
- + }
- + load_result = tzload(TZDEFRULES, sp);
- + if (load_result != 0)
- + sp->leapcnt = 0; /* so, we're off a little */
- + if (*name != '\0') {
- + dstname = name;
- + name = getzname(name);
- + dstlen = name - dstname; /* length of DST zone name */
- + if (dstlen < 3)
- + return -1;
- + if (*name != '\0' && *name != ',' && *name != ';') {
- + name = getoffset(name, &dstoffset);
- + if (name == NULL)
- + return -1;
- + } else dstoffset = stdoffset - SECSPERHOUR;
- + if (*name == ',' || *name == ';') {
- + struct rule start;
- + struct rule end;
- + register int year;
- + register time_t janfirst;
- + time_t starttime;
- + time_t endtime;
- +
- + ++name;
- + if ((name = getrule(name, &start)) == NULL)
- + return -1;
- + if (*name++ != ',')
- + return -1;
- + if ((name = getrule(name, &end)) == NULL)
- + return -1;
- + if (*name != '\0')
- + return -1;
- + sp->typecnt = 2; /* standard time and DST */
- + /*
- + ** Two transitions per year, from EPOCH_YEAR to 2037.
- + */
- + sp->timecnt = 2 * (2037 - EPOCH_YEAR + 1);
- + if (sp->timecnt > TZ_MAX_TIMES)
- + return -1;
- + sp->ttis[0].tt_gmtoff = -dstoffset;
- + sp->ttis[0].tt_isdst = 1;
- + sp->ttis[0].tt_abbrind = stdlen + 1;
- + sp->ttis[1].tt_gmtoff = -stdoffset;
- + sp->ttis[1].tt_isdst = 0;
- + sp->ttis[1].tt_abbrind = 0;
- + atp = sp->ats;
- + typep = sp->types;
- + janfirst = 0;
- + for (year = EPOCH_YEAR; year <= 2037; ++year) {
- + starttime = transtime(janfirst, year, &start,
- + stdoffset);
- + endtime = transtime(janfirst, year, &end,
- + dstoffset);
- + if (starttime > endtime) {
- + *atp++ = endtime;
- + *typep++ = 1; /* DST ends */
- + *atp++ = starttime;
- + *typep++ = 0; /* DST begins */
- + } else {
- + *atp++ = starttime;
- + *typep++ = 0; /* DST begins */
- + *atp++ = endtime;
- + *typep++ = 1; /* DST ends */
- + }
- + janfirst +=
- + year_lengths[isleap(year)] * SECSPERDAY;
- + }
- + } else {
- + int sawstd;
- + int sawdst;
- + long stdfix;
- + long dstfix;
- + long oldfix;
- + int isdst;
- + register int i;
- +
- + if (*name != '\0')
- + return -1;
- + if (load_result != 0)
- + return -1;
- + /*
- + ** Compute the difference between the real and
- + ** prototype standard and summer time offsets
- + ** from GMT, and put the real standard and summer
- + ** time offsets into the rules in place of the
- + ** prototype offsets.
- + */
- + sawstd = FALSE;
- + sawdst = FALSE;
- + stdfix = 0;
- + dstfix = 0;
- + for (i = 0; i < sp->typecnt; ++i) {
- + if (sp->ttis[i].tt_isdst) {
- + oldfix = dstfix;
- + dstfix =
- + sp->ttis[i].tt_gmtoff + dstoffset;
- + if (sawdst && (oldfix != dstfix))
- + return -1;
- + sp->ttis[i].tt_gmtoff = -dstoffset;
- + sp->ttis[i].tt_abbrind = stdlen + 1;
- + sawdst = TRUE;
- + } else {
- + oldfix = stdfix;
- + stdfix =
- + sp->ttis[i].tt_gmtoff + stdoffset;
- + if (sawstd && (oldfix != stdfix))
- + return -1;
- + sp->ttis[i].tt_gmtoff = -stdoffset;
- + sp->ttis[i].tt_abbrind = 0;
- + sawstd = TRUE;
- + }
- + }
- + /*
- + ** Make sure we have both standard and summer time.
- + */
- + if (!sawdst || !sawstd)
- + return -1;
- + /*
- + ** Now correct the transition times by shifting
- + ** them by the difference between the real and
- + ** prototype offsets. Note that this difference
- + ** can be different in standard and summer time;
- + ** the prototype probably has a 1-hour difference
- + ** between standard and summer time, but a different
- + ** difference can be specified in TZ.
- + */
- + isdst = FALSE; /* we start in standard time */
- + for (i = 0; i < sp->timecnt; ++i) {
- + register const struct ttinfo * ttisp;
- +
- + /*
- + ** If summer time is in effect, and the
- + ** transition time was not specified as
- + ** standard time, add the summer time
- + ** offset to the transition time;
- + ** otherwise, add the standard time offset
- + ** to the transition time.
- + */
- + ttisp = &sp->ttis[sp->types[i]];
- + sp->ats[i] +=
- + (isdst && !ttisp->tt_ttisstd) ?
- + dstfix : stdfix;
- + isdst = ttisp->tt_isdst;
- + }
- + }
- + } else {
- + dstlen = 0;
- + sp->typecnt = 1; /* only standard time */
- + sp->timecnt = 0;
- + sp->ttis[0].tt_gmtoff = -stdoffset;
- + sp->ttis[0].tt_isdst = 0;
- + sp->ttis[0].tt_abbrind = 0;
- + }
- + sp->charcnt = stdlen + 1;
- + if (dstlen != 0)
- + sp->charcnt += dstlen + 1;
- + if (sp->charcnt > sizeof sp->chars)
- + return -1;
- + cp = sp->chars;
- + (void) strncpy(cp, stdname, stdlen);
- + cp += stdlen;
- + *cp++ = '\0';
- + if (dstlen != 0) {
- + (void) strncpy(cp, dstname, dstlen);
- + *(cp + dstlen) = '\0';
- + }
- + return 0;
- + }
- +
- + static void
- + gmtload(sp)
- + struct state * const sp;
- + {
- + if (tzload(GMT, sp) != 0)
- + (void) tzparse(GMT, sp, TRUE);
- + }
- +
- + void
- + tzset()
- + {
- + register const char * name;
- + void tzsetwall();
- +
- + name = getenv("UNIXTZ");
- + if (name == NULL) {
- + tzsetwall();
- + return;
- + }
- + lcl_is_set = TRUE;
- + #ifdef ALL_STATE
- + if (lclptr == NULL) {
- + lclptr = (struct state *) malloc(sizeof *lclptr);
- + if (lclptr == NULL) {
- + settzname(); /* all we can do */
- + return;
- + }
- + }
- + #endif /* defined ALL_STATE */
- + if (*name == '\0') {
- + /*
- + ** User wants it fast rather than right.
- + */
- + lclptr->leapcnt = 0; /* so, we're off a little */
- + lclptr->timecnt = 0;
- + lclptr->ttis[0].tt_gmtoff = 0;
- + lclptr->ttis[0].tt_abbrind = 0;
- + (void) strcpy(lclptr->chars, GMT);
- + } else if (tzload(name, lclptr) != 0)
- + if (name[0] == ':' || tzparse(name, lclptr, FALSE) != 0)
- + (void) gmtload(lclptr);
- + settzname();
- + }
- +
- + void
- + tzsetwall()
- + {
- + lcl_is_set = TRUE;
- + #ifdef ALL_STATE
- + if (lclptr == NULL) {
- + lclptr = (struct state *) malloc(sizeof *lclptr);
- + if (lclptr == NULL) {
- + settzname(); /* all we can do */
- + return;
- + }
- + }
- + #endif /* defined ALL_STATE */
- + if (tzload((char *) NULL, lclptr) != 0)
- + gmtload(lclptr);
- + settzname();
- + }
- +
- + /*
- + ** The easy way to behave "as if no library function calls" localtime
- + ** is to not call it--so we drop its guts into "localsub", which can be
- + ** freely called. (And no, the PANS doesn't require the above behavior--
- + ** but it *is* desirable.)
- + **
- + ** The unused offset argument is for the benefit of mktime variants.
- + */
- +
- + /*ARGSUSED*/
- + static void
- + localsub(timep, offset, tmp)
- + const time_t * const timep;
- + const long offset;
- + struct tm * const tmp;
- + {
- + register struct state * sp;
- + register const struct ttinfo * ttisp;
- + register int i;
- + const time_t t = *timep;
- +
- + if (!lcl_is_set)
- + tzset();
- + sp = lclptr;
- + #ifdef ALL_STATE
- + if (sp == NULL) {
- + gmtsub(timep, offset, tmp);
- + return;
- + }
- + #endif /* defined ALL_STATE */
- + if (sp->timecnt == 0 || t < sp->ats[0]) {
- + i = 0;
- + while (sp->ttis[i].tt_isdst)
- + if (++i >= sp->typecnt) {
- + i = 0;
- + break;
- + }
- + } else {
- + for (i = 1; i < sp->timecnt; ++i)
- + if (t < sp->ats[i])
- + break;
- + i = sp->types[i - 1];
- + }
- + ttisp = &sp->ttis[i];
- + /*
- + ** To get (wrong) behavior that's compatible with System V Release 2.0
- + ** you'd replace the statement below with
- + ** t += ttisp->tt_gmtoff;
- + ** timesub(&t, 0L, sp, tmp);
- + */
- + timesub(&t, ttisp->tt_gmtoff, sp, tmp);
- + tmp->tm_isdst = ttisp->tt_isdst;
- + tzname[tmp->tm_isdst] = (char *) &sp->chars[ttisp->tt_abbrind];
- + tmp->tm_zone = &sp->chars[ttisp->tt_abbrind];
- + }
- +
- + struct tm *
- + localtime(timep)
- + const time_t * const timep;
- + {
- + static struct tm tm;
- +
- + localsub(timep, 0L, &tm);
- + return &tm;
- + }
- +
- + /*
- + ** gmtsub is to gmtime as localsub is to localtime.
- + */
- +
- + static void
- + gmtsub(timep, offset, tmp)
- + const time_t * const timep;
- + const long offset;
- + struct tm * const tmp;
- + {
- + if (!gmt_is_set) {
- + gmt_is_set = TRUE;
- + #ifdef ALL_STATE
- + gmtptr = (struct state *) malloc(sizeof *gmtptr);
- + if (gmtptr != NULL)
- + #endif /* defined ALL_STATE */
- + gmtload(gmtptr);
- + }
- + timesub(timep, offset, gmtptr, tmp);
- + /*
- + ** Could get fancy here and deliver something such as
- + ** "GMT+xxxx" or "GMT-xxxx" if offset is non-zero,
- + ** but this is no time for a treasure hunt.
- + */
- + if (offset != 0)
- + tmp->tm_zone = WILDABBR;
- + else {
- + #ifdef ALL_STATE
- + if (gmtptr == NULL)
- + tmp->TM_ZONE = GMT;
- + else tmp->TM_ZONE = gmtptr->chars;
- + #endif /* defined ALL_STATE */
- + #ifndef ALL_STATE
- + tmp->tm_zone = gmtptr->chars;
- + #endif /* State Farm */
- + }
- + }
- +
- + struct tm *
- + gmtime(timep)
- + const time_t * const timep;
- + {
- + static struct tm tm;
- +
- + gmtsub(timep, 0L, &tm);
- + return &tm;
- + }
- +
- + static void
- + timesub(timep, offset, sp, tmp)
- + const time_t * const timep;
- + const long offset;
- + register const struct state * const sp;
- + register struct tm * const tmp;
- + {
- + register const struct lsinfo * lp;
- + register long days;
- + register long rem;
- + register int y;
- + register int yleap;
- + register const int * ip;
- + register long corr;
- + register int hit;
- + register int i;
- +
- + corr = 0;
- + hit = FALSE;
- + #ifdef ALL_STATE
- + i = (sp == NULL) ? 0 : sp->leapcnt;
- + #endif /* defined ALL_STATE */
- + #ifndef ALL_STATE
- + i = sp->leapcnt;
- + #endif /* State Farm */
- + while (--i >= 0) {
- + lp = &sp->lsis[i];
- + if (*timep >= lp->ls_trans) {
- + if (*timep == lp->ls_trans)
- + hit = ((i == 0 && lp->ls_corr > 0) ||
- + lp->ls_corr > sp->lsis[i - 1].ls_corr);
- + corr = lp->ls_corr;
- + break;
- + }
- + }
- + days = *timep / SECSPERDAY;
- + rem = *timep % SECSPERDAY;
- + #ifdef mc68k
- + if (*timep == 0x80000000) {
- + /*
- + ** A 3B1 muffs the division on the most negative number.
- + */
- + days = -24855;
- + rem = -11648;
- + }
- + #endif /* mc68k */
- + rem += (offset - corr);
- + while (rem < 0) {
- + rem += SECSPERDAY;
- + --days;
- + }
- + while (rem >= SECSPERDAY) {
- + rem -= SECSPERDAY;
- + ++days;
- + }
- + tmp->tm_hour = (int) (rem / SECSPERHOUR);
- + rem = rem % SECSPERHOUR;
- + tmp->tm_min = (int) (rem / SECSPERMIN);
- + tmp->tm_sec = (int) (rem % SECSPERMIN);
- + if (hit)
- + /*
- + ** A positive leap second requires a special
- + ** representation. This uses "... ??:59:60".
- + */
- + ++(tmp->tm_sec);
- + tmp->tm_wday = (int) ((EPOCH_WDAY + days) % DAYSPERWEEK);
- + if (tmp->tm_wday < 0)
- + tmp->tm_wday += DAYSPERWEEK;
- + y = EPOCH_YEAR;
- + if (days >= 0)
- + for ( ; ; ) {
- + yleap = isleap(y);
- + if (days < (long) year_lengths[yleap])
- + break;
- + ++y;
- + days = days - (long) year_lengths[yleap];
- + }
- + else do {
- + --y;
- + yleap = isleap(y);
- + days = days + (long) year_lengths[yleap];
- + } while (days < 0);
- + tmp->tm_year = y - TM_YEAR_BASE;
- + tmp->tm_yday = (int) days;
- + ip = mon_lengths[yleap];
- + for (tmp->tm_mon = 0; days >= (long) ip[tmp->tm_mon]; ++(tmp->tm_mon))
- + days = days - (long) ip[tmp->tm_mon];
- + tmp->tm_mday = (int) (days + 1);
- + tmp->tm_isdst = 0;
- + tmp->tm_gmtoff = offset;
- + }
- +
- + /*
- + ** A la X3J11
- + */
- +
- + char *
- + asctime(timeptr)
- + register const struct tm * timeptr;
- + {
- + static const char wday_name[DAYSPERWEEK][3] = {
- + "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
- + };
- + static const char mon_name[MONSPERYEAR][3] = {
- + "Jan", "Feb", "Mar", "Apr", "May", "Jun",
- + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
- + };
- + static char result[26];
- +
- + (void) sprintf(result, "%.3s %.3s%3d %02.2d:%02.2d:%02.2d %d\n",
- + wday_name[timeptr->tm_wday],
- + mon_name[timeptr->tm_mon],
- + timeptr->tm_mday, timeptr->tm_hour,
- + timeptr->tm_min, timeptr->tm_sec,
- + TM_YEAR_BASE + timeptr->tm_year);
- + return result;
- + }
- +
- + char *
- + ctime(timep)
- + const time_t * const timep;
- + {
- + return asctime(localtime(timep));
- + }
- +
- + /*
- + ** Adapted from code provided by Robert Elz, who writes:
- + ** The "best" way to do mktime I think is based on an idea of Bob
- + ** Kridle's (so its said...) from a long time ago. (mtxinu!kridle now).
- + ** It does a binary search of the time_t space. Since time_t's are
- + ** just 32 bits, its a max of 32 iterations (even at 64 bits it
- + ** would still be very reasonable).
- + */
- +
- + #ifndef WRONG
- + #define WRONG (-1)
- + #endif /* !defined WRONG */
- +
- + static void
- + normalize(tensptr, unitsptr, base)
- + int * const tensptr;
- + int * const unitsptr;
- + const int base;
- + {
- + if (*unitsptr >= base) {
- + *tensptr += *unitsptr / base;
- + *unitsptr %= base;
- + } else if (*unitsptr < 0) {
- + --*tensptr;
- + *unitsptr += base;
- + if (*unitsptr < 0) {
- + *tensptr -= 1 + (-*unitsptr) / base;
- + *unitsptr = base - (-*unitsptr) % base;
- + }
- + }
- + }
- +
- + static int
- + tmcomp(atmp, btmp)
- + register const struct tm * const atmp;
- + register const struct tm * const btmp;
- + {
- + register int result;
- +
- + if ((result = (atmp->tm_year - btmp->tm_year)) == 0 &&
- + (result = (atmp->tm_mon - btmp->tm_mon)) == 0 &&
- + (result = (atmp->tm_mday - btmp->tm_mday)) == 0 &&
- + (result = (atmp->tm_hour - btmp->tm_hour)) == 0 &&
- + (result = (atmp->tm_min - btmp->tm_min)) == 0)
- + result = atmp->tm_sec - btmp->tm_sec;
- + return result;
- + }
- +
- + static time_t
- + time2(tmp, funcp, offset, okayp)
- + struct tm * const tmp;
- + void (* const funcp)();
- + const long offset;
- + int * const okayp;
- + {
- + register const struct state * sp;
- + register int dir;
- + register int bits;
- + register int i, j ;
- + register int saved_seconds;
- + time_t newt;
- + time_t t;
- + struct tm yourtm, mytm;
- +
- + *okayp = FALSE;
- + yourtm = *tmp;
- + if (yourtm.tm_sec >= SECSPERMIN + 2 || yourtm.tm_sec < 0)
- + normalize(&yourtm.tm_min, &yourtm.tm_sec, SECSPERMIN);
- + normalize(&yourtm.tm_hour, &yourtm.tm_min, MINSPERHOUR);
- + normalize(&yourtm.tm_mday, &yourtm.tm_hour, HOURSPERDAY);
- + normalize(&yourtm.tm_year, &yourtm.tm_mon, MONSPERYEAR);
- + while (yourtm.tm_mday <= 0) {
- + --yourtm.tm_year;
- + yourtm.tm_mday +=
- + year_lengths[isleap(yourtm.tm_year + TM_YEAR_BASE)];
- + }
- + for ( ; ; ) {
- + i = mon_lengths[isleap(yourtm.tm_year +
- + TM_YEAR_BASE)][yourtm.tm_mon];
- + if (yourtm.tm_mday <= i)
- + break;
- + yourtm.tm_mday -= i;
- + if (++yourtm.tm_mon >= MONSPERYEAR) {
- + yourtm.tm_mon = 0;
- + ++yourtm.tm_year;
- + }
- + }
- + saved_seconds = yourtm.tm_sec;
- + yourtm.tm_sec = 0;
- + /*
- + ** Calculate the number of magnitude bits in a time_t
- + ** (this works regardless of whether time_t is
- + ** signed or unsigned, though lint complains if unsigned).
- + */
- + for (bits = 0, t = 1; t > 0; ++bits, t <<= 1)
- + ;
- + /*
- + ** If time_t is signed, then 0 is the median value,
- + ** if time_t is unsigned, then 1 << bits is median.
- + */
- + t = (t < 0) ? 0 : ((time_t) 1 << bits);
- + for ( ; ; ) {
- + (*funcp)(&t, offset, &mytm);
- + dir = tmcomp(&mytm, &yourtm);
- + if (dir != 0) {
- + if (bits-- < 0)
- + return WRONG;
- + if (bits < 0)
- + --t;
- + else if (dir > 0)
- + t -= (time_t) 1 << bits;
- + else t += (time_t) 1 << bits;
- + continue;
- + }
- + if (yourtm.tm_isdst < 0 || mytm.tm_isdst == yourtm.tm_isdst)
- + break;
- + /*
- + ** Right time, wrong type.
- + ** Hunt for right time, right type.
- + ** It's okay to guess wrong since the guess
- + ** gets checked.
- + */
- + sp = (const struct state *)
- + ((funcp == localsub) ? lclptr : gmtptr);
- + #ifdef ALL_STATE
- + if (sp == NULL)
- + return WRONG;
- + #endif /* defined ALL_STATE */
- + for (i = 0; i < sp->typecnt; ++i) {
- + if (sp->ttis[i].tt_isdst != yourtm.tm_isdst)
- + continue;
- + for (j = 0; j < sp->typecnt; ++j) {
- + if (sp->ttis[j].tt_isdst == yourtm.tm_isdst)
- + continue;
- + newt = t + sp->ttis[j].tt_gmtoff -
- + sp->ttis[i].tt_gmtoff;
- + (*funcp)(&newt, offset, &mytm);
- + if (tmcomp(&mytm, &yourtm) != 0)
- + continue;
- + if (mytm.tm_isdst != yourtm.tm_isdst)
- + continue;
- + /*
- + ** We have a match.
- + */
- + t = newt;
- + goto label;
- + }
- + }
- + return WRONG;
- + }
- + label:
- + t += saved_seconds;
- + (*funcp)(&t, offset, tmp);
- + *okayp = TRUE;
- + return t;
- + }
- +
- + static time_t
- + time1(tmp, funcp, offset)
- + struct tm * const tmp;
- + void (* const funcp)();
- + const long offset;
- + {
- + register time_t t;
- + register const struct state * sp;
- + register int samei, otheri;
- + int okay;
- +
- + if (tmp->tm_isdst > 1)
- + tmp->tm_isdst = 1;
- + t = time2(tmp, funcp, offset, &okay);
- + if (okay || tmp->tm_isdst < 0)
- + return t;
- + /*
- + ** We're supposed to assume that somebody took a time of one type
- + ** and did some math on it that yielded a "struct tm" that's bad.
- + ** We try to divine the type they started from and adjust to the
- + ** type they need.
- + */
- + sp = (const struct state *) ((funcp == localsub) ? lclptr : gmtptr);
- + #ifdef ALL_STATE
- + if (sp == NULL)
- + return WRONG;
- + #endif /* defined ALL_STATE */
- + for (samei = 0; samei < sp->typecnt; ++samei) {
- + if (sp->ttis[samei].tt_isdst != tmp->tm_isdst)
- + continue;
- + for (otheri = 0; otheri < sp->typecnt; ++otheri) {
- + if (sp->ttis[otheri].tt_isdst == tmp->tm_isdst)
- + continue;
- + tmp->tm_sec += sp->ttis[otheri].tt_gmtoff -
- + sp->ttis[samei].tt_gmtoff;
- + tmp->tm_isdst = !tmp->tm_isdst;
- + t = time2(tmp, funcp, offset, &okay);
- + if (okay)
- + return t;
- + tmp->tm_sec -= sp->ttis[otheri].tt_gmtoff -
- + sp->ttis[samei].tt_gmtoff;
- + tmp->tm_isdst = !tmp->tm_isdst;
- + }
- + }
- + return WRONG;
- + }
- +
- + time_t
- + mktime(tmp)
- + struct tm * const tmp;
- + {
- + return time1(tmp, localsub, 0L);
- + }
- +
- + /* Call tzset() if necessary */
- + void _tzset(void)
- + {
- + if (!lcl_is_set) tzset();
- + }
- +
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/devices.c emacs-18.59/amiga/unix/src/devices.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/devices.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/devices.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,33 ----
- + #include "amiga.h"
- + #include "devices.h"
- +
- + struct IORequest *_device_open(char *name, ULONG unit, ULONG flags,
- + APTR data, ULONG data_len, int req_size)
- + {
- + struct MsgPort *port;
- + struct IORequest *ioreq;
- +
- + if ((port = CreateMsgPort()) && (ioreq = CreateIORequest(port, req_size)))
- + {
- + if (data)
- + {
- + struct IOStdReq *io2 = (struct IOStdReq *)ioreq;
- + io2->io_Data = data;
- + io2->io_Length = data_len;
- + }
- + if (OpenDevice(name, unit, ioreq, flags) == 0) return ioreq;
- + }
- + if (ioreq) DeleteIORequest(ioreq);
- + if (port) DeletePort(port);
- + return 0;
- + }
- +
- + void _device_close(struct IORequest *ioreq)
- + {
- + if (ioreq)
- + {
- + CloseDevice(ioreq);
- + DeletePort(ioreq->io_Message.mn_ReplyPort);
- + DeleteIORequest(ioreq);
- + }
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/dir.c emacs-18.59/amiga/unix/src/dir.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/dir.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/dir.c Fri Dec 4 20:32:28 1992
- ***************
- *** 0 ****
- --- 1,177 ----
- + #include "amiga.h"
- + #include "dir_data.h"
- + #include <string.h>
- +
- + /* opendir/readdir/etc ... emulation w/ stat support hack */
- +
- + static void free_entries(iDIR *info)
- + {
- + struct idirent *scan = info->files;
- +
- + while (scan)
- + {
- + struct idirent *next = scan->next;
- +
- + free(scan);
- + scan = next;
- + }
- + }
- +
- + static int gobble_dir(DIR *dir)
- + {
- + iDIR *info = (iDIR *)dir->dd_buf;
- + long ioerr;
- + struct idirent **last = &info->files;
- + struct FileLock *dirlock;
- +
- + free_entries(info);
- + last_dir = 0;
- + info->files = 0;
- + dir->dd_loc = 0;
- + /* Find a value for st_dev of stat() calls */
- + dirlock = BADDR(dir->dd_fd);
- + info->task = dirlock->fl_Task;
- + while (ExNext(dir->dd_fd, &info->fib))
- + {
- + u_short namlen = strlen(info->fib.fib_FileName);
- + u_short reclen = namlen + 1 + offsetof(struct idirent, entry.d_name);
- + struct idirent *newentry = (struct idirent *)malloc(reclen);
- + struct dirent *entry;
- +
- + if (!newentry)
- + {
- + errno = ENOMEM;
- + return 0;
- + }
- + newentry->next = 0;
- + *last = newentry;
- + last = &newentry->next;
- +
- + newentry->numblocks = info->fib.fib_NumBlocks;
- + newentry->size = info->fib.fib_Size;
- + newentry->date = info->fib.fib_Date;
- + newentry->type = info->fib.fib_DirEntryType;
- + newentry->protection = info->fib.fib_Protection;
- +
- + entry = &newentry->entry;
- + entry->d_reclen = reclen;
- + entry->d_namlen = namlen;
- + entry->d_off = dir->dd_loc++;
- + strcpy(entry->d_name, info->fib.fib_FileName);
- + entry->d_ino = info->fib.fib_DiskKey;
- + }
- + info->pos = info->files;
- + dir->dd_loc = 0;
- + ioerr = IoErr();
- + if (ioerr == ERROR_NO_MORE_ENTRIES) return 1;
- +
- + errno = convert_oserr(ioerr);
- + return 0;
- + }
- +
- + DIR *opendir(char *dirname)
- + {
- + DIR *new = (DIR *)malloc(sizeof *new);
- + iDIR *info = (iDIR *)malloc(sizeof *info);
- + char *dircopy = malloc(strlen(dirname) + 1);
- +
- + chkabort();
- + if (new && dircopy && info)
- + {
- + new->dd_buf = (char *)info;
- + new->dd_size = sizeof *info;
- +
- + info->files = info->pos = 0;
- + info->seeked = 0;
- + info->dirname = dircopy;
- + strcpy(dircopy, dirname);
- + info->cdir = _get_cd();
- +
- + if ((new->dd_fd = Lock(dirname, ACCESS_READ)) &&
- + Examine(new->dd_fd, &info->fib))
- + {
- + if (gobble_dir(new)) return new;
- + }
- + else errno = convert_oserr(IoErr());
- + closedir(new);
- + return 0;
- + }
- +
- + errno = ENOMEM;
- + if (new) free(new);
- + if (dircopy) free(dircopy);
- + if (info) free(info);
- +
- + return 0;
- + }
- +
- + void closedir(DIR *dir)
- + {
- + iDIR *info = (iDIR *)dir->dd_buf;
- +
- + chkabort();
- + last_dir = 0;
- + free_entries(info);
- + free(info->dirname);
- + if (dir->dd_fd) UnLock(dir->dd_fd);
- + free(dir->dd_buf);
- + free(dir);
- + }
- +
- + struct dirent *readdir(DIR *dir)
- + {
- + iDIR *info = (iDIR *)dir->dd_buf;
- + struct dirent *entry = 0;
- +
- + chkabort();
- + if (info->seeked)
- + {
- + long cloc = 0;
- + struct idirent *pos;
- +
- + pos = info->files;
- +
- + while (cloc < dir->dd_loc && pos)
- + {
- + cloc++; pos = pos->next;
- + }
- + /*if (cloc != dir->dd_loc) error ...
- + This doesn't seem to be defined very precisely */
- + info->pos = pos;
- + info->seeked = 0;
- + }
- + if (info->pos)
- + {
- + entry = &info->pos->entry;
- +
- + last_dir = dir;
- + last_entry = info->pos;
- +
- + info->pos = info->pos->next;
- + dir->dd_loc++;
- + }
- + return entry;
- + }
- +
- + long telldir(DIR *dir)
- + {
- + chkabort();
- + return dir->dd_loc;
- + }
- +
- + void seekdir(DIR *dir, long loc)
- + {
- + iDIR *info = (iDIR *)dir->dd_buf;
- +
- + chkabort();
- + info->seeked = 1;
- + dir->dd_loc = loc;
- + }
- +
- + #if 0
- + void rewwinddir(DIR *dir)
- + {
- + chkabort();
- + gobble_dir(dir);
- + }
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/dir_data.c emacs-18.59/amiga/unix/src/dir_data.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/dir_data.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/dir_data.c Fri Dec 4 20:27:08 1992
- ***************
- *** 0 ****
- --- 1,15 ----
- + #include "amiga.h"
- + #include "dir_data.h"
- +
- + DIR *last_dir;
- + struct idirent *last_entry;
- +
- + BPTR _get_cd(void)
- + {
- + BPTR dir = CurrentDir(0);
- +
- + CurrentDir(dir);
- +
- + return dir;
- + }
- +
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/dir_data.h emacs-18.59/amiga/unix/src/dir_data.h
- *** /src/baseline/emacs-18.59/amiga/unix/src/dir_data.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/dir_data.h Fri Dec 4 20:26:54 1992
- ***************
- *** 0 ****
- --- 1,33 ----
- + #ifndef DIR_DATA_H
- + #define DIR_DATA_H
- +
- + #include <sys/dir.h>
- +
- + typedef struct
- + {
- + char *dirname;
- + BPTR cdir;
- + struct FileInfoBlock fib;
- + struct idirent *files, *pos;
- + int seeked;
- + struct MsgPort *task; /* Used to fake a value for st_dev */
- + } iDIR;
- +
- + struct idirent
- + {
- + struct idirent *next;
- + /* Info needed for stat */
- + long numblocks;
- + long size;
- + struct DateStamp date;
- + long type;
- + long protection;
- + struct dirent entry;
- + };
- +
- + extern DIR *last_dir;
- + extern struct idirent *last_entry;
- +
- + BPTR _get_cd(void);
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/error.c emacs-18.59/amiga/unix/src/error.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/error.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/error.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,47 ----
- + #include "amiga.h"
- +
- + int errno;
- +
- + int convert_oserr(int ioerr)
- + {
- + extern int _OSERR;
- +
- + _OSERR = ioerr;
- + switch (ioerr)
- + {
- + case 0: return 0;
- + case ERROR_NO_FREE_STORE: return ENOMEM;
- + case ERROR_TASK_TABLE_FULL: return EAGAIN;
- + case ERROR_BAD_TEMPLATE: case ERROR_REQUIRED_ARG_MISSING: case ERROR_BAD_NUMBER:
- + case ERROR_KEY_NEEDS_ARG: case ERROR_TOO_MANY_ARGS:
- + case ERROR_UNMATCHED_QUOTES: return EINVAL;
- + case ERROR_LINE_TOO_LONG: return E2BIG;
- + case ERROR_FILE_NOT_OBJECT: return ENOEXEC;
- + case ERROR_OBJECT_IN_USE: return EBUSY;
- + case ERROR_OBJECT_EXISTS: return EEXIST;
- + case ERROR_DIR_NOT_FOUND: return ENOENT;
- + case ERROR_OBJECT_NOT_FOUND: return ENOENT;
- + case ERROR_BAD_STREAM_NAME: return EINVAL;
- + case ERROR_OBJECT_TOO_LARGE: return E2BIG;
- + case ERROR_ACTION_NOT_KNOWN: return EINVAL;
- + case ERROR_INVALID_COMPONENT_NAME: return ENAMETOOLONG;
- + case ERROR_INVALID_LOCK: return EINVAL;
- + case ERROR_OBJECT_WRONG_TYPE: return EINVAL;
- + case ERROR_DISK_WRITE_PROTECTED: return EROFS;
- + case ERROR_RENAME_ACROSS_DEVICES: return EXDEV;
- + case ERROR_DIRECTORY_NOT_EMPTY: return ENOTEMPTY;
- + case ERROR_TOO_MANY_LEVELS: return ELOOP;
- + case ERROR_DEVICE_NOT_MOUNTED: return ENODEV;
- + case ERROR_SEEK_ERROR: return EINVAL;
- + case ERROR_DISK_FULL: return ENOSPC;
- + case ERROR_DELETE_PROTECTED: return EACCES;
- + case ERROR_WRITE_PROTECTED: return EACCES;
- + case ERROR_READ_PROTECTED: return EACCES;
- + default: return EOSERR;
- + }
- + }
- +
- + void _seterr(void)
- + {
- + errno = convert_oserr(IoErr());
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/error_msg.c emacs-18.59/amiga/unix/src/error_msg.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/error_msg.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/error_msg.c Sat Dec 5 09:59:06 1992
- ***************
- *** 0 ****
- --- 1,48 ----
- + #include "amiga.h"
- +
- + /* Gross hack because EOSERR is -1. */
- + static char *sys_amiga_error = "amiga specific error";
- + char *sys_errlist[] =
- + {
- + "Unknown error",
- + "not owner",
- + "no such file or directory",
- + "no such process",
- + "interrupted system call",
- + "i/o error",
- + "no such device or address",
- + "argument list too long",
- + "exec format error",
- + "bad file number",
- + "no child process",
- + "no more processes",
- + "not enough memory",
- + "permission denied",
- + "bad address",
- + "block device required",
- + "mount devices busy",
- + "file exists",
- + "cross-device link",
- + "no such device",
- + "not a directory",
- + "is a directory",
- + "invalid argument",
- + "file table overflow",
- + "too many open files",
- + "not a typewriter",
- + "text file busy",
- + "file too big",
- + "no space left on device",
- + "illegal seek",
- + "read-only file system",
- + "too many links",
- + "broken pipe",
- + "math argument",
- + "result too large",
- + "I/O stream empty",
- + "file name too long",
- + "directory not empty",
- + "too many soft links (loop?)"
- + };
- +
- + int sys_nerr = ELOOP;
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/exec.c emacs-18.59/amiga/unix/src/exec.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/exec.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/exec.c Sun Dec 6 14:32:30 1992
- ***************
- *** 0 ****
- --- 1,143 ----
- + #include "amiga.h"
- + #include "processes.h"
- + #include <amiga/ioctl.h>
- + #include <exec/memory.h>
- + #include <dos/dosextens.h>
- + #include <dos/dostags.h>
- + #include <string.h>
- +
- + int eexec(char *program, char **argv, int input, int output, int error,
- + char *dir, int stacksize)
- + /* input = -1 -> inherit Input()
- + output = -1 -> inherit Output()
- + error = -1 -> inherit pr_CES
- + error = -2 -> stderr = stdout */
- + {
- + int index, comsize, close_input, close_output, close_error;
- + char *combuf, *bp;
- + BPTR in, out, err, dirlock;
- + int _pseudo_close(int fd);
- +
- + comsize = 256;
- + combuf = malloc(comsize);
- +
- + if (input == -1)
- + {
- + in = Input();
- + close_input = FALSE;
- + }
- + else
- + {
- + if (ioctl(input, _AMIGA_GET_FH, &in) == -1) in = 0;
- + close_input = TRUE;
- + _pseudo_close(input);
- + }
- +
- + if (output == -1)
- + {
- + out = Output();
- + close_output = FALSE;
- + }
- + else if (input == output)
- + {
- + out = in;
- + close_output = FALSE;
- + }
- + else
- + {
- + if (ioctl(output, _AMIGA_GET_FH, &out) == -1) out = 0;
- + close_output = out != in;
- + _pseudo_close(output);
- + }
- +
- + if (error == -1)
- + {
- + err = _us->pr_CES;
- + close_error = FALSE;
- + }
- + else if (error == -2)
- + {
- + err = out;
- + close_error = FALSE;
- + }
- + else
- + {
- + if (ioctl(error, _AMIGA_GET_FH, &err) == -1) err = 0;
- + close_error = err != out && err != in;
- + _pseudo_close(error);
- + }
- +
- + /* pr_CES is not always defined */
- + if (in && out && (err || error == -1))
- + if (combuf)
- + {
- + bp = combuf;
- + for (index = 0; argv[index] != 0; index++)
- + {
- + /* Use program as argv[0]. This loses some information, but ... */
- + char *arg = index == 0 ? program : argv[index];
- + char *s;
- + int len;
- +
- + len = 3;
- + s = arg;
- + while (*s)
- + {
- + len++;
- + if (*s == '*' || *s == '"' || *s == '\n') len++;
- + s++;
- + }
- + if (bp + len + 1 >= combuf + comsize)
- + {
- + char *newbuf;
- +
- + comsize += comsize + len;
- + newbuf = realloc(combuf, comsize);
- + if (!newbuf) { errno = ENOMEM; goto error; }
- + bp = newbuf + (bp - combuf);
- + combuf = newbuf;
- + }
- + *bp++ = ' ';
- + *bp++ = '"';
- + s = arg;
- + while (*s)
- + {
- + if (*s == '"' || *s == '*') *bp++ = '*';
- + else if (*s == '\n') *bp++ = '+';
- + *bp++ = *s++;
- + }
- + *bp++ = '"';
- + }
- + *bp = '\0';
- + if (dir) dirlock = Lock(dir, SHARED_LOCK);
- + else dirlock = 0;
- +
- + if (dirlock || !dir)
- + {
- + int pid = _start_process(combuf, in, close_input, out, close_output,
- + err, close_error, dirlock, stacksize);
- +
- + if (pid != -1)
- + {
- + free(combuf);
- + return pid;
- + }
- + }
- + else errno = convert_oserr(IoErr());
- + if (dirlock) UnLock(dirlock);
- + }
- + else errno = ENOMEM;
- +
- + error:
- + if (in && close_input) Close(in);
- + if (out && close_output) Close(out);
- + if (err && close_error) Close(err);
- + if (combuf) free(combuf);
- + return -1;
- + }
- +
- + int exec(char *program, char **argv, int input, int output,
- + char *dir, int stacksize)
- + {
- + return eexec(program, argv, input, output, -1, dir, stacksize);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/fchmod.c emacs-18.59/amiga/unix/src/fchmod.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/fchmod.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/fchmod.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,10 ----
- + #include "amiga.h"
- + #include <amiga/ioctl.h>
- +
- + int fchmod(int fd, int mode)
- + {
- + long amode = _make_protection(mode);
- +
- + chkabort();
- + return ioctl(fd, _AMIGA_SETPROTECTION, &amode);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/fcntl.c emacs-18.59/amiga/unix/src/fcntl.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/fcntl.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/fcntl.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,43 ----
- + #include "amiga.h"
- + #include "files.h"
- + #include <fcntl.h>
- + #include <sys/filio.h>
- + #include <stdarg.h>
- +
- + /* Flags that can be changed with fcntl */
- + #define FCNTL_FLAGS (O_NDELAY | O_APPEND)
- +
- + int fcntl(int fd, int cmd, ...)
- + {
- + struct fileinfo *fi;
- + va_list args;
- + int arg;
- +
- + chkabort();
- + va_start(args, cmd);
- + arg = va_arg(args, int);
- + va_end(args);
- +
- + if (fi = _find_fd(fd))
- + {
- + switch (cmd)
- + {
- + default: errno = EINVAL; break;
- + case F_GETFL: return fi->flags & FCNTL_FLAGS;
- + case F_SETFL:
- + {
- + int oldfl = fi->flags;
- +
- + fi->flags = (fi->flags & ~FCNTL_FLAGS) | (arg & FCNTL_FLAGS);
- + if ((oldfl & O_NDELAY) != (fi->flags & O_NDELAY))
- + {
- + int ndelay = fi->flags & O_NDELAY;
- +
- + return fi->ioctl(fi->userinfo, FIONBIO, &ndelay);
- + }
- + return 0;
- + }
- + }
- + }
- + return -1;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/fibstat.c emacs-18.59/amiga/unix/src/fibstat.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/fibstat.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/fibstat.c Sat Dec 5 12:11:24 1992
- ***************
- *** 0 ****
- --- 1,90 ----
- + #include "amiga.h"
- + #include "fibstat.h"
- + #include "timeconvert.h"
- + #include <fcntl.h>
- + #include <time.h>
- + #include <sys/stat.h>
- + #include <utility/tagitem.h>
- +
- + char _temp_fname[FNAMESIZE];
- +
- + void _lfibstat(char *name, struct FileInfoBlock *fib, struct MsgPort *task,
- + int isroot, struct stat *sbuf)
- + {
- + long protection = fib->fib_Protection;
- +
- + sbuf->st_dev = (long)task;
- + sbuf->st_rdev = 0;
- + sbuf->st_uid = AMIGA_UID; sbuf->st_gid = AMIGA_GID;
- + sbuf->st_blksize = 512;
- + #ifdef PRETEND_LINKED
- + /* This forces programs (tar) to consider potential hard links */
- + sbuf->st_nlink = 2;
- + #else
- + sbuf->st_nlink = 1;
- + #endif
- + sbuf->st_blocks = fib->fib_NumBlocks;
- + /* Give directories an arbitrary size */
- + if (fib->fib_Size == 0 && fib->fib_DirEntryType > 0) sbuf->st_size = 2048;
- + else sbuf->st_size = fib->fib_Size;
- + sbuf->st_ino = fib->fib_DiskKey;
- + sbuf->st_ctime = sbuf->st_atime = sbuf->st_mtime = _amiga2gmt(&fib->fib_Date);
- +
- + switch (fib->fib_DirEntryType)
- + {
- + case ST_SOFTLINK:
- + {
- + int len;
- +
- + if (name && (len = readlink(name, _temp_fname, FNAMESIZE - 1)) > 0)
- + sbuf->st_size = len;
- + else sbuf->st_size = 256; /* A random safish value */
- + sbuf->st_mode = S_IFLNK;
- + break;
- + }
- + case ST_PIPEFILE: sbuf->st_mode = S_IFIFO; break;
- + /* If Examine wasn't braindead this would be the right test */
- + case ST_ROOT: sbuf->st_mode = S_IFDIR; protection = 0; break;
- + case ST_FILE: /* Try & detect special files (eg windows) */
- + if (fib->fib_DiskKey == 0 && !fib->fib_FileName[0])
- + sbuf->st_mode = S_IFCHR;
- + else sbuf->st_mode = S_IFREG;
- + break;
- + default: sbuf->st_mode = fib->fib_DirEntryType > 0 ? S_IFDIR : S_IFREG; break;
- + }
- + /* Examine is braindead. You can't tell if you've examined a root directory
- + (for which the protection flags are invalid) or not. */
- + if (isroot) protection = 0;
- +
- + sbuf->st_mode |= _make_mode(protection);
- + }
- +
- + int _fibstat(char *name, struct stat *sbuf)
- + {
- + int ret;
- + struct FileInfoBlock *fib;
- + BPTR lock = 0;
- +
- + if ((fib = AllocDosObjectTags(DOS_FIB, TAG_END)) &&
- + (lock = Lock(name, ACCESS_READ)) &&
- + Examine(lock, fib))
- + {
- + BPTR parent = ParentDir(lock);
- + int isroot = !parent;
- + struct FileLock *flock = BADDR(lock);
- +
- + if (parent) UnLock(parent);
- + _lfibstat(name, fib, flock->fl_Task, isroot, sbuf);
- + ret = 0;
- + }
- + else
- + {
- + ret = -1;
- + errno = convert_oserr(IoErr());
- + }
- + if (lock) UnLock(lock);
- + if (fib) FreeDosObject(DOS_FIB, fib);
- + return ret;
- + }
- +
- +
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/fibstat.h emacs-18.59/amiga/unix/src/fibstat.h
- *** /src/baseline/emacs-18.59/amiga/unix/src/fibstat.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/fibstat.h Sat Oct 17 12:55:52 1992
- ***************
- *** 0 ****
- --- 1,12 ----
- + #ifndef FIBSTAT_H
- +
- + #define FNAMESIZE 256
- +
- + extern char _temp_fname[FNAMESIZE];
- +
- + void _lfibstat(char *name, struct FileInfoBlock *fib, struct MsgPort *task,
- + int isroot, struct stat *sbuf);
- +
- + int _fibstat(char *name, struct stat *sbuf);
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/fifo.h emacs-18.59/amiga/unix/src/fifo.h
- *** /src/baseline/emacs-18.59/amiga/unix/src/fifo.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/fifo.h Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,41 ----
- +
- + /*
- + * FIFO.H
- + *
- + * PUBLIC FIFO STRUCTURES AND DEFINES
- + */
- +
- + #ifndef LIBRARIES_FIFO_H
- + #define LIBRARIES_FIFO_H
- +
- + #define FIFONAME "fifo.library"
- +
- + #define FIFOF_READ 0x00000100L /* intend to read from fifo */
- + #define FIFOF_WRITE 0x00000200L /* intend to write to fifo */
- + #define FIFOF_RESERVED 0xFFFF0000L /* reserved for internal use */
- + #define FIFOF_NORMAL 0x00000400L /* request blocking/sig support*/
- + #define FIFOF_NBIO 0x00000800L /* non-blocking IO */
- +
- + #define FIFOF_KEEPIFD 0x00002000L /* keep fifo alive if data pending */
- + #define FIFOF_EOF 0x00004000L /* EOF on close */
- + #define FIFOF_RREQUIRED 0x00008000L /* reader required to exist */
- +
- + #define FREQ_RPEND 1
- + #define FREQ_WAVAIL 2
- + #define FREQ_ABORT 3
- +
- + typedef void *FifoHan; /* returned by OpenFifo() */
- +
- + #ifndef IN_LIBRARY
- +
- + FifoHan OpenFifo(char *, long, long);
- + void CloseFifo(FifoHan, long);
- + long ReadFifo(FifoHan, char **, long);
- + long WriteFifo(FifoHan, char *, long);
- + void RequestFifo(FifoHan, struct Message *, long);
- + long BufSizeFifo(FifoHan);
- +
- + #endif
- +
- + #endif
- +
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/fifo_pragmas.h emacs-18.59/amiga/unix/src/fifo_pragmas.h
- *** /src/baseline/emacs-18.59/amiga/unix/src/fifo_pragmas.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/fifo_pragmas.h Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,7 ----
- + /* "fifo.library"*/
- + #pragma libcall _FifoBase OpenFifo 1E 81003
- + #pragma libcall _FifoBase CloseFifo 24 1002
- + #pragma libcall _FifoBase ReadFifo 2A 81003
- + #pragma libcall _FifoBase WriteFifo 30 81003
- + #pragma libcall _FifoBase RequestFifo 36 81003
- + #pragma libcall _FifoBase BufSizeFifo 3C 001
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/fifofd.c emacs-18.59/amiga/unix/src/fifofd.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/fifofd.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/fifofd.c Fri Aug 14 18:33:24 1992
- ***************
- *** 0 ****
- --- 1,25 ----
- + #include "amiga.h"
- + #include "files.h"
- + #include "fifofd.h"
- + #include <time.h>
- +
- + struct Library *_FifoBase;
- + int _fifo_sig = -1;
- + long _fifo_base;
- + long _fifo_offset;
- + int _fifo_ok;
- +
- + void _init_fifo(void)
- + {
- + _fifo_base = (int)_us ^ _startup_time * 65537;
- + _fifo_offset = 0;
- + _FifoBase = OpenLibrary("fifo.library", 0);
- + _fifo_sig = AllocSignal(-1);
- + _fifo_ok = _FifoBase != 0 && _fifo_sig >= 0;
- + }
- +
- + void _cleanup_fifo(void)
- + {
- + if (_fifo_sig >= 0) FreeSignal(_fifo_sig);
- + if (_FifoBase) CloseLibrary(_FifoBase);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/fifofd.h emacs-18.59/amiga/unix/src/fifofd.h
- *** /src/baseline/emacs-18.59/amiga/unix/src/fifofd.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/fifofd.h Mon Aug 24 22:31:52 1992
- ***************
- *** 0 ****
- --- 1,31 ----
- + #ifndef FIFO_H
- + #define FIFO_H
- +
- + #include "fifo.h"
- + #include "fifo_pragmas.h"
- +
- + #define FIFO_BUFSIZE 1024
- + #define FIFO_NAMELEN 32
- +
- + struct fifoinfo
- + {
- + char name[FIFO_NAMELEN];
- + void *rfifo, *wfifo;
- + long maxsend, skip;
- + int flags;
- + struct Message *rmsg, *wmsg;
- + struct MsgPort *reply;
- + };
- +
- + #define FIFO_MASTER 0x8000
- +
- + extern struct Library *_FifoBase;
- + extern int _fifo_sig;
- + extern long _fifo_base;
- + extern long _fifo_offset;
- + extern int _fifo_ok;
- +
- + void _init_fifo(void);
- + void _cleanup_fifo(void);
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/files.c emacs-18.59/amiga/unix/src/files.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/files.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/files.c Sun Dec 6 13:12:58 1992
- ***************
- *** 0 ****
- --- 1,74 ----
- + #include "amiga.h"
- + #include "files.h"
- + #include <string.h>
- +
- + /* Unix low-level IO emulation */
- + /* --------------------------- */
- +
- + /* First, fd definition & allocation */
- +
- + static struct fileinfo *files;
- + static int max_files;
- + #define FILE_STEP 10 /* Nb of file descriptors to allocate at once */
- +
- + int _alloc_fd(void *userinfo, int flags,
- + ULONG (*__regargs select_start)(void *userinfo, int rd, int wr),
- + void (*__regargs select_poll)(void *userinfo, int *rd, int *wr),
- + int (*__regargs read)(void *userinfo, void *buffer, unsigned int length),
- + int (*__regargs write)(void *userinfo, void *buffer, unsigned int length),
- + int (*__regargs lseek)(void *userinfo, long rpos, int mode),
- + int (*__regargs close)(void *userinfo, int internal),
- + int (*__regargs ioctl)(void *userinfo, int request, void *data)
- + )
- + {
- + int fd;
- +
- + for (fd = 0; fd < max_files; fd++)
- + if (!files[fd].userinfo)
- + {
- + files[fd].userinfo = (void *)1;
- + break;
- + }
- + if (fd == max_files)
- + {
- + struct fileinfo *newfiles;
- + int i;
- +
- + /* Increase files array by FILE_STEP */
- + max_files += FILE_STEP;
- + newfiles = (struct fileinfo *)malloc(max_files * sizeof(struct fileinfo));
- + if (!newfiles)
- + {
- + errno = ENOMEM;
- + return -1;
- + }
- + memcpy(newfiles, files, (max_files - FILE_STEP) * sizeof(struct fileinfo));
- + if (files) free(files);
- + files = newfiles;
- + for (i = max_files - FILE_STEP; i < max_files; i++) files[i].userinfo = 0;
- + }
- + files[fd].userinfo = userinfo;
- + files[fd].flags = flags;
- + files[fd].select_start = select_start;
- + files[fd].select_poll = select_poll;
- + files[fd].read = read;
- + files[fd].write = write;
- + files[fd].lseek = lseek;
- + files[fd].close = close;
- + files[fd].ioctl = ioctl;
- + return fd;
- + }
- +
- + void _free_fd(int fd)
- + {
- + if (0 <= fd && fd < max_files) files[fd].userinfo = 0;
- + }
- +
- + struct fileinfo *_find_fd(int fd)
- + {
- + if (0 <= fd && fd < max_files && files[fd].userinfo) return &files[fd];
- + errno = EBADF;
- + return 0;
- + }
- +
- + int _last_fd(void) { return max_files; }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/fstat.c emacs-18.59/amiga/unix/src/fstat.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/fstat.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/fstat.c Sat Oct 17 12:47:08 1992
- ***************
- *** 0 ****
- --- 1,52 ----
- + #include "amiga.h"
- + #include "fibstat.h"
- + #include <dos/dosextens.h>
- + #include <utility/tagitem.h>
- + #include <sys/types.h>
- + #include <sys/stat.h>
- + #include <amiga/ioctl.h>
- +
- + int fstat(int fd, struct stat *sbuf)
- + {
- + BPTR fh;
- + struct FileInfoBlock *fib;
- + int ret;
- +
- + chkabort();
- + if (ioctl(fd, _AMIGA_GET_FH, &fh) == -1) return -1;
- + if ((fib = AllocDosObjectTags(DOS_FIB, TAG_END)) && ExamineFH(fh, fib))
- + {
- + struct FileHandle *handle = BADDR(fh);
- +
- + _lfibstat(NULL, fib, handle->fh_Type, 0, sbuf);
- + ret = 0;
- + }
- + else
- + {
- + int err = IoErr();
- +
- + if (err == ERROR_ACTION_NOT_KNOWN)
- + /* Fake a stat result */
- + {
- + ret = 0;
- + sbuf->st_dev = (long)(((struct FileHandle *)BADDR(fh))->fh_Type);
- + sbuf->st_ino = 0;
- + sbuf->st_mode = 0777 | S_IFCHR;
- + sbuf->st_nlink = 1;
- + sbuf->st_uid = AMIGA_UID; sbuf->st_gid = AMIGA_GID;
- + sbuf->st_blksize = 512;
- + sbuf->st_blocks = 0;
- + sbuf->st_size = 0;
- + /* 1-Jan-1978 */
- + sbuf->st_ctime = sbuf->st_atime = sbuf->st_mtime = 252460800;
- + }
- + else
- + {
- + ret = -1;
- + errno = convert_oserr(err);
- + }
- + }
- + if (fib) FreeDosObject(DOS_FIB, fib);
- + ioctl(fd, _AMIGA_FREE_FH, &fh);
- + return ret;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/ftruncate.c emacs-18.59/amiga/unix/src/ftruncate.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/ftruncate.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/ftruncate.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,8 ----
- + #include "amiga.h"
- + #include <amiga/ioctl.h>
- +
- + int ftruncate(int fd, off_t length)
- + {
- + chkabort();
- + return ioctl(fd, _AMIGA_TRUNCATE, &length);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/getenv.c emacs-18.59/amiga/unix/src/getenv.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/getenv.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/getenv.c Wed Dec 2 19:52:54 1992
- ***************
- *** 0 ****
- --- 1,31 ----
- + #include "amiga.h"
- + #include <string.h>
- +
- + /* This getenv removes trailing newlines & multiple calls don't
- + destroy results */
- + char *getenv (const char *varname)
- + {
- + char *return_string;
- + char buf[64];
- +
- + chkabort();
- + if (varname && varname[0])
- + {
- + int len, size;
- +
- + len = GetVar(varname, buf, 64, LV_VAR);
- + if (len >= 0)
- + {
- + size = IoErr();
- + return_string = malloc(size + 1);
- + if (!return_string) return 0;
- + if (size != len)
- + {
- + if (GetVar(varname, return_string, size + 1, LV_VAR) > 0)
- + return return_string;
- + }
- + else return strcpy(return_string, buf);
- + }
- + }
- + return 0;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/gethostname.c emacs-18.59/amiga/unix/src/gethostname.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/gethostname.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/gethostname.c Sun Aug 16 10:56:12 1992
- ***************
- *** 0 ****
- --- 1,11 ----
- + #include "amiga.h"
- + #include <unistd.h>
- +
- + extern char *_system_name;
- +
- + int gethostname(char *buf, int len)
- + {
- + strncpy(buf, _system_name, len);
- +
- + return 0;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/getpid.c emacs-18.59/amiga/unix/src/getpid.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/getpid.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/getpid.c Sun Oct 18 20:11:42 1992
- ***************
- *** 0 ****
- --- 1,8 ----
- + #include "amiga.h"
- + #include "processes.h"
- +
- + int getpid(void)
- + {
- + chkabort();
- + return _our_pid;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/getwd.c emacs-18.59/amiga/unix/src/getwd.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/getwd.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/getwd.c Sat Aug 15 11:22:30 1992
- ***************
- *** 0 ****
- --- 1,8 ----
- + #include "amiga.h"
- + #include <sys/param.h>
- +
- + char *getwd (char *pathname)
- + {
- + chkabort();
- + return getcwd(pathname, MAXPATHLEN);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/gid.c emacs-18.59/amiga/unix/src/gid.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/gid.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/gid.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,4 ----
- + #include "amiga.h"
- +
- + gid_t getgid(void) { return AMIGA_GID; }
- + gid_t getegid(void) { return AMIGA_GID; }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/grp.c emacs-18.59/amiga/unix/src/grp.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/grp.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/grp.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,14 ----
- + #include "amiga.h"
- + #include <grp.h>
- +
- + static char *wheel_members[] = { "user", 0 };
- +
- + static struct group wheel = {
- + "wheel",
- + "",
- + AMIGA_GID,
- + wheel_members
- + };
- +
- + struct group *getgrgid(gid_t gid) { return &wheel; }
- + struct group *getgrnam(char *name) { return &wheel; }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/index.c emacs-18.59/amiga/unix/src/index.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/index.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/index.c Wed Dec 2 20:22:34 1992
- ***************
- *** 0 ****
- --- 1,8 ----
- + #include <string.h>
- +
- + #undef index
- +
- + char *index(char *str, int c)
- + {
- + return strchr(str, c);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/ioctl.c emacs-18.59/amiga/unix/src/ioctl.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/ioctl.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/ioctl.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,14 ----
- + #include "amiga.h"
- + #include "files.h"
- +
- + int ioctl(int fd, int request, caddr_t arg)
- + {
- + struct fileinfo *fi;
- +
- + chkabort();
- + if (fi = _find_fd(fd))
- + {
- + return fi->ioctl(fi->userinfo, request, arg);
- + }
- + return -1;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/isatty.c emacs-18.59/amiga/unix/src/isatty.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/isatty.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/isatty.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,11 ----
- + #include "amiga.h"
- + #include <amiga/ioctl.h>
- +
- + int isatty(int fd)
- + {
- + int istty;
- +
- + chkabort();
- + if (ioctl(fd, _AMIGA_INTERACTIVE, &istty) != 0) return 0;
- + return istty;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/kill.c emacs-18.59/amiga/unix/src/kill.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/kill.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/kill.c Fri Aug 14 19:48:34 1992
- ***************
- *** 0 ****
- --- 1,74 ----
- + #include "amiga.h"
- + #include "signals.h"
- + #include "processes.h"
- + #include <exec/execbase.h>
- +
- + extern struct ExecBase *SysBase;
- +
- + static void break_list(struct List *tasks, BPTR fh)
- + {
- + struct Process *p;
- +
- + for (p = (struct Process *)tasks->lh_Head; p->pr_Task.tc_Node.ln_Succ;
- + p = (struct Process *)p->pr_Task.tc_Node.ln_Succ)
- + {
- + if (p->pr_Task.tc_Node.ln_Type == NT_PROCESS)
- + {
- + struct CommandLineInterface *cli = p->pr_CLI ? BADDR(p->pr_CLI) : 0;
- +
- + if (p->pr_CIS == fh || p->pr_COS == fh || p->pr_CES == fh ||
- + cli && (cli->cli_StandardInput == fh || cli->cli_CurrentInput == fh ||
- + cli->cli_StandardOutput == fh || cli->cli_CurrentOutput == fh))
- + Signal(p, SIGBREAKF_CTRL_C | SIGBREAKF_CTRL_D);
- + }
- + }
- + }
- +
- + static int magickill(BPTR fh, int signo)
- + {
- + switch (signo)
- + {
- + case SIGINT: case SIGQUIT: case SIGKILL: case SIGHUP:
- + Forbid();
- + break_list(&SysBase->TaskReady, fh);
- + break_list(&SysBase->TaskWait, fh);
- + Permit();
- + return 0;
- + default: errno = EINVAL; return -1;
- + }
- + }
- +
- + int kill(int pid, int signal)
- + {
- + chkabort();
- + /* Our process list is now reasonably upto date */
- + if (pid < 0) pid = -pid; /* Consider that each process is a pg unto itself */
- + if (pid == _our_pid)
- + {
- + if (signal) _sig_dispatch(signal);
- + return 0;
- + }
- + else
- + {
- + struct process *entry;
- + int killrc;
- +
- + entry = _find_pid(pid);
- + if (!entry || entry->status != alive)
- + {
- + errno = ESRCH;
- + return -1;
- + }
- + if (!signal) return 0;
- + killrc = magickill(entry->input, signal);
- + if (signal == SIGKILL)
- + {
- + /* Fake the kill from emacs point of view */
- + entry->status = exited;
- + entry->rc = SIGKILL;
- + _sig_dispatch(SIGCHLD);
- + return 0;
- + }
- + return killrc;
- + }
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/link.c emacs-18.59/amiga/unix/src/link.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/link.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/link.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,16 ----
- + #include "amiga.h"
- +
- + int link(char *from, char *to)
- + {
- + BPTR from_lock = Lock(from, ACCESS_READ);
- +
- + chkabort();
- + if (from_lock)
- + {
- + int ok = MakeLink(to, from_lock, 0);
- +
- + UnLock(from_lock);
- + if (ok) return 0;
- + }
- + ERROR;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/lseek.c emacs-18.59/amiga/unix/src/lseek.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/lseek.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/lseek.c Fri Dec 4 22:17:36 1992
- ***************
- *** 0 ****
- --- 1,23 ----
- + #include "amiga.h"
- + #include "files.h"
- + #include <fcntl.h>
- +
- + #undef lseek
- +
- + int __lseek(int fd, long rpos, int mode)
- + {
- + struct fileinfo *fi;
- +
- + chkabort();
- + if (fi = _find_fd(fd))
- + {
- + return fi->lseek(fi->userinfo, rpos, mode);
- + }
- + return -1;
- + }
- +
- + int lseek(int fd, long rpos, int mode)
- + {
- + return __lseek(fd, rpos, mode);
- + }
- +
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/message.c emacs-18.59/amiga/unix/src/message.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/message.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/message.c Fri Dec 4 21:18:50 1992
- ***************
- *** 0 ****
- --- 1,78 ----
- + #include "amiga.h"
- + #include <intuition/intuition.h>
- + #include <stdarg.h>
- +
- + static struct EasyStruct msg = {
- + sizeof (struct EasyStruct),
- + 0,
- + NULL,
- + NULL,
- + "Ok",
- + };
- +
- + static void message(char *format, long *args)
- + /* Display a message which is as visible as possible (either to the console
- + or to as a requester).
- + Assume very little about library state */
- + {
- + LONG msg_EasyRequestArgs(struct Window *window, struct EasyStruct *easyStruct,
- + ULONG *idcmpPtr, APTR args );
- + #pragma libcall msg_IntuitionBase msg_EasyRequestArgs 24C BA9804
- + BPTR fh;
- + int close = FALSE;
- + extern char *_ProgramName;
- + extern struct WBStartup *_WBenchMsg;
- +
- + fh = _us->pr_CES;
- + if (!fh)
- + if (!_WBenchMsg && (fh = Open("console:", MODE_OLDFILE))) close = TRUE;
- +
- + if (fh)
- + {
- + VFPrintf(fh, "%s: ", &_ProgramName);
- + VFPrintf(fh, format, (long *)args);
- + FPutC(fh, '\n');
- + if (close) Close(fh);
- + }
- + else
- + {
- + struct Window *win = (struct Window *)_us->pr_WindowPtr;
- + if (win != (struct Window *)-1)
- + {
- + struct Library *msg_IntuitionBase = OpenLibrary("intuition.library", 37);
- +
- + if (msg_IntuitionBase)
- + {
- + msg.es_Title = _ProgramName;
- + msg.es_TextFormat = format;
- + msg_EasyRequestArgs(win, &msg, 0, args);
- + CloseLibrary(msg_IntuitionBase);
- + }
- + }
- + }
- + }
- +
- + void _message(char *format, ...)
- + /* Display a message which is as visible as possible (either to the console
- + or to as a requester).
- + Assume very little about library state */
- + {
- + va_list args;
- +
- + va_start(args, format);
- + message(format, (long *)args);
- + }
- +
- + void _fail(char *format, ...)
- + /* Display a message which is as visible as possible (either to the console
- + or to as a requester).
- + Assume very little about library state.
- + Exit with error code RETURN_FAIL after that. */
- + {
- + va_list args;
- +
- + va_start(args, format);
- + message(format, (long *)args);
- +
- + exit(RETURN_FAIL); /* The library should always be cleanup-able */
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/mkdir.c emacs-18.59/amiga/unix/src/mkdir.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/mkdir.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/mkdir.c Sat Sep 26 14:20:44 1992
- ***************
- *** 0 ****
- --- 1,20 ----
- + #include "amiga.h"
- + #include <stdarg.h>
- +
- + int mkdir(char *name, mode_t mode)
- + {
- + BPTR lock;
- + long amode;
- +
- + chkabort();
- +
- + if (lock = CreateDir(name))
- + {
- + UnLock(lock);
- + /* We remove script because mode 777 contains it by def, but it is
- + meaningless for directories */
- + amode = _make_protection(mode) & ~(FIBF_SCRIPT);
- + if (SetProtection(name, _make_protection(mode))) return 0;
- + }
- + ERROR;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/mkfifo.c emacs-18.59/amiga/unix/src/mkfifo.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/mkfifo.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/mkfifo.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,4 ----
- + #include "amiga.h"
- +
- + int mkfifo(char *path, int mode, int dev) { errno = EOSERR; return -1; }
- + int mknod(char *path, int mode, int dev) { errno = EOSERR; return -1; }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/mktemp.c emacs-18.59/amiga/unix/src/mktemp.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/mktemp.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/mktemp.c Sat Aug 15 12:21:26 1992
- ***************
- *** 0 ****
- --- 1,26 ----
- + #include "amiga.h"
- + #include <string.h>
- + #include <stdio.h>
- +
- + char *mktemp(char *name)
- + {
- + int l;
- + char *change = name + strlen(name) - 6;
- + char letter = 'a';
- + char id[9], *end_id;
- +
- + chkabort();
- + _sprintf(id, "%lx", _us);
- + l = strlen(id);
- + end_id = l > 5 ? id + l - 5 : id;
- + _sprintf(change, "a%s", end_id);
- +
- + while (letter <= 'z')
- + {
- + *change = letter;
- + if (access(name, 0)) return name;
- + letter++;
- + }
- + name[0] = '\0';
- + return name;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/open.c emacs-18.59/amiga/unix/src/open.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/open.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/open.c Fri Dec 4 22:16:48 1992
- ***************
- *** 0 ****
- --- 1,141 ----
- + #include "amiga.h"
- + #include "files.h"
- + #include "amigados.h"
- + #include <utility/tagitem.h>
- + #include <stdarg.h>
- + #include <fcntl.h>
- + #include <string.h>
- +
- +
- + #undef open
- +
- + int __open(const char *path, int flags, ...)
- + {
- + int fd, acc = flags & 3, rd, wr, exists = TRUE, amode;
- + struct FileInfoBlock *fib;
- + BPTR plock, fh;
- + long fdflags, protection;
- + APTR pwindow = _us->pr_WindowPtr;
- + ULONG create = MODE_READWRITE; /* Mode to use when creating files. */
- +
- + chkabort();
- +
- + rd = acc == O_RDONLY || acc == O_RDWR;
- + wr = acc == O_WRONLY || acc == O_RDWR;
- +
- + if (stricmp(path, "NIL:") == 0) amode = -1;
- + else
- + {
- + _us->pr_WindowPtr = (APTR)-1;
- + plock = Lock(path, ACCESS_READ);
- + _us->pr_WindowPtr = pwindow;
- + if (!plock)
- + {
- + int err = convert_oserr(IoErr()), ok;
- +
- + /* Devices like pipe: don't like Lock ... */
- + if (_OSERR == ERROR_ACTION_NOT_KNOWN ||
- + _OSERR == 0) /* Some devices (tape:) don't set IoErr() ... */
- + {
- + ok = TRUE;
- + /* Most non-lockable devices don't like MODE_READWRITE.
- + So we have to throw shareable files out the window */
- + create = MODE_NEWFILE;
- + }
- + else /* Missing file ok if we are creating. */
- + ok = err == ENOENT && (flags & O_CREAT);
- +
- + if (ok)
- + {
- + va_list vmode;
- +
- + exists = FALSE;
- + if (flags & O_CREAT)
- + {
- + if (flags & 0x8000) /* SAS C runtime called us, no mode */
- + amode = FIBF_EXECUTE; /* Maybe 0 ? */
- + else
- + {
- + va_start(vmode, flags);
- + amode = _make_protection(va_arg(vmode, int));
- + va_end(vmode);
- + }
- + }
- + else amode = -1; /* Assume complete access */
- + }
- + else
- + {
- + errno = err;
- + return -1;
- + }
- + }
- + else /* File already exists, play with it */
- + {
- + /* Get protection */
- + if (!((fib = AllocDosObjectTags(DOS_FIB, TAG_END)) &&
- + Examine(plock, fib)))
- + {
- + if (fib) FreeDosObject(DOS_FIB, fib);
- + ERROR;
- + }
- + amode = fib->fib_Protection;
- + FreeDosObject(DOS_FIB, fib);
- + UnLock(plock);
- +
- + /* Check access */
- + if ((flags & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL))
- + {
- + errno = EEXIST;
- + return -1;
- + }
- + if ((rd && (amode & FIBF_READ) || wr && (amode & FIBF_WRITE)))
- + {
- + errno = EACCES;
- + return -1;
- + }
- +
- + /* Truncate files, by opening in MODE_NEWFILE, then closing it.
- + This allows the file to be opened in shared mode after that (READWRITE or
- + OLDFILE), which is consistent with the unix semantics. */
- + if (flags & O_TRUNC)
- + {
- + BPTR tfh;
- +
- + if (tfh = Open(path, MODE_NEWFILE)) Close(tfh);
- + else ERROR;
- + }
- + }
- + }
- + if (!(fh = Open(path, flags & O_CREAT ? create : MODE_OLDFILE)))
- + ERROR;
- +
- +
- + /* Protection is set when file is closed because OFS & FFS
- + don't appreciate it being done on MODE_NEWFILE files. */
- + if ((flags & O_TRUNC) || !exists) protection = amode;
- + else protection = -1;
- +
- + fdflags = 0;
- + if (rd) fdflags |= FI_READ;
- + if (wr) fdflags |= FI_WRITE;
- + if (flags & O_APPEND) fdflags |= O_APPEND;
- +
- + fd = _alloc_amigafd(fh, protection, fdflags);
- + if (fd < 0)
- + {
- + _us->pr_WindowPtr = (APTR)-1;
- + Close(fh);
- + _us->pr_WindowPtr = pwindow;
- + }
- + return fd;
- + }
- +
- + int open(const char *path, int flags, ...)
- + {
- + va_list vmode;
- +
- + va_start(vmode, flags);
- + return __open(path, flags, va_arg(vmode, int));
- + va_end(vmode);
- + }
- +
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/perror.c emacs-18.59/amiga/unix/src/perror.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/perror.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/perror.c Wed Dec 2 20:24:48 1992
- ***************
- *** 0 ****
- --- 1,26 ----
- + #include "amiga.h"
- + #include <errno.h>
- + #include <string.h>
- + #include <unistd.h>
- +
- + void perror(const char *s)
- + {
- + char *err;
- + char amiga_err[81];
- +
- + if (s && *s)
- + {
- + write(2, s, strlen(s));
- + write(2, ": ", 2);
- + }
- + if (errno > 0 && errno <= sys_nerr) err = sys_errlist[errno];
- + else if (errno == -1)
- + {
- + if (Fault(_OSERR, NULL, amiga_err, 81)) err = amiga_err;
- + else err = "42"; /* Shouldn't appear ... */
- + }
- + else err = "Unknown error code";
- +
- + write(2, err, strlen(err));
- + write(2, "\n", 1);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/pipe.c emacs-18.59/amiga/unix/src/pipe.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/pipe.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/pipe.c Sun Dec 6 13:14:56 1992
- ***************
- *** 0 ****
- --- 1,354 ----
- + #include "amiga.h"
- + #include "files.h"
- + #include "fifofd.h"
- + #include "signals.h"
- + #include <sys/filio.h>
- + #include <fcntl.h>
- + #include <signal.h>
- + #include <string.h>
- + #include <stdio.h>
- + #include <exec/memory.h>
- + #include <amiga/ioctl.h>
- +
- + /* The pipe system call, using fifo: */
- +
- + static struct MsgPort *create_fifo_port(void)
- + {
- + struct MsgPort *port = AllocMem(sizeof(*port), MEMF_CLEAR | MEMF_PUBLIC);
- +
- + if (!port) return 0;
- + port->mp_Node.ln_Type = NT_MSGPORT;
- + port->mp_Flags = PA_SIGNAL;
- + port->mp_SigBit = _fifo_sig;
- + port->mp_SigTask = _us;
- + NewList(&port->mp_MsgList);
- +
- + return port;
- + }
- +
- + static void delete_fifo_port(struct MsgPort *port)
- + {
- + FreeMem(port, sizeof(*port));
- + }
- +
- + static void free_fifo(struct fifoinfo *fi)
- + {
- + if (fi->rfifo) CloseFifo(fi->rfifo, 0);
- + if (fi->wfifo) CloseFifo(fi->wfifo, FIFOF_EOF);
- + if (fi->rmsg) free(fi->rmsg);
- + if (fi->wmsg) free(fi->wmsg);
- + delete_fifo_port(fi->reply);
- + free(fi);
- + }
- +
- + /* Code for fd's describing fifos */
- +
- + static ULONG __regargs fifo_select_start(void *userinfo, int rd, int wr)
- + {
- + struct fifoinfo *fi = userinfo;
- +
- + if (rd) RequestFifo(fi->rfifo, fi->rmsg, FREQ_RPEND);
- + if (wr) RequestFifo(fi->wfifo, fi->wmsg, FREQ_WAVAIL);
- + return 1UL << _fifo_sig;
- + }
- +
- + static void __regargs fifo_select_poll(void *userinfo, int *rd, int *wr)
- + {
- + struct fifoinfo *fi = userinfo;
- + int rabort = *rd, wabort = *wr;
- + struct Message *msg;
- +
- + while (msg = GetMsg(fi->reply))
- + {
- + if (msg == fi->rmsg) rabort = 0;
- + else if (msg == fi->wmsg) wabort = 0;
- + }
- + if (rabort)
- + {
- + *rd = 0;
- + RequestFifo(fi->rfifo, fi->rmsg, FREQ_ABORT);
- + }
- + if (wabort)
- + {
- + *wr = 0;
- + RequestFifo(fi->wfifo, fi->wmsg, FREQ_ABORT);
- + }
- + while (rabort || wabort)
- + {
- + while (!(msg = GetMsg(fi->reply))) Wait(1UL << _fifo_sig);
- + if (msg == fi->rmsg) rabort = 0;
- + else if (msg == fi->wmsg) wabort = 0;
- + }
- + /* Clear any signals we may have left behind */
- + SetSignal(0, 1UL << _fifo_sig);
- + }
- +
- + /* Using 4.2BSD style semantics, with reads from fifo's returning immediately when
- + data is available, and blocking for empty fifo's only when O_NDELAY was not
- + specified on open */
- +
- + static int __regargs fifo_read(void *userinfo, void *buffer, unsigned int length)
- + {
- + struct fifoinfo *fi = userinfo;
- + char *chars;
- + long ready;
- +
- + while (!(ready = ReadFifo(fi->rfifo, &chars, fi->skip)))
- + {
- + ULONG sigs;
- +
- + fi->skip = 0;
- + if (fi->flags & O_NDELAY)
- + {
- + errno = EWOULDBLOCK;
- + return -1;
- + }
- + Delay(1); /* Perversely, this improves the performance */
- + RequestFifo(fi->rfifo, fi->rmsg, FREQ_RPEND);
- + sigs = _wait_signals(1L << fi->reply->mp_SigBit);
- + RequestFifo(fi->rfifo, fi->rmsg, FREQ_ABORT);
- + while (!GetMsg(fi->reply)) Wait(1UL << _fifo_sig);
- +
- + _handle_signals(sigs);
- + }
- + if (ready == -1) ready = 0;
- + if (ready > length) ready = length;
- + memcpy(buffer, chars, ready);
- + fi->skip = ready;
- +
- + return (int)ready;
- + }
- +
- + static int __regargs fifo_write(void *userinfo, void *_buffer, unsigned int length)
- + {
- + struct fifoinfo *fi = userinfo;
- + long cansend, written;
- + char *buffer = _buffer;
- +
- + if (length == 0) /* Send EOF */
- + {
- + char *fname, sname[FIFO_NAMELEN + 2], mname[FIFO_NAMELEN + 2];
- +
- + /* Send EOF */
- + CloseFifo(fi->wfifo, FIFOF_EOF);
- + /* And reopen fifo */
- + /* Docs say that this clears EOF flag, maybe we should wait a bit ? */
- + /* The writer is the "master" in fifo: terms */
- + strcpy(mname, fi->name); strcat(mname, "_m");
- + strcpy(sname, fi->name); strcat(sname, "_s");
- +
- + fname = !(fi->flags & FI_READ) || (fi->flags & FIFO_MASTER) ? mname : sname;
- + fi->wfifo = OpenFifo(fname, FIFO_BUFSIZE, FIFOF_NORMAL | FIFOF_NBIO |
- + FIFOF_WRITE | FIFOF_RREQUIRED);
- + if (fi->wfifo)
- + {
- + fi->maxsend = BufSizeFifo(fi->wfifo) / 2;
- + return 0;
- + }
- + /* We're in trouble. From now on, all writes will fail */
- + }
- + else if (fi->wfifo)
- + {
- + cansend = fi->maxsend;
- + written = 0;
- + while (length > 0)
- + {
- + long sent;
- +
- + if (cansend > length) cansend = length;
- + while ((sent = WriteFifo(fi->wfifo, buffer, cansend)) == 0)
- + {
- + ULONG sigs;
- + int signaled;
- +
- + if (fi->flags & O_NDELAY)
- + {
- + if (written != 0) return (int)written;
- + errno = EWOULDBLOCK;
- + return -1;
- + }
- + RequestFifo(fi->wfifo, fi->wmsg, FREQ_WAVAIL);
- + sigs = _wait_signals(1L << fi->reply->mp_SigBit);
- + RequestFifo(fi->wfifo, fi->wmsg, FREQ_ABORT);
- + while (!GetMsg(fi->reply)) Wait(1UL << _fifo_sig);
- + signaled = _handle_signals(sigs);
- + if (signaled && written != 0) return (int)written;
- + }
- + if (sent < 0) /* Some problem has occured */ goto fail;
- + written += sent;
- + length -= sent;
- + buffer += sent;
- + }
- + return (int)written;
- + }
- + fail:
- + /* Some problem has occured */
- + _sig_dispatch(SIGPIPE);
- + errno = EPIPE;
- + return -1;
- + }
- +
- + static int __regargs fifo_lseek(void *userinfo, long rpos, int mode)
- + {
- + errno = ESPIPE;
- + return -1;
- + }
- +
- + static int __regargs fifo_close(void *userinfo, int internal)
- + {
- + struct fifoinfo *fi = userinfo;
- +
- + free_fifo(fi);
- + return 0;
- + }
- +
- + static int __regargs fifo_ioctl(void *userinfo, int request, void *data)
- + {
- + struct fifoinfo *fi = userinfo;
- +
- + switch (request)
- + {
- + case FIONBIO:
- + if (*(int *)data) fi->flags |= O_NDELAY;
- + else fi->flags &= ~O_NDELAY;
- + return 0;
- + case _AMIGA_GET_FH: {
- + BPTR *fh = data;
- + char name[FIFO_NAMELEN + 12];
- +
- + /* Get an AmigaDOS fifo: onto the same fifo in the same role */
- + if ((fi->flags & (FI_READ | FI_WRITE)) == (FI_READ | FI_WRITE))
- + _sprintf(name, "fifo:%s/rwesK%s",
- + fi->name, fi->flags & FIFO_MASTER ? "m" : "");
- + else if (fi->flags & FI_READ) _sprintf(name, "fifo:%s/r", fi->name);
- + else _sprintf(name, "fifo:%s/mweK", fi->name);
- + *fh = Open(name, MODE_OLDFILE);
- +
- + if (*fh) return 0;
- + ERROR;
- + }
- + case _AMIGA_FREE_FH: {
- + BPTR *fh = data;
- +
- + if (*fh) Close(*fh);
- + return 0;
- + }
- + default: errno = EINVAL; return -1;
- + }
- + }
- +
- + static int alloc_fifo(char *name, int reader, int writer, int master)
- + {
- + struct fifoinfo *fi;
- + int fd;
- + struct MsgPort *reply = 0;
- + struct Message *rmsg = 0, *wmsg = 0;
- +
- + if ((fi = (struct fifoinfo *)malloc(sizeof(struct fifoinfo))) &&
- + (reply = create_fifo_port()) &&
- + (rmsg = (struct Message *)malloc(sizeof(struct Message))) &&
- + (wmsg = (struct Message *)malloc(sizeof(struct Message))))
- + {
- + rmsg->mn_Node.ln_Type = NT_MESSAGE;
- + rmsg->mn_ReplyPort = reply;
- + rmsg->mn_Length = sizeof(*rmsg);
- + wmsg->mn_Node.ln_Type = NT_MESSAGE;
- + wmsg->mn_ReplyPort = reply;
- + wmsg->mn_Length = sizeof(*wmsg);
- + fi->reply = reply;
- + fi->rmsg = rmsg;
- + fi->wmsg = wmsg;
- + fi->rfifo = fi->wfifo = 0;
- +
- + fi->flags = 0;
- + if (reader) fi->flags |= FI_READ;
- + if (writer) fi->flags |= FI_WRITE;
- + fd = _alloc_fd(fi, fi->flags, fifo_select_start, fifo_select_poll, fifo_read,
- + fifo_write, fifo_lseek, fifo_close, fifo_ioctl);
- + if (fd)
- + {
- + char *fname, sname[FIFO_NAMELEN + 2], mname[FIFO_NAMELEN + 2];
- +
- + if (master) fi->flags |= FIFO_MASTER;
- + strcpy(fi->name, name);
- + /* The writer is the "master" in fifo: terms */
- + strcpy(mname, fi->name); strcat(mname, "_m");
- + strcpy(sname, fi->name); strcat(sname, "_s");
- +
- + if (reader)
- + {
- + fname = !writer || !master ? mname : sname;
- + fi->rfifo = OpenFifo(fname, FIFO_BUFSIZE, FIFOF_NORMAL | FIFOF_NBIO |
- + FIFOF_READ);
- + }
- + if (writer)
- + {
- + fname = !reader || master ? mname : sname;
- + fi->wfifo = OpenFifo(fname, FIFO_BUFSIZE, FIFOF_NORMAL | FIFOF_NBIO |
- + FIFOF_WRITE | FIFOF_RREQUIRED);
- + }
- + if ((fi->rfifo || !reader) && (fi->wfifo || !writer))
- + {
- + if (fi->wfifo) fi->maxsend = BufSizeFifo(fi->wfifo) / 2;
- + fi->skip = 0;
- + return fd;
- + }
- + if (fi->rfifo) CloseFifo(fi->rfifo, 0);
- + if (fi->wfifo) CloseFifo(fi->wfifo, 0);
- + }
- + if (fd >= 0) _free_fd(fd);
- + }
- + if (rmsg) free(rmsg);
- + if (wmsg) free(wmsg);
- + if (reply) delete_fifo_port(reply);
- + if (fi) free(fi);
- + return -1;
- + }
- +
- + int pipe(int fd[2])
- + {
- + char name[FIFO_NAMELEN];
- + struct fileinfo *f0;
- +
- + chkabort();
- + if (!_fifo_ok)
- + {
- + errno = ENXIO;
- + return -1;
- + }
- +
- + _sprintf(name, "uxfifo.%lx", _fifo_base + _fifo_offset++);
- +
- + if ((fd[0] = alloc_fifo(name, TRUE, FALSE, FALSE)) >= 0)
- + if ((fd[1] = alloc_fifo(name, FALSE, TRUE, FALSE)) >= 0) return 0;
- + else
- + {
- + if (f0 = _find_fd(fd[0])) free_fifo(f0->userinfo);
- + _free_fd(fd[0]);
- + }
- + return -1;
- + }
- +
- + int socketpair(int domain, int type, int protocol, int sv[2])
- + {
- + char name[FIFO_NAMELEN];
- + struct fileinfo *f0;
- +
- + chkabort();
- + if (!_fifo_ok)
- + {
- + errno = ENXIO;
- + return -1;
- + }
- +
- + _sprintf(name, "uxfifo.%lx", _fifo_base + _fifo_offset++);
- +
- + if ((sv[0] = alloc_fifo(name, TRUE, TRUE, TRUE)) >= 0)
- + if ((sv[1] = alloc_fifo(name, TRUE, TRUE, FALSE)) >= 0) return 0;
- + else
- + {
- + if (f0 = _find_fd(sv[0])) free_fifo(f0->userinfo);
- + _free_fd(sv[0]);
- + }
- + return -1;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/popen.c emacs-18.59/amiga/unix/src/popen.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/popen.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/popen.c Sun Oct 25 11:25:20 1992
- ***************
- *** 0 ****
- --- 1,93 ----
- + #include "amiga.h"
- + #include "processes.h"
- + #include "fifofd.h"
- + #include <amiga/ioctl.h>
- + #include <exec/memory.h>
- + #include <dos/dosextens.h>
- + #include <dos/dostags.h>
- + #include <string.h>
- +
- + struct pprocess
- + {
- + struct pprocess *next;
- + FILE *f;
- + int pid;
- + };
- +
- + static struct pprocess *_pplist;
- +
- + FILE *popen(char *command, char *type)
- + {
- + FILE *pipe;
- + BPTR in, out;
- + int close_in, close_out;
- + char pname[24];
- + struct pprocess *pp = (struct pprocess *)malloc(sizeof(struct pprocess));
- +
- + _sprintf(pname, "pipe:uxopen.%lx", _fifo_base + _fifo_offset++);
- +
- + if (type[0] == 'w' && type[1] == '\0')
- + {
- + pipe = fopen(pname, "w");
- + out = Output(); close_out = FALSE;
- + in = Open(pname, MODE_OLDFILE); close_in = TRUE;
- + }
- + else if (type[0] == 'r' && type[1] == '\0')
- + {
- + pipe = fopen(pname, "r");
- + in = Input(); close_in = FALSE;
- + out = Open(pname, MODE_NEWFILE); close_out = TRUE;
- + }
- + else
- + {
- + errno = EINVAL;
- + return NULL;
- + }
- +
- + if (!in || !out) _seterr();
- + if (pipe && in && out && pp)
- + {
- + pp->pid = _start_process(command, in, close_in, out, close_out,
- + -1, FALSE, 0, 0);
- +
- + if (pp->pid)
- + {
- + pp->next = _pplist;
- + _pplist = pp;
- + pp->f = pipe;
- +
- + return pipe;
- + }
- + }
- + if (pp) free(pp);
- + if (in && close_in) Close(in);
- + if (out && close_out) Close(out);
- + if (pipe) fclose(pipe);
- +
- + return NULL;
- + }
- +
- + int pclose(FILE *f)
- + {
- + struct pprocess **scan = &_pplist;
- +
- + while (*scan)
- + {
- + if ((*scan)->f == f) /* found */
- + {
- + struct pprocess *son = *scan;
- + int status;
- + int pid = son->pid;
- +
- + *scan = son->next; /* Remove process from list */
- +
- + fclose(son->f);
- + free(son);
- + /* Wait for process to terminate */
- + if (waitpid(pid, &status, NULL) >= 0) return status;
- + return -1;
- + }
- + scan = &(*scan)->next;
- + }
- + return -1;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/processes.c emacs-18.59/amiga/unix/src/processes.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/processes.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/processes.c Sat Sep 26 11:26:36 1992
- ***************
- *** 0 ****
- --- 1,56 ----
- + #include "amiga.h"
- + #include <clib/alib_protos.h>
- +
- + #include "processes.h"
- +
- + int _next_pid, _our_pid;
- + struct MinList _processes;
- + char _door_name[DOOR_LEN];
- + struct MsgPort *_children_exit;
- + struct MsgPort *_startup_port;
- +
- + void _free_entry(struct process *p)
- + {
- + Remove((struct Node *)p);
- + free(p);
- + }
- +
- + struct process *_find_pid(int pid)
- + {
- + struct process *entry;
- +
- + scan_processes (entry) if (entry->pid == pid) return entry;
- +
- + return 0;
- + }
- +
- + void _init_processes(void)
- + {
- + NewList((struct List *)&_processes);
- + /* Choose a fairly unique pid for ourselves, but keep it within a range
- + which guarantees positive pid's for all created processes.
- + This range is further restricted to 23 bits so that a pid fits within the
- + range of an emacs number (generally 24 bits, though it is 26 on the Amiga) */
- + _our_pid = ((int)_us ^ _startup_time) & 0x7fffff;
- + _next_pid = _our_pid + 1;
- + _sprintf(_door_name, "door.%lx.%lx", _us, _startup_time);
- + if ((_startup_port = CreateMsgPort()) &&
- + (_children_exit = CreatePort(_door_name, 0))) return;
- +
- + _fail("No memory");
- + }
- +
- + void _cleanup_processes(void)
- + {
- + if (_startup_port) DeleteMsgPort(_startup_port);
- + if (_children_exit)
- + {
- + struct exit_message *msg;
- +
- + Forbid();
- + while (msg = (struct exit_message *)GetMsg(_children_exit))
- + FreeMem(msg, sizeof(struct exit_message));
- + DeletePort(_children_exit);
- + Permit();
- + }
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/processes.h emacs-18.59/amiga/unix/src/processes.h
- *** /src/baseline/emacs-18.59/amiga/unix/src/processes.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/processes.h Mon Oct 19 21:28:30 1992
- ***************
- *** 0 ****
- --- 1,46 ----
- + #ifndef _PROCESSES_H
- + #define _PROCESSES_H_
- +
- + struct process
- + {
- + struct MinNode node;
- + struct Task *process;
- + int pid;
- + BPTR input;
- + enum { alive, exited } status;
- + int rc;
- + };
- +
- + struct exit_message /* Sent by children when exiting */
- + {
- + struct Message m;
- + int pid;
- + int rc;
- + };
- +
- + extern int _next_pid, _our_pid;
- + extern struct MinList _processes;
- + #define DOOR_LEN 32
- + extern char _door_name[DOOR_LEN];
- + extern struct MsgPort *_children_exit;
- + extern struct MsgPort *_startup_port;
- +
- + #define scan_processes(p) for (p = (struct process *)_processes.mlh_Head; \
- + p->node.mln_Succ; \
- + p = (struct process *)p->node.mln_Succ)
- +
- + #define no_processes() (_processes.mlh_Head->mln_Succ == 0)
- +
- + void _free_entry(struct process *p);
- + struct process *_find_pid(int pid);
- + void _init_processes(void);
- + void _cleanup_processes(void);
- +
- + int _start_process(char *command,
- + BPTR input, int close_input,
- + BPTR output, int close_output,
- + BPTR error, int close_error,
- + BPTR dir,
- + long stacksize);
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/protection.c emacs-18.59/amiga/unix/src/protection.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/protection.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/protection.c Sat Aug 8 22:13:32 1992
- ***************
- *** 0 ****
- --- 1,73 ----
- + #include "amiga.h"
- + #include <sys/stat.h>
- +
- + int use_amiga_flags;
- +
- + int _make_protection(int mode)
- + {
- + int amode;
- +
- + if (use_amiga_flags) return mode;
- +
- + /* We always turn archive off */
- + amode = 0;
- +
- + /* Read: if any unix read */
- + if (mode & (S_IRUSR | S_IRGRP | S_IROTH)) amode |= FIBF_READ;
- +
- + /* Write: if user write or group write
- + Delete: if user write or world write */
- + if (mode & S_IWUSR) amode |= FIBF_WRITE | FIBF_DELETE;
- + if (mode & S_IWGRP) amode |= FIBF_WRITE;
- + if (mode & S_IWOTH) amode |= FIBF_DELETE;
- +
- + /* Execute: if group execute or user execute and not world execute
- + Script: if world execute or user execute ant not group execute */
- + if (mode & S_IXGRP) amode |= FIBF_EXECUTE;
- + if (mode & S_IXOTH) amode |= FIBF_SCRIPT;
- + if ((mode & (S_IXUSR | S_IXGRP | S_IXOTH)) == S_IXUSR)
- + amode |= FIBF_EXECUTE | FIBF_SCRIPT;
- +
- + /* Pure: if sticky */
- + if (mode & S_ISVTX) amode |= FIBF_PURE;
- +
- + /* Make correct bits active 0 */
- + amode ^= FIBF_READ | FIBF_WRITE | FIBF_EXECUTE | FIBF_DELETE;
- + return amode;
- + }
- +
- + int _make_mode(int protection)
- + {
- + int mode;
- +
- + if (use_amiga_flags) return protection & ~S_IFMT;
- +
- + mode = 0;
- + /* make all bits active 1 */
- + protection ^= FIBF_READ | FIBF_WRITE | FIBF_EXECUTE | FIBF_DELETE;
- +
- + /* Read user, group, world if amiga read */
- + if (protection & FIBF_READ) mode |= S_IRUSR | S_IRGRP | S_IROTH;
- +
- + /* Write:
- + user if amiga write & delete
- + group if amiga write
- + other if amiga delete */
- + if ((protection & (FIBF_WRITE | FIBF_DELETE)) == (FIBF_WRITE | FIBF_DELETE))
- + mode |= S_IWUSR;
- + if (protection & FIBF_WRITE) mode |= S_IWGRP;
- + if (protection & FIBF_DELETE) mode |= S_IWOTH;
- +
- + /* Execute:
- + user if amiga execute or script
- + group if amiga execute
- + world if amiga script */
- + if (protection & (FIBF_EXECUTE | FIBF_SCRIPT)) mode |= S_IXUSR;
- + if (protection & FIBF_EXECUTE) mode |= S_IXGRP;
- + if (protection & FIBF_SCRIPT) mode |= S_IXOTH;
- +
- + /* Sticky: if pure */
- + if (protection & FIBF_PURE) mode |= S_ISVTX;
- +
- + return mode;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/pseudo_c.c emacs-18.59/amiga/unix/src/pseudo_c.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/pseudo_c.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/pseudo_c.c Fri Aug 14 18:13:46 1992
- ***************
- *** 0 ****
- --- 1,18 ----
- + #include "amiga.h"
- + #include "files.h"
- + #include <fcntl.h>
- +
- + int _pseudo_close(int fd)
- + {
- + struct fileinfo *fi;
- +
- + chkabort();
- + if (fi = _find_fd(fd))
- + {
- + int err = fi->close(fi->userinfo, TRUE);
- +
- + _free_fd(fd);
- + return err;
- + }
- + return -1;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/pwd.c emacs-18.59/amiga/unix/src/pwd.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/pwd.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/pwd.c Sun Sep 20 09:36:52 1992
- ***************
- *** 0 ****
- --- 1,13 ----
- + #include "amiga.h"
- + #include <pwd.h>
- +
- + struct passwd _amiga_user = {
- + NULL, "",
- + AMIGA_UID, AMIGA_GID,
- + 0, "", NULL,
- + NULL, NULL
- + };
- +
- + struct passwd *getpwuid(uid_t uid) { return &_amiga_user; }
- + struct passwd *getpwnam(char *name) { return &_amiga_user; }
- + char *getlogin(void) { return _amiga_user.pw_name; }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/read.c emacs-18.59/amiga/unix/src/read.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/read.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/read.c Fri Dec 4 22:17:24 1992
- ***************
- *** 0 ****
- --- 1,24 ----
- + #include "amiga.h"
- + #include "files.h"
- + #include <fcntl.h>
- +
- + #undef read
- +
- + int __read(int fd, void *buffer, unsigned int length)
- + {
- + struct fileinfo *fi;
- +
- + chkabort();
- + if (fi = _find_fd(fd))
- + {
- + if (fi->flags & FI_READ) return fi->read(fi->userinfo, buffer, length);
- + errno = EACCES;
- + }
- + return -1;
- + }
- +
- + int read(int fd, void *buffer, unsigned int length)
- + {
- + return __read(fd, buffer, length);
- + }
- +
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/readlink.c emacs-18.59/amiga/unix/src/readlink.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/readlink.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/readlink.c Mon Sep 27 19:20:10 1993
- ***************
- *** 0 ****
- --- 1,38 ----
- + #include "amiga.h"
- + #include <string.h>
- +
- + int readlink(char *path, char *buf, int bufsiz)
- + {
- + struct DevProc *dev = NULL;
- +
- + chkabort();
- +
- + while (1)
- + {
- + struct DevProc *newdev = GetDeviceProc(path, dev);
- + long err;
- +
- + FreeDeviceProc(dev);
- + if (!(dev = newdev)) ERROR;
- +
- + buf[0] = '\0';
- + if (ReadLink(dev->dvp_Port, dev->dvp_Lock, path, buf, bufsiz + 1))
- + {
- + FreeDeviceProc(dev);
- + if (!buf[0])
- + {
- + /* Play games with apparent 2.x ram: bug */
- + errno = ENOENT;
- + return -1;
- + }
- + return strlen(buf);
- + }
- + err = IoErr();
- + if (!(err == ERROR_OBJECT_NOT_FOUND && (dev->dvp_Flags & DVPF_ASSIGN)))
- + {
- + FreeDeviceProc(dev);
- + errno = convert_oserr(err);
- + return -1;
- + }
- + }
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/rename.c emacs-18.59/amiga/unix/src/rename.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/rename.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/rename.c Wed Dec 2 20:01:48 1992
- ***************
- *** 0 ****
- --- 1,24 ----
- + #include "amiga.h"
- +
- + int rename(const char *from, const char *to)
- + {
- + long err;
- +
- + chkabort();
- + if (Rename(from, to)) return 0;
- + err = IoErr();
- + if (err == ERROR_OBJECT_EXISTS)
- + {
- + if (DeleteFile(to) && Rename(from, to)) return 0;
- + err = IoErr();
- +
- + if (err == ERROR_DELETE_PROTECTED)
- + {
- + if (SetProtection(to, 0) && DeleteFile(to) && Rename(from, to))
- + return 0;
- + err = IoErr();
- + }
- + }
- + errno = convert_oserr(err);
- + return -1;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/rindex.c emacs-18.59/amiga/unix/src/rindex.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/rindex.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/rindex.c Wed Dec 2 20:22:42 1992
- ***************
- *** 0 ****
- --- 1,8 ----
- + #include <string.h>
- +
- + #undef rindex
- +
- + char *rindex(char *str, int c)
- + {
- + return strrchr(str, c);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/rmdir.c emacs-18.59/amiga/unix/src/rmdir.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/rmdir.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/rmdir.c Sat Aug 1 16:08:26 1992
- ***************
- *** 0 ****
- --- 1,31 ----
- + #include "amiga.h"
- + #include <utility/tagitem.h>
- +
- + int rmdir(char *name)
- + {
- + struct FileInfoBlock *fib = 0;
- + BPTR lock = 0;
- +
- + if ((fib = AllocDosObjectTags(DOS_FIB, TAG_END)) &&
- + (lock = Lock(name, ACCESS_READ)) &&
- + Examine(lock, fib))
- + {
- + int isdir = fib->fib_DirEntryType > 0;
- +
- + UnLock(lock);
- + FreeDosObject(DOS_FIB, fib);
- +
- + if (isdir)
- + {
- + if (DeleteFile(name)) return 0;
- + ERROR;
- + }
- + errno = ENOTDIR;
- + return -1;
- + }
- + errno = convert_oserr(IoErr());
- +
- + if (lock) UnLock(lock);
- + if (fib) FreeDosObject(DOS_FIB, fib);
- + return -1;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/select.c emacs-18.59/amiga/unix/src/select.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/select.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/select.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,72 ----
- + #include "amiga.h"
- + #include "files.h"
- + #include "signals.h"
- + #include "timers.h"
- + #include <sys/time.h>
- +
- + int select(int nfds, int *rfds, int *wfds, int *efds, struct timeval *timeout)
- + {
- + int fdmask, i, fdcount;
- + int poll = timeout && timeout->tv_sec == 0 && timeout->tv_usec == 0;
- + ULONG eventmask, sigs;
- + int orfds = rfds ? *rfds : 0, owfds = wfds ? *wfds : 0, oefds = efds ? *efds : 0;
- +
- + for (i = 0, fdmask = 1; i < nfds; i++, fdmask <<= 1)
- + {
- + int rd = orfds & fdmask, wr = owfds & fdmask;
- +
- + chkabort();
- + if (rd || wr)
- + {
- + struct fileinfo *fi = _find_fd(i);
- +
- + if (!fi) return -1;
- + if (rd && !(fi->flags & FI_READ) || wr && !(fi->flags & FI_WRITE))
- + {
- + errno = EACCES;
- + return -1;
- + }
- + }
- + }
- +
- + if (timeout) _timer_start(_odd_timer, timeout->tv_sec, timeout->tv_usec);
- + else _timer_abort(_odd_timer);
- + fdcount = 0;
- + do
- + {
- + eventmask = 0;
- + for (i = 0, fdmask = 1; i < nfds; i++, fdmask <<= 1)
- + {
- + int rd = orfds & fdmask, wr = owfds & fdmask;
- +
- + if (rd || wr)
- + {
- + struct fileinfo *fi = _find_fd(i);
- +
- + eventmask |= fi->select_start(fi->userinfo, rd, wr);
- + }
- + }
- +
- + if (eventmask == -1 || poll) /* Don't wait */ sigs = _check_signals(0);
- + else /* Wait*/ sigs = _wait_signals(_odd_sig | eventmask);
- +
- + for (i = 0, fdmask = 1; i < nfds; i++, fdmask <<= 1)
- + {
- + int rd = orfds & fdmask, wr = owfds & fdmask;
- +
- + if (rd || wr)
- + {
- + struct fileinfo *fi = _find_fd(i);
- +
- + fi->select_poll(fi->userinfo, &rd, &wr);
- + if (!rd && rfds) *rfds &= ~fdmask;
- + if (!wr && wfds) *wfds &= ~fdmask;
- + if (rd || wr) fdcount++;
- + }
- + }
- + _handle_signals(sigs);
- + }
- + while (fdcount == 0 && !_timer_expired(_odd_timer) && !poll);
- +
- + return fdcount;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/setjmp.c emacs-18.59/amiga/unix/src/setjmp.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/setjmp.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/setjmp.c Sun Aug 16 11:57:30 1992
- ***************
- *** 0 ****
- --- 1,15 ----
- + #include "amiga.h"
- + #include "signals.h"
- + #include <setjmp.h>
- +
- + int setjmp(jmp_buf jb)
- + {
- + jb[0] = _sig_mask;
- + return _setjmp(jb + 1);
- + }
- +
- + void longjmp(jmp_buf jb, int val)
- + {
- + sigsetmask(jb[0]);
- + _longjmp(jb + 1, val);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/siglist.c emacs-18.59/amiga/unix/src/siglist.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/siglist.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/siglist.c Sat Aug 15 11:21:06 1992
- ***************
- *** 0 ****
- --- 1,35 ----
- + char *sys_siglist[] =
- + {
- + "no signal",
- + "hangup",
- + "interrupt",
- + "quit",
- + "illegal instruction",
- + "trace trap",
- + "abort",
- + "emt instruction",
- + "floating point exception",
- + "kill",
- + "bus error",
- + "segmentation violation",
- + "bad argument to system call",
- + "write on a pipe with no one to read it",
- + "alarm clock",
- + "software termination signal from kill",
- + "status signal",
- + "sendable stop signal not from tty",
- + "stop signal from tty",
- + "continue a stopped process",
- + "child status has changed",
- + "background read attempted from control tty",
- + "background write attempted from control tty",
- + "input record available at control tty",
- + "exceeded CPU time limit",
- + "exceeded file size limit",
- + "unknown signal",
- + "unknown signal",
- + "window changed",
- + "unknown signal",
- + "user signal 1",
- + "user signal 2",
- + };
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/signal.c emacs-18.59/amiga/unix/src/signal.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/signal.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/signal.c Sun Nov 8 19:33:22 1992
- ***************
- *** 0 ****
- --- 1,26 ----
- + #include "amiga.h"
- + #include "signals.h"
- +
- + int sigvec(int sig, struct sigvec *vec, struct sigvec *ovec)
- + {
- + chkabort();
- + if (sig >= 1 && sig < NSIG)
- + {
- + if (ovec) *ovec = _sig_handlers[sig];
- + if (vec) _sig_handlers[sig] = *vec;
- + return 0;
- + }
- + errno = EINVAL;
- + return -1;
- + }
- +
- + void (*signal(int sig,void (*fn)(int)))(int)
- + {
- + struct sigvec vec, ovec;
- +
- + vec.sv_handler = fn;
- + vec.sv_mask = 0;
- + /*vec.sv_flags = 0;*/
- + if (sigvec(sig, &vec, &ovec)) return -1;
- + return ovec.sv_handler;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/signals.c emacs-18.59/amiga/unix/src/signals.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/signals.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/signals.c Sun Oct 18 20:16:02 1992
- ***************
- *** 0 ****
- --- 1,211 ----
- + #include "amiga.h"
- + #include "timers.h"
- + #include "signals.h"
- + #include "processes.h"
- +
- + static ULONG signalsigs; /* When one of these occur, call handle_signals */
- + struct sigvec _sig_handlers[NSIG];
- + long _sig_mask, _sig_pending;
- +
- + /* Alarm signal */
- + /* ------------ */
- +
- + static struct timeinfo *alarm_timer;
- +
- + static int check_alarm(ULONG sigs)
- + {
- + return alarm_timer && _timer_expired(alarm_timer);
- + }
- +
- + void alarm(int secs)
- + /* Effect: Schedule a SIGALRM after secs seconds
- + */
- + {
- + _timer_start(alarm_timer, secs, 0);
- + }
- +
- + static void init_alarm(void)
- + {
- + if (!(alarm_timer = _alloc_timer())) _fail("Failed to create timer");
- + signalsigs |= _timer_sig(alarm_timer);
- + }
- +
- + static void cleanup_alarm(void)
- + {
- + _free_timer(alarm_timer);
- + }
- +
- + /* SIGINT definition */
- + /* ----------------- */
- +
- + static void init_sigint(void)
- + {
- + signalsigs |= SIGBREAKF_CTRL_C;
- + }
- +
- + /*static void cleanup_sigint(void) { }*/
- +
- + static int check_sigint(ULONG sigs)
- + {
- + return (sigs & SIGBREAKF_CTRL_C) != 0;
- + }
- +
- + /* SIGQUIT definition */
- + /* ------------------ */
- +
- + static void init_sigquit(void)
- + {
- + signalsigs |= SIGBREAKF_CTRL_D;
- + }
- +
- + /*static void cleanup_sigquit(void) { }*/
- +
- + static int check_sigquit(ULONG sigs)
- + {
- + return (sigs & SIGBREAKF_CTRL_D) != 0;
- + }
- +
- + /* SIGCHLD definition */
- + /* ------------------ */
- +
- + static void init_children(void)
- + {
- + _init_processes();
- + signalsigs |= 1L << _children_exit->mp_SigBit;
- + }
- +
- + static void cleanup_children(void)
- + {
- + _cleanup_processes();
- + }
- +
- + static int check_children(ULONG sigs)
- + {
- + struct exit_message *msg;
- + int change = FALSE;
- +
- + while (msg = (struct exit_message *)GetMsg(_children_exit))
- + {
- + struct process *p;
- +
- + if ((p = _find_pid(msg->pid)) && p->status == alive)
- + {
- + change = TRUE;
- + p->status = exited;
- + p->rc = msg->rc;
- + }
- + FreeMem(msg, sizeof(struct exit_message));
- + }
- + return change;
- + }
- +
- + /* Signal dispatching */
- + /* ------------------ */
- +
- + void _sig_dispatch(int sig)
- + /* Effect: Do the action associated with signal sig it it isn't masked
- + Mask it for the duration of the signal exec
- + */
- + {
- + void (*fn)(int);
- + long smask = 1 << sig;
- +
- + if (sig == SIGKILL) _exit(0);
- +
- + if (_sig_mask & smask) _sig_pending |= smask;
- + else
- + do
- + {
- + _sig_pending &= ~smask;
- + if (sig >= 0 && sig < NSIG)
- + {
- + fn = _sig_handlers[sig].sv_handler;
- +
- + if (fn == SIG_DFL)
- + switch (sig)
- + {
- + case SIGCHLD: case SIGURG: case SIGWINCH: break;
- + case SIGINT: case SIGQUIT: _message("user interrupt");
- + default: _exit(0);
- + }
- + else if (fn != SIG_IGN)
- + {
- + int mask = smask | _sig_handlers[sig].sv_mask;
- +
- + _sig_mask |= mask;
- + fn(sig);
- + _sig_mask &= ~mask;
- + }
- + }
- + }
- + while (_sig_pending & smask); /* Signal may have been generated during the
- + signal handling function. */
- + }
- +
- + ULONG _check_signals(ULONG extra_sigs)
- + {
- + return SetSignal(0, signalsigs | extra_sigs);
- + }
- +
- + ULONG _wait_signals(ULONG extra_sigs)
- + {
- + return Wait(signalsigs | extra_sigs);
- + }
- +
- + int _handle_signals(ULONG sigs)
- + {
- + int signaled = 0;
- +
- + if (check_alarm(sigs)) { signaled = 1; _sig_dispatch(SIGALRM); }
- + if (check_sigint(sigs)) { signaled = 1; _sig_dispatch(SIGINT); }
- + if (check_sigquit(sigs)) { signaled = 1; _sig_dispatch(SIGQUIT); }
- + if (check_children(sigs)) { signaled = 1; _sig_dispatch(SIGCHLD); }
- +
- + return signaled;
- + }
- +
- + /* Patch into SAS signal stuff so as to replace it */
- +
- + void CXFERR(int code)
- + {
- + extern int _FPERR;
- +
- + _FPERR = code;
- + _sig_dispatch(SIGFPE);
- + }
- +
- + void chkabort(void)
- + /* Checks all signals */
- + {
- + _handle_signals(_check_signals(0));
- + }
- +
- + void Chk_Abort(void) { chkabort(); }
- +
- + /* Initialisation */
- + /* -------------- */
- +
- + void _init_signals(void)
- + {
- + int i;
- +
- + for (i = 0; i < NSIG; i++)
- + {
- + _sig_handlers[i].sv_handler = SIG_DFL;
- + _sig_handlers[i].sv_mask = 0;
- + /*_sig_handlers[i].sv_flags = 0;*/
- + }
- +
- + _sig_mask = _sig_pending = 0;
- + signalsigs = 0;
- +
- + init_sigint(); init_sigquit(); init_alarm(); init_children();
- + }
- +
- + void _cleanup_signals(void)
- + {
- + cleanup_alarm();
- + /*cleanup_sigquit();*/
- + /*cleanup_sigint();*/
- + cleanup_children();
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/signals.h emacs-18.59/amiga/unix/src/signals.h
- *** /src/baseline/emacs-18.59/amiga/unix/src/signals.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/signals.h Sun Oct 18 19:59:26 1992
- ***************
- *** 0 ****
- --- 1,21 ----
- + #ifndef SIGNALS_H
- + #define SIGNALS_H
- +
- + #include <signal.h>
- +
- + extern struct sigvec _sig_handlers[NSIG];
- + extern long _sig_mask, _sig_pending;
- +
- + void _sig_dispatch(int sig);
- + /* Effect: Do the action associated with signal sig it it isn't masked
- + Mask it for the duration of the signal exec
- + */
- +
- + ULONG _check_signals(ULONG extra_sigs);
- + ULONG _wait_signals(ULONG extra_sigs);
- + int _handle_signals(ULONG sigs);
- +
- + void _init_signals(void);
- + void _cleanup_signals(void);
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/sigpause.c emacs-18.59/amiga/unix/src/sigpause.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/sigpause.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/sigpause.c Sat Aug 1 16:42:14 1992
- ***************
- *** 0 ****
- --- 1,16 ----
- + #include "amiga.h"
- + #include "signals.h"
- +
- + int sigpause(long mask)
- + {
- + long oldmask = sigsetmask(mask);
- + ULONG sigs;
- +
- + sigs = _check_signals(0);
- + while (!_handle_signals(sigs)) sigs = _wait_signals(0);
- +
- + sigsetmask(oldmask);
- +
- + errno = EINTR;
- + return -1;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/sigsetmask.c emacs-18.59/amiga/unix/src/sigsetmask.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/sigsetmask.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/sigsetmask.c Sun Oct 18 20:17:02 1992
- ***************
- *** 0 ****
- --- 1,22 ----
- + #include "amiga.h"
- + #include "signals.h"
- +
- + long sigsetmask(long mask)
- + {
- + int oldmask = _sig_mask, i, imask;
- +
- + chkabort();
- + _sig_mask = mask;
- +
- + /* Check all pending signals */
- + for (i = 0, imask = 1; i < NSIG; i++, imask <<= 1)
- + if ((_sig_pending & imask) && !(_sig_mask & imask))
- + _sig_dispatch(i);
- +
- + return oldmask;
- + }
- +
- + long sigblock(long mask)
- + {
- + return sigsetmask(_sig_mask | mask);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/sleep.c emacs-18.59/amiga/unix/src/sleep.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/sleep.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/sleep.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,13 ----
- + #include "amiga.h"
- + #include "timers.h"
- + #include "signals.h"
- +
- + int sleep(unsigned seconds)
- + {
- + chkabort();
- + _timer_start(_odd_timer, seconds, 0);
- +
- + while (!_timer_expired(_odd_timer)) _handle_signals(_wait_signals(_odd_sig));
- +
- + return 0;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/smakefile emacs-18.59/amiga/unix/src/smakefile
- *** /src/baseline/emacs-18.59/amiga/unix/src/smakefile Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/smakefile Sun Dec 6 14:33:20 1992
- ***************
- *** 0 ****
- --- 1,128 ----
- + OBJS= mkdir.o devices.o processes.o kill.o abort.o error.o error_msg.o \
- + fcntl.o select.o read.o lseek.o chmod.o getwd.o mktemp.o link.o \
- + getenv.o time.o write.o creat.o sleep.o uid.o exec.o truncate.o \
- + strftime.o rmdir.o sigpause.o isatty.o mkfifo.o fchmod.o ftruncate.o \
- + bzero.o fibstat.o bcmp.o chown.o rename.o amigados.o ctime.o open.o \
- + ioctl.o _exit.o gid.o protection.o umask.o _main.o signals.o grp.o \
- + pipe.o unlink.o alloca.o readlink.o pwd.o timeconvert.o amigatime.o \
- + bcopy.o utime.o files.o close.o fifofd.o timers.o index.o rindex.o \
- + pseudo_c.o wait4.o siglist.o perror.o gethostname.o setjmp.o allocdos.o \
- + message.o symlink.o fstat.o access.o dir_data.o dir.o stat.o \
- + sigsetmask.o signal.o getpid.o start.o popen.o tmpnam.o
- +
- + DEFS = define=SOFTLINK
- + OPTIMIZE = opt
- + CFLAGS = $(OPTS) $(DEFS) gst=amiga.sym $(OPTIMIZE)
- +
- + all: amiga.sym unix.lib unix-hard.lib
- +
- + ALLOBJS = $(OBJS) sprintf.o _setjmp.o
- +
- + unix.lib: $(ALLOBJS)
- + -delete unix.lib ram:unix.lib
- + oml ram:unix.lib <@<
- + r $(ALLOBJS)
- + <
- + copy ram:unix.lib ""
- +
- + unix-hard.lib: unix.lib fibstat-hard.o
- + copy unix.lib ram:
- + oml ram:unix.lib d fibstat.c
- + oml ram:unix.lib r fibstat-hard.o
- + copy ram:unix.lib unix-hard.lib
- +
- + sprintf.o: sprintf.asm
- + asm -osprintf.o -iINCLUDE: sprintf.asm
- +
- + _setjmp.o: _setjmp.asm
- + asm -o_setjmp.o -iINCLUDE: _setjmp.asm
- +
- + amiga.sym: amiga.h
- + copy amiga.h am.c
- + sc makegst=amiga.sym $(OPTS) am.c
- + delete am.c
- +
- + fibstat-hard.o: fibstat.c
- + $(CC) $(CFLAGS) DEF PRETEND_LINKED objname $@ fibstat.c
- +
- + mkdir.o: mkdir.c amiga.h
- + devices.o: devices.c amiga.h
- + processes.o: processes.c processes.h amiga.h
- + kill.o: kill.c processes.h signals.h amiga.h
- + abort.o: abort.c amiga.h
- + error.o: error.c amiga.h
- + error_msg.o: error_msg.c amiga.h
- + fcntl.o: fcntl.c amiga.h
- + select.o: select.c signals.h amiga.h
- + read.o: read.c amiga.h
- + lseek.o: lseek.c amiga.h
- + chmod.o: chmod.c amiga.h
- + getwd.o: getwd.c amiga.h
- + mktemp.o: mktemp.c amiga.h
- + link.o: link.c amiga.h
- + getenv.o: getenv.c amiga.h
- + time.o: time.c timeconvert.h amiga.h
- + write.o: write.c amiga.h
- + creat.o: creat.c amiga.h
- + sleep.o: sleep.c signals.h amiga.h
- + uid.o: uid.c amiga.h
- + exec.o: exec.c processes.h amiga.h
- + truncate.o: truncate.c amigados.h amiga.h
- + strftime.o: strftime.c
- + rmdir.o: rmdir.c amiga.h
- + sigpause.o: sigpause.c signals.h amiga.h
- + isatty.o: isatty.c amiga.h
- + mkfifo.o: mkfifo.c amiga.h
- + fchmod.o: fchmod.c amiga.h
- + ftruncate.o: ftruncate.c amiga.h
- + bzero.o: bzero.c amiga.h
- + fibstat.o: fibstat.c timeconvert.h fibstat.h amiga.h
- + bcmp.o: bcmp.c amiga.h
- + chown.o: chown.c amiga.h
- + rename.o: rename.c amiga.h
- + amigados.o: amigados.c signals.h amiga.h
- + ctime.o: ctime.c
- + open.o: open.c amigados.h amiga.h
- + ioctl.o: ioctl.c amiga.h
- + _exit.o: _exit.c fifo_pragmas.h fifo.h fifofd.h signals.h amiga.h
- + gid.o: gid.c amiga.h
- + protection.o: protection.c amiga.h
- + umask.o: umask.c amiga.h
- + _main.o: _main.c fifo_pragmas.h fifo.h amigados.h fifofd.h signals.h amiga.h
- + signals.o: signals.c processes.h signals.h amiga.h
- + grp.o: grp.c amiga.h
- + pipe.o: pipe.c fifo_pragmas.h fifo.h fifofd.h signals.h amiga.h
- + unlink.o: unlink.c amiga.h
- + alloca.o: alloca.c
- + readlink.o: readlink.c amiga.h
- + pwd.o: pwd.c amiga.h
- + timeconvert.o: timeconvert.c timeconvert.h amiga.h
- + amigatime.o: amigatime.c timeconvert.h amiga.h
- + bcopy.o: bcopy.c amiga.h
- + utime.o: utime.c timeconvert.h amiga.h
- + files.o: files.c amiga.h
- + close.o: close.c amiga.h
- + fifofd.o: fifofd.c fifo_pragmas.h fifo.h fifofd.h amiga.h
- + timers.o: timers.c amiga.h
- + index.o: index.c
- + rindex.o: rindex.c
- + pseudo_c.o: pseudo_c.c amiga.h
- + wait4.o: wait4.c processes.h signals.h amiga.h
- + siglist.o: siglist.c
- + perror.o: perror.c amiga.h
- + gethostname.o: gethostname.c amiga.h
- + setjmp.o: setjmp.c signals.h amiga.h
- + allocdos.o: allocdos.c
- + message.o: message.c amiga.h
- + symlink.o: symlink.c amiga.h
- + fstat.o: fstat.c fibstat.h amiga.h
- + access.o: access.c fibstat.h amiga.h
- + dir_data.o: dir_data.c dir_data.h amiga.h
- + dir.o: dir.c dir_data.h amiga.h
- + stat.o: stat.c dir_data.h fibstat.h amiga.h
- + sigsetmask.o: sigsetmask.c signals.h amiga.h
- + signal.o: signal.c signals.h amiga.h
- + getpid.o: getpid.c processes.h amiga.h
- + start.o: start.c processes.h amiga.h
- + popen.o: popen.c fifo_pragmas.h fifo.h processes.h fifofd.h amiga.h
- + tmpnam.o: tmpnam.c amiga.h
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/smakefile.base emacs-18.59/amiga/unix/src/smakefile.base
- *** /src/baseline/emacs-18.59/amiga/unix/src/smakefile.base Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/smakefile.base Wed Dec 2 19:44:50 1992
- ***************
- *** 0 ****
- --- 1,26 ----
- + DEFS = define=SOFTLINK
- + OPTIMIZE = debug=sf
- + CFLAGS = $(OPTS) $(DEFS) gst=amiga.sym $(OPTIMIZE)
- +
- + all: amiga.sym unix.lib
- +
- + ALLOBJS = $(OBJS) sprintf.o _setjmp.o
- +
- + unix.lib: $(ALLOBJS)
- + -delete unix.lib ram:unix.lib
- + oml ram:unix.lib <@<
- + r $(ALLOBJS)
- + <
- + copy ram:unix.lib ""
- +
- + sprintf.o: sprintf.asm
- + asm -osprintf.o -iINCLUDE: sprintf.asm
- +
- + _setjmp.o: _setjmp.asm
- + asm -o_setjmp.o -iINCLUDE: _setjmp.asm
- +
- + amiga.sym: amiga.h
- + copy amiga.h am.c
- + sc makegst=amiga.sym $(OPTS) am.c
- + delete am.c
- +
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/sprintf.asm emacs-18.59/amiga/unix/src/sprintf.asm
- *** /src/baseline/emacs-18.59/amiga/unix/src/sprintf.asm Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/sprintf.asm Sat Aug 15 12:20:02 1992
- ***************
- *** 0 ****
- --- 1,29 ----
- + XDEF __sprintf
- + XREF _AbsExecBase
- + XREF _LVORawDoFmt
- +
- + csect text,0,,2,2
- +
- + __sprintf
- + save equ 16
- + movem.l a2/a3/a6/d2,-(a7) ; save bytes copied to stack
- +
- + move.l save+8(a7),a0
- + lea save+12(a7),a1
- + lea copychar(pc),a2
- + move.l save+4(a7),a3
- + move.l a3,d2
- +
- + move.l _AbsExecBase,a6
- + jsr _LVORawDoFmt(a6)
- + move.l a3,d0 ; # of characters printed
- + sub.l d2,d0
- +
- + movem.l (a7)+,a2/a3/a6/d2
- + rts
- +
- + copychar
- + move.b d0,(a3)+
- + rts
- +
- + end
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/start.c emacs-18.59/amiga/unix/src/start.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/start.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/start.c Sun Oct 25 12:06:00 1992
- ***************
- *** 0 ****
- --- 1,118 ----
- + #include "amiga.h"
- + #include "processes.h"
- + #include <amiga/ioctl.h>
- + #include <exec/memory.h>
- + #include <dos/dosextens.h>
- + #include <dos/dostags.h>
- + #include <string.h>
- +
- + /* Variables used by a child that is starting up */
- + struct MemList *_child_entry; /* Memory used for child's code */
- + static struct Message startup_message;
- + struct exit_message *_child_exit;
- + char *_child_command;
- + int _child_command_len;
- + char *_child_door_name;
- +
- + static void __saveds __interrupt _child_startup(void)
- + {
- + struct exit_message *exit = _child_exit;
- + char *command = _child_command;
- + int command_len = _child_command_len;
- + char *door_name = _child_door_name;
- + struct Process *us = (struct Process *)FindTask(0);
- + struct DOSBase *local_DOSBase = DOSBase;
- + #pragma libcall local_DOSBase local_SystemTagList 25E 2102
- + struct TagItem stags[2];
- + struct MsgPort *parent;
- +
- + AddTail(&us->pr_Task.tc_MemEntry, _child_entry);
- +
- + PutMsg(_startup_port, &startup_message);
- +
- + /* From now on parent may disappear */
- + stags[0].ti_Tag = SYS_UserShell; stags[0].ti_Data = TRUE;
- + stags[1].ti_Tag = TAG_END;
- + exit->rc = local_SystemTagList(command, stags) << 8;
- +
- + /* Send result to parent if he is around */
- + Forbid();
- + if (parent = FindPort(door_name)) PutMsg(parent, exit);
- + else FreeMem(exit, sizeof(struct exit_message));
- + Permit();
- +
- + FreeMem(door_name, DOOR_LEN);
- + FreeMem(command, command_len);
- + }
- +
- + int _start_process(char *command,
- + BPTR input, int close_input,
- + BPTR output, int close_output,
- + BPTR error, int close_error,
- + BPTR dir,
- + long stacksize)
- + {
- + struct process *entry = (struct process *)malloc(sizeof(struct process));
- + static struct MemList alloc_child = { { 0 }, 1 };
- +
- + _child_command_len = strlen(command) + 1;
- + _child_command = AllocMem(_child_command_len, MEMF_PUBLIC);
- + strcpy(_child_command, command);
- +
- + _child_exit = AllocMem(sizeof(struct exit_message), MEMF_PUBLIC);
- + _child_door_name = AllocMem(DOOR_LEN, MEMF_PUBLIC);
- +
- + alloc_child.ml_ME[0].me_Reqs = MEMF_PUBLIC;
- + alloc_child.ml_ME[0].me_Length = (char *)&_start_process - (char *)&_child_startup;
- + _child_entry = AllocEntry(&alloc_child);
- +
- + if (entry && _child_command && _child_exit && _child_door_name &&
- + (long)_child_entry > 0)
- + {
- + memcpy(_child_entry->ml_ME[0].me_Addr, &_child_startup,
- + _child_entry->ml_ME[0].me_Length);
- + strcpy(_child_door_name, _door_name);
- +
- + entry->pid = _next_pid++;
- + entry->input = input;
- +
- + /* This message is sent by the child when it has started */
- + startup_message.mn_Length = sizeof(startup_message);
- + startup_message.mn_Node.ln_Type = NT_MESSAGE;
- +
- + /* This message is sent by the child when it exits */
- + _child_exit->m.mn_Length = sizeof(*_child_exit);
- + _child_exit->m.mn_Node.ln_Type = NT_MESSAGE;
- + _child_exit->pid = entry->pid;
- +
- + entry->process = CreateNewProcTags(NP_Entry, _child_entry->ml_ME[0].me_Addr,
- + NP_Input, input,
- + NP_CloseInput, (long)close_input,
- + NP_Output, output,
- + NP_CloseOutput, (long)close_output,
- + NP_Error, error,
- + NP_CloseError, (long)close_error,
- + dir ? NP_CurrentDir : TAG_IGNORE, dir,
- + NP_StackSize,
- + stacksize > 0 ? stacksize : _stack_size,
- + NP_Cli, TRUE,
- + TAG_END);
- + if (entry->process)
- + {
- + do WaitPort(_startup_port); while (!GetMsg(_startup_port));
- + entry->status = alive;
- + AddHead((struct List *)&_processes, (struct Node *)entry);
- + return entry->pid;
- + }
- + errno = convert_oserr(IoErr());
- + }
- + else errno = ENOMEM;
- +
- + if (entry) free(entry);
- + if (_child_command) FreeMem(_child_command, _child_command_len);
- + if (_child_exit) FreeMem(_child_exit, sizeof(struct exit_message));
- + if (_child_door_name) FreeMem(_child_door_name, DOOR_LEN);
- + if ((long)_child_entry > 0) FreeEntry(_child_entry);
- +
- + return -1;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/stat.c emacs-18.59/amiga/unix/src/stat.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/stat.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/stat.c Sun Oct 25 17:28:04 1992
- ***************
- *** 0 ****
- --- 1,96 ----
- + #include "amiga.h"
- + #include "fibstat.h"
- + #include "dir_data.h"
- + #include <sys/stat.h>
- + #include <string.h>
- +
- + static int attach (char *dest, int dlen, char *dirname, char *name)
- + {
- + char *dirnamep = dirname;
- +
- + while (*dirnamep && --dlen > 0)
- + *dest++ = *dirnamep++;
- + /* Add '/' if `dirname' doesn't already end with it. */
- + if (dirnamep > dirname && dirnamep[-1] != '/' && dirnamep[-1] != ':' && --dlen > 0)
- + *dest++ = '/';
- +
- + while (*name && --dlen > 0)
- + *dest++ = *name++;
- + *dest = 0;
- +
- + return dlen > 0;
- + }
- +
- + static struct FileInfoBlock fakefib;
- +
- + static int fakestat(int soft, char *name, struct stat *sbuf)
- + {
- + /* See if we want information on the last file returned from readdir */
- + if (last_dir)
- + {
- + iDIR *last_info = (iDIR *)last_dir->dd_buf;
- +
- + if (last_info->cdir == _get_cd() &&
- + attach(_temp_fname, FNAMESIZE - 1, last_info->dirname,
- + last_entry->entry.d_name) &&
- + strcmp(_temp_fname, name) == 0 &&
- + (soft || last_entry->type != ST_SOFTLINK))
- + {
- + if (last_entry->type == ST_LINKFILE || last_entry->type == ST_LINKDIR)
- + {
- + /* Find real block, this allows tar to detect hard links */
- + BPTR cd = CurrentDir(last_dir->dd_fd);
- + BPTR l = Lock(last_entry->entry.d_name, ACCESS_READ);
- +
- + if (l)
- + {
- + Examine(l, &fakefib);
- + UnLock(l);
- + }
- + CurrentDir(cd);
- + }
- + else
- + fakefib.fib_DiskKey = last_entry->entry.d_ino;
- +
- + fakefib.fib_NumBlocks = last_entry->numblocks;
- + fakefib.fib_Size = last_entry->size;
- + fakefib.fib_Date = last_entry->date;
- + fakefib.fib_DirEntryType = last_entry->type;
- + fakefib.fib_Protection = last_entry->protection;
- +
- + _lfibstat(name, &fakefib, last_info->task, 0, sbuf);
- +
- + return 1;
- + }
- + }
- + return 0;
- + }
- +
- + int stat(char *name, struct stat *sbuf)
- + {
- + chkabort();
- + if (fakestat(0, name, sbuf)) return 0;
- + return _fibstat(name, sbuf);
- + }
- +
- + int lstat(char *name, struct stat *sbuf)
- + {
- + chkabort();
- + if (fakestat(1, name, sbuf)) return 0;
- + if (readlink(name, _temp_fname, FNAMESIZE - 1) < 0) return _fibstat(name, sbuf);
- +
- + /* Symbolic link, fake a stat block */
- + sbuf->st_dev = 0;
- + sbuf->st_rdev = 0;
- + sbuf->st_uid = AMIGA_UID; sbuf->st_gid = AMIGA_GID;
- + sbuf->st_blksize = 512;
- + sbuf->st_nlink = 1;
- + sbuf->st_blocks = 0;
- + sbuf->st_size = strlen(_temp_fname);
- + sbuf->st_ino = 0;
- + /* 1-Jan-1978 */
- + sbuf->st_ctime = sbuf->st_atime = sbuf->st_mtime = 252460800;
- + sbuf->st_mode = S_IFLNK | 0777;
- +
- + return 0;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/strftime.c emacs-18.59/amiga/unix/src/strftime.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/strftime.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/strftime.c Fri Jul 31 23:29:14 1992
- ***************
- *** 0 ****
- --- 1,291 ----
- + /*
- + * Copyright (c) 1989 The Regents of the University of California.
- + * All rights reserved.
- + *
- + * Redistribution and use in source and binary forms, with or without
- + * modification, are permitted provided that the following conditions
- + * are met:
- + * 1. Redistributions of source code must retain the above copyright
- + * notice, this list of conditions and the following disclaimer.
- + * 2. Redistributions in binary form must reproduce the above copyright
- + * notice, this list of conditions and the following disclaimer in the
- + * documentation and/or other materials provided with the distribution.
- + * 3. All advertising materials mentioning features or use of this software
- + * must display the following acknowledgement:
- + * This product includes software developed by the University of
- + * California, Berkeley and its contributors.
- + * 4. Neither the name of the University nor the names of its contributors
- + * may be used to endorse or promote products derived from this software
- + * without specific prior written permission.
- + *
- + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- + * SUCH DAMAGE.
- + */
- +
- + #if defined(LIBC_SCCS) && !defined(lint)
- + static char sccsid[] = "@(#)strftime.c 5.11 (Berkeley) 2/24/91";
- + #endif /* LIBC_SCCS and not lint */
- +
- + #include <sys/types.h>
- + #include <sys/time.h>
- + #include <tzfile.h>
- + #include <string.h>
- +
- + static char *afmt[] = {
- + "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
- + };
- + static char *Afmt[] = {
- + "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday",
- + "Saturday",
- + };
- + static char *bfmt[] = {
- + "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep",
- + "Oct", "Nov", "Dec",
- + };
- + static char *Bfmt[] = {
- + "January", "February", "March", "April", "May", "June", "July",
- + "August", "September", "October", "November", "December",
- + };
- +
- + static size_t gsize;
- + static char *pt;
- + static int _add(), _conv(), _secs();
- +
- + size_t
- + strftime(s, maxsize, format, t)
- + char *s;
- + size_t maxsize;
- + const char *format;
- + const struct tm *t;
- + {
- + static size_t _fmt();
- +
- + pt = s;
- + if ((gsize = maxsize) < 1)
- + return(0);
- + if (_fmt(format, t)) {
- + *pt = '\0';
- + return(maxsize - gsize);
- + }
- + return(0);
- + }
- +
- + static size_t
- + _fmt(format, t)
- + register char *format;
- + struct tm *t;
- + {
- + for (; *format; ++format) {
- + if (*format == '%')
- + switch(*++format) {
- + case '\0':
- + --format;
- + break;
- + case 'A':
- + if (t->tm_wday < 0 || t->tm_wday > 6)
- + return(0);
- + if (!_add(Afmt[t->tm_wday]))
- + return(0);
- + continue;
- + case 'a':
- + if (t->tm_wday < 0 || t->tm_wday > 6)
- + return(0);
- + if (!_add(afmt[t->tm_wday]))
- + return(0);
- + continue;
- + case 'B':
- + if (t->tm_mon < 0 || t->tm_mon > 11)
- + return(0);
- + if (!_add(Bfmt[t->tm_mon]))
- + return(0);
- + continue;
- + case 'b':
- + case 'h':
- + if (t->tm_mon < 0 || t->tm_mon > 11)
- + return(0);
- + if (!_add(bfmt[t->tm_mon]))
- + return(0);
- + continue;
- + case 'C':
- + if (!_fmt("%a %b %e %H:%M:%S %Y", t))
- + return(0);
- + continue;
- + case 'c':
- + if (!_fmt("%m/%d/%y %H:%M:%S", t))
- + return(0);
- + continue;
- + case 'D':
- + if (!_fmt("%m/%d/%y", t))
- + return(0);
- + continue;
- + case 'd':
- + if (!_conv(t->tm_mday, 2, '0'))
- + return(0);
- + continue;
- + case 'e':
- + if (!_conv(t->tm_mday, 2, ' '))
- + return(0);
- + continue;
- + case 'H':
- + if (!_conv(t->tm_hour, 2, '0'))
- + return(0);
- + continue;
- + case 'I':
- + if (!_conv(t->tm_hour % 12 ?
- + t->tm_hour % 12 : 12, 2, '0'))
- + return(0);
- + continue;
- + case 'j':
- + if (!_conv(t->tm_yday + 1, 3, '0'))
- + return(0);
- + continue;
- + case 'k':
- + if (!_conv(t->tm_hour, 2, ' '))
- + return(0);
- + continue;
- + case 'l':
- + if (!_conv(t->tm_hour % 12 ?
- + t->tm_hour % 12 : 12, 2, ' '))
- + return(0);
- + continue;
- + case 'M':
- + if (!_conv(t->tm_min, 2, '0'))
- + return(0);
- + continue;
- + case 'm':
- + if (!_conv(t->tm_mon + 1, 2, '0'))
- + return(0);
- + continue;
- + case 'n':
- + if (!_add("\n"))
- + return(0);
- + continue;
- + case 'p':
- + if (!_add(t->tm_hour >= 12 ? "PM" : "AM"))
- + return(0);
- + continue;
- + case 'R':
- + if (!_fmt("%H:%M", t))
- + return(0);
- + continue;
- + case 'r':
- + if (!_fmt("%I:%M:%S %p", t))
- + return(0);
- + continue;
- + case 'S':
- + if (!_conv(t->tm_sec, 2, '0'))
- + return(0);
- + continue;
- + case 's':
- + if (!_secs(t))
- + return(0);
- + continue;
- + case 'T':
- + case 'X':
- + if (!_fmt("%H:%M:%S", t))
- + return(0);
- + continue;
- + case 't':
- + if (!_add("\t"))
- + return(0);
- + continue;
- + case 'U':
- + if (!_conv((t->tm_yday + 7 - t->tm_wday) / 7,
- + 2, '0'))
- + return(0);
- + continue;
- + case 'W':
- + if (!_conv((t->tm_yday + 7 -
- + (t->tm_wday ? (t->tm_wday - 1) : 6))
- + / 7, 2, '0'))
- + return(0);
- + continue;
- + case 'w':
- + if (!_conv(t->tm_wday, 1, '0'))
- + return(0);
- + continue;
- + case 'x':
- + if (!_fmt("%m/%d/%y", t))
- + return(0);
- + continue;
- + case 'y':
- + if (!_conv((t->tm_year + TM_YEAR_BASE)
- + % 100, 2, '0'))
- + return(0);
- + continue;
- + case 'Y':
- + if (!_conv(t->tm_year + TM_YEAR_BASE, 4, '0'))
- + return(0);
- + continue;
- + case 'Z':
- + if (!t->tm_zone || !_add(t->tm_zone))
- + return(0);
- + continue;
- + case '%':
- + /*
- + * X311J/88-090 (4.12.3.5): if conversion char is
- + * undefined, behavior is undefined. Print out the
- + * character itself as printf(3) does.
- + */
- + default:
- + break;
- + }
- + if (!gsize--)
- + return(0);
- + *pt++ = *format;
- + }
- + return(gsize);
- + }
- +
- + static
- + _secs(t)
- + struct tm *t;
- + {
- + static char buf[15];
- + register time_t s;
- + register char *p;
- + struct tm tmp;
- +
- + /* Make a copy, mktime(3) modifies the tm struct. */
- + tmp = *t;
- + s = mktime(&tmp);
- + for (p = buf + sizeof(buf) - 2; s > 0 && p > buf; s /= 10)
- + *p-- = s % 10 + '0';
- + return(_add(++p));
- + }
- +
- + static
- + _conv(n, digits, pad)
- + int n, digits;
- + char pad;
- + {
- + static char buf[10];
- + register char *p;
- +
- + for (p = buf + sizeof(buf) - 2; n > 0 && p > buf; n /= 10, --digits)
- + *p-- = n % 10 + '0';
- + while (p > buf && digits-- > 0)
- + *p-- = pad;
- + return(_add(++p));
- + }
- +
- + static
- + _add(str)
- + register char *str;
- + {
- + for (;; ++pt, --gsize) {
- + if (!gsize)
- + return(0);
- + if (!(*pt = *str++))
- + return(1);
- + }
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/symlink.c emacs-18.59/amiga/unix/src/symlink.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/symlink.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/symlink.c Sat Oct 17 12:45:10 1992
- ***************
- *** 0 ****
- --- 1,14 ----
- + #include "amiga.h"
- +
- + int symlink(char *from, char *to)
- + {
- + #ifdef SOFTLINK
- + chkabort();
- + if (MakeLink(to, from, 1)) return 0;
- + ERROR;
- + #else
- + _OSERR = ERROR_NOT_IMPLEMENTED;
- + errno = EOSERR;
- + return -1;
- + #endif
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/time.c emacs-18.59/amiga/unix/src/time.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/time.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/time.c Tue Aug 25 22:09:58 1992
- ***************
- *** 0 ****
- --- 1,12 ----
- + #include "amiga.h"
- + #include "timeconvert.h"
- +
- + time_t time(time_t *clock)
- + {
- + struct timeval now;
- +
- + if (_gettime(&now) < 0) return -1;
- + if (clock) *clock = now.tv_secs;
- +
- + return (time_t)now.tv_secs;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/timeconvert.c emacs-18.59/amiga/unix/src/timeconvert.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/timeconvert.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/timeconvert.c Sat Jun 5 11:46:46 1993
- ***************
- *** 0 ****
- --- 1,94 ----
- + #include "amiga.h"
- + #include "timeconvert.h"
- + #include <time.h>
- + #include <proto/timer.h>
- +
- + int _gettime(struct timeval *tp)
- + {
- + struct tm *local;
- + time_t gmt;
- +
- + GetSysTime(tp);
- + /* Correct for different epoch (78 vs 70) */
- + tp->tv_secs += 252460800;
- +
- + #ifdef USE_LOCAL
- + /* correct for timezone */
- + local = gmtime(&tp->tv_secs);
- + local->tm_isdst = -1; /* We don't know about dst */
- + gmt = mktime(local);
- +
- + if (gmt == -1)
- + {
- + errno = EINVAL;
- + return -1;
- + }
- + tp->tv_secs = gmt;
- + #endif
- + return 0;
- + }
- +
- + #ifdef USE_LOCAL
- +
- + /* System is storing local time */
- +
- + void _gmt2amiga(time_t time, struct DateStamp *date)
- + {
- + struct tm *local, *gmt;
- +
- + local = localtime(&time);
- + gmt = gmtime(&time);
- + date->ds_Tick = 50 * local->tm_sec;
- + date->ds_Minute = local->tm_min + local->tm_hour * 60;
- +
- + /* Now calculate the day assuming we are in GMT */
- + date->ds_Days = (time - 252460800) / 86400;
- + /* And correct by comparing local with GMT */
- + if (local->tm_year < gmt->tm_year ||
- + local->tm_year == gmt->tm_year && local->tm_yday < gmt->tm_yday)
- + date->ds_Days--;
- + if (local->tm_year > gmt->tm_year ||
- + local->tm_year == gmt->tm_year && local->tm_yday > gmt->tm_yday)
- + date->ds_Days++;
- + }
- +
- + time_t _amiga2gmt(struct DateStamp *date)
- + {
- + struct tm *local;
- + time_t secs;
- +
- + secs = date->ds_Tick / 50 + date->ds_Minute * 60 + date->ds_Days * 86400 +
- + 252460800;
- + local = gmtime(&secs);
- + local->tm_isdst = -1; /* We don't know about dst */
- +
- + return mktime(local);
- + }
- +
- + #else
- +
- + /* System is storing GMT */
- + /* Leap seconds are not handled !! */
- +
- + void _gmt2amiga(time_t time, struct DateStamp *date)
- + {
- + time_t time78, day_secs;
- +
- + time78 = time - 252460800; /* Change Epoch */
- + date->ds_Days = time78 / 86400;
- + day_secs = time78 % 86400;
- + date->ds_Minute = day_secs / 60;
- + date->ds_Tick = 50 * (day_secs % 60);
- + }
- +
- + time_t _amiga2gmt(struct DateStamp *date)
- + {
- + time_t secs;
- +
- + secs = date->ds_Tick / 50 + date->ds_Minute * 60 + date->ds_Days * 86400 +
- + 252460800;
- +
- + return secs;
- + }
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/timeconvert.h emacs-18.59/amiga/unix/src/timeconvert.h
- *** /src/baseline/emacs-18.59/amiga/unix/src/timeconvert.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/timeconvert.h Tue Aug 25 20:32:38 1992
- ***************
- *** 0 ****
- --- 1,27 ----
- + #ifndef TIMECONVERT_H
- + #define TIMECONVERT_H
- +
- + #include <time.h>
- +
- + int _gettime(struct timeval *tp);
- + /* Effect: Store GMT time into tp.
- + If USE_LOCAL is defined, assume system stores local time,
- + otherwise it stores GMT.
- + */
- +
- + void _gmt2amiga(time_t time, struct DateStamp *date);
- + /* Effect: Converts a time expressed in seconds since
- + the 1 January 1970 0:00:00 GMT, to an Amiga time.
- + If USE_LOCAL is defined, Amiga time is assumed to
- + be stored as local time, otherwise as GMT.
- + Modifies: date, to contain the time in Amiga format
- + */
- +
- + time_t _amiga2gmt(struct DateStamp *date);
- + /* Effect: Convert a date expressed in Amiga format (as a
- + local time if USE_LOCAL is defined, as GMT otherwise)
- + to a number of seconds since 1 January 1970 0:00:00 GMT.
- + Returns: this latter time
- + */
- +
- + #endif
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/timers.c emacs-18.59/amiga/unix/src/timers.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/timers.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/timers.c Mon Aug 17 22:32:54 1992
- ***************
- *** 0 ****
- --- 1,72 ----
- + #include "amiga.h"
- + #include "devices.h"
- + #include "timers.h"
- +
- + struct timeinfo *_alloc_timer(void)
- + {
- + struct timeinfo *timer = AllocMem(sizeof(struct timeinfo), 0);
- +
- + if (!timer) return 0;
- + timer->sent = FALSE;
- + timer->io = (struct timerequest *)
- + _device_open("timer.device", UNIT_VBLANK, 0L, 0L, 0, sizeof(struct timerequest));
- + if (!timer->io)
- + {
- + FreeMem(timer, sizeof(struct timeinfo));
- + return 0;
- + }
- + return timer;
- + }
- +
- + void _free_timer(struct timeinfo *timer)
- + {
- + if (timer)
- + {
- + _timer_abort(timer);
- + _device_close(timer->io);
- + FreeMem(timer, sizeof(struct timeinfo));
- + }
- + }
- +
- + void _timer_abort(struct timeinfo *timer)
- + {
- + if (timer->sent)
- + {
- + AbortIO(timer->io);
- + WaitIO(timer->io);
- + /* Clear timer io signal */
- + /*SetSignal(0, timer_sig(timer));*/
- + timer->sent = FALSE;
- + }
- + }
- +
- + ULONG _timer_sig(struct timeinfo *timer)
- + {
- + return 1UL << timer->io->tr_node.io_Message.mn_ReplyPort->mp_SigBit;
- + }
- +
- + void _timer_start(struct timeinfo *timer, int secs, int micros)
- + /* _timer_start(timer, 0) stops a timer */
- + {
- + _timer_abort(timer);
- + if (secs || micros)
- + {
- + timer->io->tr_time.tv_secs = secs;
- + timer->io->tr_time.tv_micro = micros;
- + timer->io->tr_node.io_Command = TR_ADDREQUEST;
- + SendIO(timer->io);
- + timer->sent = TRUE;
- + }
- + }
- +
- + int _timer_expired(struct timeinfo *timer)
- + /* A non-started timer is defined to not have expired */
- + {
- + if (timer->sent && CheckIO(timer->io))
- + {
- + WaitIO(timer->io);
- + timer->sent = FALSE;
- + return TRUE;
- + }
- + return FALSE;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/tmpnam.c emacs-18.59/amiga/unix/src/tmpnam.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/tmpnam.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/tmpnam.c Sat Oct 24 09:39:52 1992
- ***************
- *** 0 ****
- --- 1,13 ----
- + #include "amiga.h"
- + #include <string.h>
- + #include <stdio.h>
- +
- + char *tmpnam(char *s)
- + {
- + static char tmpbuf[L_tmpnam];
- +
- + if (!s) s = tmpbuf;
- +
- + strcpy(s, P_tmpdir "tmp_XXXXXX");
- + return mktemp(s);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/truncate.c emacs-18.59/amiga/unix/src/truncate.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/truncate.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/truncate.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,21 ----
- + #include "amiga.h"
- + #include "amigados.h"
- +
- + int truncate(char *path, off_t length)
- + {
- + BPTR fh = Open(path, MODE_OLDFILE);
- + int err;
- +
- + chkabort();
- + if (fh)
- + {
- + int ret = _do_truncate(fh, length);
- +
- + if (Close(fh) || ret) return ret;
- + err = IoErr();
- + }
- + else err = IoErr();
- +
- + errno = convert_oserr(err);
- + return -1;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/uid.c emacs-18.59/amiga/unix/src/uid.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/uid.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/uid.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,4 ----
- + #include "amiga.h"
- +
- + uid_t getuid(void) { return AMIGA_UID; }
- + uid_t geteuid(void) { return AMIGA_UID; }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/umask.c emacs-18.59/amiga/unix/src/umask.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/umask.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/umask.c Sun Jul 19 17:47:02 1992
- ***************
- *** 0 ****
- --- 1,3 ----
- + #include "amiga.h"
- +
- + int umask(int mask) { return 0; }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/unix-hard.lib.uue emacs-18.59/amiga/unix/src/unix-hard.lib.uue
- *** /src/baseline/emacs-18.59/amiga/unix/src/unix-hard.lib.uue Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/unix-hard.lib.uue Tue Jul 12 10:32:19 1994
- ***************
- *** 0 ****
- --- 1,1186 ----
- + begin 666 unix-hard.lib
- + M```#^@``*UH```/I````"2!O``0@UTC0_/QP`$YU(&\`!"`O``AF`G`!(EA,
- + MT/S\6(].T0```_(```/I````#$CG(#(@;P`80^\`'$7Z`!PF;P`4)`LL>0``
- + M``!.K@``(`N0@DS?3`1.=1;`3G4``````^^!```#7T%B<T5X96-"87-E````
- + M`0```!B&```#7TQ63U)A=T1O1FUT`````0```!X````````#\@```^D````*
- + M(&\`!"\-*D@@#68$2^P``$'L```B31+89OPO#4ZZ``!83RI?3G4``````_@`
- + M```!`````0```!(````!`````@````X````````#[X,```)?;6MT96UP````
- + M``$````>`````````_$````#`````$]05%,`!`!````#\@```^H````$=#IT
- + M;7!?6%A86%A8`````````_(```/K````"0```_(```/I````;R!O``0B;P`(
- + MGOP`($CG+Q8F22](`"`O20`D<`Q.N@``*D`@+```4JP``"(L``#2@"\!2&P`
- + M`$AO`#!.N@``3^\`#'!WL!-F-DHK``%F,$'O`"A#[``03KH``"9`+&P``$ZN
- + M_\0N`'P`0>\`*"(()#P```/M3J[_XBH`>`%@1G!RL!-F-DHK``%F,$'O`"A#
- + M[``23KH``"9`+&P``$ZN_\HJ`'@`0>\`*"(()#P```/N3J[_XBX`?`%@"G`6
- + M*4```&```(Q*A6<$2H=F!$ZZ```@"V="2H5G/DJ'9SH@#6<V<``O`"\`+P!(
- + M>/__+P8O!R`%(@0@;P`X3KH``$_O`!@K0``(9Q`JK```*4T``"M+``0@"V`Z
- + M(`UG!B!-3KH``$J%9PY*A&<*(@4L;```3J[_W$J'9PY*AF<*(@<L;```3J[_
- + MW"`+9P8@2TZZ``!P`$S?:/3>_``@3G4@;P`$44](YP$T)DA+[```+T@`$&`Z
- + M(&H`!+'+9C`F52XK``@JDR!K``1.N@``($M.N@``0J=(;P`8+P=.N@``3^\`
- + M#$J`:PX@+P`48`HJ2B15(`IFP'#_3-\L@%!/3G4``````_@````#`````0``
- + M`)````!4````-`````,````"```!:````0P```$(`````````^^#```"0&UA
- + M;&QO8P`````!````'H8```1?7V9I9F]?;V9F<V5T`````````@```"@````D
- + MA@```U]?9FEF;U]B87-E``````$````L@P```U]?<W!R:6YT9@````````$`
- + M```\@P```D!F;W!E;@```````@```)0```!8A@```E]$3U-"87-E````!```
- + M`3X```$L````F@```%Z&```"7V5R<FYO```````!````OH,```)`7W-E=&5R
- + M<@````$```#.@P``!$!?<W1A<G1?<')O8V5S<P`````!````^H,```)`9G)E
- + M90````````(```&,```!'H,```)`9F-L;W-E``````(```&&```!3(,```)?
- + M=V%I='!I9`````$```&8`````````_$````#`````$]05%,`!`!````#\@``
- + M`^H````%<&EP93IU>&]P96XN)6QX`'<`<@````/R```#ZP````$```/R```#
- + MZ0```,6>_``82.<A/DGY`````$7L`!@J6B!:+AHF;``D+T@`()/)+'@`!$ZN
- + M_MHD;```($!#Z`!*($DB;```3J[_"B!L``!#[``$3J[^DD/O`"0B_(```"1P
- + M`2+`0IDB+P`@0>\`)"0(+$I.KOVBX8`K0``8+'@`!$ZN_WPB2TZN_GI*@&<*
- + M($`B34ZN_I)@"")-<!Q.KO\N3J[_=B)+<"!.KO\N(F\`("`'3J[_+DS??(3>
- + M_``82H!.=2!O``0@+P`((B\`#"]O`!``!"]O`!0`""]O`!@`#"]O`!P`$"]O
- + M`"``%"]O`"0`&%E/2.</%BHO`#@L+P`T+@`J2"]!`!QP'$ZZ```F0"!-2AAF
- + M_%.(D<T@"%*`*4``('(!+'@`!$ZN_SHI0``<(D`2W6;\<!QR`4ZN_SHI0``8
- + M<"!R`4ZN_SHI0``D<`$I0``00?K_G"`(0_K^L)")*4``%$'L``!.KO\B*4``
- + M`"(+9P`!2DJL`!QG``%"2JP`&&<``3I*K``D9P`!,DJ`;P`!+"!L```@*``4
- + M0?K^;B)L```B:0`08`(2V%.`9/I![```(FP`)!+89OP@+```4JP``"=```PG
- + M1P`03>P`%CS\`!1P!1E```P@5C%\`!P`$A%```@@7B%K``P`%"`\@``#\DJ&
- + M9@)P`2@`2H5O!"`%8`0@+```0J=(>``!+SR```/Z+P`O/(```_,O!B\$+R\`
- + M3"\\@``#\2\O`%`O/(```_`O+P!4+SR```/O+R\`6"\\@``#[2\O`%@O/(``
- + M`^XO!R\\@``#["!L```O*``0+SR```/K+&P``"(/3J[^#D_O`%0G0``(9S0@
- + M;```+'@`!$ZN_H`@;```+'@`!$ZN_HQ*@&?D0JL`%$'L```B2RQX``1.KO\0
- + M("L`#&!H+&P``$ZN_WQ.N@``8`)P#"E````@"V<&($M.N@``("P`'&<.(D`@
- + M+``@+'@`!$ZN_RX@+``89PPB0'`<+'@`!$ZN_RX@+``D9PPB0'`@+'@`!$ZN
- + M_RX@+```;PH@0"QX``1.KO\<</],WVCP6$].=0```_@````#`````0```5H`
- + M``%6```!1@```!<````"```"_````NH```+8```"S````L0```)0```!S```
- + M`<(```&J```!E@```8H```%\```!=````6P```%B```!0````30```$B```!
- + M%````$0````X````&@```!`````````#[X$```-?3&EN:V5R1$(````````!
- + M````"H8```)?1$]30F%S90````,```*F```"7@```"R&```$7U]S=&%R='5P
- + M7W!O<G0```````,```)^```"<@```$"#```"0&UA;&QO8P`````!```!`(8`
- + M``-?7V1O;W)?;F%M90`````!```!IH8```-?7VYE>'1?<&ED```````"```!
- + MM@```;*&```#7U]S=&%C:U]S:7IE`````0```?J&```#7U]P<F]C97-S97,`
- + M`````0```I*#```$0&-O;G9E<G1?;W-E<G(```````$```*NA@```E]E<G)N
- + M;P```````0```K:#```"0&9R964````````!```"P`````````/Q`````P``
- + M``!/4%13``0`0````_(```/J````!@````````````````````$`````````
- + M`````_(```/K````"@```_(```/I`````TZZ```@+```3G4``````^^#```#
- + M0&-H:V%B;W)T`````````0````*&```#7U]O=7)?<&ED`````````0````8`
- + M```````#\0````,`````3U!44P`$`$````/R```#Z0```",@+P`$(&\`"")O
- + M``Q(YP$4+@`F22I(3KH``'`!OH!M+'`@OH!L)B`+9PX@!^>`0^P``-/`)MDF
- + MV2`-9PSGAT'L``#1QR#=(-UP`&`(<!8I0```</],WRB`3G4@+P`$(&\`")[\
- + M`!`O2``(0J\`#$'O``A#UV&62H!G"#!\__\@"&`"(!?>_``03G4``````^^#
- + M```#0&-H:V%B;W)T`````````0```!B&```$7U]S:6=?:&%N9&QE<G,`````
- + M``(```!`````,(8```)?97)R;F\```````$```!0`````````_$````#````
- + M`$]05%,`!`!````#\@```^D````5("\`!$CG#P`N`"PL``!.N@``*4<``'H`
- + M>`$@+```P(1G#B`L``#`A&8&(`5.N@``4H78A'`@NH!MX"`&3-\`\$YU("\`
- + M!"\'(@`@+```@($N'V"P```#[X8```-?7W-I9U]M87-K```````$````3```
- + M`"0````4````#(,```-`8VAK86)O<G0````````!````$(8```1?7W-I9U]P
- + M96YD:6YG`````````0```!R#```$0%]S:6=?9&ES<&%T8V@```````$````N
- + M`````````_$````#`````$]05%,`!`!````#\@```^D```":(&\`!"`O``@B
- + M;P`,+V\`$``$64](YR$T+@`F;P`<*D@D22])`!1@`AK:2A)G!%.';O:U[P`4
- + M8QH0*O__<B^P`6<0=#JP`F<*4X=O!AK!8`(:VTH39P13AV[V0A5*AU[`1`!(
- + M@$C`3-\LA%A/3G4@+P`$(&\`"")O``Q93TCG)S8N`"I(+TD`($JL``!G``#^
- + M(&P``"9H``Q.N@``(BL`!+*`9@``Z"!L``!(:``L0>P``")3<`!&`&$`_UA8
- + M3TJ`9P``RD'L```B31`8L!EF``"\2@!F]&8``+1*AV80(&P``"`H`!AR`["!
- + M9P``H"!L```@*``8<ORP@6<$68!F/B)L```B$2QL``!.KO^"+``@;```T/P`
- + M+"((=/Y.KO^L*@!G$B(%0>P``"0(3J[_FB(%3J[_IB(&3J[_@F`&*6@`(```
- + M(&P``"EH``0`@"EH``@`?$/H``Q%[`"$)-DDV239(&P``"EH`!@`!"EH`!P`
- + M="\O`"`O*P$8($U#[```<`!.N@``4$]P`6`"<`!,WVSD6$].=2!O``0B;P`(
- + M2.<`%"9)*DA.N@``($TB2W``80#^R$J`9P1P`&`,($TB2TS?*`!.^@``3-\H
- + M`$YU(&\`!")O``A(YP`4)DDJ2$ZZ```@32)+<`%A`/Z02H!F<$AX`/](;```
- + M+PU.N@``3^\`#$J`:@P@32)+3-\H`$[Z``!+TT*=0JL`$G`!-T``#D)K`!`G
- + M?````@``,C=```Q"JP`V0>P``")(2AEF_%.)D\@G20`60IT@/`\,/P`G0``B
- + M)T``&B=``"HJ_```H?]P`$S?*`!.=0```_@````(`````0```7X```%P```!
- + M:@```5H```%2```!3````4(```$H`````````^^&```#7VQA<W1?9&ER````
- + M`````P```0(```"2````BH,```)`7V=E=%]C9`````$```":A@```U]L87-T
- + M7V5N=')Y``````8```%D```!1@```1(```#P````X````*B&```#7U]T96UP
- + M7V9N86UE````!````C8```'V````Q@```+"&```"7T1/4T)A<V4````!```!
- + M"(,```-`7VQF:6)S=&%T```````!```!A(,```-`8VAK86)O<G0````````"
- + M```!X````:B#```#0%]F:6)S=&%T`````````@```A````'&@P```U]R96%D
- + M;&EN:P````````$```'\`````````_$````#`````$]05%,`!`!````#\@``
- + M`^L```!!```#\@```^D```#0(&\`!%E/2.<`%"](``@@;P`(*F@!#&`*)E4@
- + M34ZZ```J2R`-9O),WR@`6$].=2!O``2>_``02.<@-BI()FT`#$/K`0PO2``<
- + M+TD`("!+8;1"K```0JL!#$*M``0@%>6`($`G:``,`1A!ZP`(+T@`&&```)Y!
- + MZP`0(DA*&6;\4XF3R"`)D<C0_``L<@`R`-*(4H%T`#0!/T``%C]!`!0@`DZZ
- + M```D0$J`9@9P#&```)Q-TD*>(&\`(""*+U``("SK`(@LZP"$0>L`C$/J``PB
- + MV"+8(M@E:P`,`!@E:P!\`!Q+Z@`@.V\`%``$.V\`%@`&(&\`'"`H``12J``$
- + M*T``"$'J`"Q#ZP`0$-EF_"JK``@J;P`<(A4D+P`8+&P``$ZN_Y1*@&8`_TXG
- + M:P$,`1!"K0`$+&P``$ZN_WQR=-*!L(%F!'`!8`I.N@``*4```'``3-]L!-[\
- + M`!!.=2!O``193TCG(#8O2``4<!!.N@``*D!P1^6(3KH``"9`(&\`%"`(2AAF
- + M_%.(D<`@"%*`3KH``"1`3KH``"`-9P``@B`*9WP@"V=X*TL`#"M\```!'``(
- + MD<@G2`$0)T@!#"=(`10FBB!O`!04V&;\3KH``"=```0B+P`4+&P``'3^3J[_
- + MK"J`9R)!ZP`((@`D""QL``!.KO^:2H!G#B!-80#^.$J`9Q0@#6`^+&P``$ZN
- + M_WQ.N@``*4```"!-80``-F`D<`PI0```(`UG!B!-3KH``"`*9P8@2DZZ```@
- + M"V<&($M.N@``<`!,WVP$6$].=2!O``1(YP`6*D@F;0`,3KH``$*L```@2V$`
- + M_:`@4TZZ```@%6<*(@`L;```3J[_IB!M``Q.N@``($U,WV@`3OH``"!O``19
- + M3TCG`S0O2``4(&\`%"IH``R7RTZZ``!*K0$49R1^`"1M`0P@;P`4+"@`!&`$
- + M4H<D4KZ&;`0@"F;T*TH!$$*M`10@+0$09R(F0-;\`"`I;P`4``!%[0$0(%(I
- + M2```(%(DT"!O`!12J``$(`M,WRS`6$].=2!O``0O#2I(3KH``"`M``0J7TYU
- + M(&\`!"`O``A(YP$4+@`J2"9M``Q.N@``<`$G0`$4*T<`!$S?*(!.=0```^^#
- + M```"0&9R964````````'```"B@```H````)J```"/@```C0```(J````'H8`
- + M``-?;&%S=%]D:7(````````#```"X@```EX```!2@P```D!M86QL;V,`````
- + M!````8X```%V```!;````**&```"7T1/4T)A<V4````&```"=````@8```'L
- + M```!U@```30```$<@P``!$!C;VYV97)T7V]S97)R```````"```"#@```4B&
- + M```"7V5R<FYO```````#```"(````A(```%,@P```T!C:&MA8F]R=```````
- + M``4```,N```##@```J8```):```!E(,```)`7V=E=%]C9`````$```'*A@``
- + M`U]L87-T7V5N=')Y``````$```+L`````````_$````#`````$]05%,`!`!`
- + M```#\@```^D````(2.<!`BQL``!R`$ZN_X(N`"(`3J[_@B`'3-]`@$YU````
- + M``/OA@```E]$3U-"87-E`````0````8````````#\0````,`````3U!44P`$
- + M`$````/R```#ZP````(```/R```#Z0```!L@;P`$("\`")[\`$1(YP,$+@`J
- + M2'S_3KH``"!-0^\`#DZZ``!*@&8D<!#`KP`6YH!R4.6)PJ\`%NR!@H#"A[*'
- + M9@1\`&`&<`TI0```(`9,WR#`WOP`1$YU(&\`!"`O``A(YP$$3-\@@&">````
- + M``/O@P```T!C:&MA8F]R=`````````$````8@P```T!?9FEB<W1A=```````
- + M``$````BA@```E]E<G)N;P```````0```$H````````#\0````,`````3U!4
- + M4P`$`$````/R```#Z0```$$@+P`$(&\`"%E/2.<G%BX`*DA.N@``2&\`'$AX
- + M"`$O!TZZ``!/[P`,4H!F!G#_8```RD*G+&P``'(")`].KO\<3^\`!"9`2H!G
- + M+"(O`!PD"TZN_GI*0&<>("\`'.6`+PT@0"\H``@B0G``D<A.N@``4$]\`&!@
- + M3J[_?"H`<BY&`;"!9D9\`"`O`!SE@"!`*J@`"$WM``1"GBS\```A_W`!/,`\
- + MP$)>*WP```(``#)"K0`V0JT`%B`\#PP_`"M``"(K0``:*T``*F`,?/\@!4ZZ
- + M```I0```(`MG#"0++&P``'("3J[_%DAO`!Q(>`@"+P=.N@``3^\`#"`&3-]H
- + MY%A/3G4``````^^#```#0&-H:V%B;W)T`````````0```!2#```"7VEO8W1L
- + M```````"````\@```"*&```"7T1/4T)A<V4````"````W@```#:#```#0%]L
- + M9FEB<W1A=````````0```&Z#```$0&-O;G9E<G1?;W-E<G(```````$```#0
- + MA@```E]E<G)N;P```````0```-0````````#\0````,`````3U!44P`$`$``
- + M``/R```#Z0````X@;P`$(F\`"$CG,!8F22I(3KH``"(+)`TL;```=@%.KOY$
- + M2H!G!'``8`9.N@``</],WV@,3G4``````^^#```#0&-H:V%B;W)T````````
- + M`0```!*&```"7T1/4T)A<V4````!````&H,```)`7W-E=&5R<@````$````L
- + M`````````_$````#`````$]05%,`!`!````#\@```^D````^(&\`!")O``A9
- + M3TCG,S8J2'X`(&P``"PH`.`O20`@2H9F($JL``!F&D'L`!@B""QL```D/```
- + M`^U.KO_B+`!G`GX!2H9G-B(&0>P`(B0(0>P``"8(+&P``$ZN_IXB!B0-)B\`
- + M($ZN_IXB!G0*3J[^R$J'9U@B!DZN_]Q@4"!L```F:`"X,'S__[?(9T!#[``H
- + M<"4L>``$3J[]V"1`2H!G+"EL````#"E-`!`O"B!++$I#[``$E<HF;P`D3J[]
- + MM$S?!``B2BQX``1.KOYB3-]LS%A/3G4@;P`$0^\`"&$`_RI.=2!O``1#[P`(
- + M80#_''`43KH``$YU``````/X````!@````$```"R````J````*0```".````
- + M2@```"H````````#[X8```%?7W5S`````@```'X````4A@```U]?5T)E;F-H
- + M37-G``````$````DA@```E]$3U-"87-E`````@```%8````PA@``!%]?4')O
- + M9W)A;4YA;64````````"````H@```%"#```"0&5X:70````````!````\@``
- + M``````/Q`````P````!/4%13``0`0````_(```/J````#T]K```````4````
- + M`````````````````&-O;G-O;&4Z```E<SH@``!I;G1U:71I;VXN;&EB<F%R
- + M>0```````^P````!`````0```!0````````#\@```^D````'2.<@`B(O``Q!
- + M[P`0)`@L;```3J[_'$S?0`1.=0```^^&```"7T1/4T)A<V4````!````$```
- + M``````/Q`````P````!/4%13``0`0````_(```/I````#R!O``0O#2I(*JP`
- + M`$'M``0J7T[Z```@;P`$("\`"$CG`00N`"I((!5.N@``0>T`!"`'3-\@@$[Z
- + M`````````^^&```#7U]S:6=?;6%S:P```````0````J#```"0%]S971J;7``
- + M```!````%(,```-`<VEG<V5T;6%S:P`````!````*H,```-`7VQO;F=J;7``
- + M```````!````.`````````/Q`````P````!/4%13``0`0````_(```/I````
- + M!R!O``0@+P`(+P`O+```+PA.N@``3^\`#'``3G4```/OA@``!%]?<WES=&5M
- + M7VYA;64````````!````#(,```)?<W1R;F-P>0````$````2`````````_$`
- + M```#`````$]05%,`!`!````#\@```^D````I(&\`!)[\`%1(YS@6*D@@#6<D
- + M2A5G("!-2AAF_%.(D<TB""!-<`).N@``0>P``'`"(@!.N@``("P``&\2L*P`
- + M`&X,Y8!![```)G`(`&`L4H!F)"(L``!![P`;)@@L;```=`!X44ZN_BQ*0&<$
- + M)D-@"D?L``1@!$?L``@@2TH89OQ3B)'+(@@@2W`"3KH``$'L`!QP`G(!3KH`
- + M`$S?:!S>_`!43G4```/X````!`````$```"0````>````'(````L````````
- + M`^^#```"0'=R:71E```````$````F````(P````T````*(8```)?97)R;F\`
- + M``````$````XA@```U]S>7-?;F5R<@````````$````^A@```U]S>7-?97)R
- + M;&ES=`````$```!&A@```E]?3U-%4E(``````0```%2&```"7T1/4T)A<V4`
- + M```!````7@````````/Q`````P````!/4%13``0`0````_(```/J````"#H@
- + M```T,@``56YK;F]W;B!E<G)O<B!C;V1E```*```````#\@```^D````````#
- + M\0````,`````3U!44P`$``````/R```#Z@```,9N;R!S:6=N86P`:&%N9W5P
- + M``!I;G1E<G)U<'0`<75I=```:6QL96=A;"!I;G-T<G5C=&EO;@!T<F%C92!T
- + M<F%P``!A8F]R=`!E;70@:6YS=')U8W1I;VX`9FQO871I;F<@<&]I;G0@97AC
- + M97!T:6]N``!K:6QL``!B=7,@97)R;W(`<V5G;65N=&%T:6]N('9I;VQA=&EO
- + M;@``8F%D(&%R9W5M96YT('1O('-Y<W1E;2!C86QL`'=R:71E(&]N(&$@<&EP
- + M92!W:71H(&YO(&]N92!T;R!R96%D(&ET``!A;&%R;2!C;&]C:P!S;V9T=V%R
- + M92!T97)M:6YA=&EO;B!S:6=N86P@9G)O;2!K:6QL`'-T871U<R!S:6=N86P`
- + M<V5N9&%B;&4@<W1O<"!S:6=N86P@;F]T(&9R;VT@='1Y`'-T;W`@<VEG;F%L
- + M(&9R;VT@='1Y``!C;VYT:6YU92!A('-T;W!P960@<')O8V5S<P``8VAI;&0@
- + M<W1A='5S(&AA<R!C:&%N9V5D``!B86-K9W)O=6YD(')E860@871T96UP=&5D
- + M(&9R;VT@8V]N=')O;"!T='D``&)A8VMG<F]U;F0@=W)I=&4@871T96UP=&5D
- + M(&9R;VT@8V]N=')O;"!T='D`:6YP=70@<F5C;W)D(&%V86EL86)L92!A="!C
- + M;VYT<F]L('1T>0!E>&-E961E9"!#4%4@=&EM92!L:6UI=`!E>&-E961E9"!F
- + M:6QE('-I>F4@;&EM:70``'5N:VYO=VX@<VEG;F%L``!U;FMN;W=N('-I9VYA
- + M;```=VEN9&]W(&-H86YG960``'5N:VYO=VX@<VEG;F%L``!U<V5R('-I9VYA
- + M;"`Q`'5S97(@<VEG;F%L(#(```````````H````2````'````"(````V````
- + M0@```$@```!8````<@```'@```""````F@```+8```#>````Z@```1````$>
- + M```!0````58```%R```!C````;@```'D```""@```B(```(\```"3````EP`
- + M``)L```"?````HH```/L````(`````$```,4```#$````PP```,(```#!```
- + M`P````+\```"^````O0```+P```"[````N@```+D```"X````MP```+8```"
- + MU````M````+,```"R````L0```+````"O````K@```*T```"L````JP```*H
- + M```"I````J````*<```"F`````````/R```#Z0```#H@+P`$(&\`""(O``PB
- + M;P`064](YP<4+`$N`"I(+TD`%'H`)FP``&`N2H=G""`K``R^@&8@>@%P`;"K
- + M`!1F%BHK``P@#6<$*JL`&"!+3KH``"`%8"HF4TJ39LX(!@``9P1P`&`:2H5F
- + M"G`**4```'#_8`QP`$ZZ``!.N@``8*),WRC@6$].=2!O``0@+P`((F\`#$CG
- + M`10B`'``3-\H@&``_W`@;P`$+PUP`"(`D\DJ7V``_UX@+P`$(&\`""(O``Q(
- + MYP,$+`$N`"I(4H!F`GX`2H=J`D2'(`<B!B!-D\E,WR#`8`#_+``````#[X8`
- + M``-?7W!R;V-E<W-E<P`````!````)(,```-`7V9R965?96YT<GD````!````
- + M3H8```)?97)R;F\```````$```!L@P``!$!?=V%I=%]S:6=N86QS```````!
- + M````=H,```1`7VAA;F1L95]S:6=N86QS`````0```'H````````#\0````,`
- + M````3U!44P`$`$````/R```#Z0```!(@+P`$44](YP,`+@!.N@``(`=.N@``
- + M2H!G(B)`(&D`'"](``P@:0`$<`$B;P`,3I$L`"`'3KH``"`&8`)P_TS?`,!0
- + M3TYU``````/O@P```T!C:&MA8F]R=`````````$````.@P```T!?9FEN9%]F
- + M9`````````$````4@P```T!?9G)E95]F9`````````$````V`````````_$`
- + M```#`````$]05%,`!``````#\@```^D````#(&\`!"`O``A.^@`````#[X,`
- + M``)`<W1R<F-H<@````$````*`````````_$````#`````$]05%,`!``````#
- + M\@```^D````#(&\`!"`O``A.^@`````#[X,```)`<W1R8VAR``````$````*
- + M`````````_$````#`````$]05%,`!``````#\@```^D```!-2.<`!G`(<@`L
- + M>``$3J[_.BI`2H!F!'``8"Y"K0`$2'@`*'``+P!![```<@&3R<%!3KH``%!/
- + M*H!F#")-<`A.KO\N<`!@`B`-3-]@`$YU(&\`!$CG``8J2"`-9Q@@36$``!X@
- + M54ZZ```B37`(+'@`!$ZN_RY,WV``3G4@;P`$2.<`!BI(2JT`!&<4(E4L>``$
- + M3J[^(")53J[^)D*M``1,WV``3G4@;P`$(%`B:``.<``0*0`/<@'AH2`!3G4@
- + M;P`$("\`""(O``Q(YP,&+`$N`"I(8:I*AV8$2H9G'B)5(T<`("-&`"0S?``)
- + M`!PL>``$3J[^,G`!*T``!$S?8,!.=2!O``1(YP`&*DA*K0`$9QPB52QX``1.
- + MKOXL2D!G#B)53J[^)D*M``1P`6`"<`!,WV``3G4```/X`````0````$````H
- + M`````````^^#```$0%]D979I8V5?;W!E;@````````$````R@P``!$!?9&5V
- + M:6-E7V-L;W-E```````!````9@````````/Q`````P````!/4%13``0`0```
- + M`_(```/J````!'1I;65R+F1E=FEC90````````/R```#Z0```!XO#B`L```B
- + M`$A!0D'2@"`L``"S@"E```1"K``(0^P`!'``+'@`!$ZN_=@I0```</].KOZV
- + M2(!(P"E```!*K```9PA*@&L$<`%@`G``*4``#"Q?3G4O#B`L``!K""QX``1.
- + MKOZP("P``&<*(D`L>``$3J[^8BQ?3G4```/X`````P````$```!8````.@``
- + M`!X````&`````@```&8```!.````/@```"P````:````%@````````/OA@``
- + M!%]?<W1A<G1U<%]T:6UE```````!````!(8```%?7W5S`````0```!``````
- + M```#\0````,`````3U!44P`$`$````/R```#Z@````7_____9FEF;RYL:6)R
- + M87)Y`````````_(```/K````!````_(```/I````%B`O``113TCG`P`N`$ZZ
- + M```@!TZZ``!*@&<H(D`@:0`<<D#EB<*1+T@`#"`!(&D`!")O``Q.D2P`(`=.
- + MN@``(`9@`G#_3-\`P%!/3G4@+P`$+P<N'V"N``````/O@P```T!C:&MA8F]R
- + M=`````````$````.@P```T!?9FEN9%]F9`````````$````4@P```T!?9G)E
- + M95]F9`````````$````\`````````_$````#`````$]05%,`!``````#\@``
- + M`^D```!B(&\`!"`O``@B;P`,+V\`$``$+V\`%``(+V\`&``,+V\`'``0+V\`
- + M(``4+V\`)``844](YP<4+@!([P,``!1\`"IL``!@%DJM``1F"C!\``$K2``$
- + M8`Q2AMK\`"2\K``$;>0@+``$O(!F>'(*TZP`!"`L``0B`.>!TH#E@2`!3KH`
- + M`"I`2H!F#'`,*4```'#_8```CG#VT*P`!"(`YX'2@.6!(&P``")-8`(2V%.!
- + M9/H@+```9P8@0$ZZ```I30``>O;:K``$(`7G@-"%Y8#;P)?+*TL`!%*%VOP`
- + M)+JL``1M\"`&YX#0AN6`(&P``"&O`!0(!"&'"``AKP`8"`A+[P`@(9T(#"&=
- + M"!`AG0@42^\`+"&="!@AG0@<(9T(("`&3-\HX%!/3G4@+P`$(@!K%K*L``1L
- + M$"`!YX#0@>6`(&P``$*P"`1.=2`O``1(YP$$+@!K'KZL``1L&"`'YX#0A^6`
- + M*FP``-O`2JT`!&<$(`U@"'`)*4```'``3-\@@$YU("P`!$YU``````/X````
- + M$0````$```&"```!9````58```%````!,@```.P```#>````Q````+X```"R
- + M````I````)@```!R````;@```&0```!>````0@````````/O@P```D!M86QL
- + M;V,``````0```("&```"7V5R<FYO```````"```!=@```(R#```"0&9R964`
- + M```````!````N@````````/Q`````P````!/4%13``0`0````_(```/K````
- + M`@```_(```/I````&B!O``0B;P`(GOP`#$CG(18F22I(3KH``"`+9P8N*P`$
- + M8`B1R$ZZ```N`'#_OH!F!'``8"@@!T'O`!1.N@``(@U![P`4)`@L;```3J[^
- + M=$J`9P1P`&`&3KH``'#_3-]HA-[\``Q.=0`````#[X,```-`8VAK86)O<G0`
- + M```````!````%H,```)`=&EM90````````$````F@P```T!?9VUT,F%M:6=A
- + M``````$````\A@```E]$3U-"87-E`````0```$B#```"0%]S971E<G(````!
- + M````6`````````/Q`````P````!/4%13``0`0````_(```/I````!R!O``0B
- + M;P`(("\`#"\+)DDB2"!+)E].^@````````/O@P```D!M96UM;W9E`````0``
- + M`!@````````#\0````,`````3U!44P`$``````/R```#Z0```%(@;P`$(F\`
- + M"%%/2.<!%"9)*DA.N@``0>\`#$ZZ```@#6<(0>\`#"K8*M@@"V<``-)![P`,
- + M3KH``"!`("@`)$2`<CQ.N@``)H!^`"!L``1#[```$!BP&68,2@!F]F8&?@1@
- + M``":(&P`!$/L``@0&+`99@Q*`&;V9@9^`V```(`@;``$0^P`$!`8L!EF"DH`
- + M9O9F!'X%8&8@;``$0^P`&!`8L!EF!DH`9O9G4"!L``1#[``<$!BP&68&2@!F
- + M]F<\(&P`!$/L`"`0&+`99@9*`&;V9R@@;``$0^P`)!`8L!EF!DH`9O9G%"!L
- + M``1#[``H$!BP&68(2@!F]F8"?@$G1P`$<`!,WRB`4$].=2!O``2>_``0+PTJ
- + M2$'O``Q#[P`$80#^Z"JO``P@+P`00^T`!#+`("\`!#+`("P``#+`<``J7][\
- + M`!!.=0`````#^`````@````!````[````-@```#$````L````)P```"$````
- + M:@```%`````````#[X,```-`8VAK86)O<G0````````!````%(,```-`7V=E
- + M='1I;64````````!````'(,```-`;&]C86QT:6UE```````!````-H,```)?
- + M7T-81#,S``````$```!$A@```E]T>FYA;64`````"````.@```#4````P```
- + M`*P```"8````@````&8```!,A@```U]D87EL:6=H=`````````$```$X````
- + M`````_$````#`````$]05%,`!`!````#\@```^H````,3454($135`!7150@
- + M1%-4`$5%5"!$4U0`1414`$-$5`!-1%0`4$14`$%+1%0````````#\@```^D`
- + M```P(&\`!$CG``8J2"QL``!.KO^^!I4/##\`<`!,WV``3G4@+P`$(&\`"%E/
- + M!(`/##\`(CP``5&`+H!.N@``((`@%R(\``%1@$ZZ```@`2Z!<CQ.N@``(4``
- + M!"`7<CQ.N@``(`'E@)"!YX#0@="`(4``"%A/3G4@;P`$64](YR`$2]`@'2(`
- + MZ8&2@"`!YX#0@2(`Y8'2@.^!(!TD`.F"E(#E@B`=+T$`"'(R3KH``-""T*\`
- + M"`:`#PP_`$S?(`183TYU```#[X8```-?5&EM97)"87-E```````!````#(,`
- + M``)?7T-81#,S``````4```"J````7@```%(```!(````.@````````/Q````
- + M`P````!/4%13``0`0````_(```/I````"R`O``193RZ`0>P`!"`(6$].=2!O
- + M``193RZ(0>P`!"`(6$].=2`L``1.=0`````#^`````,````!````)@```!P`
- + M```*`````````_$````#`````$]05%,`!`!````#\@```^H````)````````
- + M``````````$````````````"```````````````````#[`````(````!````
- + M%`````@````````#\@```^D````J(&\`!")O``@@+P`,64](YS\V+@`J2"])
- + M`"B7RTZZ```B#20++&P``$ZN_7XF0"("3J[]>"`+9@9.N@``8%XD;P`H0A(J
- + M!U*%(A,D*P`$)@TH"BQL``!.KOY*2H!G&"(+3J[]>$H29@1P`F`L+P1.N@``
- + M6$]@*$ZN_WPL`'(R1@&P@68(""L``0`+9I0B"TZN_7@@!DZZ```I0```</],
- + MWVS\6$].=0`````#[X,```-`8VAK86)O<G0````````!````'H8```)?1$]3
- + M0F%S90````(```!4````)H,```)`7W-E=&5R<@````$````Z@P```E]S=')L
- + M96X``````0```'"#```$0&-O;G9E<G1?;W-E<G(```````$```"6A@```E]E
- + M<G)N;P```````0```)H````````#\0````,`````3U!44P`$`$````/R```#
- + MZ0```"Q93TJL`!)F#$'O``,I2``28>Y@%D'O``,B;``2L\AD!'`!8`)P_RE`
- + M``!83TYU64](YP$4+B\`%$JL``!F`F'`*FP`%F`N("P``&\,0>\`#R)M``2S
- + MR&(02H!J'$'O``\B;0`$L\AD$"95+PU.N@``6$\J2R`-9LXI30`62H=F!'``
- + M8")0AR\'3KH``"!`(*P`%D/O`!,A20`$0^@`"%A/*4``%B`)3-\H@%A/3G4`
- + M`````_@````'`````0```*(```"0````>@```$(````:````#@````0````#
- + M`````@```$@````Z````*`````````/O@P```E]F<F5E`````````0```&Z#
- + M```"7VUA;&QO8P`````!````B@````````/Q`````P````!/4%13``0`0```
- + M`_(```/J````!T`H(REA;&QO8V$N8PDQ+C$```````````````````/R```#
- + MZP````$```/R```#Z0```#8@;P`$64](YR,"(@@L;```=/Y.KO^L+T``$&<Z
- + M+BP``$ZZ```L`&`>2&\`$$AX"`4O!DZZ``!/[P`,2H!F""E'``!P`&`24X9L
- + MWB(O`!`L;```3J[_IG#_3-]`Q%A/3G4@;P`$2.<A!BI(3KH``"(-+&P``$ZN
- + M_[A*@&<$<`!@4$ZN_WPN`')OTH&P@68@(@UT`$ZN_T9*@&<.(@U.KO^X2H!G
- + M!"`"8"A.KO]\+@!P9="`OH!F#B!-80#_2DJ`9@1P`&`,(`=.N@``*4```'#_
- + M3-]@A$YU``````/OA@```E]$3U-"87-E`````P```'(```!0````#H8```)?
- + M97)R;F\```````,```#,````0````!Z#```#0%]L87-T7V9D`````````0``
- + M`"*#```"7VEO8W1L```````!````-(,```-`8VAK86)O<G0````````!````
- + M;(,```1`8V]N=F5R=%]O<V5R<@```````0```,@````````#\0````,`````
- + M3U!44P`$`$````/R```#Z0```AI(YP`&<"(B/``!``$L>``$3J[_.BI`2H!F
- + M!'``8"`;?``$``A-[0`.0AX@+```',`L[```0>T`%$ZZ```@#4S?8`!.=2!O
- + M``0O#B)(<"(L>``$3J[_+BQ?3G4@;P`$2.<`!BI(("T`(&<*+&P``'(`3J[_
- + MW"`M`"1G#"QL``!R0.&)3J[_W"`M`#1G!B!`3KH``"`M`#AG!B!`3KH``"!M
- + M`#QAI"!-3-]@`$[Z``!(YP(&+`$J2$J`9Q0@+0`@(BT`-"QL```P?``!3J[_
- + MRDJ&9Q0@+0`D(BT`."QL```P?``"3J[_RG`!(BP``..@3-]@0$YU2.<#-B9)
- + M*D@N$R!O`!PL$&`4(&T`-+'*9@1^`&`(M>T`.&8"?``@;0`\+'@`!$ZN_HPD
- + M0$J`9MI*AV<60I,@+0`@(BT`-"QL```P?``#3J[_RDJ&9U(@;P`<0I`@+0`D
- + M(BT`."QL```P?``#3J[_RF`V<`$B+```XZ`L>``$3J[^PB!M`#PL>``$3J[^
- + MC"1`2H!GWB!M`#2QRF8$?@!@"+7M`#AF`GP`2H=FUDJ&9M)P`2(L``#CH"(`
- + M<``L>``$3J[^SDS?;,!.=5E/2.<#%BX`)DDJ2&```(9"K0`L""T``@`S9PQP
- + M(RE```!P_V```*PL;```<@%.KO\Z("T`("(M`#0L;```,'P``4ZN_\H@;0`\
- + M<``0*``/<@'AH2`!3KH``"P`("T`("(M`#0P?``#3J[_RF`0<`$B+```XZ`L
- + M>``$3J[^PB!M`#PL>``$3J[^C$J`9^`@!DZZ```@+0`@0>\`%"(((&T`+"QL
- + M``!.KO_6+`!G`/]B(`92@&8"?`"\AV,"+`<@!B!O`!1@`A;84X!D^B`&*T``
- + M+$S?:,!83TYUGOP`2$CG#Q8N`"I()DDO20`<2H=F``"*("T`)"QL``!R0.&)
- + M3J[_W"!-0^\`(!+89OQ![P`@0^P``$ZZ```@34/O`$(2V&;\0>\`0D/L``1.
- + MN@``""T````S9P@(+0`/`#)G!D'O`"!@!$'O`$(@"')`Z8D@?```C@!.KO_B
- + M*T``)&<``.PL;```3J[_Q$J`:@)2@.*`*T``*'``8```X$JM`"1G``#*+"T`
- + M*'H`8```M+R'8P``CBP'8```B`@M``(`,V<02H5G!B`%8```L'`C8```I"`M
- + M`"0B+0`X+&P``#!\``).KO_*(&T`/'``$"@`#W(!X:$@`4ZZ```H`"`M`"0B
- + M+0`X,'P``TZN_\I@$'`!(BP``..@+'@`!$ZN_L(@;0`\+'@`!$ZN_HQ*@&?@
- + M(`1.N@``2H!G"$J%9P0@!6`Z("T`)"(+($8L;```3J[_T"@`9P#_9DJ$:Q+:
- + MA)Z$U\1P`+Z`8@#_2"`%8`YP#4ZZ``!P("E```!P_TS?:/#>_`!(3G6>_``,
- + M2-<!`W`=*4```'#_WOP`#$YU64\N@&$`_")P`%A/3G6>_``L2.<@%B9)*DA*
- + M@&<2!(````@!9R)3@&<``)Q@``"J2I-G"`CM``(`,V`&"*T``@`S<`!@``":
- + M<`/`K0`P5X!F*`@M``\`,F<&0>P`&&`$0>P`&B\(+PU(;``(2&\`'$ZZ``!/
- + M[P`08"H(+0```#-G$"\-2&P`'$AO`!A.N@``8`XO#4AL`"9(;P`83KH``$_O
- + M``Q![P`0(@@L;```)#P```/M3J[_XB:`9P1P`&`@3KH``&`8(!-G"B(`+&P`
- + M`$ZN_]QP`&`(<!8I0```</],WV@$WOP`+$YU(&\`!"`O``@B+P`,+V\`$``$
- + MGOP`3$CG#S8J+P!P+`$N`$*O`&B;S9?++T@`('!`3KH``"1`2H!G``&@80#Z
- + MHB]``&AG``&4<!1.N@``*D!*@&<``89P%$ZZ```F0$J`9P`!>'`%&T``""!O
- + M`&@K2``.<A0[00`2%T``""=(``XW00`2)4@`/"5-`#0E2P`XD<@E2``D)4@`
- + M("5(`#!*AV<&".H````S2H9G!@CJ``$`,TAZ_G!(>OY>2'K^1$AZ_+A(>OO:
- + M2'K[#"`J`#`@2D/Z^KQ.N@``3^\`&"@`9P``\$J%9P8(Z@`/`#(@;P`@(DH2
- + MV&;\($I#[P`D$MAF_$'O`"1#[``T3KH``"!*0^\`1A+89OQ![P!&0^P`.$ZZ
- + M``!*AV<H2H9G!$J%9@9![P`D8`1![P!&(`@L;```<D#IB3!\#0!.KO_B)4``
- + M($J&9RI*AV<$2H5G!D'O`"1@!$'O`$8@""QL``!R0.F)('P``(X`3J[_XB5`
- + M`"1*J@`@9@1*AV8J("H`)&8$2H9F($J`9Q0L;```3J[_Q$J`:@)2@.*`)4``
- + M*$*J`"P@!&!8("H`(&<*+&P``'(`3J[_W"`J`"1G"BQL``!R`$ZN_]Q*A&L&
- + M(`1.N@``(`UG!B!-3KH``"`+9P8@2TZZ```J;P!H(`UG!B!-80#Y+B`*9P8@
- + M2DZZ``!P_TS?;/#>_`!,3G4@;P`$GOP`("\-*DA.N@``2JP``&8(<`8I0```
- + M8&@@+```4JP``"(L``#2@"\!2&P`/$AO``Q.N@``<``N@$'O`!!R`<%!80#]
- + MN$_O``PJ@<<``O`$'O``AR`6$`_:)83RM```1K!'``8!P@%4ZZ``!*@&<*
- + M($`@:``$80#XKB`53KH``'#_*E_>_``@3G4@+P`$(B\`""]O``P`!"!O`!">
- + M_``H+PTJ2$CO``,`!$ZZ``!*K```9@AP!BE```!@:"`L``!2K```(BP``-*`
- + M+P%(;`!(2&\`%$ZZ``!P`2Z`(@!![P`8P4%A`/T43^\`#"J`:S1"IT'O`!!P
- + M`2(`80#\_EA/*T``!&L$<`!@'"`53KH``$J`9PH@0"!H``1A`/@*(!5.N@``
- + M</\J7][\`"A.=0`````#^`````L````!```(!@``!V(```8\```&)@``!,P`
- + M``2\```$H```!)@```22```"Y@```M`````````#[X8```-?7V9I9F]?<VEG
- + M```````&```#K@```C````&H```!:@```.H````LA@```5]?=7,````!````
- + M,H,```)`3F5W3&ES=`````$````ZA@```U]?1FEF;T)A<V4``````!$```;H
- + M```&V```!K8```:(```&7````^8```-X```#(````K8```)B```!^@```5H`
- + M``$\````W````,0```!\````;(,```)`9G)E90````````8```<D```'#```
- + M!P(```"L````G````)"&```"7V5R<FYO```````&```'\```!TP```42```$
- + M+```!!(```'>A@```E]$3U-"87-E`````P``!00```3B```!Z(,```1`7W=A
- + M:71?<VEG;F%L<P```````@```Y0```(6@P``!$!?:&%N9&QE7W-I9VYA;',`
- + M```"```#S@```E"#```"0'-T<F-A=``````$```&0```!BH```+J```"U(,`
- + M``1`7W-I9U]D:7-P871C:````````0``!`R#```#7U]S<')I;G1F````````
- + M!0``"`X```=J```$U```!,0```2H@P```D!?<V5T97)R`````0``!/B#```"
- + M0&UA;&QO8P`````#```%>@``!6P```52@P```T!?86QL;V-?9F0```````$`
- + M``7V@P```T!?9G)E95]F9`````````,```A:```'M@``!OB#```#0&-H:V%B
- + M;W)T`````````@``!^0```=`A@```U]?9FEF;U]O:P````````(```?H```'
- + M1(8```1?7V9I9F]?;V9F<V5T````````!```!_H```?V```'5@``!U*&```#
- + M7U]F:69O7V)A<V4``````@``!_X```=:@P```T!?9FEN9%]F9`````````(`
- + M``A&```'H@````````/Q`````P````!/4%13``0`0````_(```/J````%5]M
- + M``!?<P``9FEF;SHE<R]R=V5S2R5S`&T```!F:69O.B5S+W(`9FEF;SHE<R]M
- + M=V5+``!?;0``7W,``'5X9FEF;RXE;'@``'5X9FEF;RXE;'@``````_(```/I
- + M````"2`O``193RZ`0>P`%B`(6$].=2!O``193RZ(0>P`%B`(6$].=0```_@`
- + M```"`````0```!P````*`````````_$````#`````$]05%,`!`!````#\@``
- + M`^H````)=7-E<@````````````!W:&5E;`````````X````4```````&```#
- + M[`````0````!````(````!H````6````!@````````/R```#Z0```*D@+P`$
- + M64\N@"`L`0QG#B!`3KH``$J`9P1R`6`"<@`@`5A/3G4@+P`$(&P!#'(`3OH`
- + M`$ZZ```I0`$,9@I(;```3KH``%A/(&P!#$ZZ``"!K```3G4@;`$,3OH```CL
- + M``P``DYU("\`!`@```Q6P$0`2(!(P$YU".P`#0`"3G4@+P`$"```#5;`1`!(
- + M@$C`3G5.N@``<``@;```$"@`#W(!X:K```3G5.^@``("\`!%E/2.<!%B]`
- + M`!!^`&`N("T`%$ZZ```F0$J`9Q1*JP`49@Y^`7`!)T``%"=M`!@`&")-<!PL
- + M>``$3J[_+B!L```L>``$3J[^C"I`2H!FP"`'3-]H@%A/3G4@+P`$2.</!"X`
- + M<`'OH"P`<`F^@&8&<`!.N@``("P!!,"&9P:-K`$(8'HJ!D:%RZP!"$J':V9P
- + M(+Z`;&`@!^>`0>P`!"IP"``P?``!N\AF+"`'58!G%%.`9Q!R#9"!9SQ9@&<X
- + M48!G-&`*2&P`&$ZZ``!83W``3KH``&`@(`UG'"`'YX`H!D'L``2(L`@$B:P!
- + M!"`'3I5&A,FL`00@+`$(P(9FBDS?(/!.=2`O``0O#B(L``""@'``+'@`!$ZN
- + M_LXL7TYU("\`!"\.(@`@+```@($L>``$3J[^PBQ?3G4@+P`$2.<#`"X`?`!A
- + M`/X02H!G"'P!<`YA`/\,(`=A`/YB2H!G"'P!<`)A`/[Z(`=A`/YJ2H!G"'P!
- + M<`-A`/[H(`=A`/Z&2H!G"'P!<!1A`/[6(`9,WP#`3G4@+P`$+P<I0```<`@N
- + M'V``_KQP`&$`_V!@DV2.<!%'X`2^P`!#9\``$JBT*M``12AU"-<""^@&WP
- + M0JP!"$*L`01"K```80#]U&$`_>IA`/VB3-\H@&``_?AA`/VX8`#^"``````#
- + M^`````(````!```!=````#X````7`````@```H0```*````"?````F0```'6
- + M```!N@```:8```&B```!F````9````%*```!.````2X```$F````I````'H`
- + M``!@````5@```%````!(````.````"H````*`````````^^#```$0%]T:6UE
- + M<E]E>'!I<F5D``````$````2@P``!$!?=&EM97)?<W1A<G0````````!````
- + M,(,```1`7V%L;&]C7W1I;65R`````````0```#2#```"7U]F86EL```````!
- + M````0H,```-`7W1I;65R7W-I9P`````!````3(,```-`7V9R965?=&EM97(`
- + M```!````6H,```1`7VEN:71?<')O8V5S<V5S`````0```)*&```$7U]C:&EL
- + M9')E;E]E>&ET``````(```#N````F(,```5`7V-L96%N=7!?<')O8V5S<V5S
- + M``````$```"J@P```T!?9FEN9%]P:60```````$```#$@P```D!?7V5X:70`
- + M`````@```8````$B@P```U]?;65S<V%G90````````$```%XA@```E]?1E!%
- + M4E(``````0```D@````````#\0````,`````3U!44P`$`$````/R```#Z@``
- + M``I&86EL960@=&\@8W)E871E('1I;65R``!U<V5R(&EN=&5R<G5P=``````#
- + M\@```^L```!$```#\@```^D```(=2&P`!$ZZ``!83TYU("\`!"\-3KH``"I`
- + M2H!F`F'B(`TJ7TYU(&\`!"`O``@O"TZZ```F0$J`9@)AQB`+)E].=2!O``0O
- + M#2I((`UF!$OL``X@34H89OQ3B)'-(`A2@$ZZ```@0$J`9@1P`&`((D@2W6;\
- + M(`@J7TYU64](YP,T?@!\`"!L```F:`#08"Q**P`(9B0P/`4`P&L`#F8:4H<@
- + M:P`*(`A*&&;\4XB1P"`(W(#<JP`45(8F4TJ39M`@!U*`Y8#0AF$`_THI0``8
- + MY8<@0")`T\=%Z0`$+T``%&8*0>P``"E(`!A@5B!L```J:`#08$)*+0`(9CHP
- + M/`4`P&T`#F8P)FT`"BXM`!0@;P`4(,HO2``48`(4VTH39OH4_``])FT`$&`"
- + M%-L@!U.'2H!F]D(:*E5*E6:Z(&\`%$*03-\LP%A/3G4@;P`$("\`""\-*D@J
- + M@$*M``3E@&$`_K0K0``(*E].=2!O``0B;P`(("\`#$CG(C0F22I(2H!G"B!+
- + M80#^PB1`8`(D2R`*9SXB%20M``2T@6TB+`'<AG00TH*\@6T"(@8J@2`!Y8`@
- + M;0`(3KH``"M```AG$D?M``0B$U*;Y8$@6R&*&`!P`4S?+$1.=2!O``0B;P`(
- + M("\`#&&22H!F!&$`_AI.=2!O``0B;P`(2.<`%"9)*D@@+0`$T*L`!+"5;Q+0
- + M@"J`Y8`@;0`(80#^&BM```@B+0`$Y8$@;0`(T<$@*P`$(@#E@2)K``A@`A#9
- + M4X%D^M&M``0@:P`(3-\H`$[Z```@;P`$(F\`""]O``P`!"`O`!`B+P`464](
- + MYP(T+`$J221(+T@`$$J`9T13@&<*4X!G``"V8```]%.&9R(@+P`8(@V0@2!O
- + M`!!",`@`($$B;P`08`(2V%.`9/I@``#.0>P`$")O`!`2V&;\8```OB9O`!A@
- + M;G!<L!5F9DHM``%G8%2-<`&\@&8&%/P`86!4(`95@&9&$"W__TB`2,!R(Y"!
- + M9RY5@&<J58!G)E.`9R)3@&<>4X!G&G(5D(%G%'(<D(%G#E6`9PIR'Y"!9P15
- + M@&8$%/P`)Q3M__]@"!3M__]@`A3=N\MECF!`)F\`&&`V<"JP%68N2BT``6<H
- + M5(T0+?__2(!(P')ED(%G#'()D(%F#!3\``I@#A3\`!M@"!3M__]@`A3=N\ME
- + MQD(23-\L0%A/3G6>_`$L2.<_-BIO`5@@;```#&@`)0`49`I(>``43KH``%A/
- + M0JP`''`!*4``&"E``#YP`BE``#HI0`!@*7P```"$`%R3R2QX``1.KO[:*4``
- + M`$ZZ```I0``$9@I(;``23KH``%A/(&P`!$ZZ```I0``(+&P`!"!6+&@`%"E.
- + M`!1![P$P3J[_OBEO`3``#$ZZ``!.N@``(&P``"`H`*QG$.6`(D`B*0`TY8$I
- + M00`08`8I:`"$`!!*%68``.A![``J(@@L;```)#P```/N3J[_XBP`0>P`,"((
- + M3J[_XBX`0>P`-B((3J[_XBH`2H9G"$J'9P1*A68B2H9G!B(&3J[_W$J'9P8B
- + M!TZN_]Q*A6<&(@5.KO_<80#[<G`!+P`O!2\`+P<B!L%!3KH``"!L```@*``<
- + M0>\!6&$`_)Y/[P`0?`!^`&!0(FP``"!I`"0@,'@`9SXB`$/O`#`D"2QL``!V
- + M0.6+3J[^;DJ`9R8B;```(&D`)-''("@`!&<((@(D`$ZN_(Y![P%(0^\`,'`!
- + M80#\V%*&4(<@;```O*@`'&VF8``"S"QL``!.KO_**`!.KO_$*@!^`"!L```L
- + M*`#@9BA^`4'L`#PB""0\```#[4ZN_^(L`&820>P`/B((3J[_XBP`9@1A`/JD
- + M+P<O!G``+P`O!2($P4%.N@``0>\!6'`!80#[UB`\```%&F$`^HX@0#%\!```
- + M$B]``#QP0.6(80#Z>D_O`!!^0.6/+T`!.&`"4HT0%4B`2,!![``!"#```P@`
- + M9NP0%6<``A9R(K`!9C!2C29-8!!P*K`59@A*+0`!9P)2C5*-$!5G!G(BL`%F
- + MYB1-$!5R(K`!9@)2C7P"8%1P)[`59B!2C29-8`)2C1`59P9R)[`!9O0D37`G
- + ML!5F`E*-?`%@+B9-8!!P7+`59@A*+0`!9P)2C5*-$!5G$G(@L`%G#'(*L`%G
- + M!G()L`%FVB1-?``@2RH*FHL@!5*`+T@`*&$`^;8F0$JO`4QF("`%($LB;P`H
- + M3KH``$(S6`!![P%((DMP`&$`^V!@`/\FVH5R$-J!NH=O%"!O`3A.N@``(`5A
- + M`/EV+@4O0`$X+PH@!B!+(F\`+'(!80#[KEA/(@LD+P$X)@<L;```3J[\N"H`
- + M;!!"$B\O`"A(;`!$3KH``%!/2H5F(B\*(`8@2R)O`"QR`&$`^W1![P%,(DMP
- + M`&$`^NA83V``_JQZ`2!O`"Q"J``(0B@`$4(H`!`O"B`&($LB;P`L<@)A`/M`
- + M0>\!0'`080#Z)EA/(@LD+P`L+&P``$ZN_,HH`&8\8"IZ`")O`"S2_`$80>\!
- + M/'`!80#Z($J`9@1X9V`2(B\`+"QL``!.KOS$*`!*A&?2(B\`+"QL``!.KOR^
- + M<'30@+B`9PI(;`!83KH``%A/2H5G(B\*(`8@2R)O`"QR`&$`^L!![P%,(DMP
- + M`&$`^C183V``_?@@+P%`(&\!1$ZZ``!![P%(0^\!/&$`^BH@2TZZ``!@`/W6
- + M(&\!.$ZZ```@;P`L3KH``&$`^))![`!R3KH``"E```!F"$'L`'@I2```0>P`
- + M?DZZ```I0``49@8I;````!1![`"(3KH``"E``!AF"$'L`(XI2``80>P`DDZZ
- + M```I0``<9@A![`"8*4@`'$'L`*!.N@``*4``'&8(0>P`JBE(`!P@+P%,(&\!
- + M4")L`!A.N@``<`!.N@``3-]L_-[\`2Q.=0```_@````5`````0``"$X```A`
- + M```(.```""H```@B```(%```"`````?X```'Z@``!X0```;0```%3@``!3H`
- + M``18```$3```!#8```/6```"J````.````!.`````@```!(````"```(7@``
- + M"%(```A(```%+@``!"P```0D```$$```!`0```/V```#[````^@```/@```#
- + MT````\@```#J````Y````,H```"$`````````^^#```"7U]F86EL```````$
- + M```'B```!M0```/:````!H,```)`;6%L;&]C``````(```!@````%(,```)`
- + M<F5A;&QO8P````(```&R````,(,```)`9G)E90````````4```?B```'V@``
- + M!\X```:4```"1H8```)?4WES0F%S90````$```.(@P```E]?6$-%6$E4````
- + M`0```YB&```"7U]?:6]B```````&```#N@```[(```.N```#J````Z0```.>
- + M@P``!$!?86QL;V-?=&EM97(````````!```#S(,```-`7W1I;65R7W-I9P``
- + M```!```#Y(,```-`7VEN:71?9FEF;P`````!```$"(,```1`7VEN:71?<VEG
- + M;F%L<P```````0``!`R&```"7T1/4T)A<V4````'```'=```!V(```<T```&
- + MO@``!1P```34```$/(,```1`7VEN:71?=6YI>&EO`````````@``!6X```2@
- + MA@```U]?5T)E;F-H37-G``````0```4.```$Y```!+X```2DA@```E]?7V-T
- + M>7!E`````0``!;"#```"0'-T<FYC<'D````!```&;H,```)`='%S;W)T````
- + M``$```>\@P```T!?7V=E=&5N=@````````4```A$```(+@``"!@```@$```'
- + M[H8```-?7V%M:6=A7W5S97(````)```(/```"#(```@F```('```"!````@.
- + M```("```!_P```?R@P```D!M86EN`````````0``"&*#```"0&5X:70`````
- + M```!```(:`````````/Q`````P````!/4%13``0`0````_(```/J````+```
- + M``!.;R!M96UO<GD```!A`$9A:6QE9"!T;R!C<F5A=&4@=&EM97(``$Y)3#H`
- + M`$Y)3#H``$Y)3#H``"H`3DE,.@``26YV86QI9"!W:6QD8V%R9"`E<P!%<G)O
- + M<B!E>'!A;F1I;F<@87)G=6UE;G1S`%5315(``'5S97(``%5315).04U%``!(
- + M3TU%``!S.@``4TA%3$P`8FEN.G-H``!(3U-43D%-10``86UI9V$````#\@``
- + M`^L````(```#\@```^D````$("\`!%E/+H!P`%A/3G4``````_$````#````
- + M`$]05%,`!``````#\@```^D````^("\`!$CG`P`N`$JL``!G!"`'8&!\`"`'
- + M`H````$D9P)\"`@'``=G!`!&``4(!P`$9P0(Q@`""`<``6<$",8```@'``-G
- + M!`C&``$(!P``9P0(Q@`&(`=R2<"!<D"P@68$`$8`0@@'``EG!`C&``4@!@I`
- + M``],WP#`3G4@+P`$2.<&`"P`2JP``&<((`8"0`__8%YZ``I&``\(!@`#9P1Z
- + M2>6-(`9R!<"!6X!F!`C%``<(!@`"9P0(Q0`$"`8``&<$",4``2`&<D+`@6<$
- + M",4`!@@&``%G!`C%``,(!@`&9P0(Q0``"`8`!6<$",4`"2`%3-\`8$YU````
- + M``/X`````@````$```"&````#`````````/Q`````P````!/4%13``0`0```
- + M`_(```/K`````0```_(```/I`````G``3G5P`$YU```#\0````,`````3U!4
- + M4P`$``````/R```#Z0```!5(YP,`3KH``"X`?`!@"B\&3KH``%A/4H:\AVWR
- + M3-\`P$YU("\`!"\'+@!AU$ZZ``!.N@``(&P``$ZZ```O!TZZ``!83RX?3G4@
- + M+P`$+P<N'V#4``````/O@P```T!?;&%S=%]F9`````````$````&@P```E]C
- + M;&]S90```````0```!*#```$0%]C;&5A;G5P7V9I9F\```````$````N@P``
- + M!4!?8VQE86YU<%]S:6=N86QS`````````0```#*&```#7U]O9&1?=&EM97(`
- + M`````0```#:#```#0%]F<F5E7W1I;65R`````0```#J#```"7U]80T58250`
- + M```!````0`````````/Q`````P````!/4%13``0`0````_(```/I````$R`O
- + M``0B+P`((&\`#%%/2.<#)"P!+@`J2$ZZ```@!TZZ``!*@&<:(D`@:0`@+T@`
- + M%"`&(&D`!")-)&\`%$Z28`)P_TS?),!03TYU``````/O@P```T!C:&MA8F]R
- + M=`````````$````:@P```T!?9FEN9%]F9`````````$````@`````````_$`
- + M```#`````$]05%,`!``````#\@```^D```"8GOP`#$CG+S8J;P`T?@/.KP`X
- + M?`$@;```)F@`N"H\```#[$ZZ``!*AV<*<`*^@&<$<@!@`G(!+T$`*'`!OH!G
- + M"%6'9P1P`&`"<`$O0``L($U#[```3KH``$J`9@9X_V```51P_R!L```A0`"X
- + M(@TL;```=/Y.KO^L+@`@;```(4L`N$J`9G@L;```3J[_?$ZZ```L`"`L``!R
- + M+D8!L(%G!$J`9@I^`2H\```#[F`6(`95@&8,""\`"``Z9P1P`6`"<``N`$J'
- + M9RQ\``@O``@`.F<<""\`#P`Z9P9X`F```-8@+P`\3KH``"@`8```R'C_8```
- + MPBE&``!P_V```4)"IRQL``!R`B0/3J[_'$_O``0D0$J`9PPB!R0*3J[_FDJ`
- + M9A8@"F<()`IR`DZN_Q9.N@``</]@``$(*"H`="0*<@).KO\6(@=.KO^F<%#I
- + MB,"O`#@,@```!0!F#'`1*4```'#_8```VDJO`"AG!@@$``-F#$JO`"QG$@@$
- + M``)G#'`-*4```'#_8```M@@O``D`.F<B(@TD/````^Y.KO_B2H!G""(`3J[_
- + MW&`*3KH``'#_8```C`@O``@`.F<$(`5@!B`\```#[20`(@TL;```3J[_XBH`
- + M9@A.N@``</]@8`@O``D`.F8$2H9F!"P$8`)\_WX`2J\`*&<"?@%*KP`L9P0(
- + MQP`!""\``P`[9P0(QP`#+P<@!2(&3KH``%A/+@!L''#_(&P``"%``+@B!2QL
- + M``!.KO_<(&P``"%+`+@@!TS?;/3>_``,3G4@;P`$+R\`#"\O``PO"&$`_:A/
- + M[P`,3G4```/X`````0````$```!2`````````^^&```!7U]U<P````4```(V
- + M```")````'P```!F````%H,```-`8VAK86)O<G0````````!````)(,```)`
- + M<W1R:6-M<`````$```!6A@```E]$3U-"87-E````!0```BX```',```!`@``
- + M`(@```!P@P``!$!C;VYV97)T7V]S97)R```````!````D(8```)?7T]315)2
- + M``````$```"6@P``!4!?;6%K95]P<F]T96-T:6]N`````````0```.:&```"
- + M7V5R<FYO```````#```!@@```5X```#V@P```D!?<V5T97)R`````P```=@`
- + M``&L```!,(,```1`7V%L;&]C7V%M:6=A9F0``````0```A@````````#\0``
- + M``,`````3U!44P`$`$````/R```#Z@````).24PZ`````````_(```/I```%
- + M:"!O``1(YS@`</_`*``#<@`2`'#_P"@``G0`%`!P_\`H``%V`!8`</_`$'@`
- + M&`#AA(B#X82(@N&$B($@!$S?`!Q.=4CG(S1+[`!R0>P`'$7L``PDR$'L`"`D
- + MR$*L`!A"FGX`+"P`>D?L![Q@/"`K``0B`.6!($W1ZP`(0^@'ZD7L``PEB1@`
- + M2H!G!G`!*4``&$J'9P9*JP`$9@@@$T2`*4``%%*'UOP`$+Z&;<!^`"PL`'9@
- + M.G``(@<&@0``!=@0-1@`2,#I@"!-(@`&@0``!U+1]1@`!H````=.)#4(`.6"
- + M0^@'ZD7L``PEB2@`4H>^AFW"3-\LQ$YU(&\`!")O``B>_`HH2.<[-B](`"@O
- + M20`L(`AF"$WL`"0O3@`H<#H@;P`HL!!F!%*O`"@@;P`H<#I.N@``2H!F3G`*
- + M(@`@;P`H(`A*&&;\4XB1P-*(4H%P0;*`909P_V```DQ![``P0^\`,1+89OQ!
- + M[P`Q0^P`/$ZZ``!![P`Q(F\`*$ZZ``!![P`Q+T@`*$*G+R\`+$ZZ``!03RX`
- + M4H!F!G#_8``"""`'0>\`<B(\```)VDZZ```L`"`'3KH``$J`9@9P++R`9`9P
- + M_V```>!![P"*80#^."X`0>\`CF$`_BXJ;P`L*H!![P"280#^("M```1![P"6
- + M80#^%"M```A![P":80#^""M```PB%6LP=#*R@FXJ)BT`"&\D>`JVA&X>*"T`
- + M!&L8#(0```%R;A!*@&L,L()N"+:'9PI*AV<&</]@``%JTH'E@2`M``@D`-2"
- + MU(#4@B`M``0F`.6#UH#6@M:M``S6@=:'<"S6@+R#9`9P_V```3A'[P">?``D
- + M36`0($MA`/V()4``$%B+4H98BKRM``1MZGP`8"`0&R(&!H$```78&X`8`'(`
- + M$@"RK0`(;09P_V```/92AKRM``1MVGP`0>T'2B1(+T@`)&!*($MA`/TZ)(!+
- + MZP`%$"L`!'(`$@`E00`$9PI3@6<&</]@``"\1^T``1`5<@`2`"5!``AM"BIO
- + M`"RRK0`,;P9P_V```)Q2AM3\`!"\K0`(;;!\`&`.(`8&@```!^H;FP@`4H:\
- + MK0`,;>P@!@:````'ZD(U"`!\`-K\"!Y@'B!+80#\OBJ`1>L`!"!*80#\LBM`
- + M``1'Z@`$4H90C2!O`"R\D&W:?``D;P`D*F\`+&`H2H=F!D*J``Q@&!`;2(!(
- + MP"5```QR`;"!9PA*@&<$</]@#E*&U/P`$+RM``AMTG``3-]LW-[\"BA.=2!O
- + M``193R\-*DA@`E*-$!4?0``$9R9(@$C`0>P``0@P``((`&86$"\`!'(LL`%G
- + M#'(ML`%G!G(KL`%FT"`-*E]83TYU(&\`!")O``@@+P`,(B\`$%E/2.<'%"P!
- + M+@`F22I((`UG$A`52(!(P$'L``$(,``""`!F!'``8$IZ`&`B$"\`%$B`2,`B
- + M!>6!TH72@=*`*@%P,)J`NH9O!'``8"92C1`5'T``%&<02(!(P$'L``$(,``"
- + M"`!FQKJ';`1P`&`$)H4@#4S?*.!83TYU(&\`!")O``A93TCG`!0F24/O``AP
- + M`'(880#_;"I`2H!F!'``8&H@+P`((@#I@9*`(`'I@)"!Z8`F@'`ZL!5F3D'M
- + M``%#[P`(<`!R.V$`_S@J0$J`9@1P`&`V("\`""(`Z8&2@.6!TY-P.K`59B!!
- + M[0`!0^\`"'``<CMA`/\**D!*@&8$<`!@""`O``C1DR`-3-\H`%A/3G4@;P`$
- + M(F\`"%E/2.<!%"I)+T@`#!`0<BVP`68(?@%2KP`,8#!(@$C`0>P``0@P``((
- + M`&88<BL@;P`,LAA7P$0`2(!(P"](``Q*@&<$?@!@!'``8!P@;P`,(DUA`/\4
- + M)D!*@&8$<`!@"$J'9P)$E2`+3-\H@%A/3G4@;P`$(F\`")[\``Q(YP`D*DDO
- + M2``0<$JP$&8H0I5#Z``!0>T`!"](``P@22)O``QP`2(\```!;6$`_CPO0``0
- + M8```M'!-L!!F?'`"*H!#Z``!0>T`#"](``P@22)O``QP`7(,80#^$")`2H!F
- + M!G``8```P$7I``%P+K`19P9P`&```+!![0`((D@@2G`!<@5A`/WD(D!*@&8&
- + M<`!@``"41>D``7`NL!%G!G``8```A$'M``0B2"!*<`!R!F$`_;@O0``08#`0
- + M$$B`2,!#[``!"#$``@@`9QIP`2J`0^T`!'``(CP```%M80#]C"]``!!@!'``
- + M8#P@+P`09@1P`&`R<"\@;P`0L!!F'$/H``%![0`0+T@`#"!)(F\`#&$`_=HO
- + M0``08`@K?```'"``$"`O`!!,WR0`WOP`#$YU("\`!"(O``@@;P`,+V\`$``$
- + MGOP`)$CG/Q0J2"H`+@$D!W8#Q(,O0``X+T$`/$J"9@P@!W)D3KH``$J!9A(@
- + M!W)DY8E.N@``2H%G!'``8`)P`2P`(!5*@&<,4X!G2%.`9V9@``%^("T`!"(`
- + M4X$D`=2"U($F`NF#EH(D`^F"E(/O@BX%WH(O1P!`2H9G``%4<CRP@6T``4P&
- + MAP`!48`O1P!`8``!/B`M``0B`-*!TH`D`>F"E($B`NF!DH+O@=J!+T4`0&``
- + M`1PH!7X`*BT`#%.%(`;0@-"&Z8!'[``^U\`O0``@8!H@&R(`TH'2@"0!Z8*4
- + M@2("Z8&2@N^!V(%2A[Z%;>(N+P`\+T0`)"(M``QT`K*";@8F!U.#8`(F!R`#
- + M<F1.N@``(@#2@4J`:@)6@.2`+T``+"`#+T$`,')D3KH``"`!:@)6@.2`=@G6
- + MK0`,+T``-"`#+T$`*'(,3KH``%*!(`'G@)"!T("0@="`58!R"DZZ``!'[P`H
- + MT)O0KP`TT)N0FU*`<@=.N@``+@%J`EZ'+"T`!)R':@)>AGH!*"T`"&`<+@9>
- + MAR(M``SE@4'L`#K1[P`@OK`8`&P(+`=2A;J$;>`@!M"`T(8B`.F!DH`@`>F`
- + MD('O@"(O`"32@"]!`$`@+P!`T*T`$-"O`$A,WRC\WOP`)$YU(&\`!")O``@@
- + M+P`,GOP`6$CG/S8J2"Q-1^\`-";`)L@FR2].`#!*@&<<(`A*&&;\4XB1P"P(
- + M(@C3KP`X<#.R@&4<?#)@&&$`^JHL`)R-+T``.'(#O(%L!G#_8``#>B]&`"P@
- + M;P`X2A!F!G#_8``#:$/O`'1A`/OF+T``.&8&</]@``-4)F\`/$'L`*8B2V$`
- + M][`N`&<"0I,@;P`X2A!G``*^*D@O2`!\80#Z2"(`DHTO0``X+T$`>'8#LH-L
- + M!G#_8``#%"!O`#@0$&<@<BRP`6<:<CNP`6<40^\`<&$`^WXO0``X9A1P_V``
- + M`NP@//__\?#0KP!T+T``<"!O`#@0$'(LL`%G"'([L`%F``%80^@``2!)0^\`
- + M7&$`^[HJ0$J`9@9P_V```K!%[0`!<"RP%6<&</]@``*@($I#[P!(80#[E"]`
- + M`#AF!G#_8``"BB!O`#A*$&<&</]@``)\($MP`B%```@A?````(@`!"`O`'!$
- + M@$WH!THLP'`!+,!2ABS&("\`=$2`3>@'6BS`0IY"GM;\`!!%Z`78>@`L/```
- + M![(@2B\O`'0O2``L(`4B!D'O`&!A`/QF+@`NKP!T(`4B!D'O`$QA`/Q46$\H
- + M`$OJ``)%ZP`(OH!O&B!+((1P`2)O`"@2@"9*(4<`!"1-0BD``6`8($L@AR)O
- + M`"A"$29*(40`!"1-$WP``0`!(`9R`\"!9@P@!G)D3KH``$J!9A(@!G)DY8E.
- + MN@``2H%G!'``8`)P`2(`Y8%![`">(#`8`"(`TH'2@"8!Z8.6@20#Z8*4@^^"
- + MVH)2A@R&```']6\`_T)@``$<(&\`.$H09P9P_V```69*AV<&</]@``%<>`!\
- + M`'H`0J\`1'X`*DM@<$JM!TYG/B`O`$0B!^F!)"\`<`:!```'2B8S&`#6@B]#
- + M`$1*AF<*L(-G!G#_8``!'$2"*T('2B`O`"Q2@"M`!U)\`6`F(`4B+P!T*BT'
- + M2MJ!2H1G"K"%9P9P_V```.Y$@2M!!TI"K0=2>`%2A]K\`!"^JP`(;8I*AF<$
- + M2H1F!G#_8```R'P`?@`J2R@O`$1@.G``(@<&@0``!=@0,Q@`2,#I@"!+T<!#
- + MZ`=*+TD`0$J&9PI*J0`,9@0@!&`"(`71K0`0+"D`!%*'6(V^JP`$;<!@('``
- + M<@$G00`()T``!"0O`'1$@DWK!THLPBS`+,`O0`!X*F\`/"XO`"P@!U*`*T``
- + M#"PO`'AG"-"&4H`K0``,<C.P@6,$</]@,-K\!^H@!R!-(F\`,$ZZ```@3=''
- + M2^@``4(02H9G$"`&($TB;P!\3KH``$(U:`!P`$S?;/S>_`!83G4@;P`$+PTJ
- + M2$'L```B36$`]%!*@&<,0>P``")-<`%A`/P,*E].=2\-0>P`LDZZ```J0$J`
- + M9@8J7V```%QP`2E`$\Y*%68>0JP`<D*L`'9"K`>\0JP'Q$'L``!#[`A<$MAF
- + M_&`L($U#[`!R80#S]$J`9QYP.K`59Q`@34/L`')P`&$`^ZI*@&<(0>P`<F$`
- + M_W8J7V``\PYP`2E`$\Y#[`!RD<AA`/.\2H!G"$'L`')A`/]48`#R[B!O``0@
- + M+P`((F\`#)[\`!!(YP,4*DE([P$!`!`@;P`4+U``&$JL$\YF!&$`_T1*K`!V
- + M9PH@+P`8L*P`@FP@?@!'[`!R8!!2A];\`!"^K`!Z;01^`&`R2JL'3F;J8"I^
- + M`4?L`'8L+`!V8`X@+P`8L*L`$&T(4H=8B[Z&;>Y#[`!RT\=^`!XI!=?IAT'L
- + M![S1QR\-+T@`("`00>\`'$/L`')A``#"(&\`("(H``0K00`@Y8%![`A<(F\`
- + M(-'I``A#[``,(X@8`"M(`"A83TS?*,#>_``03G4@;P`$0^P``'``80#_*D'L
- + M```@"$YU(&\`!"`O``@B;P`,2.<!%"X`)DDJ2$JL$])F#G`!*4`3TD'L"B!A
- + M`/XZ+PL@!R!-0^P*(&$``$)83TJ'9P9![`"Z8`1![!(*)T@`*$S?*(!.=2!O
- + M``1#[``L<`!AKD'L`"P@"$YU(&\`!"`O``@B;P`,+V\`$``$GOP`#$CG#S0N
- + M`"9O`"PJ2'P`>@`H$2`$YX`O20`@T\!%Z0@>8$`O2@`D(!6PDFTV(&\`)+"0
- + M9BA*A&8&("@`!&X:YX0B*``$(F\`(`:$```(&K*Q2`!N!'``8`)P`2H`+"@`
- + M!&`&4X11BFRZ(!4B/``!48!.N@``*``@%2(\``%1@$ZZ``#2AY*&+`%@"`:&
- + M``%1@%.$2H9K]&`(!(8``5&`4H0,A@`!48!L\"`&(CP```X03KH``"=```@@
- + M!B(\```.$$ZZ```@`2]!`!QR/$ZZ```G0``$("\`''(\3KH``":!2H5G`E*3
- + M(`18@'('3KH``"=!`!AL!%ZK`!@L/```![)*A&M`(`9R`\"!9@P@!G)D3KH`
- + M`$J!9A(@!G)DY8E.N@``2H%G!'``8`)P`2H`(@#E@47L`)X@,A@`N(!M0%*&
- + MF(!@P%.&(`9R`\"!9@P@!G)D3KH``$J!9A(@!G)DY8E.N@``2H%G!'``8`)P
- + M`2H`Y8!![`">V+`(`$J$:\8$A@``!VPG1@`4)T0`'"`%T(#0A>F`1>P`/M7`
- + M0JL`$&`.(BL`$.6!F+(8`%*K`!`B*P`0Y8&XLA@`;.92A"=$``Q"JP`@)T<`
- + M)$S?+/#>_``,3G4@;P`$+PTJ2"`M`!@B`-*!TH!![`"^T<$@+0`0(@#2@=*`
- + M0^P`T]/!(#P```=LT*T`%"\`+Q4O+0`$+RT`""\M``PO"2\(2&P`^$AL`%A.
- + MN@``3^\`)$'L`%@@""I?3G4@;P`$+PUA`/TX($`J7V"4(&\`!")O``@@+P`,
- + M+P<N`"`1L(=M%"('3KH``-&0(!$B!TZZ```B@6`J2H!J)E.0WY%L("`11(`B
- + M!TZZ```B$)*`4X$@@2`11(`B!TZZ``">@2*'+A].=2!O``0B;P`(2.<!%"9)
- + M*D@N+0`4GJL`%&8L+BT`$)ZK`!!F(BXM``R>JP`,9A@N+0`(GJL`"&8.+BT`
- + M!)ZK``1F!"X5GI,@!TS?*(!.=2!O``0B;P`(("\`#"]O`!``!)[\`'!(YS\T
- + M+@`J;P"8+TD`+$*5+T@`*$/O`%QP"B+84<C__"`O`%QR/K"!;`1*@&H.0>\`
- + M8$/O`%QP/&$`_Q9![P!D0^\`8'`\80#_"$'O`&A#[P!D<!AA`/[Z0>\`<$/O
- + M`&QP#&$`_NQ@3"`O`'!3KP!P!H````=K(@!T`\*"9@IR9$ZZ``!*@68:(#P`
- + M``=LT*\`<')DY8E.N@``2H%G!'``8`)P`2(`Y8%![`">(#`8`-&O`&@@+P!H
- + M;ZXL/```!VS<KP!P(`9R`\"!9@P@!G)D3KH``$J!9A(@!G)DY8E.N@``2H%G
- + M!'``8`)P`20O`&SE@B8`UH/6@.F#0>P`/M'#+#`H`"`O`&BPAF\:1^\`:)V;
- + M4I,,FP````QMGD*O`&Q2KP!P8)0@+P!<0J\`7'H`<@$O00"(+T``)%*%("\`
- + MB-"`+T``B"`O`(AN[B`O`(AJ!'``8`1P`>N@+T``B$AO`#`O!TAO`)`@;P`X
- + M3I!![P`\0^\`:&$`_BQ/[P`,*`!G+B`%4X5*@&H&</]@``$02H5J!E.O`(A@
- + MQ'`!ZZ`L`$J$;P:=KP"(8+3=KP"(8*X@+P!\:P``Q"(O`%"R@&<``+I!^OGB
- + M(F\`++/(9@9!@``"(("L'3K"O`'QF=GH`)&\`
- + MD&!D("H'3K"O`'QG5"`%Z8`B+P"((&\`D`:````'2M*P"`"2JP=*+T$`C$AO
- + M`#`O!TAO`)0@;P`X3I!![P`\0^\`:&$`_6Q/[P`,2H!F$B`O`%"PKP!\9@@O
- + M;P",`(A@)E*%U/P`$"!O`)"ZJ``(;9)2AM;\`!`@;P"0O*@`"&T`_W!P_V`D
- + M("\`)-&O`(@O+P`H+P=(;P"0(&\`.$Z0<`$J@$_O``P@+P"(3-\L_-[\`'!.
- + M=2!O``0B;P`(("\`#)[\``Q(YP<T+@`J2"])`!@,K0````$`(&\&<`$K0``@
- + M2&\`'"`'($UA`/T>6$\L`$JO`!QF!B`M`"!J!B`&8```QD'Z^*XB;P`8L\AF
- + M!D'L`')@!$'L"B!\`"9(+T@`(&```)8@*P=.L*T`(&8``(1Z`"1O`"!@<"`M
- + M`"`B*@=.LH!G7B`%Z8`B%2!O`"`&@```!TK2L`@`DJL'2BJ!2JT`(%?`1`!(
- + M@$C`*T``($AO`!P@!R!-(F\`'&$`_(Q83TJO`!QF0"`5D*H'2M"K!THJ@$JM
- + M`"!7P$0`2(!(P"M``"!2A=3\`!`@;P`@NJ@`"&V&4H;6_``0(&\`(+RH``AM
- + M`/]B</],WRS@WOP`#$YU(&\`!"\-0_KWVG``*E]@`/[@2JP3SF8$80#W+$YU
- + M``````/X````'0````$``!*X```29@``$-@``!"T```0I```$%0``!`R```/
- + M\@``#H(```X6```,^```#,H```RX```,J@``"O@```E*```(>```!Z0```%L
- + M```!7````18```#F````H````(X```"`````7````%8```!0````3````"L`
- + M```"```5E```%,8``!3````3D@``$XP``!#H```0W```#J(```Z:```.B```
- + M#G0```YF```.8@``#EH```X\```.,@``#@H```WT```-X@``#=0```V\```-
- + MN```#:0```V8```-D```#88```U\```-3```#3X```TZ```-*@``#1P```T(
- + M```,_```#/0```SP```,[```#.@```S@````L````&@```!D````2```````
- + M``/O@P```D!S=')C:'(``````0```3*#```"0'-T<F-A=``````"```!?```
- + M`7"#```"7V]P96X````````!```!CH,```)`<F5A9`````````$```&L@P``
- + M`D!C;&]S90```````0```;2&```"7U]?8W1Y<&4````%```&6@``!3X```1>
- + M```$'````\J#```"7U]#6$0S,P`````<```2G```$HX``!)4```2/@``$4X`
- + M`!$\```1)```$1H``!`@```0$@``#]X```_0```/K```#YH```^,```/@```
- + M#W````\^```/,```"N8```K8```(4@``"#P```@F```("```!^P```<.```'
- + M`(,```)`<W1R;F-P>0````(```R.```,=(,```-`7U]G971E;G8````````!
- + M```,SH,```)?<W!R:6YT9@````$``!#@`````````_$````#`````$]05%,`
- + M!`!````#\@```^H```!(1TU4`"`@(``@("``````!`````@``````````"`@
- + M(``@("``<SIL;V-A;'1I;64`<SIZ;VYE:6YF;P``+P`````?````'````!\`
- + M```>````'P```!X````?````'P```!X````?````'@```!\````?````'0``
- + M`!\````>````'P```!X````?````'P```!X````?````'@```!\```%M```!
- + M;G!O<VEX<G5L97,``%5.25A46@``("`@`%-U;DUO;E1U95=E9%1H=49R:5-A
- + M=$IA;D9E8DUA<D%P<DUA>4IU;DIU;$%U9U-E<$]C=$YO=D1E8P`E+C-S("4N
- + M,W,E,V0@)3`R+C)D.B4P,BXR9#HE,#(N,F0@)60*```````#[`````(````!
- + M````$`````P````````#\@```^L```3V```#\@```^D```&<GOP`#$C7`0-P
- + M_][\``Q.=5%/2-<#`%!/3G5(YS`"(A!**``-9P1P`&`<)`DF`"QL``!.KO_6
- + M(@!2@&8(3KH``'#_8`(@`4S?0`Q.=5%/2.<_-BX`*DDF2"P3+T8`*"](`"Q*
- + M*P`-9P9P`&```(Q**P`,9V8F3=?'>@!@6"1-8`)2BK7+9`9P"K`29O2WRF8$
- + M*`I@!D'J``$H")B-(B\`*"0-)@0L;```3J[_T"P`4H!F"$ZZ``!P_V`^VH:V
- + MAF8V2^H``9Z&<`!.N@``3KH``$J`9B)*AV:D8!PB!B0-)@<L;```3J[_T"H`
- + M4H!F"$ZZ``!P_V`"(`5,WVS\4$].=5E/2.<_`BX`+!`O00`<2B@`#6<$<`!@
- + M4E.!)@$B!B0'+&P``$ZN_[XJ`$ZN_WPH`%*%9P1*A&<.(`1.N@``*4```'#_
- + M8"0B!G0`)@).KO^^+`!2@&<$2H1G#B`$3KH``"E```!P_V`"(`9,WT#\6$].
- + M=9[\`0!(YS\&+@`J2"P5*BT`""`M``1G"B(`+&P``$ZN_Z88+0`-2(1(Q"!-
- + M3KH``$J$9P1P`&!$(@9![P`@)`@L;```=D#EBTZN_F@H`$J'9@HB!DZN_]Q*
- + M@&<:2H1G$G#_NH!G#"(")`5.KO]&2H!G!'``8`9.N@``</],WV#\WOP!`$YU
- + M("\`!$CG(`(B`"QL``!T`$ZN_S1.KO]\="Y&`K""5\%$`4B!2,$@`4S?0`1.
- + M=2`O``0@;P`((F\`#)[\`!!(YS<6+@`F22I(?`!AN$J`9GPB!RQL``!T`4ZN
- + M_E9*@&=L(@=![```)`AV!$ZN_]!9@&92(@<D/```)Q!.KO\T2H!G0B('0>\`
- + M("0(=A!.KO_6<@FP@6\N<)NP+P`@9B9![P`E(@@D"TZN_-`J`$'O`";1P"((
- + M)`U.KOS04H!G!E*%9P)\`2('=`!.KOY6(`9,WVCLWOP`$$YU("\`!"(O``B>
- + M_`(02.<_!BX`</\O0`(H+T$`)"('+&P``'0`=@%.KO^^+T``("('3J[_OBP`
- + M3J[_?"H`+T`"+&8``,(H+P`D(@<D!';_3J[^.+""9@``KKR";```GBH$FH8H
- + M!2`$<@%(02QX``1.KO\Z*D!*@&9J<@)(04ZN_RCBB"H`#(4```(`;1`@!7(!
- + M2$%.KO\Z*D!*@&9&>D#GC4OO`"@P/`'_<@!![P`H$,%1R/_\8"RXA6\$(`5@
- + M`B`$)@!.N@``(@<D#2QL``!.KO_0L(-G"DZN_WPO0`(L8`:8@TJ$;M!![P`H
- + ML<UG#")-(`4L>``$3J[_+BHO`BQF!$*O`B@L+P`@O*\`)&P.(@<D!BQL``!V
- + M_TZN_[XL+P(H9PH@!4ZZ```I0```(`9,WV#\WOP"$$YUGOP!"$CG-Q8N`"9)
- + M*D@L%4HM``UF``$8(`<$@```!`!G(`2````$`&=*4X!G6%.`9UQ3@&=>4X!G
- + M9E.`9VQ@``#N2BT`#&<F(`9![P$D0^\!(&$`_=9*@&<4("\!)#=```(@+P$@
- + M-H!P`&```,IP&6```+XB!BQL``!.KO\H)H!P`&```+(FAG``8```JG``8```
- + MI"`&(A-A`/XV8```F"M3``AP`&```(XJ$TJM``1F#B(5+&P``$ZN_HPK0``$
- + M("T`!&=B)``B!2QL``!.KOY<2H!F4B(&0>\`("0(=D#EBTZN_FA*@&<^(@5.
- + MKO^F(BT`!$ZN_Z8B!DZN_]PB`G0`3J[_1AM\``$`#2J"*T(`!$'O`"`B""QL
- + M``!.KO^X2H!G!"`"8`Y.N@``8`9P%BE```!P_TS?:.S>_`$(3G4@+P`$(B\`
- + M""]O``P`!$CG#P8J+P`<+`$N`'`.3KH``"I`2H!F"G`,*4```'#_8$Y#U2+'
- + M0IDBQD(M``TB!RQL``!.KO\H&T``#$AZ_G1(>OO:2'K[9$AZ^JQ(>OIV2'KZ
- + M:"`%($U#^OI03KH``$_O`!@H`&P&($U.N@``(`1,WV#P3G4@+P`$(B\`""]O
- + M``P`!"]O`!``""]O`!0`#"]O`!@`$$CG#0`H+P`4*B\`$"X`<`!*@68$<$#E
- + MB`!```$O`"`'<O]A`/]&6$]*@&9`<`!*A&8$<$#EB`!```(O`"`%<O]A`/\H
- + M6$]3@&8B<`!*KP`<9@1P0.6(`$```B\`("\`''+_80#_!EA/58!G$$'L``8O
- + M2``03-\`L$[Z``!,WP"P3G4``````_@````"`````0``!EH```)<````````
- + M`^^&```"7T1/4T)A<V4````0```%B```!2(```34```$O@``!(````/D```#
- + MG````O````),```"!````;0```&.```!(@```.(```"F````,(,```)`7W-E
- + M=&5R<@````4```4R```!Z@```/````"T````/H,```1`7V-H96-K7W-I9VYA
- + M;',``````0```,J#```$0%]H86YD;&5?<VEG;F%L<P````$```#.@P``!$!C
- + M;VYV97)T7V]S97)R```````#```#]@```5X```$\A@```E]E<G)N;P``````
- + M!0``!7(```4Z```#^@```6(```%`@P```D!F<F5E`````````@``!<(```&@
- + M@P```T!C:&MA8F]R=`````````$```.4@P```D!M86QL;V,``````0``!6:#
- + M```#0%]A;&QO8U]F9````````0``!;2#```"7U]F86EL```````!```&9@``
- + M``````/Q`````P````!/4%13``0`0````_(```/J````")LP('$``$9A:6QE
- + M9"!T;R!I;FET:6%L:7-E($DO3P`````#\@```^D````G(&\`!")O``A(YR$6
- + M)DDJ2$ZZ```B#20++&P``$ZN_[)*@&<$<`!@;$ZN_WPN`'(T1@&P@692(@).
- + MKO^X2H!G#B(-3J[_LDJ`9P1P`&!&3J[_?"X`<F_2@;"!9BPB`G0`3J[_1DJ`
- + M9QHB"TZN_[A*@&<0(@TD"TZN_[)*@&<$<`!@$DZN_WPN`"`'3KH``"E```!P
- + M_TS?:(1.=0`````#[X,```-`8VAK86)O<G0````````!````$H8```)?1$]3
- + M0F%S90````$````:@P``!$!C;VYV97)T7V]S97)R```````!````C(8```)?
- + M97)R;F\```````$```"0`````````_$````#`````$]05%,`!`!````#\@``
- + M`^D````.(&\`!"`O``@B+P`,GOP`#$C7`0-P`-[\``Q.=2`O``0B+P`(+V\`
- + M#``$44](UP`#<`!03TYU``````/Q`````P````!/4%13``0``````_(```/I
- + M````$"!O``0B;P`(("\`#$CG`10N`"9)*DAF!'``8!P@!R!+(DUR`$J`9PX2
- + M&)(99@13@&;V2(%(P2`!3-\H@$YU``````/Q`````P````!/4%13``0`````
- + M`_(```/I````!2!O``0@+P`(<@!@`A#!4X!D^DYU```#\0````,`````3U!4
- + M4P`$``````/R```#Z0````P@+P`$(B\`"%E/+P<N`"]!``1.N@``2&\`!$AX
- + M"`,O!TZZ``!/[P`,+A]83TYU``````/O@P```T!C:&MA8F]R=`````````$`
- + M```4@P```E]I;V-T;````````0```"(````````#\0````,`````3U!44P`$
- + M``````/R```#Z0````T@+P`$(B\`"%E/+P<N`"`!3KH``"]```1.N@``2&\`
- + M!$AX"`0O!TZZ``!/[P`,+A]83TYU```#[X,```5`7VUA:V5?<')O=&5C=&EO
- + M;@````````$````2@P```T!C:&MA8F]R=`````````$````:@P```E]I;V-T
- + M;````````0```"@````````#\0````,`````3U!44P`$``````/R```#Z0``
- + M`!`@;P`$("\`""(O``R>_``,2-<!`W#_*4```-[\``Q.=2!O``0@+P`((B\`
- + M#)[\``Q(UP$#</\I0```WOP`#$YU```#[X8```)?97)R;F\```````(````X
- + M````&`````````/Q`````P````!/4%13``0`0````_(```/I````#2`O``19
- + M3R\'+@!.N@``2&\`!$AX"``O!TZZ``!/[P`,2H!G!'``8`0@+P`$+A]83TYU
- + M``````/O@P```T!C:&MA8F]R=`````````$````,@P```E]I;V-T;```````
- + M`0```!H````````#\0````,`````3U!44P`$``````/R```#Z0````\@+P`$
- + M2.<&`$ZZ```L`'``3KH``&`&<`!.N@``*@`@!4ZZ``!*@&?N(`9.N@``<`0I
- + M0```</],WP!@3G4```/O@P```T!S:6=S971M87-K``````(````L````"H,`
- + M``1`7V-H96-K7W-I9VYA;',``````0```!*#```$0%]W86ET7W-I9VYA;',`
- + M``````$````:@P``!$!?:&%N9&QE7W-I9VYA;',````!````(H8```)?97)R
- + M;F\```````$````R`````````_$````#`````$]05%,`!`!````#\@```^D`
- + M```H(&\`!$CG(Q8J2'X`0J<L;```<@(D#TZN_QQ/[P`$)D!*@&=2(@UT_DZN
- + M_ZPN`&=&(@<D"TZN_YI*@&<Z(BL`!%[`1`!(@$C`+``B!TZN_Z9R`DZN_Q9*
- + MAF<4(@U.KO^X2H!G!'``8#).N@``8"IP%"E```!@(DZN_WQ.N@``*4```$J'
- + M9P8B!TZN_Z8@"V<()`MR`DZN_Q9P_TS?:,1.=0```^^&```"7T1/4T)A<V4`
- + M```!````$(,```)`7W-E=&5R<@````$```!JA@```E]E<G)N;P```````@``
- + M`(````!R@P``!$!C;VYV97)T7V]S97)R```````!````?`````````/Q````
- + M`P````!/4%13``0`0````_(```/I```!ER!O``0@+P`((F\`#"]O`!``!"\'
- + M+@`I2``>*4``&G(!L(%E'B\O``@O"6$``"103TJ`9PX@;``>0A`@!Y"L`!I@
- + M`G``+A].=2!O``0B;P`(2.<`%"9)*DA@``3X$!5R);`!9@`$RE*-$!5(@$C`
- + M2H!G``#6<B60@6<`!+1R')"!9P``S%.`9P`!)E.`9P`!@%.`9P`!HEF`9P`!
- + M[%.`9P`"!%F`9P`"FEN`9P`##E.`9P`#,%.`9P`#6%.`9P`#>E6`9P`#H%.`
- + M9P`#1E.`9P`$)E.`9P`$0E^`9P``HE.`9P``_%.`9P`!.E.`9P`!7%.`9P`!
- + M=%>`9P``Y%6`9P`!TE.`9P`![E.`9P`"!E.`9P`"3%.`9P`":%6`9P`"=E6`
- + M9P`"JE.`9P`"U%.`9P`"]%>`9P`#9E.`9P`#?E.`9P`#C&```^A3C6```^(@
- + M*P`8:P9R!K"!;P9P`&```_XB*P`8Y8%![`!V+S`8`&$`!,983TJ`9@`#V&``
- + M`^`@*P`8:P9R!K"!;P9P`&```\XB*P`8Y8%![``<+S`8`&$`!)983TJ`9@`#
- + MJ&```[`@*P`0:P9R"["!;P9P`&```YXB*P`0Y8%![`%.+S`8`&$`!&983TJ`
- + M9@`#>&```X`@*P`0:P9R"["!;P9P`&```VXB*P`0Y8%![`#"+S`8`&$`!#98
- + M3TJ`9@`#2&```U!![`%^(DMA`/XZ2H!F``,T8``#/$'L`90B2V$`_B9*@&8`
- + M`R!@``,H0>P!IB)+80#^$DJ`9@`##&```Q1(>``P2'@``B\K``QA``-Z3^\`
- + M#$J`9@`"[F```O9(>``@2'@``B\K``QA``-<3^\`#$J`9@`"T&```MA(>``P
- + M2'@``B\K``AA``,^3^\`#$J`9@`"LF```KH@*P`(<@Q.N@``<`Q*@6<"(`%(
- + M>``P2'@``B\`80`#$$_O``Q*@&8``H1@``*,("L`'%*`2'@`,$AX``,O`&$`
- + M`NY/[P`,2H!F``)B8``":DAX`"!(>``"+RL`"&$``M!/[P`,2H!F``)$8``"
- + M3"`K``AR#$ZZ``!P#$J!9P(@`4AX`"!(>``"+P!A``*B3^\`#$J`9@`"%F``
- + M`AY(>``P2'@``B\K``1A``*$3^\`#$J`9@`!^&```@`@*P`04H!(>``P2'@`
- + M`B\`80`"8D_O``Q*@&8``=9@``'>2&P!L&$``K!83TJ`9@`!PF```<H,JP``
- + M``P`"&T&0>P!LF`$0>P!MB\(80`"BEA/2H!F``&<8``!I$'L`;HB2V$`_(Y*
- + M@&8``8A@``&00>P!P")+80#\>DJ`9@`!=&```7Q(>``P2'@``B\380`!Y$_O
- + M``Q*@&8``5A@``%@+PMA``%D6$]*@&8``49@``%.0>P!S")+80#\.$J`9@`!
- + M,F```3I(;`'680`"#%A/2H!F``$>8``!)B`K`!Q>@)"K`!AR!TZZ``!(>``P
- + M2'@``B\`80`!?D_O``Q*@&8``/)@``#Z("L`&&<$4X!@`G`&(BL`'%Z!DH`@
- + M`7('3KH``$AX`#!(>``"+P!A``%&3^\`#$J`9@``NF```,)(>``P2'@``2\K
- + M`!AA``$H3^\`#$J`9@``G&```*1![`'8(DMA`/N.2H!F``"(8```D"`\```'
- + M;-"K`!1R9$ZZ``!(>``P2'@``B\!80``Z$_O``Q*@&9<8&8@/```!VS0JP`4
- + M2'@`,$AX``0O`&$``,9/[P`,2H!F.F!$("L`*&<,+P!A``$46$]*@&8F<`!@
- + M+DJL`!I7P$0`2(!(P%.L`!I*@&<$<`!@%B!L`!X0U2E(`!Y2C4H59@#[!B`L
- + M`!I,WR@`3G4@;P`$GOP`+$CG`1!#[P`(<`HBV%'(__Q![P`(3KH``"X`1^P`
- + M#6`:(`=R"DZZ``!P,-*`%H%3BR`'<@I.N@``+@!*AV\(0>P``+?(8MI(:P`!
- + M80``@%A/3-\(@-[\`"Q.=2`O``0B+P`(+V\`#``$2.<'!!HO`!<L`2X`2^P`
- + M%V`<(`=R"DZZ``!P,-*`&H%3C2`'<@I.N@``+@!3ADJ';PY![``/N\ABV&`$
- + M&H53C4'L``^[R&,((`93ADJ`;NQ(;0`!80``#EA/3-\@X$YU(&\`!"\-*D@@
- + M+``:9Q@2'2!L`!X0@68$<`%@"E*L`!Y3K``:8.(J7TYU```#^`````\````!
- + M```$O```!"8```02```#T````[P```.F```#H````X(```(X```")````A``
- + M``'X```!R````9@```%H````$@````(```94```&4```!D0```8\```&%```
- + M!@8```7@```%J@``!88```5:```%3@``!4@```4\```%,````#X````V````
- + M'````!@````````#[X,```)?7T-81#,S``````D```7Z```%Z@``!:````60
- + M```$W```!'X```1&```#&@```JR#```"0&UK=&EM90`````!```%@```````
- + M``/Q`````P````!/4%13``0`0````_(```/J````>5-U;@!-;VX`5'5E`%=E
- + M9`!4:'4`1G)I`%-A=```````````!`````@````,````$````!0````84W5N
- + M9&%Y``!-;VYD87D``%1U97-D87D`5V5D;F5S9&%Y`%1H=7)S9&%Y``!&<FED
- + M87D``%-A='5R9&%Y```````X````0````$@```!0````6@```&0```!L2F%N
- + M`$9E8@!-87(`07!R`$UA>0!*=6X`2G5L`$%U9P!397``3V-T`$YO=@!$96,`
- + M````D@```)8```":````G@```*(```"F````J@```*X```"R````M@```+H`
- + M``"^2F%N=6%R>0!&96)R=6%R>0``36%R8V@`07!R:6P`36%Y`$IU;F4``$IU
- + M;'D``$%U9W5S=```4V5P=&5M8F5R`$]C=&]B97(`3F]V96UB97(``$1E8V5M
- + M8F5R``````#R````^@```00```$*```!$````10```$:```!(````2@```$R
- + M```!.@```40E82`E8B`E92`E2#HE33HE4R`E60``)6TO)60O)7D@)4@Z)4TZ
- + M)5,`)6TO)60O)7D```H`4$T``$%-```E2#HE30`E23HE33HE4R`E<``E2#HE
- + M33HE4P``"0`E;2\E9"\E>0````````/L````)@````$```%Z```!=@```7(`
- + M``%N```!:@```68```%B```!7@```5H```%6```!4@```4X```#N````Z@``
- + M`.8```#B````W@```-H```#6````T@```,X```#*````Q@```,(```".````
- + MB@```(8```""````?@```'H```!V````-````#`````L````*````"0````@
- + M````'`````````/R```#ZP````D```/R```#Z0```!8@;P`$("\`"$CG)P(N
- + M`"((+&P``"0\```#[4ZN_^(L`$ZZ``!*AF<<(`8B!TZZ```J`"(&3J[_W$J`
- + M9@1*A6<$(`5@#DZN_WQ.N@``*4```'#_3-]`Y$YU```#[X8```)?1$]30F%S
- + M90````$````2@P```T!C:&MA8F]R=`````````$````B@P``!$!?9&]?=')U
- + M;F-A=&4````````!````+H,```1`8V]N=F5R=%]O<V5R<@```````0```$J&
- + M```"7V5R<FYO```````!````3@````````/Q`````P````!/4%13``0`0```
- + M`_(```/I````U2!O``0B;P`(("\`#"(O`!`O;P`4``0O;P`8``@O;P`<``R>
- + M_``P2.<O-BXO`%@O2``L*@`H`7Q`Y8XO0``D+T$`*"])`#!P0.6(3KH``"I`
- + M+T``1"`%4H!F$BQL``!.KO_*+T``0$*O`%!@)DAO`$!(>`@!+P5.N@``3^\`
- + M#%*`9@1"KP!`<`$O0`!0(`5.N@``(`12@&82+&P``$ZN_\0O0``\0J\`3&!&
- + MNH1F#"]O`$``/$*O`$Q@-DAO`#Q(>`@!+P1.N@``3^\`#%*`9@9P`"]``#PB
- + M+P`\LJ\`0%;`1`!(@$C`+T``3"`$3KH``'#_OH!F$"!L```O:`#@`#A"KP!(
- + M8%!P_KZ`9@PO;P`\`#A"KP!(8#Y(;P`X2'@(`2\'3KH``$_O``Q2@&8&<``O
- + M0``X("\`."(O`#RR@&<*L*\`0&<$<`%@`G``+T``2"`'3KH``$JO`$!G``%D
- + M2J\`/&<``5Q*KP`X9@92AV8``5`@#6<``40F37@`+V\`,``T8```K$J$9@8@
- + M;P`L8`(@521(>@,J2&`:4H40%7(JL`%G#'(BL`%G!G(*L`%F`E*%4HU*%6;B
- + M*F\`1"!-T<8B2]/%3>D``;W(920@!M"&T(4L`"!-3KH``"I`2H!G``#:(`N0
- + MKP!$)DW7P"]-`$0@2Q"\`"!4BQ%\`"(``2I*8"`0%7(BL`%G!G(JL`%F!A;\
- + M`"I@"G(*L`%F!!;\`"L6W4H59MP6_``B4H18KP`T*F\`-$J59@#_3D(3*F\`
- + M7"`-9Q`B#2QL``!T_DZN_ZPH`&`">`!*A&8$(`UF/"IO`$0O+P!@+P0O+P!0
- + M+R\`1"\O`%PO+P!0("\`6"(O`&@@34ZZ``!/[P`8*@!2@&<:($U.N@``(`5@
- + M>"QL``!.KO]\3KH``"E```!*A&<2(@0L;```3J[_IF`&<`PI0```("\`0&<0
- + M2J\`4&<*(@`L;```3J[_W"`O`#QG$$JO`$QG"B(`+&P``$ZN_]P@+P`X9Q!*
- + MKP!(9PHB`"QL``!.KO_<*F\`1"`-9P8@34ZZ``!P_TS?;/3>_``P3G4@;P`$
- + M(F\`""`O``PB+P`0+V\`%``$+V\`&``(+P4J+P`,+P4O+P`,2'C__V$`_-A/
- + M[P`,*A].=0```^^#```"0&UA;&QO8P`````!````3(8```)?1$]30F%S90``
- + M``@```+\```"Y@```M````*R```"G````D@```":````7(,```)?:6]C=&P`
- + M``````,```$D````Q@```'B#```$0%]P<V5U9&]?8VQO<V4```````,```%4
- + M````[@```)"&```!7U]U<P````$```#X@P```D!R96%L;&]C`````0```=B#
- + M```$0%]S=&%R=%]P<F]C97-S``````$```*$@P```D!F<F5E`````````@``
- + M`PX```*4@P``!$!C;VYV97)T7V]S97)R```````!```"I(8```)?97)R;F\`
- + M``````(```*^```"J`````````/Q`````P````!/4%13``0`0````_(```/I
- + M`````G`!3G5P`4YU```#\0````,`````3U!44P`$``````/R```#Z0````X@
- + M+P`$+P<N`$ZZ```@!R!L``!R`$ZZ``!@#"`L``!.N@``3KH``"!L``!.N@``
- + M2H!GZ'``+A].=0```^^#```#0&-H:V%B;W)T`````````0````J&```#7U]O
- + M9&1?=&EM97(``````@```"@````0@P``!$!?=&EM97)?<W1A<G0````````!
- + M````%H8```-?7V]D9%]S:6<````````!````'(,```1`7W=A:71?<VEG;F%L
- + M<P```````0```""#```$0%]H86YD;&5?<VEG;F%L<P````$````D@P``!$!?
- + M=&EM97)?97AP:7)E9``````!````+`````````/Q`````P````!/4%13``0`
- + M0````_(```/I````#R!O``0@+P`(2.<!!"X`*DA.N@``+P=(>`,!+PU.N@``
- + M3^\`#$S?((!.=2!O``0@+P`(2.<!!$S?((!@S````^^#```#0&-H:V%B;W)T
- + M`````````0```!*#```"7V]P96X````````!````'@````````/Q`````P``
- + M``!/4%13``0``````_(```/I````(R`O``0@;P`((B\`#%E/2.<#-"P!+@`J
- + M2$ZZ```@!TZZ```F0$J`9T0(*P`!``-G-@@K``,``V<6(&L`&"](`!0@:P`$
- + M<`!R`B)O`!1.D2!K`!0O2``4(`8@:P`$(DTD;P`43I)@"'`-*4```'#_3-\L
- + MP%A/3G4@+P`$(&\`""(O``Q(YP,$3-\@P&"````#[X,```-`8VAK86)O<G0`
- + M```````!````&H,```-`7V9I;F1?9F0````````!````((8```)?97)R;F\`
- + M``````$```!J`````````_$````#`````$]05%,`!`!````#\@```^D````,
- + M(&\`!%%/+PTJ2$'O``1.N@``2H!J!'#_8`X@#6<&("\`!"J`("\`!"I?4$].
- + M=0`````#[X,```-`7V=E='1I;64````````!````$`````````/Q`````P``
- + M``!/4%13``0``````_(```/I````'2!O``2>_`!`2.<[%BI(3KH``"`-9U)*
- + M%6=.(@U![P`@)`@L;```=D!X`$ZN_'8N`&TV3J[_?"P`4H!.N@``)D!*@&<D
- + MOH9G%"8&4H,B#20+3J[\=DJ`;Q`@`F`.($(B2Q+89OP@"V`"<`!,WVC<WOP`
- + M0$YU```#[X,```-`8VAK86)O<G0````````!````$(8```)?1$]30F%S90``
- + M``$````D@P```D!M86QL;V,``````0```#P````````#\0````,`````3U!4
- + M4P`$`$````/R```#Z0```!,@;P`$(F\`"$CG,Q(F22((+&P``'3^3J[_K"X`
- + M3KH``$J'9QHB"R0'=@!.KOY$+``B`DZN_Z9*AF<$(`-@!DZZ``!P_TS?2,Q.
- + M=0`````#[X8```)?1$]30F%S90````$````2@P```T!C:&MA8F]R=```````
- + M``$````>@P```D!?<V5T97)R`````0```$`````````#\0````,`````3U!4
- + M4P`$`$````/R```#Z0```"0@;P`$GOP`#$CG`10J2$H89OQ3B)'-(`@F3=?`
- + M78M^84ZZ```O+```2&P``$AO`!=.N@``3^\`#$'O``\B2$H99OQ3B9/((`ER
- + M!;"!;PA![P`*T<!@!$'O``\O"$AL``0O"TZZ``!/[P`,%H<@37``3KH``$J`
- + M9@I2!W!ZO@!OZD(5(`U,WRB`WOP`#$YU``````/X`````@````$```!>````
- + M*@````````/O@P```T!C:&MA8F]R=`````````$````BA@```5]?=7,````!
- + M````)H,```-?7W-P<FEN=&8````````"````9````#*#```#0%]?86-C97-S
- + M`````````0```'(````````#\0````,`````3U!44P`$`$````/R```#Z@``
- + M``(E;'@`825S`````_(```/I````!B!O``0O#2I(3KH``"!-<$#IB"I?3OH`
- + M`````^^#```#0&-H:V%B;W)T`````````0````J#```"0&=E=&-W9``````!
- + M````%@````````/Q`````P````!/4%13``0``````_(```/I````#R!O``0@
- + M+P`(2.<A!BX`*DA.N@``(`=.N@``)``B#2QL``!.KO]&2H!G!'``8`9.N@``
- + M</],WV"$3G4``````^^#```#0&-H:V%B;W)T`````````0```!*#```%0%]M
- + M86ME7W!R;W1E8W1I;VX````````!````&(8```)?1$]30F%S90````$````@
- + M@P```D!?<V5T97)R`````0```#`````````#\0````,`````3U!44P`$`$``
- + M``/R```#Z0```!P@+P`$(B\`""]O``P`!%%/2.<'`"HO`!@L`2X`3KH``"`'
- + M3KH``$J`9QHB0"!I`!@O2``0(`8B!2!I``0B;P`03I%@`G#_3-\`X%!/3G4@
- + M+P`$(B\`""]O``P`!$CG!P`J+P`0+T4`$$S?`.!@H``````#[X,```-`8VAK
- + M86)O<G0````````!````'H,```-`7V9I;F1?9F0````````!````)```````
- + M``/Q`````P````!/4%13``0``````_(```/I````'"`O``0@;P`((B\`#%E/
- + M2.<#-"P!+@`J2$ZZ```@!TZZ```F0$J`9R8(*P````-G&"!K`!`O2``4(`8@
- + M:P`$(DTD;P`43I)@"'`-*4```'#_3-\LP%A/3G4@+P`$(&\`""(O``Q(YP,$
- + M3-\@P&">``````/O@P```T!C:&MA8F]R=`````````$````:@P```T!?9FEN
- + M9%]F9`````````$````@A@```E]E<G)N;P```````0```$P````````#\0``
- + M``,`````3U!44P`$`$````/R```#Z0```($@+P`$(&\`"")O``PO;P`0``0O
- + M;P`4``B>_``L2.<_-B9)*D@O0`!`)&\`7"`*9PY*DF8*2JH`!&8$<`%@`G``
- + M<@`O0``T)`UG`B(5=``O00`L)@MG`B03>@!^`2]"`#!@4B@O`"S(ARPO`##,
- + MATZZ``!*A&8$2H9G-B`%3KH``"1`2H!F!G#_8``!;DJ$9P@(*@````-G#$J&
- + M9Q0(*@`!``-F#'`-*4```'#_8``!2E*%WH>ZKP!`;:@D;P!<(`IG$"`2(BH`
- + M!"!L``!.N@``8`@@;```3KH``'H`(`5"KP!0>@!^`2]``"A@.B@O`"S(ARPO
- + M`##,ATJ$9@1*AF<B(`5.N@``(D`@:0`(+T@`/"`$(@8@:0`$(F\`/$Z1@:\`
- + M4%*%WH>ZKP!`;<`H+P!0(`12@&<&2J\`-&<(<`!.N@``8`H@+```@(1.N@``
- + M+T``3'P`>`$N+P`P*B\`*&!P("\`+,"$+T``2"('PH0O00!$2H!F!$J!9U(@
- + M!DZZ```B0"!I``Q(;P!$+T@`/"!I``1#[P!,+&\`/$Z66$\@+P!(9@HB#6<&
- + M(@1&@<.5("\`1&8*(@MG!B($1H'#DTJO`$AF!DJO`$1G`E*%4H;8A+RO`$!M
- + MBB`O`$Q.N@``2H5F%"!L``!.N@``2H!F"$JO`#1G`/[H(`5,WVS\WOP`+$YU
- + M``````/O@P```T!C:&MA8F]R=`````````$```!P@P```T!?9FEN9%]F9```
- + M``````,```%^```!!````'Z&```"7V5R<FYO```````!````J(8```-?7V]D
- + M9%]T:6UE<@`````#```!Y````-0```#*@P``!$!?=&EM97)?<W1A<G0`````
- + M```!````SH,```1`7W1I;65R7V%B;W)T`````````0```-B#```$0%]C:&5C
- + M:U]S:6=N86QS``````$```%`A@```U]?;V1D7W-I9P````````$```%&@P``
- + M!$!?=V%I=%]S:6=N86QS```````!```!3(,```1`7VAA;F1L95]S:6=N86QS
- + M`````0```=R#```$0%]T:6UE<E]E>'!I<F5D``````$```'H`````````_$`
- + M```#`````$]05%,`!`!````#\@```^D````@44](YR,D+B\`($ZZ```L+P`H
- + M(`=.N@``*D!*@&=8("\`)%>`9PQ3@&<.<!8I0```8$1P#,"58$`@%70,S((D
- + M``)"__.$ABJ"<@3"@G0$P(*P@6<>+T$`&"!M`"`O2``4(&T`!$/O`!AP`"1O
- + M`!1.DF`&<`!@`G#_3-\DQ%!/3G4```/O@P```T!C:&MA8F]R=`````````$`
- + M```,@P```T!?9FEN9%]F9`````````$````6A@```E]E<G)N;P```````0``
- + M`"X````````#\0````,`````3U!44P`$`$````/R```#Z0````````/Q````
- + M`P````!/4%13``0``````_(```/J````WF%M:6=A('-P96-I9FEC(&5R<F]R
- + M````````56YK;F]W;B!E<G)O<@!N;W0@;W=N97(`;F\@<W5C:"!F:6QE(&]R
- + M(&1I<F5C=&]R>0!N;R!S=6-H('!R;V-E<W,`:6YT97)R=7!T960@<WES=&5M
- + M(&-A;&P`:2]O(&5R<F]R`&YO('-U8V@@9&5V:6-E(&]R(&%D9')E<W,`87)G
- + M=6UE;G0@;&ES="!T;V\@;&]N9P``97AE8R!F;W)M870@97)R;W(`8F%D(&9I
- + M;&4@;G5M8F5R`&YO(&-H:6QD('!R;V-E<W,``&YO(&UO<F4@<')O8V5S<V5S
- + M`&YO="!E;F]U9V@@;65M;W)Y`'!E<FUI<W-I;VX@9&5N:65D`&)A9"!A9&1R
- + M97-S`&)L;V-K(&1E=FEC92!R97%U:7)E9`!M;W5N="!D979I8V5S(&)U<WD`
- + M`&9I;&4@97AI<W1S`&-R;W-S+61E=FEC92!L:6YK`&YO('-U8V@@9&5V:6-E
- + M``!N;W0@82!D:7)E8W1O<GD`:7,@82!D:7)E8W1O<GD``&EN=F%L:60@87)G
- + M=6UE;G0``&9I;&4@=&%B;&4@;W9E<F9L;W<`=&]O(&UA;GD@;W!E;B!F:6QE
- + M<P!N;W0@82!T>7!E=W)I=&5R``!T97AT(&9I;&4@8G5S>0``9FEL92!T;V\@
- + M8FEG``!N;R!S<&%C92!L969T(&]N(&1E=FEC90!I;&QE9V%L('-E96L``')E
- + M860M;VYL>2!F:6QE('-Y<W1E;0!T;V\@;6%N>2!L:6YK<P``8G)O:V5N('!I
- + M<&4`;6%T:"!A<F=U;65N=`!R97-U;'0@=&]O(&QA<F=E``!)+T\@<W1R96%M
- + M(&5M<'1Y``!F:6QE(&YA;64@=&]O(&QO;F<``&1I<F5C=&]R>2!N;W0@96UP
- + M='D`=&]O(&UA;GD@<V]F="!L:6YK<R`H;&]O<#\I`````!H````H````,@``
- + M`$P```!<````=````'X```"8````L````,(```#2````Y````/8```$(```!
- + M&@```28```$\```!4````5P```%N```!?@```8X```&>```!L````<0```'8
- + M```!Z@```?H```((```"(````BX```)$```"5````F````)N```"@````I(`
- + M``*F```"N@```"8``````^P````H`````0```VX```-J```#9@```V(```->
- + M```#6@```U8```-2```#3@```TH```-&```#0@```SX```,Z```#-@```S(`
- + M``,N```#*@```R8```,B```#'@```QH```,6```#$@```PX```,*```#!@``
- + M`P(```+^```"^@```O8```+R```"[@```NH```+F```"X@```MX```+:```"
- + MU@```!8````````#\@```^D```!%("\`!"E```!*@&<``(9R9Y"!9P``@E6`
- + M9P``@'()D(%G?%.`9WA3@&=T4X!G<%.`9VQ3@&=H4X!G:%.`9VAR49"!9V93
- + M@&=F4X!G9E.`9V93@&=F4X!G9E6`9V93@&=F4X!G9E.`9V95@&=F4X!G9E.`
- + M9V93@&=F4X!G9E.`9V95@&=F4X!G9E.`9V93@&=F8&AP`&!F<`Q@8G`+8%YP
- + M%F!:<`=@5G`(8%)P$&!.<!%@2G`"8$9P`F!"<!9@/G`'8#IP%F`V<"1@,G`6
- + M8"YP%F`J<!Y@)G`28")P)6`><"9@&G`38!9P%F`2<!Q@#G`-8`IP#6`&<`U@
- + M`G#_3G4O#BQL``!.KO]\80#^^BE````L7TYU```#^`````$````!```!#@``
- + M``````/OA@```E]?3U-%4E(``````0````:&```"7T1/4T)A<V4````!```!
- + M`@````````/Q`````P````!/4%13``0`0````_(```/K`````0```_(```/I
- + M````!4ZZ``!.N@``3KH``'(&3OH````````#[X,```-`8VAK86)O<G0`````
- + M```!`````H,```-`7V-L;W-E7V%L;``````!````!H,```)`9V5T<&ED````
- + M``$````*@P```D!K:6QL`````````0```!`````````#\0````,`````3U!4
- + M4P`$``````/R```#Z0```%D@;P`$("\`"%E/2.<!%BX`+T@`$"!O`!`J4&!D
- + M<`VP+0`(9EH@+0"L9P;E@"!`8`*1R"9(("T`G+"'9S0@+0"@L(=G+"`M`."P
- + MAV<D(`MG+B`K`!RPAV<8("L`(+"'9Q`@*P`XL(=G""`K`#"PAV8.(DUP8.^(
- + M+'@`!$ZN_KPJ54J59IA,WVB`6$].=2`O``0B+P`(2.<!`BX`(`%3@&<,4X!G
- + M"%.`9P1=@&8L+'@`!$ZN_WP@;```T/P!EB`'80#_2"!L``#0_`&D(`=A`/\Z
- + M3J[_=G``8`AP%BE```!P_TS?0(!.=2`O``0B+P`(2.<&!"P!*@!.N@``2H5J
- + M`D2%NJP``&8.2H9G!B`&3KH``'``8$@@!4ZZ```J0$J`9P9*K0`49PIP`RE`
- + M``!P_V`L(`9G*"(M`!#!06$`_U@B`'`)O(!F%'(!*T$`%"M``!AP%$ZZ``!P
- + M`&`"(`%,WR!@3G4``````^^&```"7U-Y<T)A<V4````"````Q````+:&```"
- + M7V5R<FYO```````"```!*@```-R#```#0&-H:V%B;W)T`````````0```/B&
- + M```#7U]O=7)?<&ED`````````0```0*#```$0%]S:6=?9&ES<&%T8V@`````
- + M``(```%4```!#H,```-`7V9I;F1?<&ED```````!```!&`````````/Q````
- + M`P````!/4%13``0`0````_(```/I````0R!O``1(YP`&*D@B32QX``1.KO\$
- + M($U,WV``3OH``"`O``1(YP$$+@`J;``(8`X@+0`,L(=F!"`-8`@J54J59NYP
- + M`$S?((!.=4CG(`)![``(3KH``"`L```B+```)`"S@@*"`'___RE"``12@BE"
- + M```O`2\`2&P``$AL`!1.N@``3^\`$"QX``1.KOUF*4``.&<00>P`%'``3KH`
- + M`"E``#1F"DAL``Y.N@``6$],WT`$3G5(YP`&("P`.&<*($`L>``$3J[]8$JL
- + M`#1G."QX``1.KO]\8`PB37`<+'@`!$ZN_RX@;``T+'@`!$ZN_HPJ0$J`9N(@
- + M;``T3KH``"QX``1.KO]V3-]@`$YU``````/X`````@````$```"D````=@``
- + M``P````"````]@```.0```#(````N````)X```"4````C@```'H```!N````
- + M:````$X````J`````````^^#```"0&9R964````````!````'(,```)`3F5W
- + M3&ES=`````$```!2A@```5]?=7,````!````5H8```1?7W-T87)T=7!?=&EM
- + M90```````0```%J#```#7U]S<')I;G1F`````````0```'Z#```#0$-R96%T
- + M95!O<G0``````0```)J#```"7U]F86EL```````!````J(,```-`1&5L971E
- + M4&]R=``````!````^@````````/Q`````P````!/4%13``0`0````_(```/J
- + M````!F1O;W(N)6QX+B5L>```3F\@;65M;W)Y`````_(```/K````#P```_(`
- + M``/I````+R!O``0@+P`((B\`#")O`!`O;P`4``0O;P`8``A93TCG#S8H+P`L
- + M*B\`*"P!+@`J22](`"`L>``$3J[]9B9`2H!G,"!+(`1.KOUR)$!*@&<B(`UG
- + M""5-`"@E10`D(&\`("`'(DHB!DZN_D1*`&8$(`I@%B`*9P8@2DZN_6P@"V<&
- + M($M.N@``<`!,WVSP6$].=2!O``1(YP`&*D@@#6<8(DTL>``$3J[^/B!M``Y.
- + MN@``($U.KOUL3-]@`$YU```#[X,```-`1&5L971E4&]R=``````"````K@``
- + M`(0````````#\0````,`````3U!44P`$``````/R```#Z0```!0@;P`$("\`
- + M"$CG(08N`"I(3KH``"(-+&P``$ZN_XA*@&<B(@!.KO^F(`=.N@``(`=.N@``
- + M)``B#4ZN_T9*@&<$<`!@!DZZ``!P_TS?8(1.=0```^^#```#0&-H:V%B;W)T
- + M`````````0```!*&```"7T1/4T)A<V4````!````&(,```5`7VUA:V5?<')O
- + M=&5C=&EO;@````````(````R````+(,```)`7W-E=&5R<@````$```!&````
- + M`````_$````#`````$]05%,`!`!````#\@```^D```!U(&\`!")O``@O;P`,
- + M``0@+P`0+V\`%``(2.<'-"X`)&\`("9)*D@L*P!T)*\`'$*J`!(U?``!``Y"
- + M:@`0)7P```(``#(U?``"``PE:P"``#8@*P!\9A`B*P`$;PHE?```"```%F`$
- + M)4``%B53``1!ZP"$3KH``"5``"(E0``:)4``*B`K``1:@&<^58!G4%F`9T!5
- + M@&9F(`UG'$AX`/](;```+PU.N@``3^\`#"H`;P8E10`68`@E?````0``%B5\
- + M``"@```(8$HE?```$```"&!`)7P``$````A\`&`T2I-F$$HK``AF"B5\```@
- + M```(8"`E?```@```"&`6("L`!&\&<$#AB&`&(#P``(``)4``"$J'9P)\`"`&
- + M3KH``(&J``A,WRS@3G4@;P`$(F\`"%E/2.<C%BI(?@`O20`80J<L;```<@(D
- + M#TZN_QQ/[P`$)D!*@&=0(@UT_DZN_ZPN`&=$(@<D"TZN_YI*@&<X(@=.KO\N
- + M2H!7QD0&2(9(QDJ`9P8B`$ZN_Z8@!^6`+R\`&"!`+R@`#")"(`8@36$`_GI0
- + M3WP`8`Y\_TZN_WQ.N@``*4```$J'9P8B!TZN_Z8@"V<()`MR`DZN_Q8@!DS?
- + M:,183TYU```#^`````$````!````H`````````/O@P```T!?86UI9V$R9VUT
- + M``````$```!T@P```U]R96%D;&EN:P````````$```"F@P```T!?;6%K95]M
- + M;V1E``````$```$<A@```E]$3U-"87-E`````0```4*#```$0&-O;G9E<G1?
- + M;W-E<G(```````$```&NA@```E]E<G)N;P```````0```;(````````#\0``
- + M``,`````3U!44P`$`$````/R```#ZP```$````/R```#^P``")L11`!?<V5T
- + M:FUP`'1E>'0`0%]L;VYG:FUP`$!?<V5T:FUP`%]?;&]N9VIM<`!?7W-E=&IM
- + M<`!S<')I;G1F`%],5D]287=$;T9M=`!?06)S17AE8T)A<V4`7U]S<')I;G1F
- + M`'1M<&YA;2YC`%]M:W1E;7``0'1M<&YA;0!?=&UP;F%M`%]?34521T5$`'!O
- + M<&5N+F,`7W=A:71P:60`0&9C;&]S90!`9G)E90!`7W-T87)T7W!R;V-E<W,`
- + M0%]S971E<G(`7V5R<FYO`%]$3U-"87-E`$!F;W!E;@!?7V9I9F]?8F%S90!?
- + M7V9I9F]?;V9F<V5T`$!M86QL;V,`0'!C;&]S90!?<&-L;W-E`$!P;W!E;@!?
- + M<&]P96X`<W1A<G0N8P!`8V]N=F5R=%]O<V5R<@!?7W!R;V-E<W-E<P!?7W-T
- + M86-K7W-I>F4`7U]N97AT7W!I9`!?7V1O;W)?;F%M90!?7W-T87)T=7!?<&]R
- + M=`!?3&EN:V5R1$(`7U]S=&%R=%]P<F]C97-S`%]?8VAI;&1?9&]O<E]N86UE
- + M`%]?8VAI;&1?8V]M;6%N9%]L96X`7U]C:&EL9%]C;VUM86YD`%]?8VAI;&1?
- + M97AI=`!?7V-H:6QD7V5N=')Y`&=E='!I9"YC`%]?;W5R7W!I9`!`8VAK86)O
- + M<G0`0&=E='!I9`!?9V5T<&ED`'-I9VYA;"YC`%]?<VEG7VAA;F1L97)S`$!S
- + M:6=N86P`7W-I9VYA;`!`<VEG=F5C`%]S:6=V96,`<VEG<V5T;6%S:RYC`$!?
- + M<VEG7V1I<W!A=&-H`%]?<VEG7W!E;F1I;F<`7U]S:6=?;6%S:P!`<VEG8FQO
- + M8VL`7W-I9V)L;V-K`$!S:6=S971M87-K`%]S:6=S971M87-K`'-T870N8P!?
- + M<F5A9&QI;FL`0%]F:6)S=&%T`$!?;&9I8G-T870`7U]T96UP7V9N86UE`%]L
- + M87-T7V5N=')Y`$!?9V5T7V-D`%]L87-T7V1I<@!`;'-T870`7VQS=&%T`$!S
- + M=&%T`%]S=&%T`&1I<BYC`$!S965K9&ER`%]S965K9&ER`$!T96QL9&ER`%]T
- + M96QL9&ER`$!R96%D9&ER`%]R96%D9&ER`$!C;&]S961I<@!?8VQO<V5D:7(`
- + M0&]P96YD:7(`7V]P96YD:7(`9&ER7V1A=&$N8P!?7V=E=%]C9`!A8V-E<W,N
- + M8P!`86-C97-S`%]A8V-E<W,`0%]?86-C97-S`%]?7V%C8V5S<P!F<W1A="YC
- + M`%]I;V-T;`!`9G-T870`7V9S=&%T`'-Y;6QI;FLN8P!`<WEM;&EN:P!?<WEM
- + M;&EN:P!M97-S86=E+F,`0&5X:70`7U]0<F]G<F%M3F%M90!?7U="96YC:$US
- + M9P!?7W5S`%]?9F%I;`!?7VUE<W-A9V4`86QL;V-D;W,N8P!?06QL;V-$;W-/
- + M8FIE8W1486=S`'-E=&IM<"YC`$!L;VYG:FUP`%]L;VYG:FUP`$!S971J;7``
- + M9V5T:&]S=&YA;64N8P!?<W1R;F-P>0!?7W-Y<W1E;5]N86UE`$!G971H;W-T
- + M;F%M90!?9V5T:&]S=&YA;64`<&5R<F]R+F,`7U]/4T524@!?<WES7V5R<FQI
- + M<W0`7W-Y<U]N97)R`$!W<FET90!`<&5R<F]R`%]P97)R;W(`<VEG;&ES="YC
- + M`%]S>7-?<VEG;&ES=`!W86ET-"YC`$!?:&%N9&QE7W-I9VYA;',`0%]W86ET
- + M7W-I9VYA;',`0%]F<F5E7V5N=')Y`$!W86ET<&ED`$!W86ET`%]W86ET`$!W
- + M86ET,P!?=V%I=#,`0'=A:70T`%]W86ET-`!P<V5U9&]?8RYC`$!?9G)E95]F
- + M9`!`7V9I;F1?9F0`0%]P<V5U9&]?8VQO<V4`7U]P<V5U9&]?8VQO<V4`<FEN
- + M9&5X+F,`0'-T<G)C:'(`0')I;F1E>`!?<FEN9&5X`&EN9&5X+F,`0'-T<F-H
- + M<@!`:6YD97@`7VEN9&5X`'1I;65R<RYC`$!?9&5V:6-E7V-L;W-E`$!?9&5V
- + M:6-E7V]P96X`0%]T:6UE<E]E>'!I<F5D`%]?=&EM97)?97AP:7)E9`!`7W1I
- + M;65R7W-T87)T`%]?=&EM97)?<W1A<G0`0%]T:6UE<E]S:6<`7U]T:6UE<E]S
- + M:6<`0%]T:6UE<E]A8F]R=`!?7W1I;65R7V%B;W)T`$!?9G)E95]T:6UE<@!?
- + M7V9R965?=&EM97(`0%]A;&QO8U]T:6UE<@!?7V%L;&]C7W1I;65R`&9I9F]F
- + M9"YC`%]?<W1A<G1U<%]T:6UE`$!?8VQE86YU<%]F:69O`%]?8VQE86YU<%]F
- + M:69O`$!?:6YI=%]F:69O`%]?:6YI=%]F:69O`%]?9FEF;U]S:6<`7U]F:69O
- + M7V]K`%]?1FEF;T)A<V4`8VQO<V4N8P!`8VQO<V4`7V-L;W-E`$!?7V-L;W-E
- + M`%]?7V-L;W-E`&9I;&5S+F,`0%]L87-T7V9D`%]?;&%S=%]F9`!?7V9I;F1?
- + M9F0`7U]F<F5E7V9D`$!?86QL;V-?9F0`7U]A;&QO8U]F9`!U=&EM92YC`$!?
- + M9VUT,F%M:6=A`$!T:6UE`$!U=&EM90!?=71I;64`8F-O<'DN8P!`;65M;6]V
- + M90!`8F-O<'D`7V)C;W!Y`&%M:6=A=&EM92YC`%]D87EL:6=H=`!?='IN86UE
- + M`%]?0UA$,S,`0&QO8V%L=&EM90!`7V=E='1I;64`0&9T:6UE`%]F=&EM90!`
- + M9V5T=&EM96]F9&%Y`%]G971T:6UE;V9D87D`=&EM96-O;G9E<G0N8P!?5&EM
- + M97)"87-E`$!?86UI9V$R9VUT`%]?86UI9V$R9VUT`%]?9VUT,F%M:6=A`%]?
- + M9V5T=&EM90!P=V0N8P!`9V5T;&]G:6X`7V=E=&QO9VEN`$!G971P=VYA;0!?
- + M9V5T<'=N86T`0&=E='!W=6ED`%]G971P=W5I9`!?7V%M:6=A7W5S97(`<F5A
- + M9&QI;FLN8P!?<W1R;&5N`$!R96%D;&EN:P!A;&QO8V$N8P!?;6%L;&]C`%]F
- + M<F5E`%]A;&QO8V$`=6YL:6YK+F,`0'5N;&EN:P!?=6YL:6YK`'!I<&4N8P!`
- + M<W1R8V%T`$!.97=,:7-T`$!S;V-K971P86ER`%]S;V-K971P86ER`$!P:7!E
- + M`%]P:7!E`&=R<"YC`$!G971G<FYA;0!?9V5T9W)N86T`0&=E=&=R9VED`%]G
- + M971G<F=I9`!S:6=N86QS+F,`7U]&4$524@!`7U]E>&ET`$!?9FEN9%]P:60`
- + M0%]C;&5A;G5P7W!R;V-E<W-E<P!?7V-H:6QD<F5N7V5X:70`0%]I;FET7W!R
- + M;V-E<W-E<P!`7V-L96%N=7!?<VEG;F%L<P!?7V-L96%N=7!?<VEG;F%L<P!`
- + M7VEN:71?<VEG;F%L<P!?7VEN:71?<VEG;F%L<P!`0VAK7T%B;W)T`%]#:&M?
- + M06)O<G0`7V-H:V%B;W)T`$!#6$9%4E(`7T-81D524@!?7VAA;F1L95]S:6=N
- + M86QS`%]?=V%I=%]S:6=N86QS`$!?8VAE8VM?<VEG;F%L<P!?7V-H96-K7W-I
- + M9VYA;',`7U]S:6=?9&ES<&%T8V@`0&%L87)M`%]A;&%R;0!?;6%I;BYC`$!M
- + M86EN`$!?7V=E=&5N=@!`='%S;W)T`$!S=')N8W!Y`%]?7V-T>7!E`$!?:6YI
- + M=%]U;FEX:6\`7U]?:6]B`%]?6$-%6$E4`%]3>7-"87-E`$!R96%L;&]C`%]?
- + M7VUA:6X`0&UA:V5?96YV:7)O;@!?;6%K95]E;G9I<F]N`%]E;G9I<F]N`%]?
- + M;V1D7W-I9P!?7V]D9%]T:6UE<@!U;6%S:RYC`$!U;6%S:P!?=6UA<VL`<')O
- + M=&5C=&EO;BYC`$!?;6%K95]M;V1E`%]?;6%K95]M;V1E`$!?;6%K95]P<F]T
- + M96-T:6]N`%]?;6%K95]P<F]T96-T:6]N`%]U<V5?86UI9V%?9FQA9W,`9VED
- + M+F,`0&=E=&5G:60`7V=E=&5G:60`0&=E=&=I9`!?9V5T9VED`%]E>&ET+F,`
- + M0%]E>&ET`%]?97AI=`!?7U]E>&ET`$!?8VQO<V5?86QL`%]?8VQO<V5?86QL
- + M`&EO8W1L+F,`0&EO8W1L`&]P96XN8P!`7V%L;&]C7V%M:6=A9F0`0'-T<FEC
- + M;7``7V]P96X`7U]?;W!E;@!C=&EM92YC`%]S<')I;G1F`$!R96%D`$!?='IS
- + M970`7U]T>G-E=`!`;6MT:6UE`%]M:W1I;64`0&-T:6UE`%]C=&EM90!`87-C
- + M=&EM90!?87-C=&EM90!`9VUT:6UE`%]G;71I;64`7VQO8V%L=&EM90!`='IS
- + M971W86QL`%]T>G-E='=A;&P`0'1Z<V5T`%]T>G-E=`!?=&EM97IO;F4`86UI
- + M9V%D;W,N8P!?7VEN:71?=6YI>&EO`%]?86QL;V-?86UI9V%F9`!`7V1O7W1R
- + M=6YC871E`%]?9&]?=')U;F-A=&4`<F5N86UE+F,`0')E;F%M90!?<F5N86UE
- + M`&-H;W=N+F,`0&9C:&]W;@!?9F-H;W=N`$!C:&]W;@!?8VAO=VX`8F-M<"YC
- + M`$!B8VUP`%]B8VUP`&)Z97)O+F,`0&)Z97)O`%]B>F5R;P!F=')U;F-A=&4N
- + M8P!`9G1R=6YC871E`%]F=')U;F-A=&4`9F-H;6]D+F,`0&9C:&UO9`!?9F-H
- + M;6]D`&UK9FEF;RYC`$!M:VYO9`!?;6MN;V0`0&UK9FEF;P!?;6MF:69O`&ES
- + M871T>2YC`$!I<V%T='D`7VES871T>0!S:6=P875S92YC`$!S:6=P875S90!?
- + M<VEG<&%U<V4`<FUD:7(N8P!`<FUD:7(`7W)M9&ER`'-T<F9T:6UE+F,`0'-T
- + M<F9T:6UE`%]S=')F=&EM90!T<G5N8V%T92YC`$!T<G5N8V%T90!?=')U;F-A
- + M=&4`97AE8RYC`$!E>&5C`%]E>&5C`$!E97AE8P!?965X96,`=6ED+F,`0&=E
- + M=&5U:60`7V=E=&5U:60`0&=E='5I9`!?9V5T=6ED`'-L965P+F,`0'-L965P
- + M`%]S;&5E<`!C<F5A="YC`$!C<F5A=`!?8W)E870`0%]?8W)E870`7U]?8W)E
- + M870`=W)I=&4N8P!?=W)I=&4`0%]?=W)I=&4`7U]?=W)I=&4`=&EM92YC`%]T
- + M:6UE`&=E=&5N=BYC`%]?7V=E=&5N=@!L:6YK+F,`0&QI;FL`7VQI;FL`;6MT
- + M96UP+F,`0&UK=&5M<`!G971W9"YC`$!G971C=V0`0&=E='=D`%]G971W9`!C
- + M:&UO9"YC`$!C:&UO9`!?8VAM;V0`;'-E96LN8P!`;'-E96L`7VQS965K`$!?
- + M7VQS965K`%]?7VQS965K`')E860N8P!?<F5A9`!`7U]R96%D`%]?7W)E860`
- + M<V5L96-T+F,`0'-E;&5C=`!?<V5L96-T`&9C;G1L+F,`7V9C;G1L`&5R<F]R
- + M7VUS9RYC`&5R<F]R+F,`7U]S971E<G(`7V-O;G9E<G1?;W-E<G(`86)O<G0N
- + M8P!`:VEL;`!`86)O<G0`7V%B;W)T`&MI;&PN8P!?:VEL;`!P<F]C97-S97,N
- + M8P!`1&5L971E4&]R=`!`0W)E871E4&]R=`!?7V-L96%N=7!?<')O8V5S<V5S
- + M`%]?:6YI=%]P<F]C97-S97,`7U]F:6YD7W!I9`!?7V9R965?96YT<GD`9&5V
- + M:6-E<RYC`%]?9&5V:6-E7V-L;W-E`%]?9&5V:6-E7V]P96X`;6MD:7(N8P!`
- + M;6MD:7(`7VUK9&ER`&9I8G-T870M:&%R9"YC`%]?9FEB<W1A=`!?7VQF:6)S
- + M=&%T`````0````$`"0`)`^D````$``X`%@`!`!@`!``!`"$`#@`!`"L````!
- + M`#0`#``!``D`#`/I``(`/`!)``$`5@````$`8``I``,`"0`*`^D``0!H``(`
- + M<0`$``$`>0````$`@0`$`^H``````($`"0/K``````"*`%0``P`)`&\#Z0`,
- + M`)$`F@"B`*@`N`#"`,D`T0!5`-D`Y0#R``0`^P%>``$!`P%:``$!"P`(``$!
- + M$@````$`@0`%`^H``````($``0/K``````$9`2T``P`)`,4#Z0`+`*(`P@$@
- + M`3`!/`%)`50`\@%@`,D!;P`"`*D`Y@`!`7D`M@`!`($`!@/J``````"!``H#
- + MZP````4!B0`D``$!FP`@``$!KP`<``$!OP`8``$!S`````$!V@)M``$`"0`#
- + M`^D``@'C`>P``@'W`````0'_`````0('`H8``0`)`",#Z0`#`,("$`'L``0"
- + M'P!B``$")P!:``$"+P`,``$"-P````$"/P+&``$`"0`5`^D`!`)+`EL![`)I
- + M``0"=`!&``$"?@!"``$"B``$``$"E`````$"H`,"``(`"0":`^D`"0*F`K`!
- + M[`*Z`,D"Q@+3`MX"Z``$`O(!U@`!`OD!S@`!`P`!G@`!`P8!E@`!`($`00/K
- + M``````,,`_4``0`)`-`#Z0`)`M,"W@'L`,(!(`#)`/("Z`"B``H#$@,@``$#
- + M&P,8``$#)`,(``$#+0,$``$#-@*0``$#/P*,``$#2`).``$#4@)*``$#7`%>
- + M``$#90%:``$#;@48``(`"0`(`^D``0#)``("WP````$#>0````$`@0`"`^L`
- + M```"`M,`!``!`N@````!`X(%,@`!``D`&P/I``,`P@*P`>P`!`.+`&```0.3
- + M`%@``0.;``@``0.E`````0.O!6@``0`)`$$#Z0`&`,(!(`*Z`,D#M@'L``(#
- + MO@`(``$#Q0````$#S`77``$`"0`.`^D``P"X`,D![``"`]8`"``!`]\````!
- + M`^@%_P`"``D`/@/I``4#\0/X`,D$!@02``($%P#B``$$'@#4``$`@0`/`^H`
- + M````!"@&A@`!``D`!P/I``$`R0`!!#,````!!$<&G``!``D`#P/I``0`#0*'
- + M`!<":0`$!%``'@`!!%D`%@`!!&(`!``!``$````!!&H&S``!``D`!P/I``($
- + M=P2!``($CP`(``$$G`````$$J0;I``(`"0`I`^D`!@#)!+($N@3'`,($T``"
- + M!-@`!``!!.`````!`($`"`/J``````3H!U(``@`)```#Z0``````@0#&`^H`
- + M```!!/("F``!!/\(1P`!``D`.@/I``4%!@47`,(%)@$P``@%-`#```$`D@"T
- + M``$%/0"F``$%0P"B``$%20"2``$%4`"&``$%5P`0``$%7@````$%90BJ``$`
- + M"0`2`^D``P5O!7D![``"!80`!``!!9,````!!:((V``!``D``P/I``$%J@`"
- + M!;0`"``!!;P````!!<0(Z@`!``D``P/I``$%RP`"!=0`"``!!=L````!!>((
- + M_``"``D`30/I``(%Z@7Y``P&"`$$``$&&`$```$&*`#(``$&-@"\``$&1`"H
- + M``$&4`"D``$&7`!^``$&:@!Z``$&>`!2``$&A0!.``$&D@````$&H`````$`
- + M@0`$`^H`````!JX);0`#``D`'@/I``($$@:W``0&Q@!4``$&U0!4``$&Y```
- + M``$&\`````$`@0`%`^H````!!OP````!`($`!`/K````!`<'``P``0#E``@`
- + M`0#9``0``0<1`````0<<";H``0`)`!8#Z0`#!6\%>0'L``0')`!0``$'*P!,
- + M``$',@`$``$'.P````$'1`GL``(`"0!B`^D``P"B`,(`\@`(!TP!@``!!U8!
- + M@``!!7H!3``!!V`!2``!!7`!+``!!VH!*``!!W0`,``!!W\````!`($``@/K
- + M``````>*"H```0`)`!H#Z0`%`+@`R0>1!YT![``"!Z0`"``!!ZL````!![(*
- + MOP`!``D`!P/I``$'N0`"!\,`#``!!\H````!!]$*U0`"``D`4@/I``8'W0?G
- + M!^X']@@!`>P`!`@,`0X``0@3`0H``0@:``@``0@H`````0"!``P#Z@`````(
- + M-@MU``$`"0`P`^D``@?N"$0`!@A/`'@``0A;`'0``0>2`"@``0AG`"```0@"
- + M``0``0AS`````0A]"[X``@`)``L#Z0````8(@P`D``$(C0`D``$(EP`6``$(
- + MH0`2``$(JP`$``$(M0````$`@0`)`^H````!"+\`!``!",P+Z@`!``D`*@/I
- + M``8`P@$@"-8`N`#)`>P``@C?``P``0*G`````0CI#$```P`)`"P#Z0`""/$(
- + M^0`!"0``+@`!`($`!P/J``````"!``$#ZP`````)"`R=``$`"0`V`^D`!@$@
- + M`>P#M@=+`,(`R0`""1$`9``!"1D`8``!"2$-`P`"``D"&@/I`!4%>0#9`.4'
- + M!P'L!6\'<P#R`+@`50)+"2<%!@47`,D`P@"B!Q$)+P02!OP`!`DY!]0``0E%
- + M!\(``0E1!S8``0E7!S(``0"!`!4#Z@`````)70_\``(`"0`)`^D````$"6,`
- + M%@`!"6T`$@`!"7<`!``!"8$````!`($`"0/J``````F+$"<``P`)`*D#Z0`-
- + M"94$'0F<":0)KPG$"=,&=P9#!!8&D08G!@<`%`GE`IH``0GW`IH``0H)`EP`
- + M`0H8`EP``0HG`EH``0HR`EH``0'M`E(``0H]`E(``0I'`D0``0I/`D```04'
- + M`>H``0I7`>8``048`=```0IH`<P``0IW`;8``0J'`;(``0),`0P``0J7`0@`
- + M`0JF`"@``0JM`"0``0"!``H#Z@``````@0!$`^L````#`EL!"``!`FD!!``!
- + M`A``!``!"K0170`#``D"'0/I`!4#\0J["+\*P0K+"M,*W00&"N4`R0H(!N,&
- + M0P:1"O0*^@L$`*(+#`#R!!8``PL6`WH``0L>`'@``0LL`'@``0"!`"P#Z@``
- + M````@0`(`^L````(!($`'``!"SH`&``!"$0`%``!`3P`$``!!K<`#``!"T,`
- + M"``!"TT`!``!!!(````!"UD4>P`!``D`!`/I`````@MA``0``0MH`````0MO
- + M%(<``@`)`#X#Z0````0+?`!^``$+B`!Z``$+E``$``$+I@````$`@0`!`^L`
- + M```!"[@````!"\D4U@`!``D``@/I````!`O/``0``0O8``0``0OA`````0OI
- + M`````0OQ%.```0`)`!4#Z0`'"OH&=PM-">0&Q0<J!TL`!@OY`$P``0P``$@`
- + M`0F=`"8``0P'`"(``0P/`````0P;`````0PG%2H``0`)`!,#Z0`"!7D![``"
- + M#"\`#``!`[<````!##854P`"``D`F`/I``H,/`"X`,(+DP2R`2``R0Q,`>P$
- + M$@`"#%8"2``!#%P````!`($``@/J``````QD%D0``P`)!6@#Z0`*#&L*P0K3
- + M!^X*W0<C#'0,50DG!<L`$`Q[%9(``0R#%9(``0R+%80``0R3%8```0R;$/0`
- + M`0RB$/```0RI$)0``0RR$)```0R[#I@``0S##I0``0?W#C```0S+#BP``0S6
- + M#38``0SA#38``0SL#,8``0SS#,8``0"!`$@#Z@````,'W0`8``$,^@`4``$'
- + MYP`,``$`@03V`^L`````#00<K``"``D!G`/I``L$%@=S`/(![`"B`,(!(`4&
- + M"G8`N`#)``8*Y@7L``$-#P7,``$,/056``$-'05(``$-+0+8``$-.P+0``$`
- + M@0`(`^H`````#4D>O``!``D`)P/I``0`P@$@`,D![``"#5(`"``!#5H````!
- + M#6(?!``!``D`#@/I````!`UJ`"H``0UR`!P``0UZ``P``0V!`````0V('QH`
- + M`0`)`!`#Z0````(-CP`,``$-E0````$-FQ\R``$`"0`%`^D````"#:,`"``!
- + M#:H````!#;$?/P`!``D`#`/I``(#M@'L``(-O0`(``$-R`````$-TQ]@``$`
- + M"0`-`^D``P.V`>P+DP`"#=P`"``!#>0````!#>P?B@`!``D`$`/I``$`P@`$
- + M#?4`+``!#?P`(``!#@,`#``!#@L````!#A,?J@`!``D`#0/I``(#M@'L``(.
- + M'``$``$.)`````$.+!_,``$`"0`/`^D`!0#"!08%%PIV`H<``@XW``0``0Y!
- + M`````0Y+(`8``0`)`"@#Z0`$`2``P@"X`,D``@Y3``0``0Y:`````0YA($\`
- + M`P`)`9<#Z0`"#(H'[@`"#FP`$@`!#G8````!`($`>0/J``````"!``D#ZP``
- + M```.@"+2``$`"0`6`^D`!0#"`2`-+`'L`,D``@Z+``@``0Z5`````0Z?(Q``
- + M`0`)`-4#Z0`*`,(!(`"B`*@+#`02!8,#M@#)`/(`!`ZF`S@``0ZL`QP``0ZR
- + M`"(``0ZY`````0[`)#,``0`)``(#Z0````0.Q@`$``$.SP`$``$.V`````$.
- + MX`````$.Z"0]``$`"0`.`^D`!P8'!08%%PM#!B<+30'L``(.\``$``$.]P``
- + M``$._B2$``$`"0`/`^D``@Q5`>P`!`\&`#(``0\-`"H``0\4``@``0\=````
- + M`0\F)*@``0`)`",#Z0`#`,(%>0'L``0$T0""``$/+@!V``$/-0`,``$//@``
- + M``$/1R3F``$`"0`,`^D``0@!``('G@`$``$/3@````$/5"4"``$`"0`=`^D`
- + M`P#R`,D![``""L(`!``!#UT````!#V<E.0`!``D`$P/I``,`N`'L`,D``@]N
- + M``@``0]T`````0]Z)68``@`)`"0#Z0`$`YH`5002`>P``@^#``0``0!I````
- + M`0"!``(#Z@`````/BR6V``$`"0`&`^D``@^2`>P``@^;``0``0^B`````0^I
- + M)=$``0`)``\#Z0`$`+@`R0N3`>P``@^Q``@``0^X`````0^_)@(``0`)`!P#
- + MZ0`"!7D![``$#\<`7``!#\X`3@`!#]4`#@`!#]X````!#^<F-``!``D`'`/I
- + M``,`P@5Y`>P`!`QU`&0``0_N`%@``0_T``P``0_\`````1`$)FL``0`)`($#
- + MZ0`+!@<%!@47"T,*=@9;!B<+30#"!7D![``"$`T`&``!$!4````!$!TG00`!
- + M``D`(`/I``,`P@5Y`>P``1`E`````1`L)WP``@`)```#Z0``````@0#>`^H`
- + M```"!,<#<@`!!+H"U@`!$#@HD0`"``D`10/I``(`R02R``0`N0#^``$00`#^
- + M``$!(0`$``$020````$`@0`!`^L````!`,(````!$%@H\@`!``D`!0/I``00
- + M7P'V#`X![``"$&8````!$&T````!$'0I%P`!``D`60/I``8)I`)+`>,![`#"
- + M"P0``A!@`.X``1![`.8``1"!*:```P`)`$,#Z0`($(P$%A"8`%4&MP02"2\`
- + MH@`(";``L@`!$*4`L@`!"=0`2``!$+D`2``!":4`(@`!$,H`'@`!!2<`!``!
- + M$-4````!`($`!@/J``````"!``\#ZP````8!8``X``$)Q``T``$!5``4``$!
- + M,``(``$!XP`$``$!20````$0XBHY``$`"0`O`^D``1",``0%ZP"4``$0[`"0
- + M``$%^@`<``$0^P````$1"2IY``$`"0`4`^D`!`"X"Y,`R0'L``(1$0`(``$1
- + M&`````$1'RJP``(`"0!U`^D`!@#"`2``R0M[`J8(3@`$`K$!,``!$2X!*``!
- + >`KL`&``!$3@````!`($`0`/K`````0+&`````0``
- + `
- + end
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/unix.lib.uue emacs-18.59/amiga/unix/src/unix.lib.uue
- *** /src/baseline/emacs-18.59/amiga/unix/src/unix.lib.uue Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/unix.lib.uue Tue Jul 12 10:32:02 1994
- ***************
- *** 0 ****
- --- 1,1186 ----
- + begin 666 unix.lib
- + M```#^@``*UH```/I````"2!O``0@UTC0_/QP`$YU(&\`!"`O``AF`G`!(EA,
- + MT/S\6(].T0```_(```/I````#$CG(#(@;P`80^\`'$7Z`!PF;P`4)`LL>0``
- + M``!.K@``(`N0@DS?3`1.=1;`3G4``````^^!```#7T%B<T5X96-"87-E````
- + M`0```!B&```#7TQ63U)A=T1O1FUT`````0```!X````````#\@```^D````*
- + M(&\`!"\-*D@@#68$2^P``$'L```B31+89OPO#4ZZ``!83RI?3G4``````_@`
- + M```!`````0```!(````!`````@````X````````#[X,```)?;6MT96UP````
- + M``$````>`````````_$````#`````$]05%,`!`!````#\@```^H````$=#IT
- + M;7!?6%A86%A8`````````_(```/K````"0```_(```/I````;R!O``0B;P`(
- + MGOP`($CG+Q8F22](`"`O20`D<`Q.N@``*D`@+```4JP``"(L``#2@"\!2&P`
- + M`$AO`#!.N@``3^\`#'!WL!-F-DHK``%F,$'O`"A#[``03KH``"9`+&P``$ZN
- + M_\0N`'P`0>\`*"(()#P```/M3J[_XBH`>`%@1G!RL!-F-DHK``%F,$'O`"A#
- + M[``23KH``"9`+&P``$ZN_\HJ`'@`0>\`*"(()#P```/N3J[_XBX`?`%@"G`6
- + M*4```&```(Q*A6<$2H=F!$ZZ```@"V="2H5G/DJ'9SH@#6<V<``O`"\`+P!(
- + M>/__+P8O!R`%(@0@;P`X3KH``$_O`!@K0``(9Q`JK```*4T``"M+``0@"V`Z
- + M(`UG!B!-3KH``$J%9PY*A&<*(@4L;```3J[_W$J'9PY*AF<*(@<L;```3J[_
- + MW"`+9P8@2TZZ``!P`$S?:/3>_``@3G4@;P`$44](YP$T)DA+[```+T@`$&`Z
- + M(&H`!+'+9C`F52XK``@JDR!K``1.N@``($M.N@``0J=(;P`8+P=.N@``3^\`
- + M#$J`:PX@+P`48`HJ2B15(`IFP'#_3-\L@%!/3G4``````_@````#`````0``
- + M`)````!4````-`````,````"```!:````0P```$(`````````^^#```"0&UA
- + M;&QO8P`````!````'H8```1?7V9I9F]?;V9F<V5T`````````@```"@````D
- + MA@```U]?9FEF;U]B87-E``````$````L@P```U]?<W!R:6YT9@````````$`
- + M```\@P```D!F;W!E;@```````@```)0```!8A@```E]$3U-"87-E````!```
- + M`3X```$L````F@```%Z&```"7V5R<FYO```````!````OH,```)`7W-E=&5R
- + M<@````$```#.@P``!$!?<W1A<G1?<')O8V5S<P`````!````^H,```)`9G)E
- + M90````````(```&,```!'H,```)`9F-L;W-E``````(```&&```!3(,```)?
- + M=V%I='!I9`````$```&8`````````_$````#`````$]05%,`!`!````#\@``
- + M`^H````%<&EP93IU>&]P96XN)6QX`'<`<@````/R```#ZP````$```/R```#
- + MZ0```,6>_``82.<A/DGY`````$7L`!@J6B!:+AHF;``D+T@`()/)+'@`!$ZN
- + M_MHD;```($!#Z`!*($DB;```3J[_"B!L``!#[``$3J[^DD/O`"0B_(```"1P
- + M`2+`0IDB+P`@0>\`)"0(+$I.KOVBX8`K0``8+'@`!$ZN_WPB2TZN_GI*@&<*
- + M($`B34ZN_I)@"")-<!Q.KO\N3J[_=B)+<"!.KO\N(F\`("`'3J[_+DS??(3>
- + M_``82H!.=2!O``0@+P`((B\`#"]O`!``!"]O`!0`""]O`!@`#"]O`!P`$"]O
- + M`"``%"]O`"0`&%E/2.</%BHO`#@L+P`T+@`J2"]!`!QP'$ZZ```F0"!-2AAF
- + M_%.(D<T@"%*`*4``('(!+'@`!$ZN_SHI0``<(D`2W6;\<!QR`4ZN_SHI0``8
- + M<"!R`4ZN_SHI0``D<`$I0``00?K_G"`(0_K^L)")*4``%$'L``!.KO\B*4``
- + M`"(+9P`!2DJL`!QG``%"2JP`&&<``3I*K``D9P`!,DJ`;P`!+"!L```@*``4
- + M0?K^;B)L```B:0`08`(2V%.`9/I![```(FP`)!+89OP@+```4JP``"=```PG
- + M1P`03>P`%CS\`!1P!1E```P@5C%\`!P`$A%```@@7B%K``P`%"`\@``#\DJ&
- + M9@)P`2@`2H5O!"`%8`0@+```0J=(>``!+SR```/Z+P`O/(```_,O!B\$+R\`
- + M3"\\@``#\2\O`%`O/(```_`O+P!4+SR```/O+R\`6"\\@``#[2\O`%@O/(``
- + M`^XO!R\\@``#["!L```O*``0+SR```/K+&P``"(/3J[^#D_O`%0G0``(9S0@
- + M;```+'@`!$ZN_H`@;```+'@`!$ZN_HQ*@&?D0JL`%$'L```B2RQX``1.KO\0
- + M("L`#&!H+&P``$ZN_WQ.N@``8`)P#"E````@"V<&($M.N@``("P`'&<.(D`@
- + M+``@+'@`!$ZN_RX@+``89PPB0'`<+'@`!$ZN_RX@+``D9PPB0'`@+'@`!$ZN
- + M_RX@+```;PH@0"QX``1.KO\<</],WVCP6$].=0```_@````#`````0```5H`
- + M``%6```!1@```!<````"```"_````NH```+8```"S````L0```)0```!S```
- + M`<(```&J```!E@```8H```%\```!=````6P```%B```!0````30```$B```!
- + M%````$0````X````&@```!`````````#[X$```-?3&EN:V5R1$(````````!
- + M````"H8```)?1$]30F%S90````,```*F```"7@```"R&```$7U]S=&%R='5P
- + M7W!O<G0```````,```)^```"<@```$"#```"0&UA;&QO8P`````!```!`(8`
- + M``-?7V1O;W)?;F%M90`````!```!IH8```-?7VYE>'1?<&ED```````"```!
- + MM@```;*&```#7U]S=&%C:U]S:7IE`````0```?J&```#7U]P<F]C97-S97,`
- + M`````0```I*#```$0&-O;G9E<G1?;W-E<G(```````$```*NA@```E]E<G)N
- + M;P```````0```K:#```"0&9R964````````!```"P`````````/Q`````P``
- + M``!/4%13``0`0````_(```/J````!@````````````````````$`````````
- + M`````_(```/K````"@```_(```/I`````TZZ```@+```3G4``````^^#```#
- + M0&-H:V%B;W)T`````````0````*&```#7U]O=7)?<&ED`````````0````8`
- + M```````#\0````,`````3U!44P`$`$````/R```#Z0```",@+P`$(&\`"")O
- + M``Q(YP$4+@`F22I(3KH``'`!OH!M+'`@OH!L)B`+9PX@!^>`0^P``-/`)MDF
- + MV2`-9PSGAT'L``#1QR#=(-UP`&`(<!8I0```</],WRB`3G4@+P`$(&\`")[\
- + M`!`O2``(0J\`#$'O``A#UV&62H!G"#!\__\@"&`"(!?>_``03G4``````^^#
- + M```#0&-H:V%B;W)T`````````0```!B&```$7U]S:6=?:&%N9&QE<G,`````
- + M``(```!`````,(8```)?97)R;F\```````$```!0`````````_$````#````
- + M`$]05%,`!`!````#\@```^D````5("\`!$CG#P`N`"PL``!.N@``*4<``'H`
- + M>`$@+```P(1G#B`L``#`A&8&(`5.N@``4H78A'`@NH!MX"`&3-\`\$YU("\`
- + M!"\'(@`@+```@($N'V"P```#[X8```-?7W-I9U]M87-K```````$````3```
- + M`"0````4````#(,```-`8VAK86)O<G0````````!````$(8```1?7W-I9U]P
- + M96YD:6YG`````````0```!R#```$0%]S:6=?9&ES<&%T8V@```````$````N
- + M`````````_$````#`````$]05%,`!`!````#\@```^D```":(&\`!"`O``@B
- + M;P`,+V\`$``$64](YR$T+@`F;P`<*D@D22])`!1@`AK:2A)G!%.';O:U[P`4
- + M8QH0*O__<B^P`6<0=#JP`F<*4X=O!AK!8`(:VTH39P13AV[V0A5*AU[`1`!(
- + M@$C`3-\LA%A/3G4@+P`$(&\`"")O``Q93TCG)S8N`"I(+TD`($JL``!G``#^
- + M(&P``"9H``Q.N@``(BL`!+*`9@``Z"!L``!(:``L0>P``")3<`!&`&$`_UA8
- + M3TJ`9P``RD'L```B31`8L!EF``"\2@!F]&8``+1*AV80(&P``"`H`!AR`["!
- + M9P``H"!L```@*``8<ORP@6<$68!F/B)L```B$2QL``!.KO^"+``@;```T/P`
- + M+"((=/Y.KO^L*@!G$B(%0>P``"0(3J[_FB(%3J[_IB(&3J[_@F`&*6@`(```
- + M(&P``"EH``0`@"EH``@`?$/H``Q%[`"$)-DDV239(&P``"EH`!@`!"EH`!P`
- + M="\O`"`O*P$8($U#[```<`!.N@``4$]P`6`"<`!,WVSD6$].=2!O``0B;P`(
- + M2.<`%"9)*DA.N@``($TB2W``80#^R$J`9P1P`&`,($TB2TS?*`!.^@``3-\H
- + M`$YU(&\`!")O``A(YP`4)DDJ2$ZZ```@32)+<`%A`/Z02H!F<$AX`/](;```
- + M+PU.N@``3^\`#$J`:@P@32)+3-\H`$[Z``!+TT*=0JL`$G`!-T``#D)K`!`G
- + M?````@``,C=```Q"JP`V0>P``")(2AEF_%.)D\@G20`60IT@/`\,/P`G0``B
- + M)T``&B=``"HJ_```H?]P`$S?*`!.=0```_@````(`````0```7X```%P```!
- + M:@```5H```%2```!3````4(```$H`````````^^&```#7VQA<W1?9&ER````
- + M`````P```0(```"2````BH,```)`7V=E=%]C9`````$```":A@```U]L87-T
- + M7V5N=')Y``````8```%D```!1@```1(```#P````X````*B&```#7U]T96UP
- + M7V9N86UE````!````C8```'V````Q@```+"&```"7T1/4T)A<V4````!```!
- + M"(,```-`7VQF:6)S=&%T```````!```!A(,```-`8VAK86)O<G0````````"
- + M```!X````:B#```#0%]F:6)S=&%T`````````@```A````'&@P```U]R96%D
- + M;&EN:P````````$```'\`````````_$````#`````$]05%,`!`!````#\@``
- + M`^L```!!```#\@```^D```#0(&\`!%E/2.<`%"](``@@;P`(*F@!#&`*)E4@
- + M34ZZ```J2R`-9O),WR@`6$].=2!O``2>_``02.<@-BI()FT`#$/K`0PO2``<
- + M+TD`("!+8;1"K```0JL!#$*M``0@%>6`($`G:``,`1A!ZP`(+T@`&&```)Y!
- + MZP`0(DA*&6;\4XF3R"`)D<C0_``L<@`R`-*(4H%T`#0!/T``%C]!`!0@`DZZ
- + M```D0$J`9@9P#&```)Q-TD*>(&\`(""*+U``("SK`(@LZP"$0>L`C$/J``PB
- + MV"+8(M@E:P`,`!@E:P!\`!Q+Z@`@.V\`%``$.V\`%@`&(&\`'"`H``12J``$
- + M*T``"$'J`"Q#ZP`0$-EF_"JK``@J;P`<(A4D+P`8+&P``$ZN_Y1*@&8`_TXG
- + M:P$,`1!"K0`$+&P``$ZN_WQR=-*!L(%F!'`!8`I.N@``*4```'``3-]L!-[\
- + M`!!.=2!O``193TCG(#8O2``4<!!.N@``*D!P1^6(3KH``"9`(&\`%"`(2AAF
- + M_%.(D<`@"%*`3KH``"1`3KH``"`-9P``@B`*9WP@"V=X*TL`#"M\```!'``(
- + MD<@G2`$0)T@!#"=(`10FBB!O`!04V&;\3KH``"=```0B+P`4+&P``'3^3J[_
- + MK"J`9R)!ZP`((@`D""QL``!.KO^:2H!G#B!-80#^.$J`9Q0@#6`^+&P``$ZN
- + M_WQ.N@``*4```"!-80``-F`D<`PI0```(`UG!B!-3KH``"`*9P8@2DZZ```@
- + M"V<&($M.N@``<`!,WVP$6$].=2!O``1(YP`6*D@F;0`,3KH``$*L```@2V$`
- + M_:`@4TZZ```@%6<*(@`L;```3J[_IB!M``Q.N@``($U,WV@`3OH``"!O``19
- + M3TCG`S0O2``4(&\`%"IH``R7RTZZ``!*K0$49R1^`"1M`0P@;P`4+"@`!&`$
- + M4H<D4KZ&;`0@"F;T*TH!$$*M`10@+0$09R(F0-;\`"`I;P`4``!%[0$0(%(I
- + M2```(%(DT"!O`!12J``$(`M,WRS`6$].=2!O``0O#2I(3KH``"`M``0J7TYU
- + M(&\`!"`O``A(YP$4+@`J2"9M``Q.N@``<`$G0`$4*T<`!$S?*(!.=0```^^#
- + M```"0&9R964````````'```"B@```H````)J```"/@```C0```(J````'H8`
- + M``-?;&%S=%]D:7(````````#```"X@```EX```!2@P```D!M86QL;V,`````
- + M!````8X```%V```!;````**&```"7T1/4T)A<V4````&```"=````@8```'L
- + M```!U@```30```$<@P``!$!C;VYV97)T7V]S97)R```````"```"#@```4B&
- + M```"7V5R<FYO```````#```"(````A(```%,@P```T!C:&MA8F]R=```````
- + M``4```,N```##@```J8```):```!E(,```)`7V=E=%]C9`````$```'*A@``
- + M`U]L87-T7V5N=')Y``````$```+L`````````_$````#`````$]05%,`!`!`
- + M```#\@```^D````(2.<!`BQL``!R`$ZN_X(N`"(`3J[_@B`'3-]`@$YU````
- + M``/OA@```E]$3U-"87-E`````0````8````````#\0````,`````3U!44P`$
- + M`$````/R```#ZP````(```/R```#Z0```!L@;P`$("\`")[\`$1(YP,$+@`J
- + M2'S_3KH``"!-0^\`#DZZ``!*@&8D<!#`KP`6YH!R4.6)PJ\`%NR!@H#"A[*'
- + M9@1\`&`&<`TI0```(`9,WR#`WOP`1$YU(&\`!"`O``A(YP$$3-\@@&">````
- + M``/O@P```T!C:&MA8F]R=`````````$````8@P```T!?9FEB<W1A=```````
- + M``$````BA@```E]E<G)N;P```````0```$H````````#\0````,`````3U!4
- + M4P`$`$````/R```#Z0```$$@+P`$(&\`"%E/2.<G%BX`*DA.N@``2&\`'$AX
- + M"`$O!TZZ``!/[P`,4H!F!G#_8```RD*G+&P``'(")`].KO\<3^\`!"9`2H!G
- + M+"(O`!PD"TZN_GI*0&<>("\`'.6`+PT@0"\H``@B0G``D<A.N@``4$]\`&!@
- + M3J[_?"H`<BY&`;"!9D9\`"`O`!SE@"!`*J@`"$WM``1"GBS\```A_W`!/,`\
- + MP$)>*WP```(``#)"K0`V0JT`%B`\#PP_`"M``"(K0``:*T``*F`,?/\@!4ZZ
- + M```I0```(`MG#"0++&P``'("3J[_%DAO`!Q(>`@"+P=.N@``3^\`#"`&3-]H
- + MY%A/3G4``````^^#```#0&-H:V%B;W)T`````````0```!2#```"7VEO8W1L
- + M```````"````\@```"*&```"7T1/4T)A<V4````"````W@```#:#```#0%]L
- + M9FEB<W1A=````````0```&Z#```$0&-O;G9E<G1?;W-E<G(```````$```#0
- + MA@```E]E<G)N;P```````0```-0````````#\0````,`````3U!44P`$`$``
- + M``/R```#Z0````X@;P`$(F\`"$CG,!8F22I(3KH``"(+)`TL;```=@%.KOY$
- + M2H!G!'``8`9.N@``</],WV@,3G4``````^^#```#0&-H:V%B;W)T````````
- + M`0```!*&```"7T1/4T)A<V4````!````&H,```)`7W-E=&5R<@````$````L
- + M`````````_$````#`````$]05%,`!`!````#\@```^D````^(&\`!")O``A9
- + M3TCG,S8J2'X`(&P``"PH`.`O20`@2H9F($JL``!F&D'L`!@B""QL```D/```
- + M`^U.KO_B+`!G`GX!2H9G-B(&0>P`(B0(0>P``"8(+&P``$ZN_IXB!B0-)B\`
- + M($ZN_IXB!G0*3J[^R$J'9U@B!DZN_]Q@4"!L```F:`"X,'S__[?(9T!#[``H
- + M<"4L>``$3J[]V"1`2H!G+"EL````#"E-`!`O"B!++$I#[``$E<HF;P`D3J[]
- + MM$S?!``B2BQX``1.KOYB3-]LS%A/3G4@;P`$0^\`"&$`_RI.=2!O``1#[P`(
- + M80#_''`43KH``$YU``````/X````!@````$```"R````J````*0```".````
- + M2@```"H````````#[X8```%?7W5S`````@```'X````4A@```U]?5T)E;F-H
- + M37-G``````$````DA@```E]$3U-"87-E`````@```%8````PA@``!%]?4')O
- + M9W)A;4YA;64````````"````H@```%"#```"0&5X:70````````!````\@``
- + M``````/Q`````P````!/4%13``0`0````_(```/J````#T]K```````4````
- + M`````````````````&-O;G-O;&4Z```E<SH@``!I;G1U:71I;VXN;&EB<F%R
- + M>0```````^P````!`````0```!0````````#\@```^D````'2.<@`B(O``Q!
- + M[P`0)`@L;```3J[_'$S?0`1.=0```^^&```"7T1/4T)A<V4````!````$```
- + M``````/Q`````P````!/4%13``0`0````_(```/I````#R!O``0O#2I(*JP`
- + M`$'M``0J7T[Z```@;P`$("\`"$CG`00N`"I((!5.N@``0>T`!"`'3-\@@$[Z
- + M`````````^^&```#7U]S:6=?;6%S:P```````0````J#```"0%]S971J;7``
- + M```!````%(,```-`<VEG<V5T;6%S:P`````!````*H,```-`7VQO;F=J;7``
- + M```````!````.`````````/Q`````P````!/4%13``0`0````_(```/I````
- + M!R!O``0@+P`(+P`O+```+PA.N@``3^\`#'``3G4```/OA@``!%]?<WES=&5M
- + M7VYA;64````````!````#(,```)?<W1R;F-P>0````$````2`````````_$`
- + M```#`````$]05%,`!`!````#\@```^D````I(&\`!)[\`%1(YS@6*D@@#6<D
- + M2A5G("!-2AAF_%.(D<TB""!-<`).N@``0>P``'`"(@!.N@``("P``&\2L*P`
- + M`&X,Y8!![```)G`(`&`L4H!F)"(L``!![P`;)@@L;```=`!X44ZN_BQ*0&<$
- + M)D-@"D?L``1@!$?L``@@2TH89OQ3B)'+(@@@2W`"3KH``$'L`!QP`G(!3KH`
- + M`$S?:!S>_`!43G4```/X````!`````$```"0````>````'(````L````````
- + M`^^#```"0'=R:71E```````$````F````(P````T````*(8```)?97)R;F\`
- + M``````$````XA@```U]S>7-?;F5R<@````````$````^A@```U]S>7-?97)R
- + M;&ES=`````$```!&A@```E]?3U-%4E(``````0```%2&```"7T1/4T)A<V4`
- + M```!````7@````````/Q`````P````!/4%13``0`0````_(```/J````"#H@
- + M```T,@``56YK;F]W;B!E<G)O<B!C;V1E```*```````#\@```^D````````#
- + M\0````,`````3U!44P`$``````/R```#Z@```,9N;R!S:6=N86P`:&%N9W5P
- + M``!I;G1E<G)U<'0`<75I=```:6QL96=A;"!I;G-T<G5C=&EO;@!T<F%C92!T
- + M<F%P``!A8F]R=`!E;70@:6YS=')U8W1I;VX`9FQO871I;F<@<&]I;G0@97AC
- + M97!T:6]N``!K:6QL``!B=7,@97)R;W(`<V5G;65N=&%T:6]N('9I;VQA=&EO
- + M;@``8F%D(&%R9W5M96YT('1O('-Y<W1E;2!C86QL`'=R:71E(&]N(&$@<&EP
- + M92!W:71H(&YO(&]N92!T;R!R96%D(&ET``!A;&%R;2!C;&]C:P!S;V9T=V%R
- + M92!T97)M:6YA=&EO;B!S:6=N86P@9G)O;2!K:6QL`'-T871U<R!S:6=N86P`
- + M<V5N9&%B;&4@<W1O<"!S:6=N86P@;F]T(&9R;VT@='1Y`'-T;W`@<VEG;F%L
- + M(&9R;VT@='1Y``!C;VYT:6YU92!A('-T;W!P960@<')O8V5S<P``8VAI;&0@
- + M<W1A='5S(&AA<R!C:&%N9V5D``!B86-K9W)O=6YD(')E860@871T96UP=&5D
- + M(&9R;VT@8V]N=')O;"!T='D``&)A8VMG<F]U;F0@=W)I=&4@871T96UP=&5D
- + M(&9R;VT@8V]N=')O;"!T='D`:6YP=70@<F5C;W)D(&%V86EL86)L92!A="!C
- + M;VYT<F]L('1T>0!E>&-E961E9"!#4%4@=&EM92!L:6UI=`!E>&-E961E9"!F
- + M:6QE('-I>F4@;&EM:70``'5N:VYO=VX@<VEG;F%L``!U;FMN;W=N('-I9VYA
- + M;```=VEN9&]W(&-H86YG960``'5N:VYO=VX@<VEG;F%L``!U<V5R('-I9VYA
- + M;"`Q`'5S97(@<VEG;F%L(#(```````````H````2````'````"(````V````
- + M0@```$@```!8````<@```'@```""````F@```+8```#>````Z@```1````$>
- + M```!0````58```%R```!C````;@```'D```""@```B(```(\```"3````EP`
- + M``)L```"?````HH```/L````(`````$```,4```#$````PP```,(```#!```
- + M`P````+\```"^````O0```+P```"[````N@```+D```"X````MP```+8```"
- + MU````M````+,```"R````L0```+````"O````K@```*T```"L````JP```*H
- + M```"I````J````*<```"F`````````/R```#Z0```#H@+P`$(&\`""(O``PB
- + M;P`064](YP<4+`$N`"I(+TD`%'H`)FP``&`N2H=G""`K``R^@&8@>@%P`;"K
- + M`!1F%BHK``P@#6<$*JL`&"!+3KH``"`%8"HF4TJ39LX(!@``9P1P`&`:2H5F
- + M"G`**4```'#_8`QP`$ZZ``!.N@``8*),WRC@6$].=2!O``0@+P`((F\`#$CG
- + M`10B`'``3-\H@&``_W`@;P`$+PUP`"(`D\DJ7V``_UX@+P`$(&\`""(O``Q(
- + MYP,$+`$N`"I(4H!F`GX`2H=J`D2'(`<B!B!-D\E,WR#`8`#_+``````#[X8`
- + M``-?7W!R;V-E<W-E<P`````!````)(,```-`7V9R965?96YT<GD````!````
- + M3H8```)?97)R;F\```````$```!L@P``!$!?=V%I=%]S:6=N86QS```````!
- + M````=H,```1`7VAA;F1L95]S:6=N86QS`````0```'H````````#\0````,`
- + M````3U!44P`$`$````/R```#Z0```!(@+P`$44](YP,`+@!.N@``(`=.N@``
- + M2H!G(B)`(&D`'"](``P@:0`$<`$B;P`,3I$L`"`'3KH``"`&8`)P_TS?`,!0
- + M3TYU``````/O@P```T!C:&MA8F]R=`````````$````.@P```T!?9FEN9%]F
- + M9`````````$````4@P```T!?9G)E95]F9`````````$````V`````````_$`
- + M```#`````$]05%,`!``````#\@```^D````#(&\`!"`O``A.^@`````#[X,`
- + M``)`<W1R<F-H<@````$````*`````````_$````#`````$]05%,`!``````#
- + M\@```^D````#(&\`!"`O``A.^@`````#[X,```)`<W1R8VAR``````$````*
- + M`````````_$````#`````$]05%,`!``````#\@```^D```!-2.<`!G`(<@`L
- + M>``$3J[_.BI`2H!F!'``8"Y"K0`$2'@`*'``+P!![```<@&3R<%!3KH``%!/
- + M*H!F#")-<`A.KO\N<`!@`B`-3-]@`$YU(&\`!$CG``8J2"`-9Q@@36$``!X@
- + M54ZZ```B37`(+'@`!$ZN_RY,WV``3G4@;P`$2.<`!BI(2JT`!&<4(E4L>``$
- + M3J[^(")53J[^)D*M``1,WV``3G4@;P`$(%`B:``.<``0*0`/<@'AH2`!3G4@
- + M;P`$("\`""(O``Q(YP,&+`$N`"I(8:I*AV8$2H9G'B)5(T<`("-&`"0S?``)
- + M`!PL>``$3J[^,G`!*T``!$S?8,!.=2!O``1(YP`&*DA*K0`$9QPB52QX``1.
- + MKOXL2D!G#B)53J[^)D*M``1P`6`"<`!,WV``3G4```/X`````0````$````H
- + M`````````^^#```$0%]D979I8V5?;W!E;@````````$````R@P``!$!?9&5V
- + M:6-E7V-L;W-E```````!````9@````````/Q`````P````!/4%13``0`0```
- + M`_(```/J````!'1I;65R+F1E=FEC90````````/R```#Z0```!XO#B`L```B
- + M`$A!0D'2@"`L``"S@"E```1"K``(0^P`!'``+'@`!$ZN_=@I0```</].KOZV
- + M2(!(P"E```!*K```9PA*@&L$<`%@`G``*4``#"Q?3G4O#B`L``!K""QX``1.
- + MKOZP("P``&<*(D`L>``$3J[^8BQ?3G4```/X`````P````$```!8````.@``
- + M`!X````&`````@```&8```!.````/@```"P````:````%@````````/OA@``
- + M!%]?<W1A<G1U<%]T:6UE```````!````!(8```%?7W5S`````0```!``````
- + M```#\0````,`````3U!44P`$`$````/R```#Z@````7_____9FEF;RYL:6)R
- + M87)Y`````````_(```/K````!````_(```/I````%B`O``113TCG`P`N`$ZZ
- + M```@!TZZ``!*@&<H(D`@:0`<<D#EB<*1+T@`#"`!(&D`!")O``Q.D2P`(`=.
- + MN@``(`9@`G#_3-\`P%!/3G4@+P`$+P<N'V"N``````/O@P```T!C:&MA8F]R
- + M=`````````$````.@P```T!?9FEN9%]F9`````````$````4@P```T!?9G)E
- + M95]F9`````````$````\`````````_$````#`````$]05%,`!``````#\@``
- + M`^D```!B(&\`!"`O``@B;P`,+V\`$``$+V\`%``(+V\`&``,+V\`'``0+V\`
- + M(``4+V\`)``844](YP<4+@!([P,``!1\`"IL``!@%DJM``1F"C!\``$K2``$
- + M8`Q2AMK\`"2\K``$;>0@+``$O(!F>'(*TZP`!"`L``0B`.>!TH#E@2`!3KH`
- + M`"I`2H!F#'`,*4```'#_8```CG#VT*P`!"(`YX'2@.6!(&P``")-8`(2V%.!
- + M9/H@+```9P8@0$ZZ```I30``>O;:K``$(`7G@-"%Y8#;P)?+*TL`!%*%VOP`
- + M)+JL``1M\"`&YX#0AN6`(&P``"&O`!0(!"&'"``AKP`8"`A+[P`@(9T(#"&=
- + M"!`AG0@42^\`+"&="!@AG0@<(9T(("`&3-\HX%!/3G4@+P`$(@!K%K*L``1L
- + M$"`!YX#0@>6`(&P``$*P"`1.=2`O``1(YP$$+@!K'KZL``1L&"`'YX#0A^6`
- + M*FP``-O`2JT`!&<$(`U@"'`)*4```'``3-\@@$YU("P`!$YU``````/X````
- + M$0````$```&"```!9````58```%````!,@```.P```#>````Q````+X```"R
- + M````I````)@```!R````;@```&0```!>````0@````````/O@P```D!M86QL
- + M;V,``````0```("&```"7V5R<FYO```````"```!=@```(R#```"0&9R964`
- + M```````!````N@````````/Q`````P````!/4%13``0`0````_(```/K````
- + M`@```_(```/I````&B!O``0B;P`(GOP`#$CG(18F22I(3KH``"`+9P8N*P`$
- + M8`B1R$ZZ```N`'#_OH!F!'``8"@@!T'O`!1.N@``(@U![P`4)`@L;```3J[^
- + M=$J`9P1P`&`&3KH``'#_3-]HA-[\``Q.=0`````#[X,```-`8VAK86)O<G0`
- + M```````!````%H,```)`=&EM90````````$````F@P```T!?9VUT,F%M:6=A
- + M``````$````\A@```E]$3U-"87-E`````0```$B#```"0%]S971E<G(````!
- + M````6`````````/Q`````P````!/4%13``0`0````_(```/I````!R!O``0B
- + M;P`(("\`#"\+)DDB2"!+)E].^@````````/O@P```D!M96UM;W9E`````0``
- + M`!@````````#\0````,`````3U!44P`$``````/R```#Z0```%(@;P`$(F\`
- + M"%%/2.<!%"9)*DA.N@``0>\`#$ZZ```@#6<(0>\`#"K8*M@@"V<``-)![P`,
- + M3KH``"!`("@`)$2`<CQ.N@``)H!^`"!L``1#[```$!BP&68,2@!F]F8&?@1@
- + M``":(&P`!$/L``@0&+`99@Q*`&;V9@9^`V```(`@;``$0^P`$!`8L!EF"DH`
- + M9O9F!'X%8&8@;``$0^P`&!`8L!EF!DH`9O9G4"!L``1#[``<$!BP&68&2@!F
- + M]F<\(&P`!$/L`"`0&+`99@9*`&;V9R@@;``$0^P`)!`8L!EF!DH`9O9G%"!L
- + M``1#[``H$!BP&68(2@!F]F8"?@$G1P`$<`!,WRB`4$].=2!O``2>_``0+PTJ
- + M2$'O``Q#[P`$80#^Z"JO``P@+P`00^T`!#+`("\`!#+`("P``#+`<``J7][\
- + M`!!.=0`````#^`````@````!````[````-@```#$````L````)P```"$````
- + M:@```%`````````#[X,```-`8VAK86)O<G0````````!````%(,```-`7V=E
- + M='1I;64````````!````'(,```-`;&]C86QT:6UE```````!````-H,```)?
- + M7T-81#,S``````$```!$A@```E]T>FYA;64`````"````.@```#4````P```
- + M`*P```"8````@````&8```!,A@```U]D87EL:6=H=`````````$```$X````
- + M`````_$````#`````$]05%,`!`!````#\@```^H````,3454($135`!7150@
- + M1%-4`$5%5"!$4U0`1414`$-$5`!-1%0`4$14`$%+1%0````````#\@```^D`
- + M```P(&\`!$CG``8J2"QL``!.KO^^!I4/##\`<`!,WV``3G4@+P`$(&\`"%E/
- + M!(`/##\`(CP``5&`+H!.N@``((`@%R(\``%1@$ZZ```@`2Z!<CQ.N@``(4``
- + M!"`7<CQ.N@``(`'E@)"!YX#0@="`(4``"%A/3G4@;P`$64](YR`$2]`@'2(`
- + MZ8&2@"`!YX#0@2(`Y8'2@.^!(!TD`.F"E(#E@B`=+T$`"'(R3KH``-""T*\`
- + M"`:`#PP_`$S?(`183TYU```#[X8```-?5&EM97)"87-E```````!````#(,`
- + M``)?7T-81#,S``````4```"J````7@```%(```!(````.@````````/Q````
- + M`P````!/4%13``0`0````_(```/I````"R`O``193RZ`0>P`!"`(6$].=2!O
- + M``193RZ(0>P`!"`(6$].=2`L``1.=0`````#^`````,````!````)@```!P`
- + M```*`````````_$````#`````$]05%,`!`!````#\@```^H````)````````
- + M``````````$````````````"```````````````````#[`````(````!````
- + M%`````@````````#\@```^D````J(&\`!")O``@@+P`,64](YS\V+@`J2"])
- + M`"B7RTZZ```B#20++&P``$ZN_7XF0"("3J[]>"`+9@9.N@``8%XD;P`H0A(J
- + M!U*%(A,D*P`$)@TH"BQL``!.KOY*2H!G&"(+3J[]>$H29@1P`F`L+P1.N@``
- + M6$]@*$ZN_WPL`'(R1@&P@68(""L``0`+9I0B"TZN_7@@!DZZ```I0```</],
- + MWVS\6$].=0`````#[X,```-`8VAK86)O<G0````````!````'H8```)?1$]3
- + M0F%S90````(```!4````)H,```)`7W-E=&5R<@````$````Z@P```E]S=')L
- + M96X``````0```'"#```$0&-O;G9E<G1?;W-E<G(```````$```"6A@```E]E
- + M<G)N;P```````0```)H````````#\0````,`````3U!44P`$`$````/R```#
- + MZ0```"Q93TJL`!)F#$'O``,I2``28>Y@%D'O``,B;``2L\AD!'`!8`)P_RE`
- + M``!83TYU64](YP$4+B\`%$JL``!F`F'`*FP`%F`N("P``&\,0>\`#R)M``2S
- + MR&(02H!J'$'O``\B;0`$L\AD$"95+PU.N@``6$\J2R`-9LXI30`62H=F!'``
- + M8")0AR\'3KH``"!`(*P`%D/O`!,A20`$0^@`"%A/*4``%B`)3-\H@%A/3G4`
- + M`````_@````'`````0```*(```"0````>@```$(````:````#@````0````#
- + M`````@```$@````Z````*`````````/O@P```E]F<F5E`````````0```&Z#
- + M```"7VUA;&QO8P`````!````B@````````/Q`````P````!/4%13``0`0```
- + M`_(```/J````!T`H(REA;&QO8V$N8PDQ+C$```````````````````/R```#
- + MZP````$```/R```#Z0```#8@;P`$64](YR,"(@@L;```=/Y.KO^L+T``$&<Z
- + M+BP``$ZZ```L`&`>2&\`$$AX"`4O!DZZ``!/[P`,2H!F""E'``!P`&`24X9L
- + MWB(O`!`L;```3J[_IG#_3-]`Q%A/3G4@;P`$2.<A!BI(3KH``"(-+&P``$ZN
- + M_[A*@&<$<`!@4$ZN_WPN`')OTH&P@68@(@UT`$ZN_T9*@&<.(@U.KO^X2H!G
- + M!"`"8"A.KO]\+@!P9="`OH!F#B!-80#_2DJ`9@1P`&`,(`=.N@``*4```'#_
- + M3-]@A$YU``````/OA@```E]$3U-"87-E`````P```'(```!0````#H8```)?
- + M97)R;F\```````,```#,````0````!Z#```#0%]L87-T7V9D`````````0``
- + M`"*#```"7VEO8W1L```````!````-(,```-`8VAK86)O<G0````````!````
- + M;(,```1`8V]N=F5R=%]O<V5R<@```````0```,@````````#\0````,`````
- + M3U!44P`$`$````/R```#Z0```AI(YP`&<"(B/``!``$L>``$3J[_.BI`2H!F
- + M!'``8"`;?``$``A-[0`.0AX@+```',`L[```0>T`%$ZZ```@#4S?8`!.=2!O
- + M``0O#B)(<"(L>``$3J[_+BQ?3G4@;P`$2.<`!BI(("T`(&<*+&P``'(`3J[_
- + MW"`M`"1G#"QL``!R0.&)3J[_W"`M`#1G!B!`3KH``"`M`#AG!B!`3KH``"!M
- + M`#QAI"!-3-]@`$[Z``!(YP(&+`$J2$J`9Q0@+0`@(BT`-"QL```P?``!3J[_
- + MRDJ&9Q0@+0`D(BT`."QL```P?``"3J[_RG`!(BP``..@3-]@0$YU2.<#-B9)
- + M*D@N$R!O`!PL$&`4(&T`-+'*9@1^`&`(M>T`.&8"?``@;0`\+'@`!$ZN_HPD
- + M0$J`9MI*AV<60I,@+0`@(BT`-"QL```P?``#3J[_RDJ&9U(@;P`<0I`@+0`D
- + M(BT`."QL```P?``#3J[_RF`V<`$B+```XZ`L>``$3J[^PB!M`#PL>``$3J[^
- + MC"1`2H!GWB!M`#2QRF8$?@!@"+7M`#AF`GP`2H=FUDJ&9M)P`2(L``#CH"(`
- + M<``L>``$3J[^SDS?;,!.=5E/2.<#%BX`)DDJ2&```(9"K0`L""T``@`S9PQP
- + M(RE```!P_V```*PL;```<@%.KO\Z("T`("(M`#0L;```,'P``4ZN_\H@;0`\
- + M<``0*``/<@'AH2`!3KH``"P`("T`("(M`#0P?``#3J[_RF`0<`$B+```XZ`L
- + M>``$3J[^PB!M`#PL>``$3J[^C$J`9^`@!DZZ```@+0`@0>\`%"(((&T`+"QL
- + M``!.KO_6+`!G`/]B(`92@&8"?`"\AV,"+`<@!B!O`!1@`A;84X!D^B`&*T``
- + M+$S?:,!83TYUGOP`2$CG#Q8N`"I()DDO20`<2H=F``"*("T`)"QL``!R0.&)
- + M3J[_W"!-0^\`(!+89OQ![P`@0^P``$ZZ```@34/O`$(2V&;\0>\`0D/L``1.
- + MN@``""T````S9P@(+0`/`#)G!D'O`"!@!$'O`$(@"')`Z8D@?```C@!.KO_B
- + M*T``)&<``.PL;```3J[_Q$J`:@)2@.*`*T``*'``8```X$JM`"1G``#*+"T`
- + M*'H`8```M+R'8P``CBP'8```B`@M``(`,V<02H5G!B`%8```L'`C8```I"`M
- + M`"0B+0`X+&P``#!\``).KO_*(&T`/'``$"@`#W(!X:$@`4ZZ```H`"`M`"0B
- + M+0`X,'P``TZN_\I@$'`!(BP``..@+'@`!$ZN_L(@;0`\+'@`!$ZN_HQ*@&?@
- + M(`1.N@``2H!G"$J%9P0@!6`Z("T`)"(+($8L;```3J[_T"@`9P#_9DJ$:Q+:
- + MA)Z$U\1P`+Z`8@#_2"`%8`YP#4ZZ``!P("E```!P_TS?:/#>_`!(3G6>_``,
- + M2-<!`W`=*4```'#_WOP`#$YU64\N@&$`_")P`%A/3G6>_``L2.<@%B9)*DA*
- + M@&<2!(````@!9R)3@&<``)Q@``"J2I-G"`CM``(`,V`&"*T``@`S<`!@``":
- + M<`/`K0`P5X!F*`@M``\`,F<&0>P`&&`$0>P`&B\(+PU(;``(2&\`'$ZZ``!/
- + M[P`08"H(+0```#-G$"\-2&P`'$AO`!A.N@``8`XO#4AL`"9(;P`83KH``$_O
- + M``Q![P`0(@@L;```)#P```/M3J[_XB:`9P1P`&`@3KH``&`8(!-G"B(`+&P`
- + M`$ZN_]QP`&`(<!8I0```</],WV@$WOP`+$YU(&\`!"`O``@B+P`,+V\`$``$
- + MGOP`3$CG#S8J+P!P+`$N`$*O`&B;S9?++T@`('!`3KH``"1`2H!G``&@80#Z
- + MHB]``&AG``&4<!1.N@``*D!*@&<``89P%$ZZ```F0$J`9P`!>'`%&T``""!O
- + M`&@K2``.<A0[00`2%T``""=(``XW00`2)4@`/"5-`#0E2P`XD<@E2``D)4@`
- + M("5(`#!*AV<&".H````S2H9G!@CJ``$`,TAZ_G!(>OY>2'K^1$AZ_+A(>OO:
- + M2'K[#"`J`#`@2D/Z^KQ.N@``3^\`&"@`9P``\$J%9P8(Z@`/`#(@;P`@(DH2
- + MV&;\($I#[P`D$MAF_$'O`"1#[``T3KH``"!*0^\`1A+89OQ![P!&0^P`.$ZZ
- + M``!*AV<H2H9G!$J%9@9![P`D8`1![P!&(`@L;```<D#IB3!\#0!.KO_B)4``
- + M($J&9RI*AV<$2H5G!D'O`"1@!$'O`$8@""QL``!R0.F)('P``(X`3J[_XB5`
- + M`"1*J@`@9@1*AV8J("H`)&8$2H9F($J`9Q0L;```3J[_Q$J`:@)2@.*`)4``
- + M*$*J`"P@!&!8("H`(&<*+&P``'(`3J[_W"`J`"1G"BQL``!R`$ZN_]Q*A&L&
- + M(`1.N@``(`UG!B!-3KH``"`+9P8@2TZZ```J;P!H(`UG!B!-80#Y+B`*9P8@
- + M2DZZ``!P_TS?;/#>_`!,3G4@;P`$GOP`("\-*DA.N@``2JP``&8(<`8I0```
- + M8&@@+```4JP``"(L``#2@"\!2&P`/$AO``Q.N@``<``N@$'O`!!R`<%!80#]
- + MN$_O``PJ@<<``O`$'O``AR`6$`_:)83RM```1K!'``8!P@%4ZZ``!*@&<*
- + M($`@:``$80#XKB`53KH``'#_*E_>_``@3G4@+P`$(B\`""]O``P`!"!O`!">
- + M_``H+PTJ2$CO``,`!$ZZ``!*K```9@AP!BE```!@:"`L``!2K```(BP``-*`
- + M+P%(;`!(2&\`%$ZZ``!P`2Z`(@!![P`8P4%A`/T43^\`#"J`:S1"IT'O`!!P
- + M`2(`80#\_EA/*T``!&L$<`!@'"`53KH``$J`9PH@0"!H``1A`/@*(!5.N@``
- + M</\J7][\`"A.=0`````#^`````L````!```(!@``!V(```8\```&)@``!,P`
- + M``2\```$H```!)@```22```"Y@```M`````````#[X8```-?7V9I9F]?<VEG
- + M```````&```#K@```C````&H```!:@```.H````LA@```5]?=7,````!````
- + M,H,```)`3F5W3&ES=`````$````ZA@```U]?1FEF;T)A<V4``````!$```;H
- + M```&V```!K8```:(```&7````^8```-X```#(````K8```)B```!^@```5H`
- + M``$\````W````,0```!\````;(,```)`9G)E90````````8```<D```'#```
- + M!P(```"L````G````)"&```"7V5R<FYO```````&```'\```!TP```42```$
- + M+```!!(```'>A@```E]$3U-"87-E`````P``!00```3B```!Z(,```1`7W=A
- + M:71?<VEG;F%L<P```````@```Y0```(6@P``!$!?:&%N9&QE7W-I9VYA;',`
- + M```"```#S@```E"#```"0'-T<F-A=``````$```&0```!BH```+J```"U(,`
- + M``1`7W-I9U]D:7-P871C:````````0``!`R#```#7U]S<')I;G1F````````
- + M!0``"`X```=J```$U```!,0```2H@P```D!?<V5T97)R`````0``!/B#```"
- + M0&UA;&QO8P`````#```%>@``!6P```52@P```T!?86QL;V-?9F0```````$`
- + M``7V@P```T!?9G)E95]F9`````````,```A:```'M@``!OB#```#0&-H:V%B
- + M;W)T`````````@``!^0```=`A@```U]?9FEF;U]O:P````````(```?H```'
- + M1(8```1?7V9I9F]?;V9F<V5T````````!```!_H```?V```'5@``!U*&```#
- + M7U]F:69O7V)A<V4``````@``!_X```=:@P```T!?9FEN9%]F9`````````(`
- + M``A&```'H@````````/Q`````P````!/4%13``0`0````_(```/J````%5]M
- + M``!?<P``9FEF;SHE<R]R=V5S2R5S`&T```!F:69O.B5S+W(`9FEF;SHE<R]M
- + M=V5+``!?;0``7W,``'5X9FEF;RXE;'@``'5X9FEF;RXE;'@``````_(```/I
- + M````"2`O``193RZ`0>P`%B`(6$].=2!O``193RZ(0>P`%B`(6$].=0```_@`
- + M```"`````0```!P````*`````````_$````#`````$]05%,`!`!````#\@``
- + M`^H````)=7-E<@````````````!W:&5E;`````````X````4```````&```#
- + M[`````0````!````(````!H````6````!@````````/R```#Z0```*D@+P`$
- + M64\N@"`L`0QG#B!`3KH``$J`9P1R`6`"<@`@`5A/3G4@+P`$(&P!#'(`3OH`
- + M`$ZZ```I0`$,9@I(;```3KH``%A/(&P!#$ZZ``"!K```3G4@;`$,3OH```CL
- + M``P``DYU("\`!`@```Q6P$0`2(!(P$YU".P`#0`"3G4@+P`$"```#5;`1`!(
- + M@$C`3G5.N@``<``@;```$"@`#W(!X:K```3G5.^@``("\`!%E/2.<!%B]`
- + M`!!^`&`N("T`%$ZZ```F0$J`9Q1*JP`49@Y^`7`!)T``%"=M`!@`&")-<!PL
- + M>``$3J[_+B!L```L>``$3J[^C"I`2H!FP"`'3-]H@%A/3G4@+P`$2.</!"X`
- + M<`'OH"P`<`F^@&8&<`!.N@``("P!!,"&9P:-K`$(8'HJ!D:%RZP!"$J':V9P
- + M(+Z`;&`@!^>`0>P`!"IP"``P?``!N\AF+"`'58!G%%.`9Q!R#9"!9SQ9@&<X
- + M48!G-&`*2&P`&$ZZ``!83W``3KH``&`@(`UG'"`'YX`H!D'L``2(L`@$B:P!
- + M!"`'3I5&A,FL`00@+`$(P(9FBDS?(/!.=2`O``0O#B(L``""@'``+'@`!$ZN
- + M_LXL7TYU("\`!"\.(@`@+```@($L>``$3J[^PBQ?3G4@+P`$2.<#`"X`?`!A
- + M`/X02H!G"'P!<`YA`/\,(`=A`/YB2H!G"'P!<`)A`/[Z(`=A`/YJ2H!G"'P!
- + M<`-A`/[H(`=A`/Z&2H!G"'P!<!1A`/[6(`9,WP#`3G4@+P`$+P<I0```<`@N
- + M'V``_KQP`&$`_V!@DV2.<!%'X`2^P`!#9\``$JBT*M``12AU"-<""^@&WP
- + M0JP!"$*L`01"K```80#]U&$`_>IA`/VB3-\H@&``_?AA`/VX8`#^"``````#
- + M^`````(````!```!=````#X````7`````@```H0```*````"?````F0```'6
- + M```!N@```:8```&B```!F````9````%*```!.````2X```$F````I````'H`
- + M``!@````5@```%````!(````.````"H````*`````````^^#```$0%]T:6UE
- + M<E]E>'!I<F5D``````$````2@P``!$!?=&EM97)?<W1A<G0````````!````
- + M,(,```1`7V%L;&]C7W1I;65R`````````0```#2#```"7U]F86EL```````!
- + M````0H,```-`7W1I;65R7W-I9P`````!````3(,```-`7V9R965?=&EM97(`
- + M```!````6H,```1`7VEN:71?<')O8V5S<V5S`````0```)*&```$7U]C:&EL
- + M9')E;E]E>&ET``````(```#N````F(,```5`7V-L96%N=7!?<')O8V5S<V5S
- + M``````$```"J@P```T!?9FEN9%]P:60```````$```#$@P```D!?7V5X:70`
- + M`````@```8````$B@P```U]?;65S<V%G90````````$```%XA@```E]?1E!%
- + M4E(``````0```D@````````#\0````,`````3U!44P`$`$````/R```#Z@``
- + M``I&86EL960@=&\@8W)E871E('1I;65R``!U<V5R(&EN=&5R<G5P=``````#
- + M\@```^L```!$```#\@```^D```(=2&P`!$ZZ``!83TYU("\`!"\-3KH``"I`
- + M2H!F`F'B(`TJ7TYU(&\`!"`O``@O"TZZ```F0$J`9@)AQB`+)E].=2!O``0O
- + M#2I((`UF!$OL``X@34H89OQ3B)'-(`A2@$ZZ```@0$J`9@1P`&`((D@2W6;\
- + M(`@J7TYU64](YP,T?@!\`"!L```F:`#08"Q**P`(9B0P/`4`P&L`#F8:4H<@
- + M:P`*(`A*&&;\4XB1P"`(W(#<JP`45(8F4TJ39M`@!U*`Y8#0AF$`_THI0``8
- + MY8<@0")`T\=%Z0`$+T``%&8*0>P``"E(`!A@5B!L```J:`#08$)*+0`(9CHP
- + M/`4`P&T`#F8P)FT`"BXM`!0@;P`4(,HO2``48`(4VTH39OH4_``])FT`$&`"
- + M%-L@!U.'2H!F]D(:*E5*E6:Z(&\`%$*03-\LP%A/3G4@;P`$("\`""\-*D@J
- + M@$*M``3E@&$`_K0K0``(*E].=2!O``0B;P`(("\`#$CG(C0F22I(2H!G"B!+
- + M80#^PB1`8`(D2R`*9SXB%20M``2T@6TB+`'<AG00TH*\@6T"(@8J@2`!Y8`@
- + M;0`(3KH``"M```AG$D?M``0B$U*;Y8$@6R&*&`!P`4S?+$1.=2!O``0B;P`(
- + M("\`#&&22H!F!&$`_AI.=2!O``0B;P`(2.<`%"9)*D@@+0`$T*L`!+"5;Q+0
- + M@"J`Y8`@;0`(80#^&BM```@B+0`$Y8$@;0`(T<$@*P`$(@#E@2)K``A@`A#9
- + M4X%D^M&M``0@:P`(3-\H`$[Z```@;P`$(F\`""]O``P`!"`O`!`B+P`464](
- + MYP(T+`$J221(+T@`$$J`9T13@&<*4X!G``"V8```]%.&9R(@+P`8(@V0@2!O
- + M`!!",`@`($$B;P`08`(2V%.`9/I@``#.0>P`$")O`!`2V&;\8```OB9O`!A@
- + M;G!<L!5F9DHM``%G8%2-<`&\@&8&%/P`86!4(`95@&9&$"W__TB`2,!R(Y"!
- + M9RY5@&<J58!G)E.`9R)3@&<>4X!G&G(5D(%G%'(<D(%G#E6`9PIR'Y"!9P15
- + M@&8$%/P`)Q3M__]@"!3M__]@`A3=N\MECF!`)F\`&&`V<"JP%68N2BT``6<H
- + M5(T0+?__2(!(P')ED(%G#'()D(%F#!3\``I@#A3\`!M@"!3M__]@`A3=N\ME
- + MQD(23-\L0%A/3G6>_`$L2.<_-BIO`5@@;```#&@`)0`49`I(>``43KH``%A/
- + M0JP`''`!*4``&"E``#YP`BE``#HI0`!@*7P```"$`%R3R2QX``1.KO[:*4``
- + M`$ZZ```I0``$9@I(;``23KH``%A/(&P`!$ZZ```I0``(+&P`!"!6+&@`%"E.
- + M`!1![P$P3J[_OBEO`3``#$ZZ``!.N@``(&P``"`H`*QG$.6`(D`B*0`TY8$I
- + M00`08`8I:`"$`!!*%68``.A![``J(@@L;```)#P```/N3J[_XBP`0>P`,"((
- + M3J[_XBX`0>P`-B((3J[_XBH`2H9G"$J'9P1*A68B2H9G!B(&3J[_W$J'9P8B
- + M!TZN_]Q*A6<&(@5.KO_<80#[<G`!+P`O!2\`+P<B!L%!3KH``"!L```@*``<
- + M0>\!6&$`_)Y/[P`0?`!^`&!0(FP``"!I`"0@,'@`9SXB`$/O`#`D"2QL``!V
- + M0.6+3J[^;DJ`9R8B;```(&D`)-''("@`!&<((@(D`$ZN_(Y![P%(0^\`,'`!
- + M80#\V%*&4(<@;```O*@`'&VF8``"S"QL``!.KO_**`!.KO_$*@!^`"!L```L
- + M*`#@9BA^`4'L`#PB""0\```#[4ZN_^(L`&820>P`/B((3J[_XBP`9@1A`/JD
- + M+P<O!G``+P`O!2($P4%.N@``0>\!6'`!80#[UB`\```%&F$`^HX@0#%\!```
- + M$B]``#QP0.6(80#Z>D_O`!!^0.6/+T`!.&`"4HT0%4B`2,!![``!"#```P@`
- + M9NP0%6<``A9R(K`!9C!2C29-8!!P*K`59@A*+0`!9P)2C5*-$!5G!G(BL`%F
- + MYB1-$!5R(K`!9@)2C7P"8%1P)[`59B!2C29-8`)2C1`59P9R)[`!9O0D37`G
- + ML!5F`E*-?`%@+B9-8!!P7+`59@A*+0`!9P)2C5*-$!5G$G(@L`%G#'(*L`%G
- + M!G()L`%FVB1-?``@2RH*FHL@!5*`+T@`*&$`^;8F0$JO`4QF("`%($LB;P`H
- + M3KH``$(S6`!![P%((DMP`&$`^V!@`/\FVH5R$-J!NH=O%"!O`3A.N@``(`5A
- + M`/EV+@4O0`$X+PH@!B!+(F\`+'(!80#[KEA/(@LD+P$X)@<L;```3J[\N"H`
- + M;!!"$B\O`"A(;`!$3KH``%!/2H5F(B\*(`8@2R)O`"QR`&$`^W1![P%,(DMP
- + M`&$`^NA83V``_JQZ`2!O`"Q"J``(0B@`$4(H`!`O"B`&($LB;P`L<@)A`/M`
- + M0>\!0'`080#Z)EA/(@LD+P`L+&P``$ZN_,HH`&8\8"IZ`")O`"S2_`$80>\!
- + M/'`!80#Z($J`9@1X9V`2(B\`+"QL``!.KOS$*`!*A&?2(B\`+"QL``!.KOR^
- + M<'30@+B`9PI(;`!83KH``%A/2H5G(B\*(`8@2R)O`"QR`&$`^L!![P%,(DMP
- + M`&$`^C183V``_?@@+P%`(&\!1$ZZ``!![P%(0^\!/&$`^BH@2TZZ``!@`/W6
- + M(&\!.$ZZ```@;P`L3KH``&$`^))![`!R3KH``"E```!F"$'L`'@I2```0>P`
- + M?DZZ```I0``49@8I;````!1![`"(3KH``"E``!AF"$'L`(XI2``80>P`DDZZ
- + M```I0``<9@A![`"8*4@`'$'L`*!.N@``*4``'&8(0>P`JBE(`!P@+P%,(&\!
- + M4")L`!A.N@``<`!.N@``3-]L_-[\`2Q.=0```_@````5`````0``"$X```A`
- + M```(.```""H```@B```(%```"`````?X```'Z@``!X0```;0```%3@``!3H`
- + M``18```$3```!#8```/6```"J````.````!.`````@```!(````"```(7@``
- + M"%(```A(```%+@``!"P```0D```$$```!`0```/V```#[````^@```/@```#
- + MT````\@```#J````Y````,H```"$`````````^^#```"7U]F86EL```````$
- + M```'B```!M0```/:````!H,```)`;6%L;&]C``````(```!@````%(,```)`
- + M<F5A;&QO8P````(```&R````,(,```)`9G)E90````````4```?B```'V@``
- + M!\X```:4```"1H8```)?4WES0F%S90````$```.(@P```E]?6$-%6$E4````
- + M`0```YB&```"7U]?:6]B```````&```#N@```[(```.N```#J````Z0```.>
- + M@P``!$!?86QL;V-?=&EM97(````````!```#S(,```-`7W1I;65R7W-I9P``
- + M```!```#Y(,```-`7VEN:71?9FEF;P`````!```$"(,```1`7VEN:71?<VEG
- + M;F%L<P```````0``!`R&```"7T1/4T)A<V4````'```'=```!V(```<T```&
- + MO@``!1P```34```$/(,```1`7VEN:71?=6YI>&EO`````````@``!6X```2@
- + MA@```U]?5T)E;F-H37-G``````0```4.```$Y```!+X```2DA@```E]?7V-T
- + M>7!E`````0``!;"#```"0'-T<FYC<'D````!```&;H,```)`='%S;W)T````
- + M``$```>\@P```T!?7V=E=&5N=@````````4```A$```(+@``"!@```@$```'
- + M[H8```-?7V%M:6=A7W5S97(````)```(/```"#(```@F```('```"!````@.
- + M```("```!_P```?R@P```D!M86EN`````````0``"&*#```"0&5X:70`````
- + M```!```(:`````````/Q`````P````!/4%13``0`0````_(```/J````+```
- + M``!.;R!M96UO<GD```!A`$9A:6QE9"!T;R!C<F5A=&4@=&EM97(``$Y)3#H`
- + M`$Y)3#H``$Y)3#H``"H`3DE,.@``26YV86QI9"!W:6QD8V%R9"`E<P!%<G)O
- + M<B!E>'!A;F1I;F<@87)G=6UE;G1S`%5315(``'5S97(``%5315).04U%``!(
- + M3TU%``!S.@``4TA%3$P`8FEN.G-H``!(3U-43D%-10``86UI9V$````#\@``
- + M`^L````(```#\@```^D````$("\`!%E/+H!P`%A/3G4``````_$````#````
- + M`$]05%,`!``````#\@```^D````^("\`!$CG`P`N`$JL``!G!"`'8&!\`"`'
- + M`H````$D9P)\"`@'``=G!`!&``4(!P`$9P0(Q@`""`<``6<$",8```@'``-G
- + M!`C&``$(!P``9P0(Q@`&(`=R2<"!<D"P@68$`$8`0@@'``EG!`C&``4@!@I`
- + M``],WP#`3G4@+P`$2.<&`"P`2JP``&<((`8"0`__8%YZ``I&``\(!@`#9P1Z
- + M2>6-(`9R!<"!6X!F!`C%``<(!@`"9P0(Q0`$"`8``&<$",4``2`&<D+`@6<$
- + M",4`!@@&``%G!`C%``,(!@`&9P0(Q0``"`8`!6<$",4`"2`%3-\`8$YU````
- + M``/X`````@````$```"&````#`````````/Q`````P````!/4%13``0`0```
- + M`_(```/K`````0```_(```/I`````G``3G5P`$YU```#\0````,`````3U!4
- + M4P`$``````/R```#Z0```!5(YP,`3KH``"X`?`!@"B\&3KH``%A/4H:\AVWR
- + M3-\`P$YU("\`!"\'+@!AU$ZZ``!.N@``(&P``$ZZ```O!TZZ``!83RX?3G4@
- + M+P`$+P<N'V#4``````/O@P```T!?;&%S=%]F9`````````$````&@P```E]C
- + M;&]S90```````0```!*#```$0%]C;&5A;G5P7V9I9F\```````$````N@P``
- + M!4!?8VQE86YU<%]S:6=N86QS`````````0```#*&```#7U]O9&1?=&EM97(`
- + M`````0```#:#```#0%]F<F5E7W1I;65R`````0```#J#```"7U]80T58250`
- + M```!````0`````````/Q`````P````!/4%13``0`0````_(```/I````$R`O
- + M``0B+P`((&\`#%%/2.<#)"P!+@`J2$ZZ```@!TZZ``!*@&<:(D`@:0`@+T@`
- + M%"`&(&D`!")-)&\`%$Z28`)P_TS?),!03TYU``````/O@P```T!C:&MA8F]R
- + M=`````````$````:@P```T!?9FEN9%]F9`````````$````@`````````_$`
- + M```#`````$]05%,`!``````#\@```^D```"8GOP`#$CG+S8J;P`T?@/.KP`X
- + M?`$@;```)F@`N"H\```#[$ZZ``!*AV<*<`*^@&<$<@!@`G(!+T$`*'`!OH!G
- + M"%6'9P1P`&`"<`$O0``L($U#[```3KH``$J`9@9X_V```51P_R!L```A0`"X
- + M(@TL;```=/Y.KO^L+@`@;```(4L`N$J`9G@L;```3J[_?$ZZ```L`"`L``!R
- + M+D8!L(%G!$J`9@I^`2H\```#[F`6(`95@&8,""\`"``Z9P1P`6`"<``N`$J'
- + M9RQ\``@O``@`.F<<""\`#P`Z9P9X`F```-8@+P`\3KH``"@`8```R'C_8```
- + MPBE&``!P_V```4)"IRQL``!R`B0/3J[_'$_O``0D0$J`9PPB!R0*3J[_FDJ`
- + M9A8@"F<()`IR`DZN_Q9.N@``</]@``$(*"H`="0*<@).KO\6(@=.KO^F<%#I
- + MB,"O`#@,@```!0!F#'`1*4```'#_8```VDJO`"AG!@@$``-F#$JO`"QG$@@$
- + M``)G#'`-*4```'#_8```M@@O``D`.F<B(@TD/````^Y.KO_B2H!G""(`3J[_
- + MW&`*3KH``'#_8```C`@O``@`.F<$(`5@!B`\```#[20`(@TL;```3J[_XBH`
- + M9@A.N@``</]@8`@O``D`.F8$2H9F!"P$8`)\_WX`2J\`*&<"?@%*KP`L9P0(
- + MQP`!""\``P`[9P0(QP`#+P<@!2(&3KH``%A/+@!L''#_(&P``"%``+@B!2QL
- + M``!.KO_<(&P``"%+`+@@!TS?;/3>_``,3G4@;P`$+R\`#"\O``PO"&$`_:A/
- + M[P`,3G4```/X`````0````$```!2`````````^^&```!7U]U<P````4```(V
- + M```")````'P```!F````%H,```-`8VAK86)O<G0````````!````)(,```)`
- + M<W1R:6-M<`````$```!6A@```E]$3U-"87-E````!0```BX```',```!`@``
- + M`(@```!P@P``!$!C;VYV97)T7V]S97)R```````!````D(8```)?7T]315)2
- + M``````$```"6@P``!4!?;6%K95]P<F]T96-T:6]N`````````0```.:&```"
- + M7V5R<FYO```````#```!@@```5X```#V@P```D!?<V5T97)R`````P```=@`
- + M``&L```!,(,```1`7V%L;&]C7V%M:6=A9F0``````0```A@````````#\0``
- + M``,`````3U!44P`$`$````/R```#Z@````).24PZ`````````_(```/I```%
- + M:"!O``1(YS@`</_`*``#<@`2`'#_P"@``G0`%`!P_\`H``%V`!8`</_`$'@`
- + M&`#AA(B#X82(@N&$B($@!$S?`!Q.=4CG(S1+[`!R0>P`'$7L``PDR$'L`"`D
- + MR$*L`!A"FGX`+"P`>D?L![Q@/"`K``0B`.6!($W1ZP`(0^@'ZD7L``PEB1@`
- + M2H!G!G`!*4``&$J'9P9*JP`$9@@@$T2`*4``%%*'UOP`$+Z&;<!^`"PL`'9@
- + M.G``(@<&@0``!=@0-1@`2,#I@"!-(@`&@0``!U+1]1@`!H````=.)#4(`.6"
- + M0^@'ZD7L``PEB2@`4H>^AFW"3-\LQ$YU(&\`!")O``B>_`HH2.<[-B](`"@O
- + M20`L(`AF"$WL`"0O3@`H<#H@;P`HL!!F!%*O`"@@;P`H<#I.N@``2H!F3G`*
- + M(@`@;P`H(`A*&&;\4XB1P-*(4H%P0;*`909P_V```DQ![``P0^\`,1+89OQ!
- + M[P`Q0^P`/$ZZ``!![P`Q(F\`*$ZZ``!![P`Q+T@`*$*G+R\`+$ZZ``!03RX`
- + M4H!F!G#_8``"""`'0>\`<B(\```)VDZZ```L`"`'3KH``$J`9@9P++R`9`9P
- + M_V```>!![P"*80#^."X`0>\`CF$`_BXJ;P`L*H!![P"280#^("M```1![P"6
- + M80#^%"M```A![P":80#^""M```PB%6LP=#*R@FXJ)BT`"&\D>`JVA&X>*"T`
- + M!&L8#(0```%R;A!*@&L,L()N"+:'9PI*AV<&</]@``%JTH'E@2`M``@D`-2"
- + MU(#4@B`M``0F`.6#UH#6@M:M``S6@=:'<"S6@+R#9`9P_V```3A'[P">?``D
- + M36`0($MA`/V()4``$%B+4H98BKRM``1MZGP`8"`0&R(&!H$```78&X`8`'(`
- + M$@"RK0`(;09P_V```/92AKRM``1MVGP`0>T'2B1(+T@`)&!*($MA`/TZ)(!+
- + MZP`%$"L`!'(`$@`E00`$9PI3@6<&</]@``"\1^T``1`5<@`2`"5!``AM"BIO
- + M`"RRK0`,;P9P_V```)Q2AM3\`!"\K0`(;;!\`&`.(`8&@```!^H;FP@`4H:\
- + MK0`,;>P@!@:````'ZD(U"`!\`-K\"!Y@'B!+80#\OBJ`1>L`!"!*80#\LBM`
- + M``1'Z@`$4H90C2!O`"R\D&W:?``D;P`D*F\`+&`H2H=F!D*J``Q@&!`;2(!(
- + MP"5```QR`;"!9PA*@&<$</]@#E*&U/P`$+RM``AMTG``3-]LW-[\"BA.=2!O
- + M``193R\-*DA@`E*-$!4?0``$9R9(@$C`0>P``0@P``((`&86$"\`!'(LL`%G
- + M#'(ML`%G!G(KL`%FT"`-*E]83TYU(&\`!")O``@@+P`,(B\`$%E/2.<'%"P!
- + M+@`F22I((`UG$A`52(!(P$'L``$(,``""`!F!'``8$IZ`&`B$"\`%$B`2,`B
- + M!>6!TH72@=*`*@%P,)J`NH9O!'``8"92C1`5'T``%&<02(!(P$'L``$(,``"
- + M"`!FQKJ';`1P`&`$)H4@#4S?*.!83TYU(&\`!")O``A93TCG`!0F24/O``AP
- + M`'(880#_;"I`2H!F!'``8&H@+P`((@#I@9*`(`'I@)"!Z8`F@'`ZL!5F3D'M
- + M``%#[P`(<`!R.V$`_S@J0$J`9@1P`&`V("\`""(`Z8&2@.6!TY-P.K`59B!!
- + M[0`!0^\`"'``<CMA`/\**D!*@&8$<`!@""`O``C1DR`-3-\H`%A/3G4@;P`$
- + M(F\`"%E/2.<!%"I)+T@`#!`0<BVP`68(?@%2KP`,8#!(@$C`0>P``0@P``((
- + M`&88<BL@;P`,LAA7P$0`2(!(P"](``Q*@&<$?@!@!'``8!P@;P`,(DUA`/\4
- + M)D!*@&8$<`!@"$J'9P)$E2`+3-\H@%A/3G4@;P`$(F\`")[\``Q(YP`D*DDO
- + M2``0<$JP$&8H0I5#Z``!0>T`!"](``P@22)O``QP`2(\```!;6$`_CPO0``0
- + M8```M'!-L!!F?'`"*H!#Z``!0>T`#"](``P@22)O``QP`7(,80#^$")`2H!F
- + M!G``8```P$7I``%P+K`19P9P`&```+!![0`((D@@2G`!<@5A`/WD(D!*@&8&
- + M<`!@``"41>D``7`NL!%G!G``8```A$'M``0B2"!*<`!R!F$`_;@O0``08#`0
- + M$$B`2,!#[``!"#$``@@`9QIP`2J`0^T`!'``(CP```%M80#]C"]``!!@!'``
- + M8#P@+P`09@1P`&`R<"\@;P`0L!!F'$/H``%![0`0+T@`#"!)(F\`#&$`_=HO
- + M0``08`@K?```'"``$"`O`!!,WR0`WOP`#$YU("\`!"(O``@@;P`,+V\`$``$
- + MGOP`)$CG/Q0J2"H`+@$D!W8#Q(,O0``X+T$`/$J"9@P@!W)D3KH``$J!9A(@
- + M!W)DY8E.N@``2H%G!'``8`)P`2P`(!5*@&<,4X!G2%.`9V9@``%^("T`!"(`
- + M4X$D`=2"U($F`NF#EH(D`^F"E(/O@BX%WH(O1P!`2H9G``%4<CRP@6T``4P&
- + MAP`!48`O1P!`8``!/B`M``0B`-*!TH`D`>F"E($B`NF!DH+O@=J!+T4`0&``
- + M`1PH!7X`*BT`#%.%(`;0@-"&Z8!'[``^U\`O0``@8!H@&R(`TH'2@"0!Z8*4
- + M@2("Z8&2@N^!V(%2A[Z%;>(N+P`\+T0`)"(M``QT`K*";@8F!U.#8`(F!R`#
- + M<F1.N@``(@#2@4J`:@)6@.2`+T``+"`#+T$`,')D3KH``"`!:@)6@.2`=@G6
- + MK0`,+T``-"`#+T$`*'(,3KH``%*!(`'G@)"!T("0@="`58!R"DZZ``!'[P`H
- + MT)O0KP`TT)N0FU*`<@=.N@``+@%J`EZ'+"T`!)R':@)>AGH!*"T`"&`<+@9>
- + MAR(M``SE@4'L`#K1[P`@OK`8`&P(+`=2A;J$;>`@!M"`T(8B`.F!DH`@`>F`
- + MD('O@"(O`"32@"]!`$`@+P!`T*T`$-"O`$A,WRC\WOP`)$YU(&\`!")O``@@
- + M+P`,GOP`6$CG/S8J2"Q-1^\`-";`)L@FR2].`#!*@&<<(`A*&&;\4XB1P"P(
- + M(@C3KP`X<#.R@&4<?#)@&&$`^JHL`)R-+T``.'(#O(%L!G#_8``#>B]&`"P@
- + M;P`X2A!F!G#_8``#:$/O`'1A`/OF+T``.&8&</]@``-4)F\`/$'L`*8B2V$`
- + M][`N`&<"0I,@;P`X2A!G``*^*D@O2`!\80#Z2"(`DHTO0``X+T$`>'8#LH-L
- + M!G#_8``#%"!O`#@0$&<@<BRP`6<:<CNP`6<40^\`<&$`^WXO0``X9A1P_V``
- + M`NP@//__\?#0KP!T+T``<"!O`#@0$'(LL`%G"'([L`%F``%80^@``2!)0^\`
- + M7&$`^[HJ0$J`9@9P_V```K!%[0`!<"RP%6<&</]@``*@($I#[P!(80#[E"]`
- + M`#AF!G#_8``"BB!O`#A*$&<&</]@``)\($MP`B%```@A?````(@`!"`O`'!$
- + M@$WH!THLP'`!+,!2ABS&("\`=$2`3>@'6BS`0IY"GM;\`!!%Z`78>@`L/```
- + M![(@2B\O`'0O2``L(`4B!D'O`&!A`/QF+@`NKP!T(`4B!D'O`$QA`/Q46$\H
- + M`$OJ``)%ZP`(OH!O&B!+((1P`2)O`"@2@"9*(4<`!"1-0BD``6`8($L@AR)O
- + M`"A"$29*(40`!"1-$WP``0`!(`9R`\"!9@P@!G)D3KH``$J!9A(@!G)DY8E.
- + MN@``2H%G!'``8`)P`2(`Y8%![`">(#`8`"(`TH'2@"8!Z8.6@20#Z8*4@^^"
- + MVH)2A@R&```']6\`_T)@``$<(&\`.$H09P9P_V```69*AV<&</]@``%<>`!\
- + M`'H`0J\`1'X`*DM@<$JM!TYG/B`O`$0B!^F!)"\`<`:!```'2B8S&`#6@B]#
- + M`$1*AF<*L(-G!G#_8``!'$2"*T('2B`O`"Q2@"M`!U)\`6`F(`4B+P!T*BT'
- + M2MJ!2H1G"K"%9P9P_V```.Y$@2M!!TI"K0=2>`%2A]K\`!"^JP`(;8I*AF<$
- + M2H1F!G#_8```R'P`?@`J2R@O`$1@.G``(@<&@0``!=@0,Q@`2,#I@"!+T<!#
- + MZ`=*+TD`0$J&9PI*J0`,9@0@!&`"(`71K0`0+"D`!%*'6(V^JP`$;<!@('``
- + M<@$G00`()T``!"0O`'1$@DWK!THLPBS`+,`O0`!X*F\`/"XO`"P@!U*`*T``
- + M#"PO`'AG"-"&4H`K0``,<C.P@6,$</]@,-K\!^H@!R!-(F\`,$ZZ```@3=''
- + M2^@``4(02H9G$"`&($TB;P!\3KH``$(U:`!P`$S?;/S>_`!83G4@;P`$+PTJ
- + M2$'L```B36$`]%!*@&<,0>P``")-<`%A`/P,*E].=2\-0>P`LDZZ```J0$J`
- + M9@8J7V```%QP`2E`$\Y*%68>0JP`<D*L`'9"K`>\0JP'Q$'L``!#[`A<$MAF
- + M_&`L($U#[`!R80#S]$J`9QYP.K`59Q`@34/L`')P`&$`^ZI*@&<(0>P`<F$`
- + M_W8J7V``\PYP`2E`$\Y#[`!RD<AA`/.\2H!G"$'L`')A`/]48`#R[B!O``0@
- + M+P`((F\`#)[\`!!(YP,4*DE([P$!`!`@;P`4+U``&$JL$\YF!&$`_T1*K`!V
- + M9PH@+P`8L*P`@FP@?@!'[`!R8!!2A];\`!"^K`!Z;01^`&`R2JL'3F;J8"I^
- + M`4?L`'8L+`!V8`X@+P`8L*L`$&T(4H=8B[Z&;>Y#[`!RT\=^`!XI!=?IAT'L
- + M![S1QR\-+T@`("`00>\`'$/L`')A``#"(&\`("(H``0K00`@Y8%![`A<(F\`
- + M(-'I``A#[``,(X@8`"M(`"A83TS?*,#>_``03G4@;P`$0^P``'``80#_*D'L
- + M```@"$YU(&\`!"`O``@B;P`,2.<!%"X`)DDJ2$JL$])F#G`!*4`3TD'L"B!A
- + M`/XZ+PL@!R!-0^P*(&$``$)83TJ'9P9![`"Z8`1![!(*)T@`*$S?*(!.=2!O
- + M``1#[``L<`!AKD'L`"P@"$YU(&\`!"`O``@B;P`,+V\`$``$GOP`#$CG#S0N
- + M`"9O`"PJ2'P`>@`H$2`$YX`O20`@T\!%Z0@>8$`O2@`D(!6PDFTV(&\`)+"0
- + M9BA*A&8&("@`!&X:YX0B*``$(F\`(`:$```(&K*Q2`!N!'``8`)P`2H`+"@`
- + M!&`&4X11BFRZ(!4B/``!48!.N@``*``@%2(\``%1@$ZZ``#2AY*&+`%@"`:&
- + M``%1@%.$2H9K]&`(!(8``5&`4H0,A@`!48!L\"`&(CP```X03KH``"=```@@
- + M!B(\```.$$ZZ```@`2]!`!QR/$ZZ```G0``$("\`''(\3KH``":!2H5G`E*3
- + M(`18@'('3KH``"=!`!AL!%ZK`!@L/```![)*A&M`(`9R`\"!9@P@!G)D3KH`
- + M`$J!9A(@!G)DY8E.N@``2H%G!'``8`)P`2H`(@#E@47L`)X@,A@`N(!M0%*&
- + MF(!@P%.&(`9R`\"!9@P@!G)D3KH``$J!9A(@!G)DY8E.N@``2H%G!'``8`)P
- + M`2H`Y8!![`">V+`(`$J$:\8$A@``!VPG1@`4)T0`'"`%T(#0A>F`1>P`/M7`
- + M0JL`$&`.(BL`$.6!F+(8`%*K`!`B*P`0Y8&XLA@`;.92A"=$``Q"JP`@)T<`
- + M)$S?+/#>_``,3G4@;P`$+PTJ2"`M`!@B`-*!TH!![`"^T<$@+0`0(@#2@=*`
- + M0^P`T]/!(#P```=LT*T`%"\`+Q4O+0`$+RT`""\M``PO"2\(2&P`^$AL`%A.
- + MN@``3^\`)$'L`%@@""I?3G4@;P`$+PUA`/TX($`J7V"4(&\`!")O``@@+P`,
- + M+P<N`"`1L(=M%"('3KH``-&0(!$B!TZZ```B@6`J2H!J)E.0WY%L("`11(`B
- + M!TZZ```B$)*`4X$@@2`11(`B!TZZ``">@2*'+A].=2!O``0B;P`(2.<!%"9)
- + M*D@N+0`4GJL`%&8L+BT`$)ZK`!!F(BXM``R>JP`,9A@N+0`(GJL`"&8.+BT`
- + M!)ZK``1F!"X5GI,@!TS?*(!.=2!O``0B;P`(("\`#"]O`!``!)[\`'!(YS\T
- + M+@`J;P"8+TD`+$*5+T@`*$/O`%QP"B+84<C__"`O`%QR/K"!;`1*@&H.0>\`
- + M8$/O`%QP/&$`_Q9![P!D0^\`8'`\80#_"$'O`&A#[P!D<!AA`/[Z0>\`<$/O
- + M`&QP#&$`_NQ@3"`O`'!3KP!P!H````=K(@!T`\*"9@IR9$ZZ``!*@68:(#P`
- + M``=LT*\`<')DY8E.N@``2H%G!'``8`)P`2(`Y8%![`">(#`8`-&O`&@@+P!H
- + M;ZXL/```!VS<KP!P(`9R`\"!9@P@!G)D3KH``$J!9A(@!G)DY8E.N@``2H%G
- + M!'``8`)P`20O`&SE@B8`UH/6@.F#0>P`/M'#+#`H`"`O`&BPAF\:1^\`:)V;
- + M4I,,FP````QMGD*O`&Q2KP!P8)0@+P!<0J\`7'H`<@$O00"(+T``)%*%("\`
- + MB-"`+T``B"`O`(AN[B`O`(AJ!'``8`1P`>N@+T``B$AO`#`O!TAO`)`@;P`X
- + M3I!![P`\0^\`:&$`_BQ/[P`,*`!G+B`%4X5*@&H&</]@``$02H5J!E.O`(A@
- + MQ'`!ZZ`L`$J$;P:=KP"(8+3=KP"(8*X@+P!\:P``Q"(O`%"R@&<``+I!^OGB
- + M(F\`++/(9@9!@``"(("L'3K"O`'QF=GH`)&\`
- + MD&!D("H'3K"O`'QG5"`%Z8`B+P"((&\`D`:````'2M*P"`"2JP=*+T$`C$AO
- + M`#`O!TAO`)0@;P`X3I!![P`\0^\`:&$`_6Q/[P`,2H!F$B`O`%"PKP!\9@@O
- + M;P",`(A@)E*%U/P`$"!O`)"ZJ``(;9)2AM;\`!`@;P"0O*@`"&T`_W!P_V`D
- + M("\`)-&O`(@O+P`H+P=(;P"0(&\`.$Z0<`$J@$_O``P@+P"(3-\L_-[\`'!.
- + M=2!O``0B;P`(("\`#)[\``Q(YP<T+@`J2"])`!@,K0````$`(&\&<`$K0``@
- + M2&\`'"`'($UA`/T>6$\L`$JO`!QF!B`M`"!J!B`&8```QD'Z^*XB;P`8L\AF
- + M!D'L`')@!$'L"B!\`"9(+T@`(&```)8@*P=.L*T`(&8``(1Z`"1O`"!@<"`M
- + M`"`B*@=.LH!G7B`%Z8`B%2!O`"`&@```!TK2L`@`DJL'2BJ!2JT`(%?`1`!(
- + M@$C`*T``($AO`!P@!R!-(F\`'&$`_(Q83TJO`!QF0"`5D*H'2M"K!THJ@$JM
- + M`"!7P$0`2(!(P"M``"!2A=3\`!`@;P`@NJ@`"&V&4H;6_``0(&\`(+RH``AM
- + M`/]B</],WRS@WOP`#$YU(&\`!"\-0_KWVG``*E]@`/[@2JP3SF8$80#W+$YU
- + M``````/X````'0````$``!*X```29@``$-@``!"T```0I```$%0``!`R```/
- + M\@``#H(```X6```,^```#,H```RX```,J@``"O@```E*```(>```!Z0```%L
- + M```!7````18```#F````H````(X```"`````7````%8```!0````3````"L`
- + M```"```5E```%,8``!3````3D@``$XP``!#H```0W```#J(```Z:```.B```
- + M#G0```YF```.8@``#EH```X\```.,@``#@H```WT```-X@``#=0```V\```-
- + MN```#:0```V8```-D```#88```U\```-3```#3X```TZ```-*@``#1P```T(
- + M```,_```#/0```SP```,[```#.@```S@````L````&@```!D````2```````
- + M``/O@P```D!S=')C:'(``````0```3*#```"0'-T<F-A=``````"```!?```
- + M`7"#```"7V]P96X````````!```!CH,```)`<F5A9`````````$```&L@P``
- + M`D!C;&]S90```````0```;2&```"7U]?8W1Y<&4````%```&6@``!3X```1>
- + M```$'````\J#```"7U]#6$0S,P`````<```2G```$HX``!)4```2/@``$4X`
- + M`!$\```1)```$1H``!`@```0$@``#]X```_0```/K```#YH```^,```/@```
- + M#W````\^```/,```"N8```K8```(4@``"#P```@F```("```!^P```<.```'
- + M`(,```)`<W1R;F-P>0````(```R.```,=(,```-`7U]G971E;G8````````!
- + M```,SH,```)?<W!R:6YT9@````$``!#@`````````_$````#`````$]05%,`
- + M!`!````#\@```^H```!(1TU4`"`@(``@("``````!`````@``````````"`@
- + M(``@("``<SIL;V-A;'1I;64`<SIZ;VYE:6YF;P``+P`````?````'````!\`
- + M```>````'P```!X````?````'P```!X````?````'@```!\````?````'0``
- + M`!\````>````'P```!X````?````'P```!X````?````'@```!\```%M```!
- + M;G!O<VEX<G5L97,``%5.25A46@``("`@`%-U;DUO;E1U95=E9%1H=49R:5-A
- + M=$IA;D9E8DUA<D%P<DUA>4IU;DIU;$%U9U-E<$]C=$YO=D1E8P`E+C-S("4N
- + M,W,E,V0@)3`R+C)D.B4P,BXR9#HE,#(N,F0@)60*```````#[`````(````!
- + M````$`````P````````#\@```^L```3V```#\@```^D```&<GOP`#$C7`0-P
- + M_][\``Q.=5%/2-<#`%!/3G5(YS`"(A!**``-9P1P`&`<)`DF`"QL``!.KO_6
- + M(@!2@&8(3KH``'#_8`(@`4S?0`Q.=5%/2.<_-BX`*DDF2"P3+T8`*"](`"Q*
- + M*P`-9P9P`&```(Q**P`,9V8F3=?'>@!@6"1-8`)2BK7+9`9P"K`29O2WRF8$
- + M*`I@!D'J``$H")B-(B\`*"0-)@0L;```3J[_T"P`4H!F"$ZZ``!P_V`^VH:V
- + MAF8V2^H``9Z&<`!.N@``3KH``$J`9B)*AV:D8!PB!B0-)@<L;```3J[_T"H`
- + M4H!F"$ZZ``!P_V`"(`5,WVS\4$].=5E/2.<_`BX`+!`O00`<2B@`#6<$<`!@
- + M4E.!)@$B!B0'+&P``$ZN_[XJ`$ZN_WPH`%*%9P1*A&<.(`1.N@``*4```'#_
- + M8"0B!G0`)@).KO^^+`!2@&<$2H1G#B`$3KH``"E```!P_V`"(`9,WT#\6$].
- + M=9[\`0!(YS\&+@`J2"P5*BT`""`M``1G"B(`+&P``$ZN_Z88+0`-2(1(Q"!-
- + M3KH``$J$9P1P`&!$(@9![P`@)`@L;```=D#EBTZN_F@H`$J'9@HB!DZN_]Q*
- + M@&<:2H1G$G#_NH!G#"(")`5.KO]&2H!G!'``8`9.N@``</],WV#\WOP!`$YU
- + M("\`!$CG(`(B`"QL``!T`$ZN_S1.KO]\="Y&`K""5\%$`4B!2,$@`4S?0`1.
- + M=2`O``0@;P`((F\`#)[\`!!(YS<6+@`F22I(?`!AN$J`9GPB!RQL``!T`4ZN
- + M_E9*@&=L(@=![```)`AV!$ZN_]!9@&92(@<D/```)Q!.KO\T2H!G0B('0>\`
- + M("0(=A!.KO_6<@FP@6\N<)NP+P`@9B9![P`E(@@D"TZN_-`J`$'O`";1P"((
- + M)`U.KOS04H!G!E*%9P)\`2('=`!.KOY6(`9,WVCLWOP`$$YU("\`!"(O``B>
- + M_`(02.<_!BX`</\O0`(H+T$`)"('+&P``'0`=@%.KO^^+T``("('3J[_OBP`
- + M3J[_?"H`+T`"+&8``,(H+P`D(@<D!';_3J[^.+""9@``KKR";```GBH$FH8H
- + M!2`$<@%(02QX``1.KO\Z*D!*@&9J<@)(04ZN_RCBB"H`#(4```(`;1`@!7(!
- + M2$%.KO\Z*D!*@&9&>D#GC4OO`"@P/`'_<@!![P`H$,%1R/_\8"RXA6\$(`5@
- + M`B`$)@!.N@``(@<D#2QL``!.KO_0L(-G"DZN_WPO0`(L8`:8@TJ$;M!![P`H
- + ML<UG#")-(`4L>``$3J[_+BHO`BQF!$*O`B@L+P`@O*\`)&P.(@<D!BQL``!V
- + M_TZN_[XL+P(H9PH@!4ZZ```I0```(`9,WV#\WOP"$$YUGOP!"$CG-Q8N`"9)
- + M*D@L%4HM``UF``$8(`<$@```!`!G(`2````$`&=*4X!G6%.`9UQ3@&=>4X!G
- + M9E.`9VQ@``#N2BT`#&<F(`9![P$D0^\!(&$`_=9*@&<4("\!)#=```(@+P$@
- + M-H!P`&```,IP&6```+XB!BQL``!.KO\H)H!P`&```+(FAG``8```JG``8```
- + MI"`&(A-A`/XV8```F"M3``AP`&```(XJ$TJM``1F#B(5+&P``$ZN_HPK0``$
- + M("T`!&=B)``B!2QL``!.KOY<2H!F4B(&0>\`("0(=D#EBTZN_FA*@&<^(@5.
- + MKO^F(BT`!$ZN_Z8B!DZN_]PB`G0`3J[_1AM\``$`#2J"*T(`!$'O`"`B""QL
- + M``!.KO^X2H!G!"`"8`Y.N@``8`9P%BE```!P_TS?:.S>_`$(3G4@+P`$(B\`
- + M""]O``P`!$CG#P8J+P`<+`$N`'`.3KH``"I`2H!F"G`,*4```'#_8$Y#U2+'
- + M0IDBQD(M``TB!RQL``!.KO\H&T``#$AZ_G1(>OO:2'K[9$AZ^JQ(>OIV2'KZ
- + M:"`%($U#^OI03KH``$_O`!@H`&P&($U.N@``(`1,WV#P3G4@+P`$(B\`""]O
- + M``P`!"]O`!``""]O`!0`#"]O`!@`$$CG#0`H+P`4*B\`$"X`<`!*@68$<$#E
- + MB`!```$O`"`'<O]A`/]&6$]*@&9`<`!*A&8$<$#EB`!```(O`"`%<O]A`/\H
- + M6$]3@&8B<`!*KP`<9@1P0.6(`$```B\`("\`''+_80#_!EA/58!G$$'L``8O
- + M2``03-\`L$[Z``!,WP"P3G4``````_@````"`````0``!EH```)<````````
- + M`^^&```"7T1/4T)A<V4````0```%B```!2(```34```$O@``!(````/D```#
- + MG````O````),```"!````;0```&.```!(@```.(```"F````,(,```)`7W-E
- + M=&5R<@````4```4R```!Z@```/````"T````/H,```1`7V-H96-K7W-I9VYA
- + M;',``````0```,J#```$0%]H86YD;&5?<VEG;F%L<P````$```#.@P``!$!C
- + M;VYV97)T7V]S97)R```````#```#]@```5X```$\A@```E]E<G)N;P``````
- + M!0``!7(```4Z```#^@```6(```%`@P```D!F<F5E`````````@``!<(```&@
- + M@P```T!C:&MA8F]R=`````````$```.4@P```D!M86QL;V,``````0``!6:#
- + M```#0%]A;&QO8U]F9````````0``!;2#```"7U]F86EL```````!```&9@``
- + M``````/Q`````P````!/4%13``0`0````_(```/J````")LP('$``$9A:6QE
- + M9"!T;R!I;FET:6%L:7-E($DO3P`````#\@```^D````G(&\`!")O``A(YR$6
- + M)DDJ2$ZZ```B#20++&P``$ZN_[)*@&<$<`!@;$ZN_WPN`'(T1@&P@692(@).
- + MKO^X2H!G#B(-3J[_LDJ`9P1P`&!&3J[_?"X`<F_2@;"!9BPB`G0`3J[_1DJ`
- + M9QHB"TZN_[A*@&<0(@TD"TZN_[)*@&<$<`!@$DZN_WPN`"`'3KH``"E```!P
- + M_TS?:(1.=0`````#[X,```-`8VAK86)O<G0````````!````$H8```)?1$]3
- + M0F%S90````$````:@P``!$!C;VYV97)T7V]S97)R```````!````C(8```)?
- + M97)R;F\```````$```"0`````````_$````#`````$]05%,`!`!````#\@``
- + M`^D````.(&\`!"`O``@B+P`,GOP`#$C7`0-P`-[\``Q.=2`O``0B+P`(+V\`
- + M#``$44](UP`#<`!03TYU``````/Q`````P````!/4%13``0``````_(```/I
- + M````$"!O``0B;P`(("\`#$CG`10N`"9)*DAF!'``8!P@!R!+(DUR`$J`9PX2
- + M&)(99@13@&;V2(%(P2`!3-\H@$YU``````/Q`````P````!/4%13``0`````
- + M`_(```/I````=2!O``0B;P`(+V\`#``$("\`$"]O`!0`"$CG!S0N`"1O`"`F
- + M22I(+"L`="2O`!Q"J@`2<`$U0``.0FH`$"5\```"```R-4``#"5K`(``-B`K
- + M`'QF$"(K``1O"B5\```(```68`0E0``6)5,`!$'K`(1.N@``)4``(B5``!HE
- + M0``J("L`!%J`9SY5@&=068!G0%6`9F8@#6<<2'@`_TAL```O#4ZZ``!/[P`,
- + M*@!O!B5%`!9@""5\```!```6)7P``*````A@2B5\```0```(8$`E?```0```
- + M"'P`8#1*DV802BL`"&8*)7P``"````A@("5\``"````(8!8@*P`$;P9P0.&(
- + M8`8@/```@``E0``(2H=G`GP`(`9.N@``@:H`"$S?+.!.=2!O``0B;P`(64](
- + MYR,6*DA^`"])`!A"IRQL``!R`B0/3J[_'$_O``0F0$J`9U`B#73^3J[_K"X`
- + M9T0B!R0+3J[_FDJ`9S@B!TZN_RY*@%?&1`9(ADC&2H!G!B(`3J[_IB`'Y8`O
- + M+P`8($`O*``,(D(@!B!-80#^?%!/?`!@#GS_3J[_?$ZZ```I0```2H=G!B('
- + M3J[_IB`+9P@D"W("3J[_%B`&3-]HQ%A/3G4``````_@````!`````0```)X`
- + M```````#[X,```-`7V%M:6=A,F=M=``````!````<H,```-?<F5A9&QI;FL`
- + M```````!````I(,```-`7VUA:V5?;6]D90`````!```!&H8```)?1$]30F%S
- + M90````$```%`@P``!$!C;VYV97)T7V]S97)R```````!```!K(8```)?97)R
- + M;F\```````$```&P`````````_$````#`````$]05%,`!`!````#\@```^L`
- + M``!````#\@```^D````%(&\`!"`O``AR`&`"$,%3@&3Z3G4```/Q`````P``
- + M``!/4%13``0``````_(```/I````#"`O``0B+P`(64\O!RX`+T$`!$ZZ``!(
- + M;P`$2'@(`R\'3KH``$_O``PN'UA/3G4``````^^#```#0&-H:V%B;W)T````
- + M`````0```!2#```"7VEO8W1L```````!````(@````````/Q`````P````!/
- + M4%13``0``````_(```/I````#2`O``0B+P`(64\O!RX`(`%.N@``+T``!$ZZ
- + M``!(;P`$2'@(!"\'3KH``$_O``PN'UA/3G4```/O@P``!4!?;6%K95]P<F]T
- + M96-T:6]N`````````0```!*#```#0&-H:V%B;W)T`````````0```!J#```"
- + M7VEO8W1L```````!````*`````````/Q`````P````!/4%13``0``````_(`
- + M``/I````$"!O``0@+P`((B\`#)[\``Q(UP$#</\I0```WOP`#$YU(&\`!"`O
- + M``@B+P`,GOP`#$C7`0-P_RE```#>_``,3G4```/OA@```E]E<G)N;P``````
- + M`@```#@````8`````````_$````#`````$]05%,`!`!````#\@```^D````-
- + M("\`!%E/+P<N`$ZZ``!(;P`$2'@(`"\'3KH``$_O``Q*@&<$<`!@!"`O``0N
- + M'UA/3G4``````^^#```#0&-H:V%B;W)T`````````0````R#```"7VEO8W1L
- + M```````!````&@````````/Q`````P````!/4%13``0``````_(```/I````
- + M#R`O``1(YP8`3KH``"P`<`!.N@``8`9P`$ZZ```J`"`%3KH``$J`9^X@!DZZ
- + M``!P!"E```!P_TS?`&!.=0```^^#```#0'-I9W-E=&UA<VL``````@```"P`
- + M```*@P``!$!?8VAE8VM?<VEG;F%L<P`````!````$H,```1`7W=A:71?<VEG
- + M;F%L<P```````0```!J#```$0%]H86YD;&5?<VEG;F%L<P````$````BA@``
- + M`E]E<G)N;P```````0```#(````````#\0````,`````3U!44P`$`$````/R
- + M```#Z0```"@@;P`$2.<C%BI(?@!"IRQL``!R`B0/3J[_'$_O``0F0$J`9U(B
- + M#73^3J[_K"X`9T8B!R0+3J[_FDJ`9SHB*P`$7L!$`$B`2,`L`"('3J[_IG("
- + M3J[_%DJ&9Q0B#4ZN_[A*@&<$<`!@,DZZ``!@*G`4*4```&`B3J[_?$ZZ```I
- + M0```2H=G!B('3J[_IB`+9P@D"W("3J[_%G#_3-]HQ$YU```#[X8```)?1$]3
- + M0F%S90````$````0@P```D!?<V5T97)R`````0```&J&```"7V5R<FYO````
- + M```"````@````'*#```$0&-O;G9E<G1?;W-E<G(```````$```!\````````
- + M`_$````#`````$]05%,`!`!````#\@```^D```&7(&\`!"`O``@B;P`,+V\`
- + M$``$+P<N`"E(`!XI0``:<@&P@64>+R\`""\)80``)%!/2H!G#B!L`!Y"$"`'
- + MD*P`&F`"<``N'TYU(&\`!")O``A(YP`4)DDJ2&``!/@0%7(EL`%F``3*4HT0
- + M%4B`2,!*@&<``-9R)9"!9P`$M'(<D(%G``#,4X!G``$F4X!G``&`4X!G``&B
- + M68!G``'L4X!G``($68!G``*:6X!G``,.4X!G``,P4X!G``-84X!G``-Z58!G
- + M``.@4X!G``-&4X!G``0F4X!G``1"7X!G``"B4X!G``#\4X!G``$Z4X!G``%<
- + M4X!G``%T5X!G``#D58!G``'24X!G``'N4X!G``(&4X!G``),4X!G``)H58!G
- + M``)V58!G``*J4X!G``+44X!G``+T5X!G``-F4X!G``-^4X!G``.,8``#Z%.-
- + M8``#XB`K`!AK!G(&L(%O!G``8``#_B(K`!CE@4'L`'8O,!@`80`$QEA/2H!F
- + M``/88``#X"`K`!AK!G(&L(%O!G``8``#SB(K`!CE@4'L`!PO,!@`80`$EEA/
- + M2H!F``.H8``#L"`K`!!K!G(+L(%O!G``8``#GB(K`!#E@4'L`4XO,!@`80`$
- + M9EA/2H!F``-X8``#@"`K`!!K!G(+L(%O!G``8``#;B(K`!#E@4'L`,(O,!@`
- + M80`$-EA/2H!F``-(8``#4$'L`7XB2V$`_CI*@&8``S1@``,\0>P!E")+80#^
- + M)DJ`9@`#(&```RA![`&F(DMA`/X22H!F``,,8``#%$AX`#!(>``"+RL`#&$`
- + M`WI/[P`,2H!F``+N8``"]DAX`"!(>``"+RL`#&$``UQ/[P`,2H!F``+08``"
- + MV$AX`#!(>``"+RL`"&$``SY/[P`,2H!F``*R8``"NB`K``AR#$ZZ``!P#$J!
- + M9P(@`4AX`#!(>``"+P!A``,03^\`#$J`9@`"A&```HP@*P`<4H!(>``P2'@`
- + M`R\`80`"[D_O``Q*@&8``F)@``)J2'@`($AX``(O*P`(80`"T$_O``Q*@&8`
- + M`D1@``),("L`"'(,3KH``'`,2H%G`B`!2'@`($AX``(O`&$``J)/[P`,2H!F
- + M``(68``"'DAX`#!(>``"+RL`!&$``H1/[P`,2H!F``'X8``"`"`K`!!2@$AX
- + M`#!(>``"+P!A``)B3^\`#$J`9@`!UF```=Y(;`&P80`"L%A/2H!F``'"8``!
- + MR@RK````#``(;09![`&R8`1![`&V+PAA``**6$]*@&8``9Q@``&D0>P!NB)+
- + M80#\CDJ`9@`!B&```9!![`'`(DMA`/QZ2H!F``%T8``!?$AX`#!(>``"+Q-A
- + M``'D3^\`#$J`9@`!6&```6`O"V$``6183TJ`9@`!1F```4Y![`',(DMA`/PX
- + M2H!F``$R8``!.DAL`=9A``(,6$]*@&8``1Y@``$F("L`'%Z`D*L`&'('3KH`
- + M`$AX`#!(>``"+P!A``%^3^\`#$J`9@``\F```/H@*P`89P13@&`"<`8B*P`<
- + M7H&2@"`!<@=.N@``2'@`,$AX``(O`&$``49/[P`,2H!F``"Z8```PDAX`#!(
- + M>``!+RL`&&$``2A/[P`,2H!F``"<8```I$'L`=@B2V$`^XY*@&8``(A@``"0
- + M(#P```=LT*L`%')D3KH``$AX`#!(>``"+P%A``#H3^\`#$J`9EQ@9B`\```'
- + M;-"K`!1(>``P2'@`!"\`80``QD_O``Q*@&8Z8$0@*P`H9PPO`&$``1183TJ`
- + M9B9P`&`N2JP`&E?`1`!(@$C`4ZP`&DJ`9P1P`&`6(&P`'A#5*4@`'E*-2A5F
- + M`/L&("P`&DS?*`!.=2!O``2>_``L2.<!$$/O``AP"B+84<C__$'O``A.N@``
- + M+@!'[``-8!H@!W(*3KH``'`PTH`6@5.+(`=R"DZZ```N`$J';PA![```M\AB
- + MVDAK``%A``"`6$],WPB`WOP`+$YU("\`!"(O``@O;P`,``1(YP<$&B\`%RP!
- + M+@!+[``78!P@!W(*3KH``'`PTH`:@5.-(`=R"DZZ```N`%.&2H=O#D'L``^[
- + MR&+88`0:A5.-0>P`#[O(8P@@!E.&2H!N[$AM``%A```.6$],WR#@3G4@;P`$
- + M+PTJ2"`L`!IG&!(=(&P`'A"!9@1P`6`*4JP`'E.L`!I@XBI?3G4```/X````
- + M#P````$```2\```$)@``!!(```/0```#O````Z8```.@```#@@```C@```(D
- + M```"$````?@```'(```!F````6@````2`````@``!E0```90```&1```!CP`
- + M``84```&!@``!>````6J```%A@``!5H```5.```%2```!3P```4P````/@``
- + M`#8````<````&`````````/O@P```E]?0UA$,S,`````"0``!?H```7J```%
- + MH```!9````3<```$?@``!$8```,:```"K(,```)`;6MT:6UE``````$```6`
- + M`````````_$````#`````$]05%,`!`!````#\@```^H```!Y4W5N`$UO;@!4
- + M=64`5V5D`%1H=0!&<FD`4V%T```````````$````"`````P````0````%```
- + M`!A3=6YD87D``$UO;F1A>0``5'5E<V1A>0!7961N97-D87D`5&AU<G-D87D`
- + M`$9R:61A>0``4V%T=7)D87D``````#@```!`````2````%````!:````9```
- + M`&Q*86X`1F5B`$UA<@!!<'(`36%Y`$IU;@!*=6P`075G`%-E<`!/8W0`3F]V
- + M`$1E8P````"2````E@```)H```">````H@```*8```"J````K@```+(```"V
- + M````N@```+Y*86YU87)Y`$9E8G)U87)Y``!-87)C:`!!<')I;`!-87D`2G5N
- + M90``2G5L>0``075G=7-T``!397!T96UB97(`3V-T;V)E<@!.;W9E;6)E<@``
- + M1&5C96UB97(``````/(```#Z```!!````0H```$0```!%````1H```$@```!
- + M*````3(```$Z```!1"5A("5B("5E("5(.B5-.B53("59```E;2\E9"\E>2`E
- + M2#HE33HE4P`E;2\E9"\E>0``"@!030``04T``"5(.B5-`"5).B5-.B53("5P
- + M`"5(.B5-.B53```)`"5M+R5D+R5Y`````````^P````F`````0```7H```%V
- + M```!<@```6X```%J```!9@```6(```%>```!6@```58```%2```!3@```.X`
- + M``#J````Y@```.(```#>````V@```-8```#2````S@```,H```#&````P@``
- + M`(X```"*````A@```((```!^````>@```'8````T````,````"P````H````
- + M)````"`````<`````````_(```/K````"0```_(```/I````%B!O``0@+P`(
- + M2.<G`BX`(@@L;```)#P```/M3J[_XBP`3KH``$J&9QP@!B('3KH``"H`(@9.
- + MKO_<2H!F!$J%9P0@!6`.3J[_?$ZZ```I0```</],WT#D3G4```/OA@```E]$
- + M3U-"87-E`````0```!*#```#0&-H:V%B;W)T`````````0```"*#```$0%]D
- + M;U]T<G5N8V%T90````````$````N@P``!$!C;VYV97)T7V]S97)R```````!
- + M````2H8```)?97)R;F\```````$```!.`````````_$````#`````$]05%,`
- + M!`!````#\@```^D```#5(&\`!")O``@@+P`,(B\`$"]O`!0`!"]O`!@`""]O
- + M`!P`#)[\`#!(YR\V+B\`6"](`"PJ`"@!?$#ECB]``"0O00`H+TD`,'!`Y8A.
- + MN@``*D`O0`!$(`52@&82+&P``$ZN_\HO0`!`0J\`4&`F2&\`0$AX"`$O!4ZZ
- + M``!/[P`,4H!F!$*O`$!P`2]``%`@!4ZZ```@!%*`9A(L;```3J[_Q"]``#Q"
- + MKP!,8$:ZA&8,+V\`0``\0J\`3&`V2&\`/$AX"`$O!$ZZ``!/[P`,4H!F!G``
- + M+T``/"(O`#RRKP!`5L!$`$B`2,`O0`!,(`1.N@``</^^@&80(&P``"]H`.``
- + M.$*O`$A@4'#^OH!F#"]O`#P`.$*O`$A@/DAO`#A(>`@!+P=.N@``3^\`#%*`
- + M9@9P`"]``#@@+P`X(B\`/+*`9PJPKP!`9P1P`6`"<``O0`!((`=.N@``2J\`
- + M0&<``61*KP`\9P`!7$JO`#AF!E*'9@`!4"`-9P`!1"9->``O;P`P`#1@``"L
- + M2H1F!B!O`"Q@`B!5)$AZ`RI(8!I2A1`5<BJP`6<,<B*P`6<&<@JP`68"4H52
- + MC4H59N(J;P!$($W1QB)+T\5-Z0`!O<AE)"`&T(;0A2P`($U.N@``*D!*@&<`
- + M`-H@"Y"O`$0F3=?`+TT`1"!+$+P`(%2+$7P`(@`!*DI@(!`5<B*P`6<&<BJP
- + M`68&%OP`*F`*<@JP`68$%OP`*Q;=2A5FW!;\`")2A%BO`#0J;P`T2I5F`/].
- + M0A,J;P!<(`UG$"(-+&P``'3^3J[_K"@`8`)X`$J$9@0@#68\*F\`1"\O`&`O
- + M!"\O`%`O+P!$+R\`7"\O`%`@+P!8(B\`:"!-3KH``$_O`!@J`%*`9QH@34ZZ
- + M```@!6!X+&P``$ZN_WQ.N@``*4```$J$9Q(B!"QL``!.KO^F8`9P#"E````@
- + M+P!`9Q!*KP!09PHB`"QL``!.KO_<("\`/&<02J\`3&<*(@`L;```3J[_W"`O
- + M`#AG$$JO`$AG"B(`+&P``$ZN_]PJ;P!$(`UG!B!-3KH``'#_3-]L]-[\`#!.
- + M=2!O``0B;P`(("\`#"(O`!`O;P`4``0O;P`8``@O!2HO``PO!2\O``Q(>/__
- + M80#\V$_O``PJ'TYU```#[X,```)`;6%L;&]C``````$```!,A@```E]$3U-"
- + M87-E````"````OP```+F```"T````K(```*<```"2````)H```!<@P```E]I
- + M;V-T;````````P```20```#&````>(,```1`7W!S975D;U]C;&]S90``````
- + M`P```50```#N````D(8```%?7W5S`````0```/B#```"0')E86QL;V,````!
- + M```!V(,```1`7W-T87)T7W!R;V-E<W,``````0```H2#```"0&9R964`````
- + M```"```##@```I2#```$0&-O;G9E<G1?;W-E<G(```````$```*DA@```E]E
- + M<G)N;P```````@```KX```*H`````````_$````#`````$]05%,`!`!````#
- + M\@```^D````"<`%.=7`!3G4```/Q`````P````!/4%13``0``````_(```/I
- + M````#B`O``0O!RX`3KH``"`'(&P``'(`3KH``&`,("P``$ZZ``!.N@``(&P`
- + M`$ZZ``!*@&?H<``N'TYU```#[X,```-`8VAK86)O<G0````````!````"H8`
- + M``-?7V]D9%]T:6UE<@`````"````*````!"#```$0%]T:6UE<E]S=&%R=```
- + M``````$````6A@```U]?;V1D7W-I9P````````$````<@P``!$!?=V%I=%]S
- + M:6=N86QS```````!````((,```1`7VAA;F1L95]S:6=N86QS`````0```"2#
- + M```$0%]T:6UE<E]E>'!I<F5D``````$````L`````````_$````#`````$]0
- + M5%,`!`!````#\@```^D````/(&\`!"`O``A(YP$$+@`J2$ZZ```O!TAX`P$O
- + M#4ZZ``!/[P`,3-\@@$YU(&\`!"`O``A(YP$$3-\@@,```#[X,```-`8VAK
- + M86)O<G0````````!````$H,```)?;W!E;@````````$````>`````````_$`
- + M```#`````$]05%,`!``````#\@```^D````C("\`!"!O``@B+P`,64](YP,T
- + M+`$N`"I(3KH``"`'3KH``"9`2H!G1`@K``$``V<V""L``P`#9Q8@:P`8+T@`
- + M%"!K``1P`'("(F\`%$Z1(&L`%"](`!0@!B!K``0B321O`!1.DF`(<`TI0```
- + M</],WRS`6$].=2`O``0@;P`((B\`#$CG`P1,WR#`8(````/O@P```T!C:&MA
- + M8F]R=`````````$````:@P```T!?9FEN9%]F9`````````$````@A@```E]E
- + M<G)N;P```````0```&H````````#\0````,`````3U!44P`$`$````/R```#
- + MZ0````P@;P`$44\O#2I(0>\`!$ZZ``!*@&H$</]@#B`-9P8@+P`$*H`@+P`$
- + M*E]03TYU``````/O@P```T!?9V5T=&EM90````````$````0`````````_$`
- + M```#`````$]05%,`!``````#\@```^D````=(&\`!)[\`$!(YSL6*DA.N@``
- + M(`UG4DH59TXB#4'O`"`D""QL``!V0'@`3J[\=BX`;39.KO]\+`!2@$ZZ```F
- + M0$J`9R2^AF<4)@92@R(-)`M.KOQV2H!O$"`"8`X@0B)+$MAF_"`+8`)P`$S?
- + M:-S>_`!`3G4```/O@P```T!C:&MA8F]R=`````````$````0A@```E]$3U-"
- + M87-E`````0```"2#```"0&UA;&QO8P`````!````/`````````/Q`````P``
- + M``!/4%13``0`0````_(```/I````$R!O``0B;P`(2.<S$B9)(@@L;```=/Y.
- + MKO^L+@!.N@``2H=G&B(+)`=V`$ZN_D0L`"("3J[_IDJ&9P0@`V`&3KH``'#_
- + M3-](S$YU``````/OA@```E]$3U-"87-E`````0```!*#```#0&-H:V%B;W)T
- + M`````````0```!Z#```"0%]S971E<G(````!````0`````````/Q`````P``
- + M``!/4%13``0`0````_(```/I````)"!O``2>_``,2.<!%"I(2AAF_%.(D<T@
- + M""9-U\!=BWYA3KH``"\L``!(;```2&\`%TZZ``!/[P`,0>\`#R)(2AEF_%.)
- + MD\@@"7(%L(%O"$'O``K1P&`$0>\`#R\(2&P`!"\+3KH``$_O``P6AR!-<`!.
- + MN@``2H!F"E('<'J^`&_J0A4@#4S?*(#>_``,3G4``````_@````"`````0``
- + M`%X````J`````````^^#```#0&-H:V%B;W)T`````````0```"*&```!7U]U
- + M<P````$````F@P```U]?<W!R:6YT9@````````(```!D````,H,```-`7U]A
- + M8V-E<W,````````!````<@````````/Q`````P````!/4%13``0`0````_(`
- + M``/J`````B5L>`!A)7,````#\@```^D````&(&\`!"\-*DA.N@``($UP0.F(
- + M*E].^@`````#[X,```-`8VAK86)O<G0````````!````"H,```)`9V5T8W=D
- + M``````$````6`````````_$````#`````$]05%,`!``````#\@```^D````/
- + M(&\`!"`O``A(YR$&+@`J2$ZZ```@!TZZ```D`"(-+&P``$ZN_T9*@&<$<`!@
- + M!DZZ``!P_TS?8(1.=0`````#[X,```-`8VAK86)O<G0````````!````$H,`
- + M``5`7VUA:V5?<')O=&5C=&EO;@````````$````8A@```E]$3U-"87-E````
- + M`0```""#```"0%]S971E<G(````!````,`````````/Q`````P````!/4%13
- + M``0`0````_(```/I````'"`O``0B+P`(+V\`#``$44](YP<`*B\`&"P!+@!.
- + MN@``(`=.N@``2H!G&B)`(&D`&"](`!`@!B(%(&D`!")O`!!.D6`"</],WP#@
- + M4$].=2`O``0B+P`(+V\`#``$2.<'`"HO`!`O10`03-\`X&"@``````/O@P``
- + M`T!C:&MA8F]R=`````````$````>@P```T!?9FEN9%]F9`````````$````D
- + M`````````_$````#`````$]05%,`!``````#\@```^D````<("\`!"!O``@B
- + M+P`,64](YP,T+`$N`"I(3KH``"`'3KH``"9`2H!G)@@K`````V<8(&L`$"](
- + M`!0@!B!K``0B321O`!1.DF`(<`TI0```</],WRS`6$].=2`O``0@;P`((B\`
- + M#$CG`P1,WR#`8)X``````^^#```#0&-H:V%B;W)T`````````0```!J#```#
- + M0%]F:6YD7V9D`````````0```""&```"7V5R<FYO```````!````3```````
- + M``/Q`````P````!/4%13``0`0````_(```/I````@2`O``0@;P`((F\`#"]O
- + M`!``!"]O`!0`")[\`"Q(YS\V)DDJ2"]``$`D;P!<(`IG#DJ29@I*J@`$9@1P
- + M`6`"<`!R`"]``#0D#6<"(A5T`"]!`"PF"V<")!-Z`'X!+T(`,&!2*"\`+,B'
- + M+"\`,,R'3KH``$J$9@1*AF<V(`5.N@``)$!*@&8&</]@``%N2H1G"`@J````
- + M`V<,2H9G%`@J``$``V8,<`TI0```</]@``%*4H7>A[JO`$!MJ"1O`%P@"F<0
- + M(!(B*@`$(&P``$ZZ``!@""!L``!.N@``>@`@!4*O`%!Z`'X!+T``*&`Z*"\`
- + M+,B'+"\`,,R'2H1F!$J&9R(@!4ZZ```B0"!I``@O2``\(`0B!B!I``0B;P`\
- + M3I&!KP!04H7>A[JO`$!MP"@O`%`@!%*`9P9*KP`T9PAP`$ZZ``!@"B`L``"`
- + MA$ZZ```O0`!,?`!X`2XO`#`J+P`H8'`@+P`LP(0O0`!((@?"A"]!`$1*@&8$
- + M2H%G4B`&3KH``")`(&D`#$AO`$0O2``\(&D`!$/O`$PL;P`\3I983R`O`$AF
- + M"B(-9P8B!$:!PY4@+P!$9@HB"V<&(@1&@<.32J\`2&8&2J\`1&<"4H52AMB$
- + MO*\`0&V*("\`3$ZZ``!*A684(&P``$ZZ``!*@&8(2J\`-&<`_N@@!4S?;/S>
- + M_``L3G4``````^^#```#0&-H:V%B;W)T`````````0```'"#```#0%]F:6YD
- + M7V9D`````````P```7X```$$````?H8```)?97)R;F\```````$```"HA@``
- + M`U]?;V1D7W1I;65R``````,```'D````U````,J#```$0%]T:6UE<E]S=&%R
- + M=`````````$```#.@P``!$!?=&EM97)?86)O<G0````````!````V(,```1`
- + M7V-H96-K7W-I9VYA;',``````0```4"&```#7U]O9&1?<VEG`````````0``
- + M`4:#```$0%]W86ET7W-I9VYA;',```````$```%,@P``!$!?:&%N9&QE7W-I
- + M9VYA;',````!```!W(,```1`7W1I;65R7V5X<&ER960``````0```>@`````
- + M```#\0````,`````3U!44P`$`$````/R```#Z0```"!13TCG(R0N+P`@3KH`
- + M`"PO`"@@!TZZ```J0$J`9U@@+P`D5X!G#%.`9PYP%BE```!@1'`,P)5@0"`5
- + M=`S,@B0``D+_\X2&*H)R!,*"=`3`@K"!9QXO00`8(&T`("](`!0@;0`$0^\`
- + M&'``)&\`%$Z28`9P`&`"</],WR3$4$].=0```^^#```#0&-H:V%B;W)T````
- + M`````0````R#```#0%]F:6YD7V9D`````````0```!:&```"7V5R<FYO````
- + M```!````+@````````/Q`````P````!/4%13``0`0````_(```/I````````
- + M`_$````#`````$]05%,`!``````#\@```^H```#>86UI9V$@<W!E8VEF:6,@
- + M97)R;W(```````!5;FMN;W=N(&5R<F]R`&YO="!O=VYE<@!N;R!S=6-H(&9I
- + M;&4@;W(@9&ER96-T;W)Y`&YO('-U8V@@<')O8V5S<P!I;G1E<G)U<'1E9"!S
- + M>7-T96T@8V%L;`!I+V\@97)R;W(`;F\@<W5C:"!D979I8V4@;W(@861D<F5S
- + M<P!A<F=U;65N="!L:7-T('1O;R!L;VYG``!E>&5C(&9O<FUA="!E<G)O<@!B
- + M860@9FEL92!N=6UB97(`;F\@8VAI;&0@<')O8V5S<P``;F\@;6]R92!P<F]C
- + M97-S97,`;F]T(&5N;W5G:"!M96UO<GD`<&5R;6ES<VEO;B!D96YI960`8F%D
- + M(&%D9')E<W,`8FQO8VL@9&5V:6-E(')E<75I<F5D`&UO=6YT(&1E=FEC97,@
- + M8G5S>0``9FEL92!E>&ES=',`8W)O<W,M9&5V:6-E(&QI;FL`;F\@<W5C:"!D
- + M979I8V4``&YO="!A(&1I<F5C=&]R>0!I<R!A(&1I<F5C=&]R>0``:6YV86QI
- + M9"!A<F=U;65N=```9FEL92!T86)L92!O=F5R9FQO=P!T;V\@;6%N>2!O<&5N
- + M(&9I;&5S`&YO="!A('1Y<&5W<FET97(``'1E>'0@9FEL92!B=7-Y``!F:6QE
- + M('1O;R!B:6<``&YO('-P86-E(&QE9G0@;VX@9&5V:6-E`&EL;&5G86P@<V5E
- + M:P``<F5A9"UO;FQY(&9I;&4@<WES=&5M`'1O;R!M86YY(&QI;FMS``!B<F]K
- + M96X@<&EP90!M871H(&%R9W5M96YT`')E<W5L="!T;V\@;&%R9V4``$DO3R!S
- + M=')E86T@96UP='D``&9I;&4@;F%M92!T;V\@;&]N9P``9&ER96-T;W)Y(&YO
- + M="!E;7!T>0!T;V\@;6%N>2!S;V9T(&QI;FMS("AL;V]P/RD`````&@```"@`
- + M```R````3````%P```!T````?@```)@```"P````P@```-(```#D````]@``
- + M`0@```$:```!)@```3P```%0```!7````6X```%^```!C@```9X```&P```!
- + MQ````=@```'J```!^@```@@```(@```"+@```D0```)4```"8````FX```*`
- + M```"D@```J8```*Z````)@`````#[````"@````!```#;@```VH```-F```#
- + M8@```UX```-:```#5@```U(```-.```#2@```T8```-"```#/@```SH```,V
- + M```#,@```RX```,J```#)@```R(```,>```#&@```Q8```,2```##@```PH`
- + M``,&```#`@```OX```+Z```"]@```O(```+N```"Z@```N8```+B```"W@``
- + M`MH```+6````%@````````/R```#Z0```$4@+P`$*4```$J`9P``AG)GD(%G
- + M``""58!G``"`<@F0@6=\4X!G>%.`9W13@&=P4X!G;%.`9VA3@&=H4X!G:')1
- + MD(%G9E.`9V93@&=F4X!G9E.`9V93@&=F58!G9E.`9V93@&=F4X!G9E6`9V93
- + M@&=F4X!G9E.`9V93@&=F4X!G9E6`9V93@&=F4X!G9E.`9V9@:'``8&9P#&!B
- + M<`M@7G`68%IP!V!6<`A@4G`08$YP$6!*<`)@1G`"8$)P%F`^<`=@.G`68#9P
- + M)&`R<!9@+G`68"IP'F`F<!)@(G`E8!YP)F`:<!-@%G`68!)P'&`.<`U@"G`-
- + M8`9P#6`"</].=2\.+&P``$ZN_WQA`/[Z*4```"Q?3G4```/X`````0````$`
- + M``$.`````````^^&```"7U]/4T524@`````!````!H8```)?1$]30F%S90``
- + M``$```$"`````````_$````#`````$]05%,`!`!````#\@```^L````!```#
- + M\@```^D````%3KH``$ZZ``!.N@``<@9.^@````````/O@P```T!C:&MA8F]R
- + M=`````````$````"@P```T!?8VQO<V5?86QL``````$````&@P```D!G971P
- + M:60``````0````J#```"0&MI;&P````````!````$`````````/Q`````P``
- + M``!/4%13``0``````_(```/I````62!O``0@+P`(64](YP$6+@`O2``0(&\`
- + M$"I08&1P#;`M``AF6B`M`*QG!N6`($!@`I'()D@@+0"<L(=G-"`M`*"PAV<L
- + M("T`X+"'9R0@"V<N("L`'+"'9Q@@*P`@L(=G$"`K`#BPAV<(("L`,+"'9@XB
- + M37!@[X@L>``$3J[^O"I52I5FF$S?:(!83TYU("\`!"(O``A(YP$"+@`@`5.`
- + M9PQ3@&<(4X!G!%V`9BPL>``$3J[_?"!L``#0_`&6(`=A`/]((&P``-#\`:0@
- + M!V$`_SI.KO]V<`!@"'`6*4```'#_3-]`@$YU("\`!"(O``A(YP8$+`$J`$ZZ
- + M``!*A6H"1(6ZK```9@Y*AF<&(`9.N@``<`!@2"`%3KH``"I`2H!G!DJM`!1G
- + M"G`#*4```'#_8"P@!F<H(BT`$,%!80#_6"(`<`F\@&84<@$K00`4*T``&'`4
- + M3KH``'``8`(@`4S?(&!.=0`````#[X8```)?4WES0F%S90````(```#$````
- + MMH8```)?97)R;F\```````(```$J````W(,```-`8VAK86)O<G0````````!
- + M````^(8```-?7V]U<E]P:60````````!```!`H,```1`7W-I9U]D:7-P871C
- + M:````````@```50```$.@P```T!?9FEN9%]P:60```````$```$8````````
- + M`_$````#`````$]05%,`!`!````#\@```^D```!#(&\`!$CG``8J2")-+'@`
- + M!$ZN_P0@34S?8`!.^@``("\`!$CG`00N`"IL``A@#B`M``RPAV8$(`U@""I5
- + M2I5F[G``3-\@@$YU2.<@`D'L``A.N@``("P``"(L```D`+."`H(`?___*4(`
- + M!%*"*4(``"\!+P!(;```2&P`%$ZZ``!/[P`0+'@`!$ZN_68I0``X9Q!![``4
- + M<`!.N@``*4``-&8*2&P`#DZZ``!83TS?0`1.=4CG``8@+``X9PH@0"QX``1.
- + MKOU@2JP`-&<X+'@`!$ZN_WQ@#")-<!PL>``$3J[_+B!L`#0L>``$3J[^C"I`
- + M2H!FXB!L`#1.N@``+'@`!$ZN_W9,WV``3G4``````_@````"`````0```*0`
- + M``!V````#`````(```#V````Y````,@```"X````G@```)0```".````>@``
- + M`&X```!H````3@```"H````````#[X,```)`9G)E90````````$````<@P``
- + M`D!.97=,:7-T`````0```%*&```!7U]U<P````$```!6A@``!%]?<W1A<G1U
- + M<%]T:6UE```````!````6H,```-?7W-P<FEN=&8````````!````?H,```-`
- + M0W)E871E4&]R=``````!````FH,```)?7V9A:6P```````$```"H@P```T!$
- + M96QE=&50;W)T``````$```#Z`````````_$````#`````$]05%,`!`!````#
- + M\@```^H````&9&]O<BXE;'@N)6QX``!.;R!M96UO<GD````#\@```^L````/
- + M```#\@```^D````O(&\`!"`O``@B+P`,(F\`$"]O`!0`!"]O`!@`"%E/2.</
- + M-B@O`"PJ+P`H+`$N`"I)+T@`("QX``1.KOUF)D!*@&<P($L@!$ZN_7(D0$J`
- + M9R(@#6<()4T`*"5%`"0@;P`@(`<B2B(&3J[^1$H`9@0@"F`6(`IG!B!*3J[]
- + M;"`+9P8@2TZZ``!P`$S?;/!83TYU(&\`!$CG``8J2"`-9Q@B32QX``1.KOX^
- + M(&T`#DZZ```@34ZN_6Q,WV``3G4```/O@P```T!$96QE=&50;W)T``````(`
- + M``"N````A`````````/Q`````P````!/4%13``0``````_(```/I````%"!O
- + M``0@+P`(2.<A!BX`*DA.N@``(@TL;```3J[_B$J`9R(B`$ZN_Z8@!TZZ```@
- + M!TZZ```D`"(-3J[_1DJ`9P1P`&`&3KH``'#_3-]@A$YU```#[X,```-`8VAK
- + M86)O<G0````````!````$H8```)?1$]30F%S90````$````8@P``!4!?;6%K
- + M95]P<F]T96-T:6]N`````````@```#(````L@P```D!?<V5T97)R`````0``
- + M`$8````````#\0````,`````3U!44P`$`$````/R```#^P``")D1/@!?<V5T
- + M:FUP`'1E>'0`0%]L;VYG:FUP`$!?<V5T:FUP`%]?;&]N9VIM<`!?7W-E=&IM
- + M<`!S<')I;G1F`%],5D]287=$;T9M=`!?06)S17AE8T)A<V4`7U]S<')I;G1F
- + M`'1M<&YA;2YC`%]M:W1E;7``0'1M<&YA;0!?=&UP;F%M`%]?34521T5$`'!O
- + M<&5N+F,`7W=A:71P:60`0&9C;&]S90!`9G)E90!`7W-T87)T7W!R;V-E<W,`
- + M0%]S971E<G(`7V5R<FYO`%]$3U-"87-E`$!F;W!E;@!?7V9I9F]?8F%S90!?
- + M7V9I9F]?;V9F<V5T`$!M86QL;V,`0'!C;&]S90!?<&-L;W-E`$!P;W!E;@!?
- + M<&]P96X`<W1A<G0N8P!`8V]N=F5R=%]O<V5R<@!?7W!R;V-E<W-E<P!?7W-T
- + M86-K7W-I>F4`7U]N97AT7W!I9`!?7V1O;W)?;F%M90!?7W-T87)T=7!?<&]R
- + M=`!?3&EN:V5R1$(`7U]S=&%R=%]P<F]C97-S`%]?8VAI;&1?9&]O<E]N86UE
- + M`%]?8VAI;&1?8V]M;6%N9%]L96X`7U]C:&EL9%]C;VUM86YD`%]?8VAI;&1?
- + M97AI=`!?7V-H:6QD7V5N=')Y`&=E='!I9"YC`%]?;W5R7W!I9`!`8VAK86)O
- + M<G0`0&=E='!I9`!?9V5T<&ED`'-I9VYA;"YC`%]?<VEG7VAA;F1L97)S`$!S
- + M:6=N86P`7W-I9VYA;`!`<VEG=F5C`%]S:6=V96,`<VEG<V5T;6%S:RYC`$!?
- + M<VEG7V1I<W!A=&-H`%]?<VEG7W!E;F1I;F<`7U]S:6=?;6%S:P!`<VEG8FQO
- + M8VL`7W-I9V)L;V-K`$!S:6=S971M87-K`%]S:6=S971M87-K`'-T870N8P!?
- + M<F5A9&QI;FL`0%]F:6)S=&%T`$!?;&9I8G-T870`7U]T96UP7V9N86UE`%]L
- + M87-T7V5N=')Y`$!?9V5T7V-D`%]L87-T7V1I<@!`;'-T870`7VQS=&%T`$!S
- + M=&%T`%]S=&%T`&1I<BYC`$!S965K9&ER`%]S965K9&ER`$!T96QL9&ER`%]T
- + M96QL9&ER`$!R96%D9&ER`%]R96%D9&ER`$!C;&]S961I<@!?8VQO<V5D:7(`
- + M0&]P96YD:7(`7V]P96YD:7(`9&ER7V1A=&$N8P!?7V=E=%]C9`!A8V-E<W,N
- + M8P!`86-C97-S`%]A8V-E<W,`0%]?86-C97-S`%]?7V%C8V5S<P!F<W1A="YC
- + M`%]I;V-T;`!`9G-T870`7V9S=&%T`'-Y;6QI;FLN8P!`<WEM;&EN:P!?<WEM
- + M;&EN:P!M97-S86=E+F,`0&5X:70`7U]0<F]G<F%M3F%M90!?7U="96YC:$US
- + M9P!?7W5S`%]?9F%I;`!?7VUE<W-A9V4`86QL;V-D;W,N8P!?06QL;V-$;W-/
- + M8FIE8W1486=S`'-E=&IM<"YC`$!L;VYG:FUP`%]L;VYG:FUP`$!S971J;7``
- + M9V5T:&]S=&YA;64N8P!?<W1R;F-P>0!?7W-Y<W1E;5]N86UE`$!G971H;W-T
- + M;F%M90!?9V5T:&]S=&YA;64`<&5R<F]R+F,`7U]/4T524@!?<WES7V5R<FQI
- + M<W0`7W-Y<U]N97)R`$!W<FET90!`<&5R<F]R`%]P97)R;W(`<VEG;&ES="YC
- + M`%]S>7-?<VEG;&ES=`!W86ET-"YC`$!?:&%N9&QE7W-I9VYA;',`0%]W86ET
- + M7W-I9VYA;',`0%]F<F5E7V5N=')Y`$!W86ET<&ED`$!W86ET`%]W86ET`$!W
- + M86ET,P!?=V%I=#,`0'=A:70T`%]W86ET-`!P<V5U9&]?8RYC`$!?9G)E95]F
- + M9`!`7V9I;F1?9F0`0%]P<V5U9&]?8VQO<V4`7U]P<V5U9&]?8VQO<V4`<FEN
- + M9&5X+F,`0'-T<G)C:'(`0')I;F1E>`!?<FEN9&5X`&EN9&5X+F,`0'-T<F-H
- + M<@!`:6YD97@`7VEN9&5X`'1I;65R<RYC`$!?9&5V:6-E7V-L;W-E`$!?9&5V
- + M:6-E7V]P96X`0%]T:6UE<E]E>'!I<F5D`%]?=&EM97)?97AP:7)E9`!`7W1I
- + M;65R7W-T87)T`%]?=&EM97)?<W1A<G0`0%]T:6UE<E]S:6<`7U]T:6UE<E]S
- + M:6<`0%]T:6UE<E]A8F]R=`!?7W1I;65R7V%B;W)T`$!?9G)E95]T:6UE<@!?
- + M7V9R965?=&EM97(`0%]A;&QO8U]T:6UE<@!?7V%L;&]C7W1I;65R`&9I9F]F
- + M9"YC`%]?<W1A<G1U<%]T:6UE`$!?8VQE86YU<%]F:69O`%]?8VQE86YU<%]F
- + M:69O`$!?:6YI=%]F:69O`%]?:6YI=%]F:69O`%]?9FEF;U]S:6<`7U]F:69O
- + M7V]K`%]?1FEF;T)A<V4`8VQO<V4N8P!`8VQO<V4`7V-L;W-E`$!?7V-L;W-E
- + M`%]?7V-L;W-E`&9I;&5S+F,`0%]L87-T7V9D`%]?;&%S=%]F9`!?7V9I;F1?
- + M9F0`7U]F<F5E7V9D`$!?86QL;V-?9F0`7U]A;&QO8U]F9`!U=&EM92YC`$!?
- + M9VUT,F%M:6=A`$!T:6UE`$!U=&EM90!?=71I;64`8F-O<'DN8P!`;65M;6]V
- + M90!`8F-O<'D`7V)C;W!Y`&%M:6=A=&EM92YC`%]D87EL:6=H=`!?='IN86UE
- + M`%]?0UA$,S,`0&QO8V%L=&EM90!`7V=E='1I;64`0&9T:6UE`%]F=&EM90!`
- + M9V5T=&EM96]F9&%Y`%]G971T:6UE;V9D87D`=&EM96-O;G9E<G0N8P!?5&EM
- + M97)"87-E`$!?86UI9V$R9VUT`%]?86UI9V$R9VUT`%]?9VUT,F%M:6=A`%]?
- + M9V5T=&EM90!P=V0N8P!`9V5T;&]G:6X`7V=E=&QO9VEN`$!G971P=VYA;0!?
- + M9V5T<'=N86T`0&=E='!W=6ED`%]G971P=W5I9`!?7V%M:6=A7W5S97(`<F5A
- + M9&QI;FLN8P!?<W1R;&5N`$!R96%D;&EN:P!A;&QO8V$N8P!?;6%L;&]C`%]F
- + M<F5E`%]A;&QO8V$`=6YL:6YK+F,`0'5N;&EN:P!?=6YL:6YK`'!I<&4N8P!`
- + M<W1R8V%T`$!.97=,:7-T`$!S;V-K971P86ER`%]S;V-K971P86ER`$!P:7!E
- + M`%]P:7!E`&=R<"YC`$!G971G<FYA;0!?9V5T9W)N86T`0&=E=&=R9VED`%]G
- + M971G<F=I9`!S:6=N86QS+F,`7U]&4$524@!`7U]E>&ET`$!?9FEN9%]P:60`
- + M0%]C;&5A;G5P7W!R;V-E<W-E<P!?7V-H:6QD<F5N7V5X:70`0%]I;FET7W!R
- + M;V-E<W-E<P!`7V-L96%N=7!?<VEG;F%L<P!?7V-L96%N=7!?<VEG;F%L<P!`
- + M7VEN:71?<VEG;F%L<P!?7VEN:71?<VEG;F%L<P!`0VAK7T%B;W)T`%]#:&M?
- + M06)O<G0`7V-H:V%B;W)T`$!#6$9%4E(`7T-81D524@!?7VAA;F1L95]S:6=N
- + M86QS`%]?=V%I=%]S:6=N86QS`$!?8VAE8VM?<VEG;F%L<P!?7V-H96-K7W-I
- + M9VYA;',`7U]S:6=?9&ES<&%T8V@`0&%L87)M`%]A;&%R;0!?;6%I;BYC`$!M
- + M86EN`$!?7V=E=&5N=@!`='%S;W)T`$!S=')N8W!Y`%]?7V-T>7!E`$!?:6YI
- + M=%]U;FEX:6\`7U]?:6]B`%]?6$-%6$E4`%]3>7-"87-E`$!R96%L;&]C`%]?
- + M7VUA:6X`0&UA:V5?96YV:7)O;@!?;6%K95]E;G9I<F]N`%]E;G9I<F]N`%]?
- + M;V1D7W-I9P!?7V]D9%]T:6UE<@!U;6%S:RYC`$!U;6%S:P!?=6UA<VL`<')O
- + M=&5C=&EO;BYC`$!?;6%K95]M;V1E`%]?;6%K95]M;V1E`$!?;6%K95]P<F]T
- + M96-T:6]N`%]?;6%K95]P<F]T96-T:6]N`%]U<V5?86UI9V%?9FQA9W,`9VED
- + M+F,`0&=E=&5G:60`7V=E=&5G:60`0&=E=&=I9`!?9V5T9VED`%]E>&ET+F,`
- + M0%]E>&ET`%]?97AI=`!?7U]E>&ET`$!?8VQO<V5?86QL`%]?8VQO<V5?86QL
- + M`&EO8W1L+F,`0&EO8W1L`&]P96XN8P!`7V%L;&]C7V%M:6=A9F0`0'-T<FEC
- + M;7``7V]P96X`7U]?;W!E;@!C=&EM92YC`%]S<')I;G1F`$!R96%D`$!?='IS
- + M970`7U]T>G-E=`!`;6MT:6UE`%]M:W1I;64`0&-T:6UE`%]C=&EM90!`87-C
- + M=&EM90!?87-C=&EM90!`9VUT:6UE`%]G;71I;64`7VQO8V%L=&EM90!`='IS
- + M971W86QL`%]T>G-E='=A;&P`0'1Z<V5T`%]T>G-E=`!?=&EM97IO;F4`86UI
- + M9V%D;W,N8P!?7VEN:71?=6YI>&EO`%]?86QL;V-?86UI9V%F9`!`7V1O7W1R
- + M=6YC871E`%]?9&]?=')U;F-A=&4`<F5N86UE+F,`0')E;F%M90!?<F5N86UE
- + M`&-H;W=N+F,`0&9C:&]W;@!?9F-H;W=N`$!C:&]W;@!?8VAO=VX`8F-M<"YC
- + M`$!B8VUP`%]B8VUP`&9I8G-T870N8P!?7V9I8G-T870`7U]L9FEB<W1A=`!B
- + M>F5R;RYC`$!B>F5R;P!?8GIE<F\`9G1R=6YC871E+F,`0&9T<G5N8V%T90!?
- + M9G1R=6YC871E`&9C:&UO9"YC`$!F8VAM;V0`7V9C:&UO9`!M:V9I9F\N8P!`
- + M;6MN;V0`7VUK;F]D`$!M:V9I9F\`7VUK9FEF;P!I<V%T='DN8P!`:7-A='1Y
- + M`%]I<V%T='D`<VEG<&%U<V4N8P!`<VEG<&%U<V4`7W-I9W!A=7-E`')M9&ER
- + M+F,`0')M9&ER`%]R;61I<@!S=')F=&EM92YC`$!S=')F=&EM90!?<W1R9G1I
- + M;64`=')U;F-A=&4N8P!`=')U;F-A=&4`7W1R=6YC871E`&5X96,N8P!`97AE
- + M8P!?97AE8P!`965X96,`7V5E>&5C`'5I9"YC`$!G971E=6ED`%]G971E=6ED
- + M`$!G971U:60`7V=E='5I9`!S;&5E<"YC`$!S;&5E<`!?<VQE97``8W)E870N
- + M8P!`8W)E870`7V-R96%T`$!?7V-R96%T`%]?7V-R96%T`'=R:71E+F,`7W=R
- + M:71E`$!?7W=R:71E`%]?7W=R:71E`'1I;64N8P!?=&EM90!G971E;G8N8P!?
- + M7U]G971E;G8`;&EN:RYC`$!L:6YK`%]L:6YK`&UK=&5M<"YC`$!M:W1E;7``
- + M9V5T=V0N8P!`9V5T8W=D`$!G971W9`!?9V5T=V0`8VAM;V0N8P!`8VAM;V0`
- + M7V-H;6]D`&QS965K+F,`0&QS965K`%]L<V5E:P!`7U]L<V5E:P!?7U]L<V5E
- + M:P!R96%D+F,`7W)E860`0%]?<F5A9`!?7U]R96%D`'-E;&5C="YC`$!S96QE
- + M8W0`7W-E;&5C=`!F8VYT;"YC`%]F8VYT;`!E<G)O<E]M<V<N8P!E<G)O<BYC
- + M`%]?<V5T97)R`%]C;VYV97)T7V]S97)R`&%B;W)T+F,`0&MI;&P`0&%B;W)T
- + M`%]A8F]R=`!K:6QL+F,`7VMI;&P`<')O8V5S<V5S+F,`0$1E;&5T95!O<G0`
- + M0$-R96%T95!O<G0`7U]C;&5A;G5P7W!R;V-E<W-E<P!?7VEN:71?<')O8V5S
- + M<V5S`%]?9FEN9%]P:60`7U]F<F5E7V5N=')Y`&1E=FEC97,N8P!?7V1E=FEC
- + M95]C;&]S90!?7V1E=FEC95]O<&5N`&UK9&ER+F,`0&UK9&ER`%]M:V1I<@``
- + M`0````$`"0`)`^D````$``X`%@`!`!@`!``!`"$`#@`!`"L````!`#0`#``!
- + M``D`#`/I``(`/`!)``$`5@````$`8``I``,`"0`*`^D``0!H``(`<0`$``$`
- + M>0````$`@0`$`^H``````($`"0/K``````"*`%0``P`)`&\#Z0`,`)$`F@"B
- + M`*@`N`#"`,D`T0!5`-D`Y0#R``0`^P%>``$!`P%:``$!"P`(``$!$@````$`
- + M@0`%`^H``````($``0/K``````$9`2T``P`)`,4#Z0`+`*(`P@$@`3`!/`%)
- + M`50`\@%@`,D!;P`"`*D`Y@`!`7D`M@`!`($`!@/J``````"!``H#ZP````4!
- + MB0`D``$!FP`@``$!KP`<``$!OP`8``$!S`````$!V@)M``$`"0`#`^D``@'C
- + M`>P``@'W`````0'_`````0('`H8``0`)`",#Z0`#`,("$`'L``0"'P!B``$"
- + M)P!:``$"+P`,``$"-P````$"/P+&``$`"0`5`^D`!`)+`EL![`)I``0"=`!&
- + M``$"?@!"``$"B``$``$"E`````$"H`,"``(`"0":`^D`"0*F`K`![`*Z`,D"
- + MQ@+3`MX"Z``$`O(!U@`!`OD!S@`!`P`!G@`!`P8!E@`!`($`00/K``````,,
- + M`_4``0`)`-`#Z0`)`M,"W@'L`,(!(`#)`/("Z`"B``H#$@,@``$#&P,8``$#
- + M)`,(``$#+0,$``$#-@*0``$#/P*,``$#2`).``$#4@)*``$#7`%>``$#90%:
- + M``$#;@48``(`"0`(`^D``0#)``("WP````$#>0````$`@0`"`^L````"`M,`
- + M!``!`N@````!`X(%,@`!``D`&P/I``,`P@*P`>P`!`.+`&```0.3`%@``0.;
- + M``@``0.E`````0.O!6@``0`)`$$#Z0`&`,(!(`*Z`,D#M@'L``(#O@`(``$#
- + MQ0````$#S`77``$`"0`.`^D``P"X`,D![``"`]8`"``!`]\````!`^@%_P`"
- + M``D`/@/I``4#\0/X`,D$!@02``($%P#B``$$'@#4``$`@0`/`^H`````!"@&
- + MA@`!``D`!P/I``$`R0`!!#,````!!$<&G``!``D`#P/I``0`#0*'`!<":0`$
- + M!%``'@`!!%D`%@`!!&(`!``!``$````!!&H&S``!``D`!P/I``($=P2!``($
- + MCP`(``$$G`````$$J0;I``(`"0`I`^D`!@#)!+($N@3'`,($T``"!-@`!``!
- + M!.`````!`($`"`/J``````3H!U(``@`)```#Z0``````@0#&`^H````!!/("
- + MF``!!/\(1P`!``D`.@/I``4%!@47`,(%)@$P``@%-`#```$`D@"T``$%/0"F
- + M``$%0P"B``$%20"2``$%4`"&``$%5P`0``$%7@````$%90BJ``$`"0`2`^D`
- + M`P5O!7D![``"!80`!``!!9,````!!:((V``!``D``P/I``$%J@`"!;0`"``!
- + M!;P````!!<0(Z@`!``D``P/I``$%RP`"!=0`"``!!=L````!!>((_``"``D`
- + M30/I``(%Z@7Y``P&"`$$``$&&`$```$&*`#(``$&-@"\``$&1`"H``$&4`"D
- + M``$&7`!^``$&:@!Z``$&>`!2``$&A0!.``$&D@````$&H`````$`@0`$`^H`
- + M````!JX);0`#``D`'@/I``($$@:W``0&Q@!4``$&U0!4``$&Y`````$&\```
- + M``$`@0`%`^H````!!OP````!`($`!`/K````!`<'``P``0#E``@``0#9``0`
- + M`0<1`````0<<";H``0`)`!8#Z0`#!6\%>0'L``0')`!0``$'*P!,``$',@`$
- + M``$'.P````$'1`GL``(`"0!B`^D``P"B`,(`\@`(!TP!@``!!U8!@``!!7H!
- + M3``!!V`!2``!!7`!+``!!VH!*``!!W0`,``!!W\````!`($``@/K``````>*
- + M"H```0`)`!H#Z0`%`+@`R0>1!YT![``"!Z0`"``!!ZL````!![(*OP`!``D`
- + M!P/I``$'N0`"!\,`#``!!\H````!!]$*U0`"``D`4@/I``8'W0?G!^X']@@!
- + M`>P`!`@,`0X``0@3`0H``0@:``@``0@H`````0"!``P#Z@`````(-@MU``$`
- + M"0`P`^D``@?N"$0`!@A/`'@``0A;`'0``0>2`"@``0AG`"```0@"``0``0AS
- + M`````0A]"[X``@`)``L#Z0````8(@P`D``$(C0`D``$(EP`6``$(H0`2``$(
- + MJP`$``$(M0````$`@0`)`^H````!"+\`!``!",P+Z@`!``D`*@/I``8`P@$@
- + M"-8`N`#)`>P``@C?``P``0*G`````0CI#$```P`)`"P#Z0`""/$(^0`!"0``
- + M+@`!`($`!P/J``````"!``$#ZP`````)"`R=``$`"0`V`^D`!@$@`>P#M@=+
- + M`,(`R0`""1$`9``!"1D`8``!"2$-`P`"``D"&@/I`!4%>0#9`.4'!P'L!6\'
- + M<P#R`+@`50)+"2<%!@47`,D`P@"B!Q$)+P02!OP`!`DY!]0``0E%!\(``0E1
- + M!S8``0E7!S(``0"!`!4#Z@`````)70_\``(`"0`)`^D````$"6,`%@`!"6T`
- + M$@`!"7<`!``!"8$````!`($`"0/J``````F+$"<``P`)`*D#Z0`-"94$'0F<
- + M":0)KPG$"=,&=P9#!!8&D08G!@<`%`GE`IH``0GW`IH``0H)`EP``0H8`EP`
- + M`0HG`EH``0HR`EH``0'M`E(``0H]`E(``0I'`D0``0I/`D```04'`>H``0I7
- + M`>8``048`=```0IH`<P``0IW`;8``0J'`;(``0),`0P``0J7`0@``0JF`"@`
- + M`0JM`"0``0"!``H#Z@``````@0!$`^L````#`EL!"``!`FD!!``!`A``!``!
- + M"K0170`#``D"'0/I`!4#\0J["+\*P0K+"M,*W00&"N4`R0H(!N,&0P:1"O0*
- + M^@L$`*(+#`#R!!8``PL6`WH``0L>`'@``0LL`'@``0"!`"P#Z@``````@0`(
- + M`^L````(!($`'``!"SH`&``!"$0`%``!`3P`$``!!K<`#``!"T,`"``!"TT`
- + M!``!!!(````!"UD4>P`!``D`!`/I`````@MA``0``0MH`````0MO%(<``@`)
- + M`#X#Z0````0+?`!^``$+B`!Z``$+E``$``$+I@````$`@0`!`^L````!"[@`
- + M```!"\D4U@`!``D``@/I````!`O/``0``0O8``0``0OA`````0OI`````0OQ
- + M%.```0`)`!4#Z0`'"OH&=PM-">0&Q0<J!TL`!@OY`$P``0P``$@``0F=`"8`
- + M`0P'`"(``0P/`````0P;`````0PG%2H``0`)`!,#Z0`"!7D![``"#"\`#``!
- + M`[<````!##854P`"``D`F`/I``H,/`"X`,(+DP2R`2``R0Q,`>P$$@`"#%8"
- + M2``!#%P````!`($``@/J``````QD%D0``P`)!6@#Z0`*#&L*P0K3!^X*W0<C
- + M#'0,50DG!<L`$`Q[%9(``0R#%9(``0R+%80``0R3%8```0R;$/0``0RB$/``
- + M`0RI$)0``0RR$)```0R[#I@``0S##I0``0?W#C```0S+#BP``0S6#38``0SA
- + M#38``0SL#,8``0SS#,8``0"!`$@#Z@````,'W0`8``$,^@`4``$'YP`,``$`
- + M@03V`^L`````#00<K``"``D!G`/I``L$%@=S`/(![`"B`,(!(`4&"G8`N`#)
- + M``8*Y@7L``$-#P7,``$,/056``$-'05(``$-+0+8``$-.P+0``$`@0`(`^H`
- + M````#4D>O``!``D`)P/I``0`P@$@`,D![``"#5(`"``!#5H````!#6(?!``!
- + M``D`#@/I````!`UJ`"H``0UR`!P``0UZ``P``0V!`````0V('QH``0`)`!`#
- + MZ0````(-CP`,``$-E0````$-FQ\R``(`"0!U`^D`!@#"`2``R0M[`J8(3@`$
- + M`K$!+@`!#:4!)@`!`KL`&``!#:\````!`($`0`/K`````0+&`````0VZ']P`
- + M`0`)``4#Z0````(-P@`(``$-R0````$-T!_I``$`"0`,`^D``@.V`>P``@W<
- + M``@``0WG`````0WR(`H``0`)``T#Z0`#`[8![`N3``(-^P`(``$.`P````$.
- + M"R`T``$`"0`0`^D``0#"``0.%``L``$.&P`@``$.(@`,``$.*@````$.,B!4
- + M``$`"0`-`^D``@.V`>P``@X[``0``0Y#`````0Y+('8``0`)``\#Z0`%`,(%
- + M!@47"G8"AP`"#E8`!``!#F`````!#FH@L``!``D`*`/I``0!(`#"`+@`R0`"
- + M#G(`!``!#GD````!#H`@^0`#``D!EP/I``(,B@?N``(.BP`2``$.E0````$`
- + M@0!Y`^H``````($`"0/K``````Z?(WP``0`)`!8#Z0`%`,(!(`TL`>P`R0`"
- + M#JH`"``!#K0````!#KXCN@`!``D`U0/I``H`P@$@`*(`J`L,!!(%@P.V`,D`
- + M\@`$#L4#.``!#LL#'``!#M$`(@`!#M@````!#M\DW0`!``D``@/I````!`[E
- + M``0``0[N``0``0[W`````0[_`````0\').<``0`)``X#Z0`'!@<%!@47"T,&
- + M)PM-`>P``@\/``0``0\6`````0\=)2X``0`)``\#Z0`"#%4![``$#R4`,@`!
- + M#RP`*@`!#S,`"``!#SP````!#T4E4@`!``D`(P/I``,`P@5Y`>P`!`31`((`
- + M`0]-`'8``0]4``P``0]=`````0]F)9```0`)``P#Z0`!"`$``@>>``0``0]M
- + M`````0]S):P``0`)`!T#Z0`#`/(`R0'L``(*P@`$``$/?`````$/AB7C``$`
- + M"0`3`^D``P"X`>P`R0`"#XT`"``!#Y,````!#YDF$``"``D`)`/I``0#F@!5
- + M!!(![``"#Z(`!``!`&D````!`($``@/J``````^J)F```0`)``8#Z0`"#[$!
- + M[``"#[H`!``!#\$````!#\@F>P`!``D`#P/I``0`N`#)"Y,![``"#]``"``!
- + M#]<````!#]XFK``!``D`'`/I``(%>0'L``0/Y@!<``$/[0!.``$/]``.``$/
- + M_0````$0!B;>``$`"0`<`^D``P#"!7D![``$#'4`9``!$`T`6``!$!,`#``!
- + M$!L````!$",G%0`!``D`@0/I``L&!P4&!1<+0PIV!EL&)PM-`,(%>0'L``(0
- + M+``8``$0-`````$0/"?K``$`"0`@`^D``P#"!7D![``!$$0````!$$LH)@`"
- + M``D```/I``````"!`-X#Z@````($QP-R``$$N@+6``$05RD[``(`"0!%`^D`
- + M`@#)!+(`!`"Y`/X``1!?`/X``0$A``0``1!H`````0"!``$#ZP````$`P@``
- + M``$0=RF<``$`"0`%`^D`!!!^`?8,#@'L``(0A0````$0C`````$0DRG!``$`
- + M"0!9`^D`!@FD`DL!XP'L`,(+!``"$'\`[@`!$)H`Y@`!$*`J2@`#``D`0P/I
- + M``@0JP06$+<`50:W!!()+P"B``@)L`"R``$0Q`"R``$)U`!(``$0V`!(``$)
- + MI0`B``$0Z0`>``$%)P`$``$0]`````$`@0`&`^H``````($`#P/K````!@%@
- + M`#@``0G$`#0``0%4`!0``0$P``@``0'C``0``0%)`````1$!*N,``0`)`"\#
- + MZ0`!$*L`!`7K`)0``1$+`)```07Z`!P``1$:`````1$H*R,``0`)`!0#Z0`$
- + 6`+@+DP#)`>P``A$P``@``1$W`````1P`
- + `
- + end
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/unlink.c emacs-18.59/amiga/unix/src/unlink.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/unlink.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/unlink.c Wed Dec 2 20:19:44 1992
- ***************
- *** 0 ****
- --- 1,40 ----
- + #include "amiga.h"
- + #include "files.h"
- + #include <amiga/ioctl.h>
- +
- + static int delete_open_file(char *name)
- + {
- + BPTR nlock = Lock(name, SHARED_LOCK);
- +
- + if (nlock)
- + {
- + int err = errno, i;
- +
- + i = _last_fd();
- + while (--i >= 0)
- + if (ioctl(i, _AMIGA_DELETE_IF_ME, &nlock) == 0)
- + {
- + errno = err;
- + return 0;
- + }
- + UnLock(nlock);
- + }
- + return -1;
- + }
- +
- + int unlink(const char *file)
- + {
- + long err;
- +
- + chkabort();
- + if (DeleteFile(file)) return 0;
- + err = IoErr();
- + if (err == ERROR_DELETE_PROTECTED)
- + {
- + if (SetProtection(file, 0) && DeleteFile(file)) return 0;
- + err = IoErr();
- + }
- + if (err == ERROR_OBJECT_IN_USE && delete_open_file(file) == 0) return 0;
- + errno = convert_oserr(err);
- + return -1;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/utime.c emacs-18.59/amiga/unix/src/utime.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/utime.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/utime.c Mon Aug 24 23:02:00 1992
- ***************
- *** 0 ****
- --- 1,22 ----
- + #include "amiga.h"
- + #include "timeconvert.h"
- + #include <stdlib.h>
- + #include <time.h>
- + #include <utime.h>
- +
- + int utime(char *file, struct utimbuf *times)
- + {
- + struct DateStamp date;
- + time_t mtime;
- +
- + chkabort();
- + if (times) mtime = times->modtime;
- + else mtime = time(0);
- +
- + if (mtime == -1) return 0;
- +
- + _gmt2amiga(mtime, &date);
- +
- + if (SetFileDate(file, &date)) return 0;
- + ERROR;
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/wait4.c emacs-18.59/amiga/unix/src/wait4.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/wait4.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/wait4.c Sat Aug 15 13:45:34 1992
- ***************
- *** 0 ****
- --- 1,57 ----
- + #include "amiga.h"
- + #include "signals.h"
- + #include "processes.h"
- + #include <sys/wait.h>
- +
- + int wait4(int pid, int *statusp, int options, struct rusage *rusage)
- + {
- + struct process *p;
- +
- + do {
- + int seen = FALSE;
- +
- + scan_processes(p)
- + if (pid == 0 || p->pid == pid)
- + {
- + seen = TRUE;
- +
- + if (p->status == exited)
- + {
- + int pid = p->pid;
- +
- + if (statusp) *statusp = p->rc;
- + _free_entry(p);
- +
- + return pid;
- + }
- + }
- + if (options & WNOHANG) return 0;
- + if (!seen)
- + {
- + errno = ECHILD;
- + return -1;
- + }
- + _handle_signals(_wait_signals(0));
- + } while (1);
- + }
- +
- + int wait3(int *statusp, int options, struct rusage *rusage)
- + {
- + return wait4(0, statusp, options, rusage);
- + }
- +
- + int wait(int *statusp)
- + {
- + return wait4(0, statusp, 0, NULL);
- + }
- +
- + int waitpid(int pid, int *statusp, int options)
- + {
- + /* We have no process groups, so :
- + Our process group encompasses all our children
- + Each child is a process group unto itself
- + This is somewhat contradictory ... Should this be changed ? */
- + if (pid == -1) pid = 0;
- + if (pid < 0) pid = -pid;
- + return wait4(pid, statusp, options, NULL);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/write.c emacs-18.59/amiga/unix/src/write.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/write.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/write.c Fri Dec 4 22:15:36 1992
- ***************
- *** 0 ****
- --- 1,29 ----
- + #include "amiga.h"
- + #include "files.h"
- + #include <fcntl.h>
- + #include <unistd.h>
- +
- + #undef write
- +
- + int __write(int fd, const void *buffer, unsigned int length)
- + {
- + struct fileinfo *fi;
- +
- + chkabort();
- + if (fi = _find_fd(fd))
- + {
- + if (fi->flags & FI_WRITE)
- + {
- + if (fi->flags & O_APPEND) fi->lseek(fi->userinfo, 0, SEEK_END);
- + return fi->write(fi->userinfo, buffer, length);
- + }
- + errno = EACCES;
- + }
- + return -1;
- + }
- +
- + int write(int fd, const void *buffer, unsigned int length)
- + {
- + return __write(fd, buffer, length);
- + }
- +
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/africa emacs-18.59/amiga/unix/src/zoneinfo/datfiles/africa
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/africa Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/africa Sat Aug 1 14:24:06 1992
- ***************
- *** 0 ****
- --- 1,43 ----
- + # @(#)africa 4.3
- +
- + ###############################################################################
- +
- + # Egypt
- +
- + # From Bob Devine (January 28, 1988):
- + # Egypt: DST from first day of May to first of October (ending may
- + # also be on Sept 30th not 31st -- you might want to ask one of the
- + # soc.* groups, you might hit someone who could ask an embassy).
- + # DST since 1960 except for 1981-82.
- +
- + # From U. S. Naval Observatory (January 19, 1989):
- + # EGYPT 2 H AHEAD OF UTC
- + # EGYPT 3 H AHEAD OF UTC MAY 17 - SEP 30 (AFTER
- + # EGYPT RAMADAN)
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule Egypt 1960 max - May 1 2:00 1:00 " DST"
- + Rule Egypt 1960 max - Oct 1 2:00 0 -
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone Egypt 2:00 Egypt EET%s 1981
- + 2:00 - EET 1983
- + 2:00 Egypt EET%s
- +
- + ###############################################################################
- +
- + # Libya
- +
- + # From Bob Devine (January 28 1988):
- + # Libya: Since 1982 April 1st to September 30th (?)
- +
- + # From U. S. Naval Observatory (January 19, 1989):
- + # LIBYAN ARAB 1 H AHEAD OF UTC JAMAHIRIYA/LIBYA
- + # LIBYAN ARAB 2 H AHEAD OF UTC APR 1 - SEP 30 JAMAHIRIYA/LIBYA
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule Libya 1982 max - Apr 1 2:00 1:00 " DST"
- + Rule Libya 1982 max - Sep 30 2:00 0 -
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone Libya 2:00 Libya EET%s
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/antarctica emacs-18.59/amiga/unix/src/zoneinfo/datfiles/antarctica
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/antarctica Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/antarctica Thu Jul 30 00:43:20 1992
- ***************
- *** 0 ****
- --- 1,4 ----
- + # @(#)antarctica 4.1
- +
- + # From Arthur David Olson (February 13, 1988):
- + # No data available.
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/asia emacs-18.59/amiga/unix/src/zoneinfo/datfiles/asia
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/asia Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/asia Sat Aug 1 14:24:28 1992
- ***************
- *** 0 ****
- --- 1,262 ----
- + # @(#)asia 7.1
- +
- + # From Guy Harris:
- + # Incorporates data for Singapore from Robert Elz' asia 1.1, as well as
- + # additional information from Tom Yap, Sun Microsystems Intercontinental
- + # Technical Support (including a page from the Official Airline Guide -
- + # Worldwide Edition). The names for time zones are guesses.
- +
- + ###############################################################################
- +
- + # People's Republic of China
- +
- + # From Guy Harris:
- + # People's Republic of China. Yes, they really have only one time zone.
- +
- + # From Bob Devine (January 28, 1988):
- + # No they don't. See TIME mag, February 17, 1986 p.52. Even though
- + # China is across 4 physical time zones, before Feb 1, 1986 only the
- + # Peking (Bejing) time zone was recognized. Since that date, China
- + # has two of 'em -- Peking's and Urumqi (named after the capital of
- + # the Xinjiang Uighur Autonomous Region). I don't know about DST for it.
- + #
- + # . . .I just deleted the DST table and this editor makes it too
- + # painful to suck in another copy.. So, here is what I have for
- + # DST start/end dates for Peking's time zone (info from AP):
- + #
- + # 1986 May 4 - Sept 14
- + # 1987 mid-April - ??
- +
- + # From U. S. Naval Observatory (January 19, 1989):
- + # CHINA 8 H AHEAD OF UTC ALL OF CHINA, INCL TAIWAN
- + # CHINA 9 H AHEAD OF UTC APR 17 - SEP 10
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule PRC 1970 max - Apr Sun<=14 2:00 1:00 D
- + Rule PRC 1970 max - Sep Sun<=14 3:00 0 S
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone PRC 8:00 PRC C%sT
- +
- + ###############################################################################
- +
- + # Republic of China
- +
- + # From Guy Harris
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone ROC 8:00 - CST
- +
- + ###############################################################################
- +
- + # Hongkong
- +
- + # From Guy Harris
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone Hongkong 8:00 - HKT
- +
- + ###############################################################################
- +
- + # Iran
- +
- + # From Bob Devine (January 28, 1988):
- + # Iran: Last Sunday in March to third (?) Sunday in
- + # September. Since the revolution, the official calendar is Monarchic
- + # calendar; I have no idea what the correspondence between dates are.
- +
- + # From U. S. Naval Observatory (January 19, 1989):
- + # IRAN 3.5H AHEAD OF UTC
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule Iran 1988 max - Mar lastSun 2:00 1:00 D
- + Rule Iran 1988 max - Sep Sun>=15 2:00 0 S
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone Iran 3:30 Iran I%sT
- +
- + ###############################################################################
- +
- + # Israel
- +
- + # From U. S. Naval Observatory (January 19, 1989):
- + # ISRAEL 2 H AHEAD OF UTC
- + # ISRAEL 3 H AHEAD OF UTC APR 10 - SEP 3
- +
- + # From Ephraim Silverberg (April 18, 1989):
- +
- + # Prior to 1989, the rules concerning Daylight Savings Time changed every
- + # year; as information, regarding exact times and dates during this period,
- + # is not readily available at the present time, the rules commence starting
- + # with the year 1989.
- +
- + # From 1989 onwards the rules are as follows:
- + #
- + # 1. Daylight Savings Time commences midnight of the first Saturday night
- + # following the seven-day festival of Pesach (Passover). The transition
- + # is from midnight Israel Standard Time to 1 a.m. Israel Daylight Savings
- + # time. As the Pesach festival is dependent on the Lunar calendar (the
- + # first day is always on the 15th day of the month of Nisan), the rule
- + # changes every year on the Gregorian calendar.
- + #
- + # 2. Standard Time is reinstated on the Saturday night whereupon Jews
- + # following the Ashkenazi (European) rite begin to recite the Selichot
- + # (forgiveness) prayers prior to the Jewish Lunar New Year. The transition
- + # is from midnight Israel Daylight Savings time to 11 p.m. Israel Standard
- + # Time. The law (according to the Ashkenazi custom) concerning the
- + # commencement of the Selichot prayers is described in chapter 128, section
- + # 5 of the "Code of Jewish Law," by Rabbi Shlomo Ganzfried (translated by
- + # Hyman E. Goldin):
- + #
- + # Beginning with the Sunday [**] before Rosh Hashanah [***],
- + # we rise early for the service of Selichot (supplications for
- + # forgiveness). If Rosh Hashanah occurs on Monday or Tuesday, we
- + # begin saying the Selichot from the Sunday of the preceding week.
- + #
- + # This, too, varies from year to year on the Gregorian calendar and, thus,
- + # two explicit timezone rules are required for each Gregorian year.
- + #
- + # [**] actually Saturday night as the Jewish day commences at nightfall.
- + # [***] the Jewish Lunar New Year.
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule Zion 1989 only - Apr 30 0:00 1:00 D
- + Rule Zion 1989 only - Sep 24 0:00 0:00 S
- + Rule Zion 1990 only - Apr 22 0:00 1:00 D
- + Rule Zion 1990 only - Sep 16 0:00 0:00 S
- + Rule Zion 1991 only - Apr 7 0:00 1:00 D
- + Rule Zion 1991 only - Sep 1 0:00 0:00 S
- + Rule Zion 1992 only - Apr 26 0:00 1:00 D
- + Rule Zion 1992 only - Sep 20 0:00 0:00 S
- + Rule Zion 1993 only - Apr 18 0:00 1:00 D
- + Rule Zion 1993 only - Sep 12 0:00 0:00 S
- + Rule Zion 1994 only - Apr 3 0:00 1:00 D
- + Rule Zion 1994 only - Aug 28 0:00 0:00 S
- + Rule Zion 1995 only - Apr 23 0:00 1:00 D
- + Rule Zion 1995 only - Sep 17 0:00 0:00 S
- + Rule Zion 1996 only - Apr 14 0:00 1:00 D
- + Rule Zion 1996 only - Sep 8 0:00 0:00 S
- + Rule Zion 1997 only - May 4 0:00 1:00 D
- + Rule Zion 1997 only - Sep 28 0:00 0:00 S
- + Rule Zion 1998 only - Apr 19 0:00 1:00 D
- + Rule Zion 1998 only - Sep 13 0:00 0:00 S
- + Rule Zion 1999 only - Apr 11 0:00 1:00 D
- + Rule Zion 1999 only - Sep 5 0:00 0:00 S
- + Rule Zion 2000 only - Apr 30 0:00 1:00 D
- + Rule Zion 2000 only - Sep 24 0:00 0:00 S
- + Rule Zion 2001 only - Apr 15 0:00 1:00 D
- + Rule Zion 2001 only - Sep 9 0:00 0:00 S
- + Rule Zion 2002 only - Apr 7 0:00 1:00 D
- + Rule Zion 2002 only - Sep 1 0:00 0:00 S
- + Rule Zion 2003 only - Apr 27 0:00 1:00 D
- + Rule Zion 2003 only - Sep 21 0:00 0:00 S
- + Rule Zion 2004 only - Apr 18 0:00 1:00 D
- + Rule Zion 2004 only - Sep 12 0:00 0:00 S
- + Rule Zion 2005 only - May 1 0:00 1:00 D
- + Rule Zion 2005 only - Sep 25 0:00 0:00 S
- + Rule Zion 2006 only - Apr 23 0:00 1:00 D
- + Rule Zion 2006 only - Sep 17 0:00 0:00 S
- + Rule Zion 2007 only - Apr 15 0:00 1:00 D
- + Rule Zion 2007 only - Sep 9 0:00 0:00 S
- + Rule Zion 2008 only - Apr 27 0:00 1:00 D
- + Rule Zion 2008 only - Sep 21 0:00 0:00 S
- + Rule Zion 2009 only - Apr 19 0:00 1:00 D
- + Rule Zion 2009 only - Sep 13 0:00 0:00 S
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone Israel 2:00 Zion I%sT
- +
- + # The following is a chart of the day of the week and Gregorian date of
- + # the first day of Pesach and the first day of Rosh Hashanah for the years
- + # 1989 through 2009 inclusive.
- + #
- + # First Day of Passover
- + # ---------------------
- + # Gregorian Year Day of Week Month Day
- + # -------------- ----------- ----- ---
- + # 1989 Thursday April 20
- + # 1990 Tuesday April 10
- + # 1991 Saturday March 30
- + # 1992 Saturday April 18
- + # 1993 Tuesday April 6
- + # 1994 Sunday March 27
- + # 1995 Saturday April 15
- + # 1996 Thursday April 4
- + # 1997 Tuesday April 22
- + # 1998 Saturday April 11
- + # 1999 Thursday April 1
- + # 2000 Thursday April 20
- + # 2001 Sunday April 8
- + # 2002 Thursday March 28
- + # 2003 Thursday April 17
- + # 2004 Tuesday April 6
- + # 2005 Sunday April 24
- + # 2006 Thursday April 13
- + # 2007 Tuesday April 3
- + # 2008 Sunday April 20
- + # 2009 Thursday April 9
- + #
- + # First Day of Rosh Hashanah
- + # --------------------------
- + # Gregorian Year Day of Week Month Day
- + # -------------- ----------- ----- ---
- + # 1989 Saturday September 30
- + # 1990 Thursday September 20
- + # 1991 Monday September 9
- + # 1992 Monday September 28
- + # 1993 Thursday September 16
- + # 1994 Tuesday September 6
- + # 1995 Monday September 25
- + # 1996 Saturday September 14
- + # 1997 Thursday October 2
- + # 1998 Monday September 21
- + # 1999 Saturday September 11
- + # 2000 Saturday September 30
- + # 2001 Tuesday September 18
- + # 2002 Saturday September 7
- + # 2003 Saturday September 27
- + # 2004 Thursday September 16
- + # 2005 Tuesday October 4
- + # 2006 Saturday September 23
- + # 2007 Thursday September 13
- + # 2008 Tuesday September 30
- + # 2009 Saturday September 19
- +
- + ###############################################################################
- +
- + # Japan
- +
- + # From Guy Harris
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone Japan 9:00 - JST
- +
- + ###############################################################################
- +
- + # Republic of Korea
- +
- + # From Guy Harris:
- + # According to someone at the Korean Times in San Francisco,
- + # Daylight Savings Time was not observed until 1987. He did not know
- + # at what time of day DST starts or ends.
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule ROK 1987 max - May Sun<=14 2:00 1:00 D
- + Rule ROK 1987 max - Oct Sun<=14 3:00 0 S
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone ROK 9:00 ROK K%sT
- +
- + ###############################################################################
- +
- + # Lebanon
- +
- + # From Bob Devine (January 28, 1988):
- + # Lebanon: They do have DST but I don't know the dates.
- +
- + ###############################################################################
- +
- + # Singapore
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone Singapore 8:00 - SST
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/australasia emacs-18.59/amiga/unix/src/zoneinfo/datfiles/australasia
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/australasia Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/australasia Sat Aug 1 14:24:04 1992
- ***************
- *** 0 ****
- --- 1,113 ----
- + # @(#)australasia 4.4
- +
- + # Incorporates updates for Australia from Robert Elz' australia 1.1
- + # and further updates from the Australian consulate.
- +
- + ###############################################################################
- +
- + # Australia
- +
- + # Australian Data (for states with DST), standard rules
- + # Includes shift in 1987 to follow Vic/NSW rules for ending DST,
- + # and shift in 1986 to start DST earlier.
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule Oz 1971 1985 - Oct lastSun 2:00 1:00 -
- + Rule Oz 1986 max - Oct Sun<=24 2:00 1:00 -
- + Rule Oz 1972 only - Feb 27 3:00 0 -
- + Rule Oz 1973 1986 - Mar Sun>=1 3:00 0 -
- + Rule Oz 1987 max - Mar Sun<=21 3:00 0 -
- +
- + # Zone NAME GMTOFF RULES FORMAT [UNTIL]
- + Zone Australia/Tasmania 10:00 Oz EST
- + Zone Australia/Queensland 10:00 - EST # No DST here
- + Zone Australia/North 9:30 - CST # No DST here
- + Zone Australia/West 8:00 - WST # No DST here
- + Zone Australia/South 9:30 Oz CST
- +
- + # Victoria jumped to a later ending date for DST in 1986 rather than 1987.
- +
- + Zone Australia/Victoria 10:00 Oz EST 1985 Oct lastSun 2:00
- + 10:00 1:00 EST 1986 Mar Sun<=21 3:00
- + 10:00 Oz EST
- +
- + # New South Wales and subjurisdictions have their own ideas of a fun time.
- + # Based on law library research by John Mackin (john@basser.cs.su.oz),
- + # who notes:
- + # In Australia, time is not legislated federally, but rather by the
- + # individual states. Thus, while such terms as ``Eastern Standard Time''
- + # [I mean, of course, Australian EST, not any other kind] are in common
- + # use, _they have NO REAL MEANING_, as they are not defined in the
- + # legislation. This is very important to understand.
- + # I have researched New South Wales time only; . . .I hope that perhaps a
- + # resident of each state could be found to do it for their own state.
- + # (And I can guarantee that Victoria and NSW are different, so the link
- + # between them in the current australasia file must be broken.)
- +
- + # From Robert Elz (May 5, 1989):
- + #
- + # From next year (1990) NSW will revert to ending DST on the 1st
- + # Sunday in March (rather than the third, which it appears will
- + # continue to be what everyone else uses).
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule NSW 1971 1985 - Oct lastSun 2:00 1:00 -
- + Rule NSW 1972 only - Feb lastSun 3:00 0 -
- + Rule NSW 1973 1981 - Mar Sun>=1 3:00 0 -
- + Rule NSW 1982 only - Apr 4 3:00 0 -
- + Rule NSW 1983 1985 - Mar Sun>=1 3:00 0 -
- + Rule NSW 1986 only - Mar 16 3:00 0 -
- + Rule NSW 1986 only - Oct 19 2:00 1:00 -
- + Rule NSW 1987 only - Mar 15 3:00 0 -
- + Rule NSW 1987 max - Oct lastSun 2:00 1:00 -
- + Rule NSW 1988 1989 - Mar Sun<=21 3:00 0 -
- + Rule NSW 1990 max - Mar Sun>=1 3:00 0 -
- +
- + # Zone NAME GMTOFF RULES FORMAT [UNTIL]
- + Zone Australia/NSW 10:00 NSW EST
- + # `Broken Hill' means the County of Yancowinna. [john@basser.cs.su.oz.au,1/4/89]
- + Zone Australia/Yancowinna 9:30 NSW ???
- + Zone Australia/LHI 10:30 NSW ???
- +
- + # A footnote here:
- + #
- + # . . .
- + # Date: Thu, j19 Feb 87 12:02:17 EST
- + # From: Bradley White <seismo!k.cs.cmu.edu!bww>
- + # . . .
- + # I am including a description of Australian time zones. . .
- + # this stuff is definitely accurate.
- + # . . .
- + # a) Australian Eastern Time: (EST = GMT+10:00, EDT = GMT+11:00)
- + # . . .
- + # Summer of 86/87 - present (current legislation):
- + # third Sun Oct 02:00 EST -> third [S]un Mar 02:00 EST
- + #
- + # If this turns out to be true, substitute Sun<=21 (third Sunday in October)
- + # for Sun<=24 (next-to-last Sunday in October) above. . .some time before
- + # October 1988, the first time it makes a difference.
- +
- + ###############################################################################
- +
- + # New Zealand
- +
- + # New Zealand, from Elz' asia 1.1
- + # Elz says "no guarantees"
- + # The 1989/90 rule may only last a year. It is a trial that is
- + # subject to Ministerial approval to be made permanent.
- + # The termination of "daylight saving" may actually be second
- + # to last Sunday in March. Noone spoken to was very sure.
- +
- + # From U. S. Naval Observatory (January 19, 1989):
- + # NEW ZEALAND 12 H AHEAD OF UTC (EXCLUDING CHATHAM ISLAND)
- + # NEW ZEALAND 13 H AHEAD OF UTC OCT 30, '88-MAR 4, '89
- + # NEW ZEALAND 12H45M AHEAD OF UTC CHATHAM ISLAND
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule NZ 1974 1988 - Oct lastSun 2:00 1:00 D
- + Rule NZ 1989 max - Oct Sun>=8 2:00 1:00 D
- + Rule NZ 1975 1989 - Mar Sun>=1 3:00 0 S
- + Rule NZ 1990 max - Mar Sun>=15 3:00 0 S
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone NZ 12:00 NZ NZ%sT # New Zealand
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/etcetera emacs-18.59/amiga/unix/src/zoneinfo/datfiles/etcetera
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/etcetera Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/etcetera Sat Aug 1 14:24:06 1992
- ***************
- *** 0 ****
- --- 1,55 ----
- + # @(#)etcetera 4.4
- +
- + # All of these are set up just so people can "zic -l" to a timezone
- + # that's right for their area, even if it doesn't have a name or dst rules
- + # (half hour zones are too much to bother with -- when someone asks!)
- +
- + Zone GMT 0 - GMT
- +
- + Zone GMT-12 -12 - GMT-1200
- + Zone GMT-11 -11 - GMT-1100
- + Zone GMT-10 -10 - GMT-1000
- + Zone GMT-9 -9 - GMT-0900
- + Zone GMT-8 -8 - GMT-0800
- + Zone GMT-7 -7 - GMT-0700
- + Zone GMT-6 -6 - GMT-0600
- + Zone GMT-5 -5 - GMT-0500
- + Zone GMT-4 -4 - GMT-0400
- + Zone GMT-3 -3 - GMT-0300
- + Zone GMT-2 -2 - GMT-0200
- + Zone GMT-1 -1 - GMT-0100
- + Zone GMT+1 1 - GMT+0100
- + Zone GMT+2 2 - GMT+0200
- + Zone GMT+3 3 - GMT+0300
- + Zone GMT+4 4 - GMT+0400
- + Zone GMT+5 5 - GMT+0500
- + Zone GMT+6 6 - GMT+0600
- + Zone GMT+7 7 - GMT+0700
- + Zone GMT+8 8 - GMT+0800
- + Zone GMT+9 9 - GMT+0900
- + Zone GMT+10 10 - GMT+1000
- + Zone GMT+11 11 - GMT+1100
- + Zone GMT+12 12 - GMT+1200
- + Zone GMT+13 13 - GMT+1300 # GMT+12 with DST
- +
- + Link GMT UTC
- + Link GMT UCT
- + Link GMT Universal
- + Link GMT Greenwich
- + Link GMT Zulu
- + Link GMT GMT-0
- + Link GMT GMT+0
- + Link GMT GMT0
- + Link GMT+1 GMT1
- + Link GMT+2 GMT2
- + Link GMT+3 GMT3
- + Link GMT+4 GMT4
- + Link GMT+5 GMT5
- + Link GMT+6 GMT6
- + Link GMT+7 GMT7
- + Link GMT+8 GMT8
- + Link GMT+9 GMT9
- + Link GMT+10 GMT10
- + Link GMT+11 GMT11
- + Link GMT+12 GMT12
- + Link GMT+13 GMT13
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/europe emacs-18.59/amiga/unix/src/zoneinfo/datfiles/europe
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/europe Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/europe Sat Aug 1 14:24:08 1992
- ***************
- *** 0 ****
- --- 1,224 ----
- + # @(#)europe 4.10
- +
- + # International country codes are used to identify countries' rules and
- + # zones
- + #
- + # This data is by no means authoritative; if you think you know better, go
- + # ahead and edit the file (and please send any changes to
- + # ado@ncifcrf.gov for general use in the future).
- +
- + ###############################################################################
- +
- + # United Kingdom
- +
- + # From Arthur David Olson (January 19, 1989):
- + #
- + # The starting and ending dates below (from which the rules are derived)
- + # are from Whitaker's Almanack for 1987, page 146.
- + # 1960 is the earliest year for which dates are given;
- + # Whitaker's notes that British Summer Time (and, in some years, Double Summer
- + # Time) was observed in earlier years but does not give start and end dates.
- + #
- + # A source at the British Information Office in New York avers that it's
- + # known as "British" Summer Time in all parts of the United Kingdom.
- + # 1960 April 10 October 2 (yes, 2, according to the almanac)
- + # 1961 March 26 October 29
- + # 1962 March 25 October 28
- + # 1963 March 31 October 27
- + # 1964 March 22 October 25
- + # 1965 March 21 October 24
- + # 1966 March 20 October 23
- + # 1967 March 19 October 29
- + # 1968 February 18 October 27
- + # "British Standard Time, also one hour ahead of G. M. T., was kept between
- + # 1968 Oct. 27-1971 Oct. 31."
- + # 1972 March 19 October 29
- + # 1973 March 18 October 28
- + # 1974 March 17 October 27
- + # 1975 March 16 October 26
- + # 1976 March 21 October 24
- + # 1977 March 20 October 23
- + # 1978 March 19 October 29
- + # 1979 March 18 October 28
- + # 1980 March 16 October 26
- + # 1981 March 29 October 25
- + # 1982 March 28 October 24
- + # 1983 March 27 October 23
- + # 1984 March 25 October 28
- + # 1985 March 31 October 27
- + # 1986 March 30 October 26
- + # 1987 March 29 October 25
- +
- + # From an Anonymous U. K. Donor (January 4, 1989):
- + #
- + # It is NOT possible to predict when [British Summer Time] will change
- + # in a future year.
- + #
- + # (The admiralty calculate when they think it should be (no more that a couple
- + # of years in advance) and advise the government who then decide whether or
- + # not they will take the admiralty's advice)
- + #
- + # ...the Gre[e]nwich...observatory...[was] very helpful.
- + #
- + # I was not able to track down the Admiralty formula (I tried hard but failed)
- +
- + # ...
- + # Date: 4 Jan 89 08:57:25 GMT (Wed)
- + # From: Jonathan Leffler <nih-csl!uunet!mcvax!sphinx.co.uk!john>
- + # ...
- + # [British Summer Time] is fixed annually by Act of Parliament.
- + # If you can predict what Parliament will do, you should be in
- + # politics making a fortune, not computing.
- + #
- + # Summer time ends on Sunday 29 October 1989.
- +
- + # ...
- + # Date: 5 Jan 89 09:50:38 GMT (Thu)
- + # From: Peter Kendell <nih-csl!uunet!mcvax!tcom.stc.co.uk!pete>
- + # ...
- + #
- + # From my Collins Diary for 1989 -
- + #
- + # "At the time of going to press the Home Office was unable to confirm
- + # the 1989 starting and finishing dates for BST*, but expressed the
- + # view that 26 March and 29 October were the likeliest dates to be
- + # adopted"
- + #
- + # *British Summer Time.
- +
- + # From an Anonymous U. K. Donor (January 5, 1989):
- + #
- + # . . .our government is seriously considering applying Double Summer Time -
- + # putting the clocks forwards and back TWO hours for daylight saving time.
- + # This is advocated to standardise time in the EEC - we're all supposed to
- + # keep the same time and to change the clocks on the same dates in the future.
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + # Historic starting rules
- + Rule GB-Eire 1960 only - Apr 10 1:00s 1:00 BST
- + Rule GB-Eire 1961 1963 - Mar lastSun 1:00s 1:00 BST
- + Rule GB-Eire 1964 1967 - Mar Sun>=19 1:00s 1:00 BST
- + Rule GB-Eire 1968 only - Feb 18 1:00s 1:00 BST
- + Rule GB-Eire 1972 1980 - Mar Sun>=16 1:00s 1:00 BST
- + # Historic ending rules
- + Rule GB-Eire 1960 only - Oct 2 1:00s 0 GMT
- + Rule GB-Eire 1961 1967 - Oct Sun>=23 1:00s 0 GMT
- + Rule GB-Eire 1971 only - Oct 31 1:00s 0 GMT
- + # Current rules
- + Rule GB-Eire 1981 max - Mar lastSun 1:00s 1:00 BST
- + Rule GB-Eire 1972 max - Oct Sun>=23 1:00s 0 GMT
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone GB-Eire 0:00 GB-Eire %s 1968 Oct 27 1:00s
- + 1:00 - BST 1971 Oct 31 1:00s
- + 0:00 GB-Eire %s
- +
- + ###############################################################################
- +
- + # Continental Europe
- +
- + # The use of 1986 as starting years below is conservative.
- +
- + Rule W-Eur 1986 max - Mar lastSun 1:00s 1:00 " DST"
- + Rule W-Eur 1986 max - Sep lastSun 1:00s 0 -
- +
- + Rule M-Eur 1986 max - Mar lastSun 2:00s 1:00 " DST"
- + Rule M-Eur 1986 max - Sep lastSun 2:00s 0 -
- +
- + Rule E-Eur 1986 max - Mar lastSun 3:00s 1:00 " DST"
- + Rule E-Eur 1986 max - Sep lastSun 3:00s 0 -
- +
- + Rule Turkey 1986 max - Mar lastSun 1:00 1:00 " DST"
- + Rule Turkey 1986 max - Sep lastSun 1:00 0 -
- +
- + Rule W-SU 1986 max - Mar lastSun 2:00s 1:00 " DST"
- + Rule W-SU 1986 max - Sep lastSun 2:00s 0 -
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone WET 0:00 W-Eur WET%s
- + Zone Iceland 0:00 - WET
- + Zone MET 1:00 M-Eur MET%s
- + Zone Poland 1:00 W-Eur MET%s
- + Zone EET 2:00 E-Eur EET%s
- + Zone Turkey 3:00 Turkey EET%s
- + Zone W-SU 3:00 M-Eur ????
- +
- + # Tom Hoffman says that MET is also known as Central European Time
- +
- + Link MET CET
- +
- + ###############################################################################
- +
- + # One source shows that Bulgaria, Cyprus, Finland, and Greece observe DST from
- + # the last Sunday in March to the last Sunday in September in 1986.
- + # The source shows Romania changing a day later than everybody else.
- + #
- + # According to Bernard Sieloff's source, Poland is in the MET time zone but
- + # uses the WE DST rules. The Western USSR uses EET+1 and ME DST rules.
- + # Bernard Sieloff's source claims Romania switches on the same day, but at
- + # 00:00 standard time (i.e., 01:00 DST). It also claims that Turkey
- + # switches on the same day, but switches on at 01:00 standard time
- + # and off at 00:00 standard time (i.e., 01:00 DST)
- +
- + # ...
- + # Date: Wed, 28 Jan 87 16:56:27 -0100
- + # From: seismo!mcvax!cgcha!wtho (Tom Hofmann)
- + # Message-Id: <8701281556.AA22174@cgcha.uucp>
- + # ...
- + #
- + # ...the European time rules are...standardized since 1981, when
- + # most European coun[tr]ies started DST. Before that year, only
- + # a few countries (UK, France, Italy) had DST, each according
- + # to own national rules. In 1981, however, DST started on
- + # 'Apr firstSun', and not on 'Mar lastSun' as in the following
- + # years...
- + # But also since 1981 there are some more national exceptions
- + # than listed in 'europe': Switzerland, for example, joined DST
- + # one year later, Denmark ended DST on 'Oct 1' instead of 'Sep
- + # lastSun' in 1981---I don't know how they handle now.
- + #
- + # Finally, DST ist always from 'Apr 1' to 'Oct 1' in the
- + # Soviet Union (as far as I know).
- + #
- + # Tom Hofmann, Scientific Computer Center, CIBA-GEIGY AG,
- + # 4002 Basle, Switzerland
- + # UUCP: ...!mcvax!cernvax!cgcha!wtho
- +
- + # ...
- + # Date: Wed, 4 Feb 87 22:35:22 +0100
- + # From: seismo!mcvax!cwi.nl!dik (Dik T. Winter)
- + # ...
- + #
- + # The information from Tom Hofmann is (as far as I know) not entirely correct.
- + # After a request from chongo at amdahl I tried to retrieve all information
- + # about DST in Europe. I was able to find all from about 1969.
- + #
- + # ...standardization on DST in Europe started in about 1977 with switches on
- + # first Sunday in April and last Sunday in September...
- + # In 1981 UK joined Europe insofar that
- + # the starting day for both shifted to last Sunday in March. And from 1982
- + # the whole of Europe used DST, with switch dates April 1 and October 1 in
- + # the Sov[i]et Union. In 1985 the SU reverted to standard Europe[a]n switch
- + # dates...
- + #
- + # It should also be remembered that time-zones are not constants; e.g.
- + # Portugal switched in 1976 from MET (or CET) to WET with DST...
- + # Note also that though there were rules for switch dates not
- + # all countries abided to these dates, and many individual deviations
- + # occurred, though not since 1982 I believe. Another note: it is always
- + # assumed that DST is 1 hour ahead of normal time, this need not be the
- + # case; at least in the Netherlands there have been times when DST was 2 hours
- + # in advance of normal time.
- + #
- + # ...
- + # dik t. winter, cwi, amsterdam, nederland
- + # INTERNET : dik@cwi.nl
- + # BITNET/EARN: dik@mcvax
- +
- + # From Bob Devine (January 28, 1988):
- + # ...
- + # Greece: Last Sunday in April to last Sunday in September (iffy on dates).
- + # Since 1978. Change at midnight.
- + # ...
- + # Monaco: has same DST as France.
- + # ...
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/factory emacs-18.59/amiga/unix/src/zoneinfo/datfiles/factory
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/factory Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/factory Sat Aug 1 14:24:08 1992
- ***************
- *** 0 ****
- --- 1,8 ----
- + # @(#)factory 1.1
- +
- + # For companies who don't want to put time zone specification in
- + # their installation procedures. When users run date, they'll get the message.
- + # Also useful for the "comp.sources" version.
- +
- + # Zone NAME GMTOFF RULES FORMAT
- + Zone Factory 0 - "Local time zone must be set--see zic manual page"
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/leapseconds emacs-18.59/amiga/unix/src/zoneinfo/datfiles/leapseconds
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/leapseconds Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/leapseconds Sat Aug 1 14:24:10 1992
- ***************
- *** 0 ****
- --- 1,28 ----
- + # @(#)leapseconds 4.1
- +
- + # Allowance for leapseconds added to each timezone file.
- +
- + # The correction (+ or -) is made at the given time, so lines
- + # will typically look like:
- + # Leap YEAR MON DAY 23:59:60 + R/S
- + # or
- + # Leap YEAR MON DAY 23:59:59 - R/S
- +
- + # If the leapsecond is Rolling (R) the given time is local time
- + # If the leapsecond is Stationary (S) the given time is GMT
- +
- + # Leap YEAR MONTH DAY HH:MM:SS CORR R/S
- + Leap 1972 Jun 30 23:59:60 + S
- + Leap 1972 Dec 31 23:59:60 + S
- + Leap 1973 Dec 31 23:59:60 + S
- + Leap 1974 Dec 31 23:59:60 + S
- + Leap 1975 Dec 31 23:59:60 + S
- + Leap 1976 Dec 31 23:59:60 + S
- + Leap 1977 Dec 31 23:59:60 + S
- + Leap 1978 Dec 31 23:59:60 + S
- + Leap 1979 Dec 31 23:59:60 + S
- + Leap 1981 Jun 30 23:59:60 + S
- + Leap 1982 Jun 30 23:59:60 + S
- + Leap 1983 Jun 30 23:59:60 + S
- + Leap 1985 Jun 30 23:59:60 + S
- + Leap 1987 Dec 31 23:59:60 + S
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/northamerica emacs-18.59/amiga/unix/src/zoneinfo/datfiles/northamerica
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/northamerica Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/northamerica Sat Aug 1 14:24:12 1992
- ***************
- *** 0 ****
- --- 1,321 ----
- + # @(#)northamerica 4.8
- +
- + ###############################################################################
- +
- + # United States
- +
- + # From Arthur David Olson:
- + # US Daylight Saving Time ended on the last Sunday of *October* in 1974.
- + # See, for example, the front page of the Saturday, October 26, 1974
- + # and Sunday, October 27, 1974 editions of the Washington Post.
- +
- + # From seismo!munnari!kre:
- + # I recall also being told by someone once that Canada didn't have
- + # the DST variations in 74/75 that the US did, but I am not nearly
- + # sure enough of this to add anything.
- +
- + # From Arthur David Olson:
- + # The above has been confirmed by Bob Devine; we'll go with it here.
- +
- + # From Arthur David Olson:
- + # Before the Uniform Time Act of 1966 took effect in 1967, observance of
- + # Daylight Saving Time in the US was by local option, except during wartime.
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule US 1918 1919 - Mar lastSun 2:00 1:00 D
- + Rule US 1918 1919 - Oct lastSun 2:00 0 S
- + Rule US 1942 only - Feb 9 2:00 1:00 W # War
- + Rule US 1945 only - Sep 30 2:00 0 S
- + Rule US 1967 max - Oct lastSun 2:00 0 S
- + Rule US 1967 1973 - Apr lastSun 2:00 1:00 D
- + Rule US 1974 only - Jan 6 2:00 1:00 D
- + Rule US 1975 only - Feb 23 2:00 1:00 D
- + Rule US 1976 1986 - Apr lastSun 2:00 1:00 D
- + Rule US 1987 max - Apr Sun>=1 2:00 1:00 D
- +
- + # From Bob Devine (January 28, 1988):
- + # ...Alaska (and Hawaii) had the timezone names changed in 1967.
- + # old new
- + # Pacific Standard Time(PST) -same-
- + # Yukon Standard Time(YST) -same-
- + # Central Alaska S.T. (CAT) Alaska-Hawaii St[an]dard Time (AHST)
- + # Nome Standard Time (NT) Bering Standard Time (BST)
- + #
- + # ...Alaska's timezone lines were redrawn in 1983 to give only 2 tz.
- + # The YST zone now covers nearly all of the state, AHST just part
- + # of the Aleutian islands. No DST.
- +
- + # From U. S. Naval Observatory (January 19, 1989):
- + # USA EASTERN 5 H BEHIND UTC NEW YORK, WASHINGTON
- + # USA EASTERN 4 H BEHIND UTC APR 3 - OCT 30
- + # USA CENTRAL 6 H BEHIND UTC CHICAGO, HOUSTON
- + # USA CENTRAL 5 H BEHIND UTC APR 3 - OCT 30
- + # USA MOUNTAIN 7 H BEHIND UTC DENVER
- + # USA MOUNTAIN 6 H BEHIND UTC APR 3 - OCT 30
- + # USA PACIFIC 8 H BEHIND UTC L.A., SAN FRANCISCO
- + # USA PACIFIC 7 H BEHIND UTC APR 3 - OCT 30
- + # USA ALASKA STD 9 H BEHIND UTC MOST OF ALASKA (AKST)
- + # USA ALASKA STD 8 H BEHIND UTC APR 3 - OCT 30 (AKDT)
- + # USA ALEUTIAN 10 H BEHIND UTC ISLANDS WEST OF 170W
- + # USA - " - 9 H BEHIND UTC APR 3 - OCT 30
- + # USA HAWAII 10 H BEHIND UTC
- + # USA BERING 11 H BEHIND UTC SAMOA, MIDWAY
- +
- + # From Arthur David Olson (January 21, 1989):
- + # The above dates are for 1988.
- + # Note the "AKST" and "AKDT" abbreviations, the claim that there's
- + # no DST in Samoa, and the claim that there is DST in Alaska and the
- + # Aleutians.
- +
- + # From Arthur David Olson (February 13, 1988):
- + # Legal standard time zone names, from United States Code (1982 Edition and
- + # Supplement III), Title 15, Chapter 6, Section 260 and forward. First, names
- + # up to April 1, 1967 (when most provisions of the Uniform Time Act of 1966
- + # took effect), as explained in sections 263 and 261:
- + # (none)
- + # United States standard eastern time
- + # United States standard mountain time
- + # United States standard central time
- + # United States standard Pacific time
- + # (none)
- + # United States standard Alaska time
- + # (none)
- + # Next, names from April 1, 1967 until November 30, 1983 (the date for
- + # public law 98-181):
- + # Atlantic standard time
- + # eastern standard time
- + # central standard time
- + # mountain standard time
- + # Pacific standard time
- + # Yukon standard time
- + # Alaska-Hawaii standard time
- + # Bering standard time
- + # And after November 30, 1983:
- + # Atlantic standard time
- + # eastern standard time
- + # central standard time
- + # mountain standard time
- + # Pacific standard time
- + # Alaska standard time
- + # Hawaii-Aleutian standard time
- + # Samoa standard time
- + # The law doesn't give abbreviations.
- +
- + # Easy stuff first--including Alaska, where we ignore history (since we
- + # can't tell if we should give Yukon time or Alaska-Hawaii time for "old"
- + # times).
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone US/Eastern -5:00 US E%sT
- + Zone US/Central -6:00 US C%sT
- + Zone US/Mountain -7:00 US M%sT
- + Zone US/Pacific -8:00 US P%sT
- + Zone US/Alaska -9:00 US AK%sT # Abbreviation per USNO
- +
- + # Mainland US areas that are always Standard as of 1986.
- +
- + Zone US/East-Indiana -5:00 US E%sT 1946
- + -5:00 - EST # Always EST as of 1986
- + Zone US/Arizona -7:00 US M%sT 1946
- + -7:00 - MST # Always MST as of 1986
- +
- + # From Arthur David Olson (February 13, 1988):
- + # However. . .a writer from the Inter Tribal Council of Arizona, Inc.,
- + # notes in private correspondence dated 12/28/87 that "Presently, only the
- + # Navajo Nation participates in the Daylight Saving Time policy, due to its
- + # large size and location in three states." (The "only" means that other
- + # tribal nations don't use DST.)
- +
- + Link US/Mountain Navajo
- +
- + # From Bob Devine (January 28, 1988):
- + # Michigan didn't observe DST from 1968 to 1973.
- +
- + Zone US/Michigan -5:00 US E%sT 1968
- + -5:00 - EST 1973
- + -5:00 US E%sT
- +
- + # Samoa just changes names. No DST, per Naval Observatory.
- +
- + Zone US/Samoa -11:00 - NST 1967 Apr 1 # N=Nome
- + -11:00 - BST 1983 Nov 30 # B=Bering
- + -11:00 - SST # S=Samoa
- +
- + # Aleutian has a name change. DST, per Naval Observatory.
- +
- + Zone US/Aleutian -10:00 US AH%sT 1983 Nov 30
- + -10:00 US HA%sT
- +
- + # From Arthur David Olson:
- + # And then there's Hawaii.
- + # DST was observed for one day in 1933;
- + # Standard time was change by half an hour in 1947;
- + # it's always standard as of 1986.
- +
- + Zone US/Hawaii -10:30 US H%sT 1933 Apr 30 2:00
- + -10:30 1:00 HDT 1933 May 1 2:00
- + -10:30 US H%sT 1947 Jun 8 2:00
- + -10:00 - HST
- +
- + # Old names, for S5 users
- +
- + # Link LINK-FROM LINK-TO
- + # Link US/Eastern EST5EDT
- + # Link US/Central CST6CDT
- + # Link US/Mountain MST7MDT
- + # Link US/Pacific PST8PDT
- + # Link US/East-Indiana EST
- + # Link US/Arizona MST
- + # Link US/Hawaii HST
- +
- + ################################################################################
- +
- + # Canada
- +
- + # Canada is reportedly lots easier than the US--leastways since 1951.
- + # I don't know what they did before then.
- + # 4.3BSD claims that it's perfectly regular.
- + # According to a posting in "comp.bugs.misc", "comp.unix.wizards", etc.
- + # on February 8, 1987, by Dave Sherman of the Law Society of Upper Canada,
- + # "...Canada (well, Ontario and at least some of the other provinces) are
- + # adopting the new daylight savings time rules...". We assume all of
- + # Canada is doing so.
- +
- + # From Bob Devine (January 28, 1988):
- + # All of Canada did have DST from your first rule except Saskatchewan.
- + # Which parts did not observe DST is hard to pinpoint but most of the
- + # province follows the rules.
- + # NOTE: those that didn't have DST for that rule, also
- + # probably did not have it for several years previous.
- +
- + # From U. S. Naval Observatory (January 19, 1989):
- + # CANADA NEW FDL 3.5H BEHIND UTC ST.JOHN'S
- + # CANADA NEW FDL 1.5H BEHIND UTC APR 3 - OCT 29
- + # CANADA ATLANTIC 4 H BEHIND UTC HALIFAX
- + # CANADA ATLANTIC 3 H BEHIND UTC APR 3 - OCT 29
- + # CANADA EASTERN 5 H BEHIND UTC TORONTO, MONTREAL, OTTAWA
- + # CANADA EASTERN 4 H BEHIND UTC APR 3 - OCT 29
- + # CANADA CENTRAL 6 H BEHIND UTC REGINA, WINNIPEG
- + # CANADA CENTRAL 5 H BEHIND UTC APR 3 - OCT 29
- + # CANADA MOUNTAIN 7 H BEHIND UTC CALGARY, EDMONTON
- + # CANADA MOUNTAIN 6 H BEHIND UTC APR 3 - OCT 29
- + # CANADA PACIFIC 8 H BEHIND UTC VANCOUVER
- + # CANADA PACIFIC 7 H BEHIND UTC APR 3 - OCT 29
- + # CANADA YUKON SAME AS PACIFIC DAWSON
- +
- + # From Arthur David Olson (January 21, 1989):
- + # April 3 fell on a Sunday in 1988; October 29 fell on a Sunday in 1989. Ahem.
- + # Note claim that there's double DST in Newfoundland and that Yukon should
- + # be same as Pacific. Stick with rules posted in 1988 until more authoritative
- + # information is available.
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule Canada 1969 max - Oct lastSun 2:00 0 S
- + Rule Canada 1969 1986 - Apr lastSun 2:00 1:00 D
- + Rule Canada 1987 max - Apr Sun>=1 2:00 1:00 D
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + # Bob Devine says that DST *is* observed in Newfoundland
- + Zone Canada/Newfoundland -3:30 Canada N%sT
- + Zone Canada/Atlantic -4:00 Canada A%sT
- + Zone Canada/Eastern -5:00 Canada E%sT
- + Zone Canada/Central -6:00 Canada C%sT
- + Zone Canada/East-Saskatchewan -6:00 - CST # No DST as of 1987
- + Zone Canada/Mountain -7:00 Canada M%sT
- + Zone Canada/Pacific -8:00 Canada P%sT
- + Zone Canada/Yukon -9:00 Canada Y%sT
- +
- + ###############################################################################
- +
- + # Mexico
- +
- + # From Guy Harris:
- + # Rules are from the Official Airline Guide, Worldwide Edition, for 1987.
- + # Rules prior to 1987 are unknown.
- + # The comments in the OAG say "Only Ensenada, Mexicale, San Felipe and Tijuana
- + # observe DST." This is presumably Baja California Norte, above 28th parallel,
- + # as listed there; Mexico/BajaSur is for "Baja California Sur and N. Pacific
- + # Coast (States of Sinaloa and Sonora)."
- +
- + # From Bob Devine (January 28, 1988):
- + # The Federal District (where Mexico City is) has observed [DST] several
- + # times but not recently.
- + #
- + # I don't where to drawn the line in the North Baja area. 28th latitude
- + # sounds good -- but it may be higher (how far [d]o radio stations from
- + # San Diego affect culture?).
- + #
- + # The dates of DST probably go back to 1981. The rules are the same as
- + # US's. This is going to be a headache for US presidential electi[o]n years!
- +
- + # From Arthur David Olson (February 13, 1988)
- + # Since the 1981 starting date is only "probable," we'll keep the 1987
- + # starting date below.
- +
- + # From U. S. Naval Observatory (January 19, 1989):
- + # MEXICO BAJA CAL N 7 H BEHIND UTC BAJA CALIFORNIA SUR AND
- + # MEXICO BAJA CAL N N. PACIFIC COAST (STATES
- + # MEXICO BAJA CAL N OF SINALOA AND SONORA)
- + # MEXICO BAJA CAL N 8 H BEHIND UTC ABOVE 28TH PARALLAL APR 3
- + # MEXICO BAJA CAL N - OCT 29
- + # MEXICO BAJA CAL N 7 H BEHIND UTC ABOVE 28TH PARALLAL APR 3
- + # MEXICO BAJA CAL N - 0CT 29
- + # MEXICO 6 H BEHIND UTC STATES OF DURANGO,
- + # MEXICO COAHUILA, NUEVO LEON,
- + # MEXICO TAMAULIPAS
- + # MEXICO 5 H BEHIND UTC STATES OF DURANGO,
- + # MEXICO COAHUILA, NUEVO LEON,
- + # MEXICO TAMAULIPAS APR 3 - OCT 29
- + # MEXICO 6 H BEHIND UTC GENERAL MEXICO, STATES OF
- + # MEXICO CAMPECHE, QUINTANA ROO AND
- + # MEXICO YUCATAN
- +
- + # From Arthur David Olson (January 21, 1989):
- + # April 3 fell on a Sunday in 1988; October 29 fell on a Sunday in 1989. Ahem.
- + # USNO claims there should be four Mexican zones rather than three:
- + # a zone that's GMT-8 with DST; a zone that's always GMT-7;
- + # a zone that's GMT-6 with DST; and a zone that's always GMT-6.
- + # Wait for more authoritative information before changing.
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule Mexico 1987 max - Oct lastSun 2:00 0 S
- + Rule Mexico 1987 max - Apr Sun>=1 2:00 1:00 D
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone Mexico/BajaNorte -8:00 Mexico P%sT
- + Zone Mexico/BajaSur -7:00 - MST
- + Zone Mexico/General -6:00 - CST
- +
- + ###############################################################################
- +
- + # Jamaica
- +
- + # From Bob Devine (January 28, 1988):
- + # Follows US rules.
- +
- + # From U. S. Naval Observatory (January 19, 1989):
- + # JAMAICA 5 H BEHIND UTC
- +
- + Link US/Eastern Jamaica
- +
- + ###############################################################################
- +
- + # Cuba
- +
- + # From Bob Devine (January 28, 1988):
- + # . . .DST is from 2nd Sunday in May to 2nd Sunday in October since 1981.
- + # Change at midnight. In 1979 & 1980, started at 3rd Sunday in March
- + # (I think).
- +
- + # From U. S. Naval Observatory (January 19, 1989):
- + # CUBA 5 H BEHIND UTC
- + # CUBA 4 H BEHIND UTC MAR 20 - OCT 8
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule Cuba 1979 1980 - Mar Sun>=15 0:00 1:00 D
- + Rule Cuba 1979 1980 - Oct Sun>=8 0:00 0 S
- + Rule Cuba 1981 max - May Sun>=8 0:00 1:00 D
- + Rule Cuba 1981 max - Oct Sun>=8 0:00 0 S
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT
- + Zone Cuba -5:00 Cuba C%sT
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/pacificnew emacs-18.59/amiga/unix/src/zoneinfo/datfiles/pacificnew
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/pacificnew Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/pacificnew Sat Aug 1 14:24:12 1992
- ***************
- *** 0 ****
- --- 1,21 ----
- + # @(#)pacificnew 4.4
- +
- + # From Arthur David Olson (January 18, 1989):
- + # On November 10, 1987, the U. S. House of Representatives passed a bill
- + # (H.R. 435), the "Uniform Poll Closing Time Act", establishing
- + # "Pacific Presidential Election Time"; it was not acted on by the Senate
- + # before the end of the 100th Congress and so died.
- + # The bill has been reintroduced in the 101st Congress as H. R. 18;
- + # H. R. 96 also deals with poll closing time. Either bill would have to be
- + # passed by both the House and Senate and signed by the President (or have
- + # the President's veto overridden by the House and Senate) before becoming law.
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule Twilite 1989 max - Apr Sun>=1 2:00 1:00 D
- + Rule Twilite 1989 max uspres Oct lastSun 2:00 1:00 PE
- + Rule Twilite 1989 max uspres Nov Sun>=7 2:00 0 S
- + Rule Twilite 1989 max nonpres Oct lastSun 2:00 0 S
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone US/Pacific-New -8:00 US P%sT 1989
- + -8:00 Twilite P%sT
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/smakefile emacs-18.59/amiga/unix/src/zoneinfo/datfiles/smakefile
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/smakefile Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/smakefile Mon Sep 21 09:58:50 1992
- ***************
- *** 0 ****
- --- 1,67 ----
- + # @(#)Makefile 5.9 (Berkeley) 2/28/91
- +
- + # Change the line below for your time zone (after finding the zone you want in
- + # the time zone files, or adding it to a time zone file).
- + # Alternately, if you discover you've got the wrong time zone, you can just
- + # zic -l rightzone
- +
- + LOCALTIME= MET
- +
- + # If you want something other than Eastern United States time as a template
- + # for handling POSIX-style time zone environment variables,
- + # change the line below (after finding the zone you want in the
- + # time zone files, or adding it to a time zone file).
- + # Alternately, if you discover you've got the wrong time zone, you can just
- + # zic -p rightzone
- +
- + POSIXRULES= MET
- +
- + # Use an absolute path name for TZDIR unless you're just testing the software.
- +
- + TZDIR= s:zoneinfo
- +
- + # If you always want time values interpreted as "seconds since the epoch
- + # (not counting leap seconds)", use
- + # REDO= posix_only
- + # below. If you always want right time values interpreted as "seconds since
- + # the epoch" (counting leap seconds)", use
- + # REDO= right_only
- + # below. If you want both sets of data available, with leap seconds not
- + # counted normally, use
- + # REDO= posix_right
- + # below. If you want both sets of data available, with leap seconds counted
- + # normally, use
- + # REDO= right_posix
- + # below.
- +
- + # This should be left as is for the Amiga
- +
- + REDO= posix_only
- +
- + YDATA= africa antarctica asia australasia europe northamerica \
- + southamerica pacificnew etcetera factory
- + NDATA= systemv
- + #SDATA= solar87 solar88 solar89
- + TDATA= ${YDATA} ${NDATA} ${SDATA}
- + DATA= ${YDATA} ${NDATA} ${SDATA} leapseconds
- + USNO= usno1988 usno1989
- +
- + all: $(REDO)
- +
- + posix_only: ${TDATA}
- + /zic -d ${TZDIR} -L nil: ${TDATA}
- +
- + right_only: leapseconds ${TDATA}
- + /zic -d ${TZDIR} -L leapseconds ${TDATA}
- +
- + other_two: leapseconds ${TDATA}
- + /zic -d ${TZDIR} -L leapseconds ${TDATA}
- + /zic -d ${TZDIR} -L nil: ${TDATA}
- +
- + posix_right: posix_only other_two
- +
- + right_posix: right_only other_two
- +
- + install: ${TDATA} ${REDO}
- + /zic -d ${TZDIR} -p ${POSIXRULES}
- + /zic -d ${TZDIR} -l ${LOCALTIME}
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/solar87 emacs-18.59/amiga/unix/src/zoneinfo/datfiles/solar87
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/solar87 Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/solar87 Sat Aug 1 14:24:14 1992
- ***************
- *** 0 ****
- --- 1,386 ----
- + # @(#)solar87 4.1
- +
- + # So much for footnotes about Saudi Arabia.
- + # Apparent noon times below are for Riyadh; your mileage will vary.
- + # Times were computed using formulas in the U.S. Naval Observatory's
- + # Almanac for Computers 1987; the formulas "will give EqT to an accuracy of
- + # [plus or minus two] seconds during the current year."
- + #
- + # Rounding to the nearest five seconds results in fewer than
- + # 256 different "time types"--a limit that's faced because time types are
- + # stored on disk as unsigned chars.
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule sol87 1987 only - Jan 1 12:03:20s -0:03:20 -
- + Rule sol87 1987 only - Jan 2 12:03:50s -0:03:50 -
- + Rule sol87 1987 only - Jan 3 12:04:15s -0:04:15 -
- + Rule sol87 1987 only - Jan 4 12:04:45s -0:04:45 -
- + Rule sol87 1987 only - Jan 5 12:05:10s -0:05:10 -
- + Rule sol87 1987 only - Jan 6 12:05:40s -0:05:40 -
- + Rule sol87 1987 only - Jan 7 12:06:05s -0:06:05 -
- + Rule sol87 1987 only - Jan 8 12:06:30s -0:06:30 -
- + Rule sol87 1987 only - Jan 9 12:06:55s -0:06:55 -
- + Rule sol87 1987 only - Jan 10 12:07:20s -0:07:20 -
- + Rule sol87 1987 only - Jan 11 12:07:45s -0:07:45 -
- + Rule sol87 1987 only - Jan 12 12:08:10s -0:08:10 -
- + Rule sol87 1987 only - Jan 13 12:08:30s -0:08:30 -
- + Rule sol87 1987 only - Jan 14 12:08:55s -0:08:55 -
- + Rule sol87 1987 only - Jan 15 12:09:15s -0:09:15 -
- + Rule sol87 1987 only - Jan 16 12:09:35s -0:09:35 -
- + Rule sol87 1987 only - Jan 17 12:09:55s -0:09:55 -
- + Rule sol87 1987 only - Jan 18 12:10:15s -0:10:15 -
- + Rule sol87 1987 only - Jan 19 12:10:35s -0:10:35 -
- + Rule sol87 1987 only - Jan 20 12:10:55s -0:10:55 -
- + Rule sol87 1987 only - Jan 21 12:11:10s -0:11:10 -
- + Rule sol87 1987 only - Jan 22 12:11:30s -0:11:30 -
- + Rule sol87 1987 only - Jan 23 12:11:45s -0:11:45 -
- + Rule sol87 1987 only - Jan 24 12:12:00s -0:12:00 -
- + Rule sol87 1987 only - Jan 25 12:12:15s -0:12:15 -
- + Rule sol87 1987 only - Jan 26 12:12:30s -0:12:30 -
- + Rule sol87 1987 only - Jan 27 12:12:40s -0:12:40 -
- + Rule sol87 1987 only - Jan 28 12:12:55s -0:12:55 -
- + Rule sol87 1987 only - Jan 29 12:13:05s -0:13:05 -
- + Rule sol87 1987 only - Jan 30 12:13:15s -0:13:15 -
- + Rule sol87 1987 only - Jan 31 12:13:25s -0:13:25 -
- + Rule sol87 1987 only - Feb 1 12:13:35s -0:13:35 -
- + Rule sol87 1987 only - Feb 2 12:13:40s -0:13:40 -
- + Rule sol87 1987 only - Feb 3 12:13:50s -0:13:50 -
- + Rule sol87 1987 only - Feb 4 12:13:55s -0:13:55 -
- + Rule sol87 1987 only - Feb 5 12:14:00s -0:14:00 -
- + Rule sol87 1987 only - Feb 6 12:14:05s -0:14:05 -
- + Rule sol87 1987 only - Feb 7 12:14:10s -0:14:10 -
- + Rule sol87 1987 only - Feb 8 12:14:10s -0:14:10 -
- + Rule sol87 1987 only - Feb 9 12:14:15s -0:14:15 -
- + Rule sol87 1987 only - Feb 10 12:14:15s -0:14:15 -
- + Rule sol87 1987 only - Feb 11 12:14:15s -0:14:15 -
- + Rule sol87 1987 only - Feb 12 12:14:15s -0:14:15 -
- + Rule sol87 1987 only - Feb 13 12:14:15s -0:14:15 -
- + Rule sol87 1987 only - Feb 14 12:14:15s -0:14:15 -
- + Rule sol87 1987 only - Feb 15 12:14:10s -0:14:10 -
- + Rule sol87 1987 only - Feb 16 12:14:10s -0:14:10 -
- + Rule sol87 1987 only - Feb 17 12:14:05s -0:14:05 -
- + Rule sol87 1987 only - Feb 18 12:14:00s -0:14:00 -
- + Rule sol87 1987 only - Feb 19 12:13:55s -0:13:55 -
- + Rule sol87 1987 only - Feb 20 12:13:50s -0:13:50 -
- + Rule sol87 1987 only - Feb 21 12:13:45s -0:13:45 -
- + Rule sol87 1987 only - Feb 22 12:13:35s -0:13:35 -
- + Rule sol87 1987 only - Feb 23 12:13:30s -0:13:30 -
- + Rule sol87 1987 only - Feb 24 12:13:20s -0:13:20 -
- + Rule sol87 1987 only - Feb 25 12:13:10s -0:13:10 -
- + Rule sol87 1987 only - Feb 26 12:13:00s -0:13:00 -
- + Rule sol87 1987 only - Feb 27 12:12:50s -0:12:50 -
- + Rule sol87 1987 only - Feb 28 12:12:40s -0:12:40 -
- + Rule sol87 1987 only - Mar 1 12:12:30s -0:12:30 -
- + Rule sol87 1987 only - Mar 2 12:12:20s -0:12:20 -
- + Rule sol87 1987 only - Mar 3 12:12:05s -0:12:05 -
- + Rule sol87 1987 only - Mar 4 12:11:55s -0:11:55 -
- + Rule sol87 1987 only - Mar 5 12:11:40s -0:11:40 -
- + Rule sol87 1987 only - Mar 6 12:11:25s -0:11:25 -
- + Rule sol87 1987 only - Mar 7 12:11:15s -0:11:15 -
- + Rule sol87 1987 only - Mar 8 12:11:00s -0:11:00 -
- + Rule sol87 1987 only - Mar 9 12:10:45s -0:10:45 -
- + Rule sol87 1987 only - Mar 10 12:10:30s -0:10:30 -
- + Rule sol87 1987 only - Mar 11 12:10:15s -0:10:15 -
- + Rule sol87 1987 only - Mar 12 12:09:55s -0:09:55 -
- + Rule sol87 1987 only - Mar 13 12:09:40s -0:09:40 -
- + Rule sol87 1987 only - Mar 14 12:09:25s -0:09:25 -
- + Rule sol87 1987 only - Mar 15 12:09:10s -0:09:10 -
- + Rule sol87 1987 only - Mar 16 12:08:50s -0:08:50 -
- + Rule sol87 1987 only - Mar 17 12:08:35s -0:08:35 -
- + Rule sol87 1987 only - Mar 18 12:08:15s -0:08:15 -
- + Rule sol87 1987 only - Mar 19 12:08:00s -0:08:00 -
- + Rule sol87 1987 only - Mar 20 12:07:40s -0:07:40 -
- + Rule sol87 1987 only - Mar 21 12:07:25s -0:07:25 -
- + Rule sol87 1987 only - Mar 22 12:07:05s -0:07:05 -
- + Rule sol87 1987 only - Mar 23 12:06:50s -0:06:50 -
- + Rule sol87 1987 only - Mar 24 12:06:30s -0:06:30 -
- + Rule sol87 1987 only - Mar 25 12:06:10s -0:06:10 -
- + Rule sol87 1987 only - Mar 26 12:05:55s -0:05:55 -
- + Rule sol87 1987 only - Mar 27 12:05:35s -0:05:35 -
- + Rule sol87 1987 only - Mar 28 12:05:15s -0:05:15 -
- + Rule sol87 1987 only - Mar 29 12:05:00s -0:05:00 -
- + Rule sol87 1987 only - Mar 30 12:04:40s -0:04:40 -
- + Rule sol87 1987 only - Mar 31 12:04:25s -0:04:25 -
- + Rule sol87 1987 only - Apr 1 12:04:05s -0:04:05 -
- + Rule sol87 1987 only - Apr 2 12:03:45s -0:03:45 -
- + Rule sol87 1987 only - Apr 3 12:03:30s -0:03:30 -
- + Rule sol87 1987 only - Apr 4 12:03:10s -0:03:10 -
- + Rule sol87 1987 only - Apr 5 12:02:55s -0:02:55 -
- + Rule sol87 1987 only - Apr 6 12:02:35s -0:02:35 -
- + Rule sol87 1987 only - Apr 7 12:02:20s -0:02:20 -
- + Rule sol87 1987 only - Apr 8 12:02:05s -0:02:05 -
- + Rule sol87 1987 only - Apr 9 12:01:45s -0:01:45 -
- + Rule sol87 1987 only - Apr 10 12:01:30s -0:01:30 -
- + Rule sol87 1987 only - Apr 11 12:01:15s -0:01:15 -
- + Rule sol87 1987 only - Apr 12 12:00:55s -0:00:55 -
- + Rule sol87 1987 only - Apr 13 12:00:40s -0:00:40 -
- + Rule sol87 1987 only - Apr 14 12:00:25s -0:00:25 -
- + Rule sol87 1987 only - Apr 15 12:00:10s -0:00:10 -
- + Rule sol87 1987 only - Apr 16 11:59:55s 0:00:05 -
- + Rule sol87 1987 only - Apr 17 11:59:45s 0:00:15 -
- + Rule sol87 1987 only - Apr 18 11:59:30s 0:00:30 -
- + Rule sol87 1987 only - Apr 19 11:59:15s 0:00:45 -
- + Rule sol87 1987 only - Apr 20 11:59:05s 0:00:55 -
- + Rule sol87 1987 only - Apr 21 11:58:50s 0:01:10 -
- + Rule sol87 1987 only - Apr 22 11:58:40s 0:01:20 -
- + Rule sol87 1987 only - Apr 23 11:58:25s 0:01:35 -
- + Rule sol87 1987 only - Apr 24 11:58:15s 0:01:45 -
- + Rule sol87 1987 only - Apr 25 11:58:05s 0:01:55 -
- + Rule sol87 1987 only - Apr 26 11:57:55s 0:02:05 -
- + Rule sol87 1987 only - Apr 27 11:57:45s 0:02:15 -
- + Rule sol87 1987 only - Apr 28 11:57:35s 0:02:25 -
- + Rule sol87 1987 only - Apr 29 11:57:25s 0:02:35 -
- + Rule sol87 1987 only - Apr 30 11:57:15s 0:02:45 -
- + Rule sol87 1987 only - May 1 11:57:10s 0:02:50 -
- + Rule sol87 1987 only - May 2 11:57:00s 0:03:00 -
- + Rule sol87 1987 only - May 3 11:56:55s 0:03:05 -
- + Rule sol87 1987 only - May 4 11:56:50s 0:03:10 -
- + Rule sol87 1987 only - May 5 11:56:45s 0:03:15 -
- + Rule sol87 1987 only - May 6 11:56:40s 0:03:20 -
- + Rule sol87 1987 only - May 7 11:56:35s 0:03:25 -
- + Rule sol87 1987 only - May 8 11:56:30s 0:03:30 -
- + Rule sol87 1987 only - May 9 11:56:25s 0:03:35 -
- + Rule sol87 1987 only - May 10 11:56:25s 0:03:35 -
- + Rule sol87 1987 only - May 11 11:56:20s 0:03:40 -
- + Rule sol87 1987 only - May 12 11:56:20s 0:03:40 -
- + Rule sol87 1987 only - May 13 11:56:20s 0:03:40 -
- + Rule sol87 1987 only - May 14 11:56:20s 0:03:40 -
- + Rule sol87 1987 only - May 15 11:56:20s 0:03:40 -
- + Rule sol87 1987 only - May 16 11:56:20s 0:03:40 -
- + Rule sol87 1987 only - May 17 11:56:20s 0:03:40 -
- + Rule sol87 1987 only - May 18 11:56:20s 0:03:40 -
- + Rule sol87 1987 only - May 19 11:56:25s 0:03:35 -
- + Rule sol87 1987 only - May 20 11:56:25s 0:03:35 -
- + Rule sol87 1987 only - May 21 11:56:30s 0:03:30 -
- + Rule sol87 1987 only - May 22 11:56:35s 0:03:25 -
- + Rule sol87 1987 only - May 23 11:56:40s 0:03:20 -
- + Rule sol87 1987 only - May 24 11:56:45s 0:03:15 -
- + Rule sol87 1987 only - May 25 11:56:50s 0:03:10 -
- + Rule sol87 1987 only - May 26 11:56:55s 0:03:05 -
- + Rule sol87 1987 only - May 27 11:57:00s 0:03:00 -
- + Rule sol87 1987 only - May 28 11:57:10s 0:02:50 -
- + Rule sol87 1987 only - May 29 11:57:15s 0:02:45 -
- + Rule sol87 1987 only - May 30 11:57:25s 0:02:35 -
- + Rule sol87 1987 only - May 31 11:57:30s 0:02:30 -
- + Rule sol87 1987 only - Jun 1 11:57:40s 0:02:20 -
- + Rule sol87 1987 only - Jun 2 11:57:50s 0:02:10 -
- + Rule sol87 1987 only - Jun 3 11:58:00s 0:02:00 -
- + Rule sol87 1987 only - Jun 4 11:58:10s 0:01:50 -
- + Rule sol87 1987 only - Jun 5 11:58:20s 0:01:40 -
- + Rule sol87 1987 only - Jun 6 11:58:30s 0:01:30 -
- + Rule sol87 1987 only - Jun 7 11:58:40s 0:01:20 -
- + Rule sol87 1987 only - Jun 8 11:58:50s 0:01:10 -
- + Rule sol87 1987 only - Jun 9 11:59:05s 0:00:55 -
- + Rule sol87 1987 only - Jun 10 11:59:15s 0:00:45 -
- + Rule sol87 1987 only - Jun 11 11:59:30s 0:00:30 -
- + Rule sol87 1987 only - Jun 12 11:59:40s 0:00:20 -
- + Rule sol87 1987 only - Jun 13 11:59:50s 0:00:10 -
- + Rule sol87 1987 only - Jun 14 12:00:05s -0:00:05 -
- + Rule sol87 1987 only - Jun 15 12:00:15s -0:00:15 -
- + Rule sol87 1987 only - Jun 16 12:00:30s -0:00:30 -
- + Rule sol87 1987 only - Jun 17 12:00:45s -0:00:45 -
- + Rule sol87 1987 only - Jun 18 12:00:55s -0:00:55 -
- + Rule sol87 1987 only - Jun 19 12:01:10s -0:01:10 -
- + Rule sol87 1987 only - Jun 20 12:01:20s -0:01:20 -
- + Rule sol87 1987 only - Jun 21 12:01:35s -0:01:35 -
- + Rule sol87 1987 only - Jun 22 12:01:50s -0:01:50 -
- + Rule sol87 1987 only - Jun 23 12:02:00s -0:02:00 -
- + Rule sol87 1987 only - Jun 24 12:02:15s -0:02:15 -
- + Rule sol87 1987 only - Jun 25 12:02:25s -0:02:25 -
- + Rule sol87 1987 only - Jun 26 12:02:40s -0:02:40 -
- + Rule sol87 1987 only - Jun 27 12:02:50s -0:02:50 -
- + Rule sol87 1987 only - Jun 28 12:03:05s -0:03:05 -
- + Rule sol87 1987 only - Jun 29 12:03:15s -0:03:15 -
- + Rule sol87 1987 only - Jun 30 12:03:30s -0:03:30 -
- + Rule sol87 1987 only - Jul 1 12:03:40s -0:03:40 -
- + Rule sol87 1987 only - Jul 2 12:03:50s -0:03:50 -
- + Rule sol87 1987 only - Jul 3 12:04:05s -0:04:05 -
- + Rule sol87 1987 only - Jul 4 12:04:15s -0:04:15 -
- + Rule sol87 1987 only - Jul 5 12:04:25s -0:04:25 -
- + Rule sol87 1987 only - Jul 6 12:04:35s -0:04:35 -
- + Rule sol87 1987 only - Jul 7 12:04:45s -0:04:45 -
- + Rule sol87 1987 only - Jul 8 12:04:55s -0:04:55 -
- + Rule sol87 1987 only - Jul 9 12:05:05s -0:05:05 -
- + Rule sol87 1987 only - Jul 10 12:05:15s -0:05:15 -
- + Rule sol87 1987 only - Jul 11 12:05:20s -0:05:20 -
- + Rule sol87 1987 only - Jul 12 12:05:30s -0:05:30 -
- + Rule sol87 1987 only - Jul 13 12:05:40s -0:05:40 -
- + Rule sol87 1987 only - Jul 14 12:05:45s -0:05:45 -
- + Rule sol87 1987 only - Jul 15 12:05:50s -0:05:50 -
- + Rule sol87 1987 only - Jul 16 12:06:00s -0:06:00 -
- + Rule sol87 1987 only - Jul 17 12:06:05s -0:06:05 -
- + Rule sol87 1987 only - Jul 18 12:06:10s -0:06:10 -
- + Rule sol87 1987 only - Jul 19 12:06:15s -0:06:15 -
- + Rule sol87 1987 only - Jul 20 12:06:15s -0:06:15 -
- + Rule sol87 1987 only - Jul 21 12:06:20s -0:06:20 -
- + Rule sol87 1987 only - Jul 22 12:06:25s -0:06:25 -
- + Rule sol87 1987 only - Jul 23 12:06:25s -0:06:25 -
- + Rule sol87 1987 only - Jul 24 12:06:25s -0:06:25 -
- + Rule sol87 1987 only - Jul 25 12:06:30s -0:06:30 -
- + Rule sol87 1987 only - Jul 26 12:06:30s -0:06:30 -
- + Rule sol87 1987 only - Jul 27 12:06:30s -0:06:30 -
- + Rule sol87 1987 only - Jul 28 12:06:30s -0:06:30 -
- + Rule sol87 1987 only - Jul 29 12:06:25s -0:06:25 -
- + Rule sol87 1987 only - Jul 30 12:06:25s -0:06:25 -
- + Rule sol87 1987 only - Jul 31 12:06:25s -0:06:25 -
- + Rule sol87 1987 only - Aug 1 12:06:20s -0:06:20 -
- + Rule sol87 1987 only - Aug 2 12:06:15s -0:06:15 -
- + Rule sol87 1987 only - Aug 3 12:06:10s -0:06:10 -
- + Rule sol87 1987 only - Aug 4 12:06:05s -0:06:05 -
- + Rule sol87 1987 only - Aug 5 12:06:00s -0:06:00 -
- + Rule sol87 1987 only - Aug 6 12:05:55s -0:05:55 -
- + Rule sol87 1987 only - Aug 7 12:05:50s -0:05:50 -
- + Rule sol87 1987 only - Aug 8 12:05:40s -0:05:40 -
- + Rule sol87 1987 only - Aug 9 12:05:35s -0:05:35 -
- + Rule sol87 1987 only - Aug 10 12:05:25s -0:05:25 -
- + Rule sol87 1987 only - Aug 11 12:05:15s -0:05:15 -
- + Rule sol87 1987 only - Aug 12 12:05:05s -0:05:05 -
- + Rule sol87 1987 only - Aug 13 12:04:55s -0:04:55 -
- + Rule sol87 1987 only - Aug 14 12:04:45s -0:04:45 -
- + Rule sol87 1987 only - Aug 15 12:04:35s -0:04:35 -
- + Rule sol87 1987 only - Aug 16 12:04:25s -0:04:25 -
- + Rule sol87 1987 only - Aug 17 12:04:10s -0:04:10 -
- + Rule sol87 1987 only - Aug 18 12:04:00s -0:04:00 -
- + Rule sol87 1987 only - Aug 19 12:03:45s -0:03:45 -
- + Rule sol87 1987 only - Aug 20 12:03:30s -0:03:30 -
- + Rule sol87 1987 only - Aug 21 12:03:15s -0:03:15 -
- + Rule sol87 1987 only - Aug 22 12:03:00s -0:03:00 -
- + Rule sol87 1987 only - Aug 23 12:02:45s -0:02:45 -
- + Rule sol87 1987 only - Aug 24 12:02:30s -0:02:30 -
- + Rule sol87 1987 only - Aug 25 12:02:15s -0:02:15 -
- + Rule sol87 1987 only - Aug 26 12:02:00s -0:02:00 -
- + Rule sol87 1987 only - Aug 27 12:01:40s -0:01:40 -
- + Rule sol87 1987 only - Aug 28 12:01:25s -0:01:25 -
- + Rule sol87 1987 only - Aug 29 12:01:05s -0:01:05 -
- + Rule sol87 1987 only - Aug 30 12:00:50s -0:00:50 -
- + Rule sol87 1987 only - Aug 31 12:00:30s -0:00:30 -
- + Rule sol87 1987 only - Sep 1 12:00:10s -0:00:10 -
- + Rule sol87 1987 only - Sep 2 11:59:50s 0:00:10 -
- + Rule sol87 1987 only - Sep 3 11:59:35s 0:00:25 -
- + Rule sol87 1987 only - Sep 4 11:59:15s 0:00:45 -
- + Rule sol87 1987 only - Sep 5 11:58:55s 0:01:05 -
- + Rule sol87 1987 only - Sep 6 11:58:35s 0:01:25 -
- + Rule sol87 1987 only - Sep 7 11:58:15s 0:01:45 -
- + Rule sol87 1987 only - Sep 8 11:57:55s 0:02:05 -
- + Rule sol87 1987 only - Sep 9 11:57:30s 0:02:30 -
- + Rule sol87 1987 only - Sep 10 11:57:10s 0:02:50 -
- + Rule sol87 1987 only - Sep 11 11:56:50s 0:03:10 -
- + Rule sol87 1987 only - Sep 12 11:56:30s 0:03:30 -
- + Rule sol87 1987 only - Sep 13 11:56:10s 0:03:50 -
- + Rule sol87 1987 only - Sep 14 11:55:45s 0:04:15 -
- + Rule sol87 1987 only - Sep 15 11:55:25s 0:04:35 -
- + Rule sol87 1987 only - Sep 16 11:55:05s 0:04:55 -
- + Rule sol87 1987 only - Sep 17 11:54:45s 0:05:15 -
- + Rule sol87 1987 only - Sep 18 11:54:20s 0:05:40 -
- + Rule sol87 1987 only - Sep 19 11:54:00s 0:06:00 -
- + Rule sol87 1987 only - Sep 20 11:53:40s 0:06:20 -
- + Rule sol87 1987 only - Sep 21 11:53:15s 0:06:45 -
- + Rule sol87 1987 only - Sep 22 11:52:55s 0:07:05 -
- + Rule sol87 1987 only - Sep 23 11:52:35s 0:07:25 -
- + Rule sol87 1987 only - Sep 24 11:52:15s 0:07:45 -
- + Rule sol87 1987 only - Sep 25 11:51:55s 0:08:05 -
- + Rule sol87 1987 only - Sep 26 11:51:35s 0:08:25 -
- + Rule sol87 1987 only - Sep 27 11:51:10s 0:08:50 -
- + Rule sol87 1987 only - Sep 28 11:50:50s 0:09:10 -
- + Rule sol87 1987 only - Sep 29 11:50:30s 0:09:30 -
- + Rule sol87 1987 only - Sep 30 11:50:10s 0:09:50 -
- + Rule sol87 1987 only - Oct 1 11:49:50s 0:10:10 -
- + Rule sol87 1987 only - Oct 2 11:49:35s 0:10:25 -
- + Rule sol87 1987 only - Oct 3 11:49:15s 0:10:45 -
- + Rule sol87 1987 only - Oct 4 11:48:55s 0:11:05 -
- + Rule sol87 1987 only - Oct 5 11:48:35s 0:11:25 -
- + Rule sol87 1987 only - Oct 6 11:48:20s 0:11:40 -
- + Rule sol87 1987 only - Oct 7 11:48:00s 0:12:00 -
- + Rule sol87 1987 only - Oct 8 11:47:45s 0:12:15 -
- + Rule sol87 1987 only - Oct 9 11:47:25s 0:12:35 -
- + Rule sol87 1987 only - Oct 10 11:47:10s 0:12:50 -
- + Rule sol87 1987 only - Oct 11 11:46:55s 0:13:05 -
- + Rule sol87 1987 only - Oct 12 11:46:40s 0:13:20 -
- + Rule sol87 1987 only - Oct 13 11:46:25s 0:13:35 -
- + Rule sol87 1987 only - Oct 14 11:46:10s 0:13:50 -
- + Rule sol87 1987 only - Oct 15 11:45:55s 0:14:05 -
- + Rule sol87 1987 only - Oct 16 11:45:45s 0:14:15 -
- + Rule sol87 1987 only - Oct 17 11:45:30s 0:14:30 -
- + Rule sol87 1987 only - Oct 18 11:45:20s 0:14:40 -
- + Rule sol87 1987 only - Oct 19 11:45:05s 0:14:55 -
- + Rule sol87 1987 only - Oct 20 11:44:55s 0:15:05 -
- + Rule sol87 1987 only - Oct 21 11:44:45s 0:15:15 -
- + Rule sol87 1987 only - Oct 22 11:44:35s 0:15:25 -
- + Rule sol87 1987 only - Oct 23 11:44:25s 0:15:35 -
- + Rule sol87 1987 only - Oct 24 11:44:20s 0:15:40 -
- + Rule sol87 1987 only - Oct 25 11:44:10s 0:15:50 -
- + Rule sol87 1987 only - Oct 26 11:44:05s 0:15:55 -
- + Rule sol87 1987 only - Oct 27 11:43:55s 0:16:05 -
- + Rule sol87 1987 only - Oct 28 11:43:50s 0:16:10 -
- + Rule sol87 1987 only - Oct 29 11:43:45s 0:16:15 -
- + Rule sol87 1987 only - Oct 30 11:43:45s 0:16:15 -
- + Rule sol87 1987 only - Oct 31 11:43:40s 0:16:20 -
- + Rule sol87 1987 only - Nov 1 11:43:40s 0:16:20 -
- + Rule sol87 1987 only - Nov 2 11:43:35s 0:16:25 -
- + Rule sol87 1987 only - Nov 3 11:43:35s 0:16:25 -
- + Rule sol87 1987 only - Nov 4 11:43:35s 0:16:25 -
- + Rule sol87 1987 only - Nov 5 11:43:35s 0:16:25 -
- + Rule sol87 1987 only - Nov 6 11:43:40s 0:16:20 -
- + Rule sol87 1987 only - Nov 7 11:43:40s 0:16:20 -
- + Rule sol87 1987 only - Nov 8 11:43:45s 0:16:15 -
- + Rule sol87 1987 only - Nov 9 11:43:50s 0:16:10 -
- + Rule sol87 1987 only - Nov 10 11:43:55s 0:16:05 -
- + Rule sol87 1987 only - Nov 11 11:44:00s 0:16:00 -
- + Rule sol87 1987 only - Nov 12 11:44:05s 0:15:55 -
- + Rule sol87 1987 only - Nov 13 11:44:15s 0:15:45 -
- + Rule sol87 1987 only - Nov 14 11:44:20s 0:15:40 -
- + Rule sol87 1987 only - Nov 15 11:44:30s 0:15:30 -
- + Rule sol87 1987 only - Nov 16 11:44:40s 0:15:20 -
- + Rule sol87 1987 only - Nov 17 11:44:50s 0:15:10 -
- + Rule sol87 1987 only - Nov 18 11:45:05s 0:14:55 -
- + Rule sol87 1987 only - Nov 19 11:45:15s 0:14:45 -
- + Rule sol87 1987 only - Nov 20 11:45:30s 0:14:30 -
- + Rule sol87 1987 only - Nov 21 11:45:45s 0:14:15 -
- + Rule sol87 1987 only - Nov 22 11:46:00s 0:14:00 -
- + Rule sol87 1987 only - Nov 23 11:46:15s 0:13:45 -
- + Rule sol87 1987 only - Nov 24 11:46:30s 0:13:30 -
- + Rule sol87 1987 only - Nov 25 11:46:50s 0:13:10 -
- + Rule sol87 1987 only - Nov 26 11:47:10s 0:12:50 -
- + Rule sol87 1987 only - Nov 27 11:47:25s 0:12:35 -
- + Rule sol87 1987 only - Nov 28 11:47:45s 0:12:15 -
- + Rule sol87 1987 only - Nov 29 11:48:05s 0:11:55 -
- + Rule sol87 1987 only - Nov 30 11:48:30s 0:11:30 -
- + Rule sol87 1987 only - Dec 1 11:48:50s 0:11:10 -
- + Rule sol87 1987 only - Dec 2 11:49:10s 0:10:50 -
- + Rule sol87 1987 only - Dec 3 11:49:35s 0:10:25 -
- + Rule sol87 1987 only - Dec 4 11:50:00s 0:10:00 -
- + Rule sol87 1987 only - Dec 5 11:50:25s 0:09:35 -
- + Rule sol87 1987 only - Dec 6 11:50:50s 0:09:10 -
- + Rule sol87 1987 only - Dec 7 11:51:15s 0:08:45 -
- + Rule sol87 1987 only - Dec 8 11:51:40s 0:08:20 -
- + Rule sol87 1987 only - Dec 9 11:52:05s 0:07:55 -
- + Rule sol87 1987 only - Dec 10 11:52:30s 0:07:30 -
- + Rule sol87 1987 only - Dec 11 11:53:00s 0:07:00 -
- + Rule sol87 1987 only - Dec 12 11:53:25s 0:06:35 -
- + Rule sol87 1987 only - Dec 13 11:53:55s 0:06:05 -
- + Rule sol87 1987 only - Dec 14 11:54:25s 0:05:35 -
- + Rule sol87 1987 only - Dec 15 11:54:50s 0:05:10 -
- + Rule sol87 1987 only - Dec 16 11:55:20s 0:04:40 -
- + Rule sol87 1987 only - Dec 17 11:55:50s 0:04:10 -
- + Rule sol87 1987 only - Dec 18 11:56:20s 0:03:40 -
- + Rule sol87 1987 only - Dec 19 11:56:50s 0:03:10 -
- + Rule sol87 1987 only - Dec 20 11:57:20s 0:02:40 -
- + Rule sol87 1987 only - Dec 21 11:57:50s 0:02:10 -
- + Rule sol87 1987 only - Dec 22 11:58:20s 0:01:40 -
- + Rule sol87 1987 only - Dec 23 11:58:50s 0:01:10 -
- + Rule sol87 1987 only - Dec 24 11:59:20s 0:00:40 -
- + Rule sol87 1987 only - Dec 25 11:59:50s 0:00:10 -
- + Rule sol87 1987 only - Dec 26 12:00:20s -0:00:20 -
- + Rule sol87 1987 only - Dec 27 12:00:45s -0:00:45 -
- + Rule sol87 1987 only - Dec 28 12:01:15s -0:01:15 -
- + Rule sol87 1987 only - Dec 29 12:01:45s -0:01:45 -
- + Rule sol87 1987 only - Dec 30 12:02:15s -0:02:15 -
- + Rule sol87 1987 only - Dec 31 12:02:45s -0:02:45 -
- +
- + # Riyadh is at about 46 degrees 46 minutes East: 3 hrs, 7 mins, 4 secs
- + # Before and after 1987, we'll operate on local mean solar time.
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone Mideast/Riyadh87 3:07:04 - ?? 1987
- + 3:07:04 sol87 ?? 1988
- + 3:07:04 - ??
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/solar88 emacs-18.59/amiga/unix/src/zoneinfo/datfiles/solar88
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/solar88 Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/solar88 Sat Aug 1 14:24:16 1992
- ***************
- *** 0 ****
- --- 1,386 ----
- + # @(#)solar88 4.2
- +
- + # Apparent noon times below are for Riyadh; they're a bit off for other places.
- + # Times were computed using formulas in the U.S. Naval Observatory's
- + # Almanac for Computers 1988; the formulas "will give EqT to an accuracy of
- + # [plus or minus two] seconds during the current year."
- + #
- + # Rounding to the nearest five seconds results in fewer than
- + # 256 different "time types"--a limit that's faced because time types are
- + # stored on disk as unsigned chars.
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule sol88 1988 only - Jan 1 12:03:15s -0:03:15 -
- + Rule sol88 1988 only - Jan 2 12:03:40s -0:03:40 -
- + Rule sol88 1988 only - Jan 3 12:04:10s -0:04:10 -
- + Rule sol88 1988 only - Jan 4 12:04:40s -0:04:40 -
- + Rule sol88 1988 only - Jan 5 12:05:05s -0:05:05 -
- + Rule sol88 1988 only - Jan 6 12:05:30s -0:05:30 -
- + Rule sol88 1988 only - Jan 7 12:06:00s -0:06:00 -
- + Rule sol88 1988 only - Jan 8 12:06:25s -0:06:25 -
- + Rule sol88 1988 only - Jan 9 12:06:50s -0:06:50 -
- + Rule sol88 1988 only - Jan 10 12:07:15s -0:07:15 -
- + Rule sol88 1988 only - Jan 11 12:07:40s -0:07:40 -
- + Rule sol88 1988 only - Jan 12 12:08:05s -0:08:05 -
- + Rule sol88 1988 only - Jan 13 12:08:25s -0:08:25 -
- + Rule sol88 1988 only - Jan 14 12:08:50s -0:08:50 -
- + Rule sol88 1988 only - Jan 15 12:09:10s -0:09:10 -
- + Rule sol88 1988 only - Jan 16 12:09:30s -0:09:30 -
- + Rule sol88 1988 only - Jan 17 12:09:50s -0:09:50 -
- + Rule sol88 1988 only - Jan 18 12:10:10s -0:10:10 -
- + Rule sol88 1988 only - Jan 19 12:10:30s -0:10:30 -
- + Rule sol88 1988 only - Jan 20 12:10:50s -0:10:50 -
- + Rule sol88 1988 only - Jan 21 12:11:05s -0:11:05 -
- + Rule sol88 1988 only - Jan 22 12:11:25s -0:11:25 -
- + Rule sol88 1988 only - Jan 23 12:11:40s -0:11:40 -
- + Rule sol88 1988 only - Jan 24 12:11:55s -0:11:55 -
- + Rule sol88 1988 only - Jan 25 12:12:10s -0:12:10 -
- + Rule sol88 1988 only - Jan 26 12:12:25s -0:12:25 -
- + Rule sol88 1988 only - Jan 27 12:12:40s -0:12:40 -
- + Rule sol88 1988 only - Jan 28 12:12:50s -0:12:50 -
- + Rule sol88 1988 only - Jan 29 12:13:00s -0:13:00 -
- + Rule sol88 1988 only - Jan 30 12:13:10s -0:13:10 -
- + Rule sol88 1988 only - Jan 31 12:13:20s -0:13:20 -
- + Rule sol88 1988 only - Feb 1 12:13:30s -0:13:30 -
- + Rule sol88 1988 only - Feb 2 12:13:40s -0:13:40 -
- + Rule sol88 1988 only - Feb 3 12:13:45s -0:13:45 -
- + Rule sol88 1988 only - Feb 4 12:13:55s -0:13:55 -
- + Rule sol88 1988 only - Feb 5 12:14:00s -0:14:00 -
- + Rule sol88 1988 only - Feb 6 12:14:05s -0:14:05 -
- + Rule sol88 1988 only - Feb 7 12:14:10s -0:14:10 -
- + Rule sol88 1988 only - Feb 8 12:14:10s -0:14:10 -
- + Rule sol88 1988 only - Feb 9 12:14:15s -0:14:15 -
- + Rule sol88 1988 only - Feb 10 12:14:15s -0:14:15 -
- + Rule sol88 1988 only - Feb 11 12:14:15s -0:14:15 -
- + Rule sol88 1988 only - Feb 12 12:14:15s -0:14:15 -
- + Rule sol88 1988 only - Feb 13 12:14:15s -0:14:15 -
- + Rule sol88 1988 only - Feb 14 12:14:15s -0:14:15 -
- + Rule sol88 1988 only - Feb 15 12:14:10s -0:14:10 -
- + Rule sol88 1988 only - Feb 16 12:14:10s -0:14:10 -
- + Rule sol88 1988 only - Feb 17 12:14:05s -0:14:05 -
- + Rule sol88 1988 only - Feb 18 12:14:00s -0:14:00 -
- + Rule sol88 1988 only - Feb 19 12:13:55s -0:13:55 -
- + Rule sol88 1988 only - Feb 20 12:13:50s -0:13:50 -
- + Rule sol88 1988 only - Feb 21 12:13:45s -0:13:45 -
- + Rule sol88 1988 only - Feb 22 12:13:40s -0:13:40 -
- + Rule sol88 1988 only - Feb 23 12:13:30s -0:13:30 -
- + Rule sol88 1988 only - Feb 24 12:13:20s -0:13:20 -
- + Rule sol88 1988 only - Feb 25 12:13:15s -0:13:15 -
- + Rule sol88 1988 only - Feb 26 12:13:05s -0:13:05 -
- + Rule sol88 1988 only - Feb 27 12:12:55s -0:12:55 -
- + Rule sol88 1988 only - Feb 28 12:12:45s -0:12:45 -
- + Rule sol88 1988 only - Feb 29 12:12:30s -0:12:30 -
- + Rule sol88 1988 only - Mar 1 12:12:20s -0:12:20 -
- + Rule sol88 1988 only - Mar 2 12:12:10s -0:12:10 -
- + Rule sol88 1988 only - Mar 3 12:11:55s -0:11:55 -
- + Rule sol88 1988 only - Mar 4 12:11:45s -0:11:45 -
- + Rule sol88 1988 only - Mar 5 12:11:30s -0:11:30 -
- + Rule sol88 1988 only - Mar 6 12:11:15s -0:11:15 -
- + Rule sol88 1988 only - Mar 7 12:11:00s -0:11:00 -
- + Rule sol88 1988 only - Mar 8 12:10:45s -0:10:45 -
- + Rule sol88 1988 only - Mar 9 12:10:30s -0:10:30 -
- + Rule sol88 1988 only - Mar 10 12:10:15s -0:10:15 -
- + Rule sol88 1988 only - Mar 11 12:10:00s -0:10:00 -
- + Rule sol88 1988 only - Mar 12 12:09:45s -0:09:45 -
- + Rule sol88 1988 only - Mar 13 12:09:30s -0:09:30 -
- + Rule sol88 1988 only - Mar 14 12:09:10s -0:09:10 -
- + Rule sol88 1988 only - Mar 15 12:08:55s -0:08:55 -
- + Rule sol88 1988 only - Mar 16 12:08:40s -0:08:40 -
- + Rule sol88 1988 only - Mar 17 12:08:20s -0:08:20 -
- + Rule sol88 1988 only - Mar 18 12:08:05s -0:08:05 -
- + Rule sol88 1988 only - Mar 19 12:07:45s -0:07:45 -
- + Rule sol88 1988 only - Mar 20 12:07:30s -0:07:30 -
- + Rule sol88 1988 only - Mar 21 12:07:10s -0:07:10 -
- + Rule sol88 1988 only - Mar 22 12:06:50s -0:06:50 -
- + Rule sol88 1988 only - Mar 23 12:06:35s -0:06:35 -
- + Rule sol88 1988 only - Mar 24 12:06:15s -0:06:15 -
- + Rule sol88 1988 only - Mar 25 12:06:00s -0:06:00 -
- + Rule sol88 1988 only - Mar 26 12:05:40s -0:05:40 -
- + Rule sol88 1988 only - Mar 27 12:05:20s -0:05:20 -
- + Rule sol88 1988 only - Mar 28 12:05:05s -0:05:05 -
- + Rule sol88 1988 only - Mar 29 12:04:45s -0:04:45 -
- + Rule sol88 1988 only - Mar 30 12:04:25s -0:04:25 -
- + Rule sol88 1988 only - Mar 31 12:04:10s -0:04:10 -
- + Rule sol88 1988 only - Apr 1 12:03:50s -0:03:50 -
- + Rule sol88 1988 only - Apr 2 12:03:35s -0:03:35 -
- + Rule sol88 1988 only - Apr 3 12:03:15s -0:03:15 -
- + Rule sol88 1988 only - Apr 4 12:03:00s -0:03:00 -
- + Rule sol88 1988 only - Apr 5 12:02:40s -0:02:40 -
- + Rule sol88 1988 only - Apr 6 12:02:25s -0:02:25 -
- + Rule sol88 1988 only - Apr 7 12:02:05s -0:02:05 -
- + Rule sol88 1988 only - Apr 8 12:01:50s -0:01:50 -
- + Rule sol88 1988 only - Apr 9 12:01:35s -0:01:35 -
- + Rule sol88 1988 only - Apr 10 12:01:15s -0:01:15 -
- + Rule sol88 1988 only - Apr 11 12:01:00s -0:01:00 -
- + Rule sol88 1988 only - Apr 12 12:00:45s -0:00:45 -
- + Rule sol88 1988 only - Apr 13 12:00:30s -0:00:30 -
- + Rule sol88 1988 only - Apr 14 12:00:15s -0:00:15 -
- + Rule sol88 1988 only - Apr 15 12:00:00s 0:00:00 -
- + Rule sol88 1988 only - Apr 16 11:59:45s 0:00:15 -
- + Rule sol88 1988 only - Apr 17 11:59:30s 0:00:30 -
- + Rule sol88 1988 only - Apr 18 11:59:20s 0:00:40 -
- + Rule sol88 1988 only - Apr 19 11:59:05s 0:00:55 -
- + Rule sol88 1988 only - Apr 20 11:58:55s 0:01:05 -
- + Rule sol88 1988 only - Apr 21 11:58:40s 0:01:20 -
- + Rule sol88 1988 only - Apr 22 11:58:30s 0:01:30 -
- + Rule sol88 1988 only - Apr 23 11:58:15s 0:01:45 -
- + Rule sol88 1988 only - Apr 24 11:58:05s 0:01:55 -
- + Rule sol88 1988 only - Apr 25 11:57:55s 0:02:05 -
- + Rule sol88 1988 only - Apr 26 11:57:45s 0:02:15 -
- + Rule sol88 1988 only - Apr 27 11:57:35s 0:02:25 -
- + Rule sol88 1988 only - Apr 28 11:57:30s 0:02:30 -
- + Rule sol88 1988 only - Apr 29 11:57:20s 0:02:40 -
- + Rule sol88 1988 only - Apr 30 11:57:10s 0:02:50 -
- + Rule sol88 1988 only - May 1 11:57:05s 0:02:55 -
- + Rule sol88 1988 only - May 2 11:56:55s 0:03:05 -
- + Rule sol88 1988 only - May 3 11:56:50s 0:03:10 -
- + Rule sol88 1988 only - May 4 11:56:45s 0:03:15 -
- + Rule sol88 1988 only - May 5 11:56:40s 0:03:20 -
- + Rule sol88 1988 only - May 6 11:56:35s 0:03:25 -
- + Rule sol88 1988 only - May 7 11:56:30s 0:03:30 -
- + Rule sol88 1988 only - May 8 11:56:25s 0:03:35 -
- + Rule sol88 1988 only - May 9 11:56:25s 0:03:35 -
- + Rule sol88 1988 only - May 10 11:56:20s 0:03:40 -
- + Rule sol88 1988 only - May 11 11:56:20s 0:03:40 -
- + Rule sol88 1988 only - May 12 11:56:20s 0:03:40 -
- + Rule sol88 1988 only - May 13 11:56:20s 0:03:40 -
- + Rule sol88 1988 only - May 14 11:56:20s 0:03:40 -
- + Rule sol88 1988 only - May 15 11:56:20s 0:03:40 -
- + Rule sol88 1988 only - May 16 11:56:20s 0:03:40 -
- + Rule sol88 1988 only - May 17 11:56:20s 0:03:40 -
- + Rule sol88 1988 only - May 18 11:56:25s 0:03:35 -
- + Rule sol88 1988 only - May 19 11:56:25s 0:03:35 -
- + Rule sol88 1988 only - May 20 11:56:30s 0:03:30 -
- + Rule sol88 1988 only - May 21 11:56:35s 0:03:25 -
- + Rule sol88 1988 only - May 22 11:56:40s 0:03:20 -
- + Rule sol88 1988 only - May 23 11:56:45s 0:03:15 -
- + Rule sol88 1988 only - May 24 11:56:50s 0:03:10 -
- + Rule sol88 1988 only - May 25 11:56:55s 0:03:05 -
- + Rule sol88 1988 only - May 26 11:57:00s 0:03:00 -
- + Rule sol88 1988 only - May 27 11:57:05s 0:02:55 -
- + Rule sol88 1988 only - May 28 11:57:15s 0:02:45 -
- + Rule sol88 1988 only - May 29 11:57:20s 0:02:40 -
- + Rule sol88 1988 only - May 30 11:57:30s 0:02:30 -
- + Rule sol88 1988 only - May 31 11:57:40s 0:02:20 -
- + Rule sol88 1988 only - Jun 1 11:57:50s 0:02:10 -
- + Rule sol88 1988 only - Jun 2 11:57:55s 0:02:05 -
- + Rule sol88 1988 only - Jun 3 11:58:05s 0:01:55 -
- + Rule sol88 1988 only - Jun 4 11:58:15s 0:01:45 -
- + Rule sol88 1988 only - Jun 5 11:58:30s 0:01:30 -
- + Rule sol88 1988 only - Jun 6 11:58:40s 0:01:20 -
- + Rule sol88 1988 only - Jun 7 11:58:50s 0:01:10 -
- + Rule sol88 1988 only - Jun 8 11:59:00s 0:01:00 -
- + Rule sol88 1988 only - Jun 9 11:59:15s 0:00:45 -
- + Rule sol88 1988 only - Jun 10 11:59:25s 0:00:35 -
- + Rule sol88 1988 only - Jun 11 11:59:35s 0:00:25 -
- + Rule sol88 1988 only - Jun 12 11:59:50s 0:00:10 -
- + Rule sol88 1988 only - Jun 13 12:00:00s 0:00:00 -
- + Rule sol88 1988 only - Jun 14 12:00:15s -0:00:15 -
- + Rule sol88 1988 only - Jun 15 12:00:25s -0:00:25 -
- + Rule sol88 1988 only - Jun 16 12:00:40s -0:00:40 -
- + Rule sol88 1988 only - Jun 17 12:00:55s -0:00:55 -
- + Rule sol88 1988 only - Jun 18 12:01:05s -0:01:05 -
- + Rule sol88 1988 only - Jun 19 12:01:20s -0:01:20 -
- + Rule sol88 1988 only - Jun 20 12:01:30s -0:01:30 -
- + Rule sol88 1988 only - Jun 21 12:01:45s -0:01:45 -
- + Rule sol88 1988 only - Jun 22 12:02:00s -0:02:00 -
- + Rule sol88 1988 only - Jun 23 12:02:10s -0:02:10 -
- + Rule sol88 1988 only - Jun 24 12:02:25s -0:02:25 -
- + Rule sol88 1988 only - Jun 25 12:02:35s -0:02:35 -
- + Rule sol88 1988 only - Jun 26 12:02:50s -0:02:50 -
- + Rule sol88 1988 only - Jun 27 12:03:00s -0:03:00 -
- + Rule sol88 1988 only - Jun 28 12:03:15s -0:03:15 -
- + Rule sol88 1988 only - Jun 29 12:03:25s -0:03:25 -
- + Rule sol88 1988 only - Jun 30 12:03:40s -0:03:40 -
- + Rule sol88 1988 only - Jul 1 12:03:50s -0:03:50 -
- + Rule sol88 1988 only - Jul 2 12:04:00s -0:04:00 -
- + Rule sol88 1988 only - Jul 3 12:04:10s -0:04:10 -
- + Rule sol88 1988 only - Jul 4 12:04:25s -0:04:25 -
- + Rule sol88 1988 only - Jul 5 12:04:35s -0:04:35 -
- + Rule sol88 1988 only - Jul 6 12:04:45s -0:04:45 -
- + Rule sol88 1988 only - Jul 7 12:04:55s -0:04:55 -
- + Rule sol88 1988 only - Jul 8 12:05:05s -0:05:05 -
- + Rule sol88 1988 only - Jul 9 12:05:10s -0:05:10 -
- + Rule sol88 1988 only - Jul 10 12:05:20s -0:05:20 -
- + Rule sol88 1988 only - Jul 11 12:05:30s -0:05:30 -
- + Rule sol88 1988 only - Jul 12 12:05:35s -0:05:35 -
- + Rule sol88 1988 only - Jul 13 12:05:45s -0:05:45 -
- + Rule sol88 1988 only - Jul 14 12:05:50s -0:05:50 -
- + Rule sol88 1988 only - Jul 15 12:05:55s -0:05:55 -
- + Rule sol88 1988 only - Jul 16 12:06:00s -0:06:00 -
- + Rule sol88 1988 only - Jul 17 12:06:05s -0:06:05 -
- + Rule sol88 1988 only - Jul 18 12:06:10s -0:06:10 -
- + Rule sol88 1988 only - Jul 19 12:06:15s -0:06:15 -
- + Rule sol88 1988 only - Jul 20 12:06:20s -0:06:20 -
- + Rule sol88 1988 only - Jul 21 12:06:25s -0:06:25 -
- + Rule sol88 1988 only - Jul 22 12:06:25s -0:06:25 -
- + Rule sol88 1988 only - Jul 23 12:06:25s -0:06:25 -
- + Rule sol88 1988 only - Jul 24 12:06:30s -0:06:30 -
- + Rule sol88 1988 only - Jul 25 12:06:30s -0:06:30 -
- + Rule sol88 1988 only - Jul 26 12:06:30s -0:06:30 -
- + Rule sol88 1988 only - Jul 27 12:06:30s -0:06:30 -
- + Rule sol88 1988 only - Jul 28 12:06:30s -0:06:30 -
- + Rule sol88 1988 only - Jul 29 12:06:25s -0:06:25 -
- + Rule sol88 1988 only - Jul 30 12:06:25s -0:06:25 -
- + Rule sol88 1988 only - Jul 31 12:06:20s -0:06:20 -
- + Rule sol88 1988 only - Aug 1 12:06:15s -0:06:15 -
- + Rule sol88 1988 only - Aug 2 12:06:15s -0:06:15 -
- + Rule sol88 1988 only - Aug 3 12:06:10s -0:06:10 -
- + Rule sol88 1988 only - Aug 4 12:06:05s -0:06:05 -
- + Rule sol88 1988 only - Aug 5 12:05:55s -0:05:55 -
- + Rule sol88 1988 only - Aug 6 12:05:50s -0:05:50 -
- + Rule sol88 1988 only - Aug 7 12:05:45s -0:05:45 -
- + Rule sol88 1988 only - Aug 8 12:05:35s -0:05:35 -
- + Rule sol88 1988 only - Aug 9 12:05:25s -0:05:25 -
- + Rule sol88 1988 only - Aug 10 12:05:20s -0:05:20 -
- + Rule sol88 1988 only - Aug 11 12:05:10s -0:05:10 -
- + Rule sol88 1988 only - Aug 12 12:05:00s -0:05:00 -
- + Rule sol88 1988 only - Aug 13 12:04:50s -0:04:50 -
- + Rule sol88 1988 only - Aug 14 12:04:35s -0:04:35 -
- + Rule sol88 1988 only - Aug 15 12:04:25s -0:04:25 -
- + Rule sol88 1988 only - Aug 16 12:04:15s -0:04:15 -
- + Rule sol88 1988 only - Aug 17 12:04:00s -0:04:00 -
- + Rule sol88 1988 only - Aug 18 12:03:50s -0:03:50 -
- + Rule sol88 1988 only - Aug 19 12:03:35s -0:03:35 -
- + Rule sol88 1988 only - Aug 20 12:03:20s -0:03:20 -
- + Rule sol88 1988 only - Aug 21 12:03:05s -0:03:05 -
- + Rule sol88 1988 only - Aug 22 12:02:50s -0:02:50 -
- + Rule sol88 1988 only - Aug 23 12:02:35s -0:02:35 -
- + Rule sol88 1988 only - Aug 24 12:02:20s -0:02:20 -
- + Rule sol88 1988 only - Aug 25 12:02:00s -0:02:00 -
- + Rule sol88 1988 only - Aug 26 12:01:45s -0:01:45 -
- + Rule sol88 1988 only - Aug 27 12:01:30s -0:01:30 -
- + Rule sol88 1988 only - Aug 28 12:01:10s -0:01:10 -
- + Rule sol88 1988 only - Aug 29 12:00:50s -0:00:50 -
- + Rule sol88 1988 only - Aug 30 12:00:35s -0:00:35 -
- + Rule sol88 1988 only - Aug 31 12:00:15s -0:00:15 -
- + Rule sol88 1988 only - Sep 1 11:59:55s 0:00:05 -
- + Rule sol88 1988 only - Sep 2 11:59:35s 0:00:25 -
- + Rule sol88 1988 only - Sep 3 11:59:20s 0:00:40 -
- + Rule sol88 1988 only - Sep 4 11:59:00s 0:01:00 -
- + Rule sol88 1988 only - Sep 5 11:58:40s 0:01:20 -
- + Rule sol88 1988 only - Sep 6 11:58:20s 0:01:40 -
- + Rule sol88 1988 only - Sep 7 11:58:00s 0:02:00 -
- + Rule sol88 1988 only - Sep 8 11:57:35s 0:02:25 -
- + Rule sol88 1988 only - Sep 9 11:57:15s 0:02:45 -
- + Rule sol88 1988 only - Sep 10 11:56:55s 0:03:05 -
- + Rule sol88 1988 only - Sep 11 11:56:35s 0:03:25 -
- + Rule sol88 1988 only - Sep 12 11:56:15s 0:03:45 -
- + Rule sol88 1988 only - Sep 13 11:55:50s 0:04:10 -
- + Rule sol88 1988 only - Sep 14 11:55:30s 0:04:30 -
- + Rule sol88 1988 only - Sep 15 11:55:10s 0:04:50 -
- + Rule sol88 1988 only - Sep 16 11:54:50s 0:05:10 -
- + Rule sol88 1988 only - Sep 17 11:54:25s 0:05:35 -
- + Rule sol88 1988 only - Sep 18 11:54:05s 0:05:55 -
- + Rule sol88 1988 only - Sep 19 11:53:45s 0:06:15 -
- + Rule sol88 1988 only - Sep 20 11:53:25s 0:06:35 -
- + Rule sol88 1988 only - Sep 21 11:53:00s 0:07:00 -
- + Rule sol88 1988 only - Sep 22 11:52:40s 0:07:20 -
- + Rule sol88 1988 only - Sep 23 11:52:20s 0:07:40 -
- + Rule sol88 1988 only - Sep 24 11:52:00s 0:08:00 -
- + Rule sol88 1988 only - Sep 25 11:51:40s 0:08:20 -
- + Rule sol88 1988 only - Sep 26 11:51:15s 0:08:45 -
- + Rule sol88 1988 only - Sep 27 11:50:55s 0:09:05 -
- + Rule sol88 1988 only - Sep 28 11:50:35s 0:09:25 -
- + Rule sol88 1988 only - Sep 29 11:50:15s 0:09:45 -
- + Rule sol88 1988 only - Sep 30 11:49:55s 0:10:05 -
- + Rule sol88 1988 only - Oct 1 11:49:35s 0:10:25 -
- + Rule sol88 1988 only - Oct 2 11:49:20s 0:10:40 -
- + Rule sol88 1988 only - Oct 3 11:49:00s 0:11:00 -
- + Rule sol88 1988 only - Oct 4 11:48:40s 0:11:20 -
- + Rule sol88 1988 only - Oct 5 11:48:25s 0:11:35 -
- + Rule sol88 1988 only - Oct 6 11:48:05s 0:11:55 -
- + Rule sol88 1988 only - Oct 7 11:47:50s 0:12:10 -
- + Rule sol88 1988 only - Oct 8 11:47:30s 0:12:30 -
- + Rule sol88 1988 only - Oct 9 11:47:15s 0:12:45 -
- + Rule sol88 1988 only - Oct 10 11:47:00s 0:13:00 -
- + Rule sol88 1988 only - Oct 11 11:46:45s 0:13:15 -
- + Rule sol88 1988 only - Oct 12 11:46:30s 0:13:30 -
- + Rule sol88 1988 only - Oct 13 11:46:15s 0:13:45 -
- + Rule sol88 1988 only - Oct 14 11:46:00s 0:14:00 -
- + Rule sol88 1988 only - Oct 15 11:45:45s 0:14:15 -
- + Rule sol88 1988 only - Oct 16 11:45:35s 0:14:25 -
- + Rule sol88 1988 only - Oct 17 11:45:20s 0:14:40 -
- + Rule sol88 1988 only - Oct 18 11:45:10s 0:14:50 -
- + Rule sol88 1988 only - Oct 19 11:45:00s 0:15:00 -
- + Rule sol88 1988 only - Oct 20 11:44:45s 0:15:15 -
- + Rule sol88 1988 only - Oct 21 11:44:40s 0:15:20 -
- + Rule sol88 1988 only - Oct 22 11:44:30s 0:15:30 -
- + Rule sol88 1988 only - Oct 23 11:44:20s 0:15:40 -
- + Rule sol88 1988 only - Oct 24 11:44:10s 0:15:50 -
- + Rule sol88 1988 only - Oct 25 11:44:05s 0:15:55 -
- + Rule sol88 1988 only - Oct 26 11:44:00s 0:16:00 -
- + Rule sol88 1988 only - Oct 27 11:43:55s 0:16:05 -
- + Rule sol88 1988 only - Oct 28 11:43:50s 0:16:10 -
- + Rule sol88 1988 only - Oct 29 11:43:45s 0:16:15 -
- + Rule sol88 1988 only - Oct 30 11:43:40s 0:16:20 -
- + Rule sol88 1988 only - Oct 31 11:43:40s 0:16:20 -
- + Rule sol88 1988 only - Nov 1 11:43:35s 0:16:25 -
- + Rule sol88 1988 only - Nov 2 11:43:35s 0:16:25 -
- + Rule sol88 1988 only - Nov 3 11:43:35s 0:16:25 -
- + Rule sol88 1988 only - Nov 4 11:43:35s 0:16:25 -
- + Rule sol88 1988 only - Nov 5 11:43:40s 0:16:20 -
- + Rule sol88 1988 only - Nov 6 11:43:40s 0:16:20 -
- + Rule sol88 1988 only - Nov 7 11:43:45s 0:16:15 -
- + Rule sol88 1988 only - Nov 8 11:43:45s 0:16:15 -
- + Rule sol88 1988 only - Nov 9 11:43:50s 0:16:10 -
- + Rule sol88 1988 only - Nov 10 11:44:00s 0:16:00 -
- + Rule sol88 1988 only - Nov 11 11:44:05s 0:15:55 -
- + Rule sol88 1988 only - Nov 12 11:44:10s 0:15:50 -
- + Rule sol88 1988 only - Nov 13 11:44:20s 0:15:40 -
- + Rule sol88 1988 only - Nov 14 11:44:30s 0:15:30 -
- + Rule sol88 1988 only - Nov 15 11:44:40s 0:15:20 -
- + Rule sol88 1988 only - Nov 16 11:44:50s 0:15:10 -
- + Rule sol88 1988 only - Nov 17 11:45:00s 0:15:00 -
- + Rule sol88 1988 only - Nov 18 11:45:15s 0:14:45 -
- + Rule sol88 1988 only - Nov 19 11:45:25s 0:14:35 -
- + Rule sol88 1988 only - Nov 20 11:45:40s 0:14:20 -
- + Rule sol88 1988 only - Nov 21 11:45:55s 0:14:05 -
- + Rule sol88 1988 only - Nov 22 11:46:10s 0:13:50 -
- + Rule sol88 1988 only - Nov 23 11:46:30s 0:13:30 -
- + Rule sol88 1988 only - Nov 24 11:46:45s 0:13:15 -
- + Rule sol88 1988 only - Nov 25 11:47:05s 0:12:55 -
- + Rule sol88 1988 only - Nov 26 11:47:20s 0:12:40 -
- + Rule sol88 1988 only - Nov 27 11:47:40s 0:12:20 -
- + Rule sol88 1988 only - Nov 28 11:48:00s 0:12:00 -
- + Rule sol88 1988 only - Nov 29 11:48:25s 0:11:35 -
- + Rule sol88 1988 only - Nov 30 11:48:45s 0:11:15 -
- + Rule sol88 1988 only - Dec 1 11:49:05s 0:10:55 -
- + Rule sol88 1988 only - Dec 2 11:49:30s 0:10:30 -
- + Rule sol88 1988 only - Dec 3 11:49:55s 0:10:05 -
- + Rule sol88 1988 only - Dec 4 11:50:15s 0:09:45 -
- + Rule sol88 1988 only - Dec 5 11:50:40s 0:09:20 -
- + Rule sol88 1988 only - Dec 6 11:51:05s 0:08:55 -
- + Rule sol88 1988 only - Dec 7 11:51:35s 0:08:25 -
- + Rule sol88 1988 only - Dec 8 11:52:00s 0:08:00 -
- + Rule sol88 1988 only - Dec 9 11:52:25s 0:07:35 -
- + Rule sol88 1988 only - Dec 10 11:52:55s 0:07:05 -
- + Rule sol88 1988 only - Dec 11 11:53:20s 0:06:40 -
- + Rule sol88 1988 only - Dec 12 11:53:50s 0:06:10 -
- + Rule sol88 1988 only - Dec 13 11:54:15s 0:05:45 -
- + Rule sol88 1988 only - Dec 14 11:54:45s 0:05:15 -
- + Rule sol88 1988 only - Dec 15 11:55:15s 0:04:45 -
- + Rule sol88 1988 only - Dec 16 11:55:45s 0:04:15 -
- + Rule sol88 1988 only - Dec 17 11:56:15s 0:03:45 -
- + Rule sol88 1988 only - Dec 18 11:56:40s 0:03:20 -
- + Rule sol88 1988 only - Dec 19 11:57:10s 0:02:50 -
- + Rule sol88 1988 only - Dec 20 11:57:40s 0:02:20 -
- + Rule sol88 1988 only - Dec 21 11:58:10s 0:01:50 -
- + Rule sol88 1988 only - Dec 22 11:58:40s 0:01:20 -
- + Rule sol88 1988 only - Dec 23 11:59:10s 0:00:50 -
- + Rule sol88 1988 only - Dec 24 11:59:40s 0:00:20 -
- + Rule sol88 1988 only - Dec 25 12:00:10s -0:00:10 -
- + Rule sol88 1988 only - Dec 26 12:00:40s -0:00:40 -
- + Rule sol88 1988 only - Dec 27 12:01:10s -0:01:10 -
- + Rule sol88 1988 only - Dec 28 12:01:40s -0:01:40 -
- + Rule sol88 1988 only - Dec 29 12:02:10s -0:02:10 -
- + Rule sol88 1988 only - Dec 30 12:02:35s -0:02:35 -
- + Rule sol88 1988 only - Dec 31 12:03:05s -0:03:05 -
- +
- + # Riyadh is at about 46 degrees 46 minutes East: 3 hrs, 7 mins, 4 secs
- + # Before and after 1988, we'll operate on local mean solar time.
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone Mideast/Riyadh88 3:07:04 - ?? 1988
- + 3:07:04 sol88 ?? 1989
- + 3:07:04 - ??
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/solar89 emacs-18.59/amiga/unix/src/zoneinfo/datfiles/solar89
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/solar89 Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/solar89 Sat Aug 1 14:24:20 1992
- ***************
- *** 0 ****
- --- 1,391 ----
- + # @(#)solar89 1.3
- +
- + # Apparent noon times below are for Riyadh; they're a bit off for other places.
- + # Times were computed using a formula provided by the U. S. Naval Observatory:
- + # eqt = -105.8 * sin(l) + 596.2 * sin(2 * l) + 4.4 * sin(3 * l)
- + # -12.7 * sin(4 * l) - 429.0 * cos(l) - 2.1 * cos (2 * l)
- + # + 19.3 * cos(3 * l);
- + # where l is the "mean longitude of the Sun" given by
- + # l = 279.642 degrees + 0.985647 * d
- + # and d is the interval in days from January 0, 0 hours Universal Time
- + # (equaling the day of the year plus the fraction of a day from zero hours).
- + # The accuracy of the formula is plus or minus three seconds.
- + #
- + # Rounding to the nearest five seconds results in fewer than
- + # 256 different "time types"--a limit that's faced because time types are
- + # stored on disk as unsigned chars.
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule sol89 1989 only - Jan 1 12:03:35s -0:03:35 -
- + Rule sol89 1989 only - Jan 2 12:04:05s -0:04:05 -
- + Rule sol89 1989 only - Jan 3 12:04:30s -0:04:30 -
- + Rule sol89 1989 only - Jan 4 12:05:00s -0:05:00 -
- + Rule sol89 1989 only - Jan 5 12:05:25s -0:05:25 -
- + Rule sol89 1989 only - Jan 6 12:05:50s -0:05:50 -
- + Rule sol89 1989 only - Jan 7 12:06:15s -0:06:15 -
- + Rule sol89 1989 only - Jan 8 12:06:45s -0:06:45 -
- + Rule sol89 1989 only - Jan 9 12:07:10s -0:07:10 -
- + Rule sol89 1989 only - Jan 10 12:07:35s -0:07:35 -
- + Rule sol89 1989 only - Jan 11 12:07:55s -0:07:55 -
- + Rule sol89 1989 only - Jan 12 12:08:20s -0:08:20 -
- + Rule sol89 1989 only - Jan 13 12:08:45s -0:08:45 -
- + Rule sol89 1989 only - Jan 14 12:09:05s -0:09:05 -
- + Rule sol89 1989 only - Jan 15 12:09:25s -0:09:25 -
- + Rule sol89 1989 only - Jan 16 12:09:45s -0:09:45 -
- + Rule sol89 1989 only - Jan 17 12:10:05s -0:10:05 -
- + Rule sol89 1989 only - Jan 18 12:10:25s -0:10:25 -
- + Rule sol89 1989 only - Jan 19 12:10:45s -0:10:45 -
- + Rule sol89 1989 only - Jan 20 12:11:05s -0:11:05 -
- + Rule sol89 1989 only - Jan 21 12:11:20s -0:11:20 -
- + Rule sol89 1989 only - Jan 22 12:11:35s -0:11:35 -
- + Rule sol89 1989 only - Jan 23 12:11:55s -0:11:55 -
- + Rule sol89 1989 only - Jan 24 12:12:10s -0:12:10 -
- + Rule sol89 1989 only - Jan 25 12:12:20s -0:12:20 -
- + Rule sol89 1989 only - Jan 26 12:12:35s -0:12:35 -
- + Rule sol89 1989 only - Jan 27 12:12:50s -0:12:50 -
- + Rule sol89 1989 only - Jan 28 12:13:00s -0:13:00 -
- + Rule sol89 1989 only - Jan 29 12:13:10s -0:13:10 -
- + Rule sol89 1989 only - Jan 30 12:13:20s -0:13:20 -
- + Rule sol89 1989 only - Jan 31 12:13:30s -0:13:30 -
- + Rule sol89 1989 only - Feb 1 12:13:40s -0:13:40 -
- + Rule sol89 1989 only - Feb 2 12:13:45s -0:13:45 -
- + Rule sol89 1989 only - Feb 3 12:13:55s -0:13:55 -
- + Rule sol89 1989 only - Feb 4 12:14:00s -0:14:00 -
- + Rule sol89 1989 only - Feb 5 12:14:05s -0:14:05 -
- + Rule sol89 1989 only - Feb 6 12:14:10s -0:14:10 -
- + Rule sol89 1989 only - Feb 7 12:14:10s -0:14:10 -
- + Rule sol89 1989 only - Feb 8 12:14:15s -0:14:15 -
- + Rule sol89 1989 only - Feb 9 12:14:15s -0:14:15 -
- + Rule sol89 1989 only - Feb 10 12:14:20s -0:14:20 -
- + Rule sol89 1989 only - Feb 11 12:14:20s -0:14:20 -
- + Rule sol89 1989 only - Feb 12 12:14:20s -0:14:20 -
- + Rule sol89 1989 only - Feb 13 12:14:15s -0:14:15 -
- + Rule sol89 1989 only - Feb 14 12:14:15s -0:14:15 -
- + Rule sol89 1989 only - Feb 15 12:14:10s -0:14:10 -
- + Rule sol89 1989 only - Feb 16 12:14:10s -0:14:10 -
- + Rule sol89 1989 only - Feb 17 12:14:05s -0:14:05 -
- + Rule sol89 1989 only - Feb 18 12:14:00s -0:14:00 -
- + Rule sol89 1989 only - Feb 19 12:13:55s -0:13:55 -
- + Rule sol89 1989 only - Feb 20 12:13:50s -0:13:50 -
- + Rule sol89 1989 only - Feb 21 12:13:40s -0:13:40 -
- + Rule sol89 1989 only - Feb 22 12:13:35s -0:13:35 -
- + Rule sol89 1989 only - Feb 23 12:13:25s -0:13:25 -
- + Rule sol89 1989 only - Feb 24 12:13:15s -0:13:15 -
- + Rule sol89 1989 only - Feb 25 12:13:05s -0:13:05 -
- + Rule sol89 1989 only - Feb 26 12:12:55s -0:12:55 -
- + Rule sol89 1989 only - Feb 27 12:12:45s -0:12:45 -
- + Rule sol89 1989 only - Feb 28 12:12:35s -0:12:35 -
- + Rule sol89 1989 only - Mar 1 12:12:25s -0:12:25 -
- + Rule sol89 1989 only - Mar 2 12:12:10s -0:12:10 -
- + Rule sol89 1989 only - Mar 3 12:12:00s -0:12:00 -
- + Rule sol89 1989 only - Mar 4 12:11:45s -0:11:45 -
- + Rule sol89 1989 only - Mar 5 12:11:35s -0:11:35 -
- + Rule sol89 1989 only - Mar 6 12:11:20s -0:11:20 -
- + Rule sol89 1989 only - Mar 7 12:11:05s -0:11:05 -
- + Rule sol89 1989 only - Mar 8 12:10:50s -0:10:50 -
- + Rule sol89 1989 only - Mar 9 12:10:35s -0:10:35 -
- + Rule sol89 1989 only - Mar 10 12:10:20s -0:10:20 -
- + Rule sol89 1989 only - Mar 11 12:10:05s -0:10:05 -
- + Rule sol89 1989 only - Mar 12 12:09:50s -0:09:50 -
- + Rule sol89 1989 only - Mar 13 12:09:30s -0:09:30 -
- + Rule sol89 1989 only - Mar 14 12:09:15s -0:09:15 -
- + Rule sol89 1989 only - Mar 15 12:09:00s -0:09:00 -
- + Rule sol89 1989 only - Mar 16 12:08:40s -0:08:40 -
- + Rule sol89 1989 only - Mar 17 12:08:25s -0:08:25 -
- + Rule sol89 1989 only - Mar 18 12:08:05s -0:08:05 -
- + Rule sol89 1989 only - Mar 19 12:07:50s -0:07:50 -
- + Rule sol89 1989 only - Mar 20 12:07:30s -0:07:30 -
- + Rule sol89 1989 only - Mar 21 12:07:15s -0:07:15 -
- + Rule sol89 1989 only - Mar 22 12:06:55s -0:06:55 -
- + Rule sol89 1989 only - Mar 23 12:06:35s -0:06:35 -
- + Rule sol89 1989 only - Mar 24 12:06:20s -0:06:20 -
- + Rule sol89 1989 only - Mar 25 12:06:00s -0:06:00 -
- + Rule sol89 1989 only - Mar 26 12:05:40s -0:05:40 -
- + Rule sol89 1989 only - Mar 27 12:05:25s -0:05:25 -
- + Rule sol89 1989 only - Mar 28 12:05:05s -0:05:05 -
- + Rule sol89 1989 only - Mar 29 12:04:50s -0:04:50 -
- + Rule sol89 1989 only - Mar 30 12:04:30s -0:04:30 -
- + Rule sol89 1989 only - Mar 31 12:04:10s -0:04:10 -
- + Rule sol89 1989 only - Apr 1 12:03:55s -0:03:55 -
- + Rule sol89 1989 only - Apr 2 12:03:35s -0:03:35 -
- + Rule sol89 1989 only - Apr 3 12:03:20s -0:03:20 -
- + Rule sol89 1989 only - Apr 4 12:03:00s -0:03:00 -
- + Rule sol89 1989 only - Apr 5 12:02:45s -0:02:45 -
- + Rule sol89 1989 only - Apr 6 12:02:25s -0:02:25 -
- + Rule sol89 1989 only - Apr 7 12:02:10s -0:02:10 -
- + Rule sol89 1989 only - Apr 8 12:01:50s -0:01:50 -
- + Rule sol89 1989 only - Apr 9 12:01:35s -0:01:35 -
- + Rule sol89 1989 only - Apr 10 12:01:20s -0:01:20 -
- + Rule sol89 1989 only - Apr 11 12:01:05s -0:01:05 -
- + Rule sol89 1989 only - Apr 12 12:00:50s -0:00:50 -
- + Rule sol89 1989 only - Apr 13 12:00:35s -0:00:35 -
- + Rule sol89 1989 only - Apr 14 12:00:20s -0:00:20 -
- + Rule sol89 1989 only - Apr 15 12:00:05s -0:00:05 -
- + Rule sol89 1989 only - Apr 16 11:59:50s 0:00:10 -
- + Rule sol89 1989 only - Apr 17 11:59:35s 0:00:25 -
- + Rule sol89 1989 only - Apr 18 11:59:20s 0:00:40 -
- + Rule sol89 1989 only - Apr 19 11:59:10s 0:00:50 -
- + Rule sol89 1989 only - Apr 20 11:58:55s 0:01:05 -
- + Rule sol89 1989 only - Apr 21 11:58:45s 0:01:15 -
- + Rule sol89 1989 only - Apr 22 11:58:30s 0:01:30 -
- + Rule sol89 1989 only - Apr 23 11:58:20s 0:01:40 -
- + Rule sol89 1989 only - Apr 24 11:58:10s 0:01:50 -
- + Rule sol89 1989 only - Apr 25 11:58:00s 0:02:00 -
- + Rule sol89 1989 only - Apr 26 11:57:50s 0:02:10 -
- + Rule sol89 1989 only - Apr 27 11:57:40s 0:02:20 -
- + Rule sol89 1989 only - Apr 28 11:57:30s 0:02:30 -
- + Rule sol89 1989 only - Apr 29 11:57:20s 0:02:40 -
- + Rule sol89 1989 only - Apr 30 11:57:15s 0:02:45 -
- + Rule sol89 1989 only - May 1 11:57:05s 0:02:55 -
- + Rule sol89 1989 only - May 2 11:57:00s 0:03:00 -
- + Rule sol89 1989 only - May 3 11:56:50s 0:03:10 -
- + Rule sol89 1989 only - May 4 11:56:45s 0:03:15 -
- + Rule sol89 1989 only - May 5 11:56:40s 0:03:20 -
- + Rule sol89 1989 only - May 6 11:56:35s 0:03:25 -
- + Rule sol89 1989 only - May 7 11:56:30s 0:03:30 -
- + Rule sol89 1989 only - May 8 11:56:30s 0:03:30 -
- + Rule sol89 1989 only - May 9 11:56:25s 0:03:35 -
- + Rule sol89 1989 only - May 10 11:56:25s 0:03:35 -
- + Rule sol89 1989 only - May 11 11:56:20s 0:03:40 -
- + Rule sol89 1989 only - May 12 11:56:20s 0:03:40 -
- + Rule sol89 1989 only - May 13 11:56:20s 0:03:40 -
- + Rule sol89 1989 only - May 14 11:56:20s 0:03:40 -
- + Rule sol89 1989 only - May 15 11:56:20s 0:03:40 -
- + Rule sol89 1989 only - May 16 11:56:20s 0:03:40 -
- + Rule sol89 1989 only - May 17 11:56:20s 0:03:40 -
- + Rule sol89 1989 only - May 18 11:56:25s 0:03:35 -
- + Rule sol89 1989 only - May 19 11:56:25s 0:03:35 -
- + Rule sol89 1989 only - May 20 11:56:30s 0:03:30 -
- + Rule sol89 1989 only - May 21 11:56:35s 0:03:25 -
- + Rule sol89 1989 only - May 22 11:56:35s 0:03:25 -
- + Rule sol89 1989 only - May 23 11:56:40s 0:03:20 -
- + Rule sol89 1989 only - May 24 11:56:45s 0:03:15 -
- + Rule sol89 1989 only - May 25 11:56:55s 0:03:05 -
- + Rule sol89 1989 only - May 26 11:57:00s 0:03:00 -
- + Rule sol89 1989 only - May 27 11:57:05s 0:02:55 -
- + Rule sol89 1989 only - May 28 11:57:15s 0:02:45 -
- + Rule sol89 1989 only - May 29 11:57:20s 0:02:40 -
- + Rule sol89 1989 only - May 30 11:57:30s 0:02:30 -
- + Rule sol89 1989 only - May 31 11:57:35s 0:02:25 -
- + Rule sol89 1989 only - Jun 1 11:57:45s 0:02:15 -
- + Rule sol89 1989 only - Jun 2 11:57:55s 0:02:05 -
- + Rule sol89 1989 only - Jun 3 11:58:05s 0:01:55 -
- + Rule sol89 1989 only - Jun 4 11:58:15s 0:01:45 -
- + Rule sol89 1989 only - Jun 5 11:58:25s 0:01:35 -
- + Rule sol89 1989 only - Jun 6 11:58:35s 0:01:25 -
- + Rule sol89 1989 only - Jun 7 11:58:45s 0:01:15 -
- + Rule sol89 1989 only - Jun 8 11:59:00s 0:01:00 -
- + Rule sol89 1989 only - Jun 9 11:59:10s 0:00:50 -
- + Rule sol89 1989 only - Jun 10 11:59:20s 0:00:40 -
- + Rule sol89 1989 only - Jun 11 11:59:35s 0:00:25 -
- + Rule sol89 1989 only - Jun 12 11:59:45s 0:00:15 -
- + Rule sol89 1989 only - Jun 13 12:00:00s 0:00:00 -
- + Rule sol89 1989 only - Jun 14 12:00:10s -0:00:10 -
- + Rule sol89 1989 only - Jun 15 12:00:25s -0:00:25 -
- + Rule sol89 1989 only - Jun 16 12:00:35s -0:00:35 -
- + Rule sol89 1989 only - Jun 17 12:00:50s -0:00:50 -
- + Rule sol89 1989 only - Jun 18 12:01:05s -0:01:05 -
- + Rule sol89 1989 only - Jun 19 12:01:15s -0:01:15 -
- + Rule sol89 1989 only - Jun 20 12:01:30s -0:01:30 -
- + Rule sol89 1989 only - Jun 21 12:01:40s -0:01:40 -
- + Rule sol89 1989 only - Jun 22 12:01:55s -0:01:55 -
- + Rule sol89 1989 only - Jun 23 12:02:10s -0:02:10 -
- + Rule sol89 1989 only - Jun 24 12:02:20s -0:02:20 -
- + Rule sol89 1989 only - Jun 25 12:02:35s -0:02:35 -
- + Rule sol89 1989 only - Jun 26 12:02:45s -0:02:45 -
- + Rule sol89 1989 only - Jun 27 12:03:00s -0:03:00 -
- + Rule sol89 1989 only - Jun 28 12:03:10s -0:03:10 -
- + Rule sol89 1989 only - Jun 29 12:03:25s -0:03:25 -
- + Rule sol89 1989 only - Jun 30 12:03:35s -0:03:35 -
- + Rule sol89 1989 only - Jul 1 12:03:45s -0:03:45 -
- + Rule sol89 1989 only - Jul 2 12:04:00s -0:04:00 -
- + Rule sol89 1989 only - Jul 3 12:04:10s -0:04:10 -
- + Rule sol89 1989 only - Jul 4 12:04:20s -0:04:20 -
- + Rule sol89 1989 only - Jul 5 12:04:30s -0:04:30 -
- + Rule sol89 1989 only - Jul 6 12:04:40s -0:04:40 -
- + Rule sol89 1989 only - Jul 7 12:04:50s -0:04:50 -
- + Rule sol89 1989 only - Jul 8 12:05:00s -0:05:00 -
- + Rule sol89 1989 only - Jul 9 12:05:10s -0:05:10 -
- + Rule sol89 1989 only - Jul 10 12:05:20s -0:05:20 -
- + Rule sol89 1989 only - Jul 11 12:05:25s -0:05:25 -
- + Rule sol89 1989 only - Jul 12 12:05:35s -0:05:35 -
- + Rule sol89 1989 only - Jul 13 12:05:40s -0:05:40 -
- + Rule sol89 1989 only - Jul 14 12:05:50s -0:05:50 -
- + Rule sol89 1989 only - Jul 15 12:05:55s -0:05:55 -
- + Rule sol89 1989 only - Jul 16 12:06:00s -0:06:00 -
- + Rule sol89 1989 only - Jul 17 12:06:05s -0:06:05 -
- + Rule sol89 1989 only - Jul 18 12:06:10s -0:06:10 -
- + Rule sol89 1989 only - Jul 19 12:06:15s -0:06:15 -
- + Rule sol89 1989 only - Jul 20 12:06:20s -0:06:20 -
- + Rule sol89 1989 only - Jul 21 12:06:20s -0:06:20 -
- + Rule sol89 1989 only - Jul 22 12:06:25s -0:06:25 -
- + Rule sol89 1989 only - Jul 23 12:06:25s -0:06:25 -
- + Rule sol89 1989 only - Jul 24 12:06:30s -0:06:30 -
- + Rule sol89 1989 only - Jul 25 12:06:30s -0:06:30 -
- + Rule sol89 1989 only - Jul 26 12:06:30s -0:06:30 -
- + Rule sol89 1989 only - Jul 27 12:06:30s -0:06:30 -
- + Rule sol89 1989 only - Jul 28 12:06:30s -0:06:30 -
- + Rule sol89 1989 only - Jul 29 12:06:25s -0:06:25 -
- + Rule sol89 1989 only - Jul 30 12:06:25s -0:06:25 -
- + Rule sol89 1989 only - Jul 31 12:06:20s -0:06:20 -
- + Rule sol89 1989 only - Aug 1 12:06:20s -0:06:20 -
- + Rule sol89 1989 only - Aug 2 12:06:15s -0:06:15 -
- + Rule sol89 1989 only - Aug 3 12:06:10s -0:06:10 -
- + Rule sol89 1989 only - Aug 4 12:06:05s -0:06:05 -
- + Rule sol89 1989 only - Aug 5 12:06:00s -0:06:00 -
- + Rule sol89 1989 only - Aug 6 12:05:50s -0:05:50 -
- + Rule sol89 1989 only - Aug 7 12:05:45s -0:05:45 -
- + Rule sol89 1989 only - Aug 8 12:05:35s -0:05:35 -
- + Rule sol89 1989 only - Aug 9 12:05:30s -0:05:30 -
- + Rule sol89 1989 only - Aug 10 12:05:20s -0:05:20 -
- + Rule sol89 1989 only - Aug 11 12:05:10s -0:05:10 -
- + Rule sol89 1989 only - Aug 12 12:05:00s -0:05:00 -
- + Rule sol89 1989 only - Aug 13 12:04:50s -0:04:50 -
- + Rule sol89 1989 only - Aug 14 12:04:40s -0:04:40 -
- + Rule sol89 1989 only - Aug 15 12:04:30s -0:04:30 -
- + Rule sol89 1989 only - Aug 16 12:04:15s -0:04:15 -
- + Rule sol89 1989 only - Aug 17 12:04:05s -0:04:05 -
- + Rule sol89 1989 only - Aug 18 12:03:50s -0:03:50 -
- + Rule sol89 1989 only - Aug 19 12:03:35s -0:03:35 -
- + Rule sol89 1989 only - Aug 20 12:03:25s -0:03:25 -
- + Rule sol89 1989 only - Aug 21 12:03:10s -0:03:10 -
- + Rule sol89 1989 only - Aug 22 12:02:55s -0:02:55 -
- + Rule sol89 1989 only - Aug 23 12:02:40s -0:02:40 -
- + Rule sol89 1989 only - Aug 24 12:02:20s -0:02:20 -
- + Rule sol89 1989 only - Aug 25 12:02:05s -0:02:05 -
- + Rule sol89 1989 only - Aug 26 12:01:50s -0:01:50 -
- + Rule sol89 1989 only - Aug 27 12:01:30s -0:01:30 -
- + Rule sol89 1989 only - Aug 28 12:01:15s -0:01:15 -
- + Rule sol89 1989 only - Aug 29 12:00:55s -0:00:55 -
- + Rule sol89 1989 only - Aug 30 12:00:40s -0:00:40 -
- + Rule sol89 1989 only - Aug 31 12:00:20s -0:00:20 -
- + Rule sol89 1989 only - Sep 1 12:00:00s 0:00:00 -
- + Rule sol89 1989 only - Sep 2 11:59:45s 0:00:15 -
- + Rule sol89 1989 only - Sep 3 11:59:25s 0:00:35 -
- + Rule sol89 1989 only - Sep 4 11:59:05s 0:00:55 -
- + Rule sol89 1989 only - Sep 5 11:58:45s 0:01:15 -
- + Rule sol89 1989 only - Sep 6 11:58:25s 0:01:35 -
- + Rule sol89 1989 only - Sep 7 11:58:05s 0:01:55 -
- + Rule sol89 1989 only - Sep 8 11:57:45s 0:02:15 -
- + Rule sol89 1989 only - Sep 9 11:57:20s 0:02:40 -
- + Rule sol89 1989 only - Sep 10 11:57:00s 0:03:00 -
- + Rule sol89 1989 only - Sep 11 11:56:40s 0:03:20 -
- + Rule sol89 1989 only - Sep 12 11:56:20s 0:03:40 -
- + Rule sol89 1989 only - Sep 13 11:56:00s 0:04:00 -
- + Rule sol89 1989 only - Sep 14 11:55:35s 0:04:25 -
- + Rule sol89 1989 only - Sep 15 11:55:15s 0:04:45 -
- + Rule sol89 1989 only - Sep 16 11:54:55s 0:05:05 -
- + Rule sol89 1989 only - Sep 17 11:54:35s 0:05:25 -
- + Rule sol89 1989 only - Sep 18 11:54:10s 0:05:50 -
- + Rule sol89 1989 only - Sep 19 11:53:50s 0:06:10 -
- + Rule sol89 1989 only - Sep 20 11:53:30s 0:06:30 -
- + Rule sol89 1989 only - Sep 21 11:53:10s 0:06:50 -
- + Rule sol89 1989 only - Sep 22 11:52:45s 0:07:15 -
- + Rule sol89 1989 only - Sep 23 11:52:25s 0:07:35 -
- + Rule sol89 1989 only - Sep 24 11:52:05s 0:07:55 -
- + Rule sol89 1989 only - Sep 25 11:51:45s 0:08:15 -
- + Rule sol89 1989 only - Sep 26 11:51:25s 0:08:35 -
- + Rule sol89 1989 only - Sep 27 11:51:05s 0:08:55 -
- + Rule sol89 1989 only - Sep 28 11:50:40s 0:09:20 -
- + Rule sol89 1989 only - Sep 29 11:50:20s 0:09:40 -
- + Rule sol89 1989 only - Sep 30 11:50:00s 0:10:00 -
- + Rule sol89 1989 only - Oct 1 11:49:45s 0:10:15 -
- + Rule sol89 1989 only - Oct 2 11:49:25s 0:10:35 -
- + Rule sol89 1989 only - Oct 3 11:49:05s 0:10:55 -
- + Rule sol89 1989 only - Oct 4 11:48:45s 0:11:15 -
- + Rule sol89 1989 only - Oct 5 11:48:30s 0:11:30 -
- + Rule sol89 1989 only - Oct 6 11:48:10s 0:11:50 -
- + Rule sol89 1989 only - Oct 7 11:47:50s 0:12:10 -
- + Rule sol89 1989 only - Oct 8 11:47:35s 0:12:25 -
- + Rule sol89 1989 only - Oct 9 11:47:20s 0:12:40 -
- + Rule sol89 1989 only - Oct 10 11:47:00s 0:13:00 -
- + Rule sol89 1989 only - Oct 11 11:46:45s 0:13:15 -
- + Rule sol89 1989 only - Oct 12 11:46:30s 0:13:30 -
- + Rule sol89 1989 only - Oct 13 11:46:15s 0:13:45 -
- + Rule sol89 1989 only - Oct 14 11:46:00s 0:14:00 -
- + Rule sol89 1989 only - Oct 15 11:45:50s 0:14:10 -
- + Rule sol89 1989 only - Oct 16 11:45:35s 0:14:25 -
- + Rule sol89 1989 only - Oct 17 11:45:20s 0:14:40 -
- + Rule sol89 1989 only - Oct 18 11:45:10s 0:14:50 -
- + Rule sol89 1989 only - Oct 19 11:45:00s 0:15:00 -
- + Rule sol89 1989 only - Oct 20 11:44:50s 0:15:10 -
- + Rule sol89 1989 only - Oct 21 11:44:40s 0:15:20 -
- + Rule sol89 1989 only - Oct 22 11:44:30s 0:15:30 -
- + Rule sol89 1989 only - Oct 23 11:44:20s 0:15:40 -
- + Rule sol89 1989 only - Oct 24 11:44:10s 0:15:50 -
- + Rule sol89 1989 only - Oct 25 11:44:05s 0:15:55 -
- + Rule sol89 1989 only - Oct 26 11:44:00s 0:16:00 -
- + Rule sol89 1989 only - Oct 27 11:43:50s 0:16:10 -
- + Rule sol89 1989 only - Oct 28 11:43:45s 0:16:15 -
- + Rule sol89 1989 only - Oct 29 11:43:40s 0:16:20 -
- + Rule sol89 1989 only - Oct 30 11:43:40s 0:16:20 -
- + Rule sol89 1989 only - Oct 31 11:43:35s 0:16:25 -
- + Rule sol89 1989 only - Nov 1 11:43:35s 0:16:25 -
- + Rule sol89 1989 only - Nov 2 11:43:35s 0:16:25 -
- + Rule sol89 1989 only - Nov 3 11:43:30s 0:16:30 -
- + Rule sol89 1989 only - Nov 4 11:43:35s 0:16:25 -
- + Rule sol89 1989 only - Nov 5 11:43:35s 0:16:25 -
- + Rule sol89 1989 only - Nov 6 11:43:35s 0:16:25 -
- + Rule sol89 1989 only - Nov 7 11:43:40s 0:16:20 -
- + Rule sol89 1989 only - Nov 8 11:43:45s 0:16:15 -
- + Rule sol89 1989 only - Nov 9 11:43:50s 0:16:10 -
- + Rule sol89 1989 only - Nov 10 11:43:55s 0:16:05 -
- + Rule sol89 1989 only - Nov 11 11:44:00s 0:16:00 -
- + Rule sol89 1989 only - Nov 12 11:44:05s 0:15:55 -
- + Rule sol89 1989 only - Nov 13 11:44:15s 0:15:45 -
- + Rule sol89 1989 only - Nov 14 11:44:25s 0:15:35 -
- + Rule sol89 1989 only - Nov 15 11:44:35s 0:15:25 -
- + Rule sol89 1989 only - Nov 16 11:44:45s 0:15:15 -
- + Rule sol89 1989 only - Nov 17 11:44:55s 0:15:05 -
- + Rule sol89 1989 only - Nov 18 11:45:10s 0:14:50 -
- + Rule sol89 1989 only - Nov 19 11:45:20s 0:14:40 -
- + Rule sol89 1989 only - Nov 20 11:45:35s 0:14:25 -
- + Rule sol89 1989 only - Nov 21 11:45:50s 0:14:10 -
- + Rule sol89 1989 only - Nov 22 11:46:05s 0:13:55 -
- + Rule sol89 1989 only - Nov 23 11:46:25s 0:13:35 -
- + Rule sol89 1989 only - Nov 24 11:46:40s 0:13:20 -
- + Rule sol89 1989 only - Nov 25 11:47:00s 0:13:00 -
- + Rule sol89 1989 only - Nov 26 11:47:20s 0:12:40 -
- + Rule sol89 1989 only - Nov 27 11:47:35s 0:12:25 -
- + Rule sol89 1989 only - Nov 28 11:47:55s 0:12:05 -
- + Rule sol89 1989 only - Nov 29 11:48:20s 0:11:40 -
- + Rule sol89 1989 only - Nov 30 11:48:40s 0:11:20 -
- + Rule sol89 1989 only - Dec 1 11:49:00s 0:11:00 -
- + Rule sol89 1989 only - Dec 2 11:49:25s 0:10:35 -
- + Rule sol89 1989 only - Dec 3 11:49:50s 0:10:10 -
- + Rule sol89 1989 only - Dec 4 11:50:15s 0:09:45 -
- + Rule sol89 1989 only - Dec 5 11:50:35s 0:09:25 -
- + Rule sol89 1989 only - Dec 6 11:51:00s 0:09:00 -
- + Rule sol89 1989 only - Dec 7 11:51:30s 0:08:30 -
- + Rule sol89 1989 only - Dec 8 11:51:55s 0:08:05 -
- + Rule sol89 1989 only - Dec 9 11:52:20s 0:07:40 -
- + Rule sol89 1989 only - Dec 10 11:52:50s 0:07:10 -
- + Rule sol89 1989 only - Dec 11 11:53:15s 0:06:45 -
- + Rule sol89 1989 only - Dec 12 11:53:45s 0:06:15 -
- + Rule sol89 1989 only - Dec 13 11:54:10s 0:05:50 -
- + Rule sol89 1989 only - Dec 14 11:54:40s 0:05:20 -
- + Rule sol89 1989 only - Dec 15 11:55:10s 0:04:50 -
- + Rule sol89 1989 only - Dec 16 11:55:40s 0:04:20 -
- + Rule sol89 1989 only - Dec 17 11:56:05s 0:03:55 -
- + Rule sol89 1989 only - Dec 18 11:56:35s 0:03:25 -
- + Rule sol89 1989 only - Dec 19 11:57:05s 0:02:55 -
- + Rule sol89 1989 only - Dec 20 11:57:35s 0:02:25 -
- + Rule sol89 1989 only - Dec 21 11:58:05s 0:01:55 -
- + Rule sol89 1989 only - Dec 22 11:58:35s 0:01:25 -
- + Rule sol89 1989 only - Dec 23 11:59:05s 0:00:55 -
- + Rule sol89 1989 only - Dec 24 11:59:35s 0:00:25 -
- + Rule sol89 1989 only - Dec 25 12:00:05s -0:00:05 -
- + Rule sol89 1989 only - Dec 26 12:00:35s -0:00:35 -
- + Rule sol89 1989 only - Dec 27 12:01:05s -0:01:05 -
- + Rule sol89 1989 only - Dec 28 12:01:35s -0:01:35 -
- + Rule sol89 1989 only - Dec 29 12:02:00s -0:02:00 -
- + Rule sol89 1989 only - Dec 30 12:02:30s -0:02:30 -
- + Rule sol89 1989 only - Dec 31 12:03:00s -0:03:00 -
- +
- + # Riyadh is at about 46 degrees 46 minutes East: 3 hrs, 7 mins, 4 secs
- + # Before and after 1989, we'll operate on local mean solar time.
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone Mideast/Riyadh89 3:07:04 - ?? 1989
- + 3:07:04 sol89 ?? 1990
- + 3:07:04 - ??
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/southamerica emacs-18.59/amiga/unix/src/zoneinfo/datfiles/southamerica
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/southamerica Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/southamerica Sat Aug 1 14:24:20 1992
- ***************
- *** 0 ****
- --- 1,103 ----
- + # @(#)southamerica 4.3
- +
- + # From Guy Harris:
- + # From Official Airline Guide - Worldwide Edition (1987). Countries not
- + # listed here do not observe DST, according to the OAG. Time zone names
- + # are pure inventions, and none are supplied for countries not observing
- + # DST; updates from natives would be appreciated. The times that DST
- + # starts and ends are based on the assumption that they switch a 2AM just
- + # as everybody else does.
- +
- + ###############################################################################
- +
- + # Brazil
- +
- + # From Guy Harris:
- + # The OAG lists October 25, 1987 and February 12, 1988 as the starting and
- + # ending dates, giving them as "estimated date(s) based on previous year". We
- + # infer a rule here from one example, always a dangerous practice.... Yes,
- + # they really do switch on Saturday, according to the OAG.
- + # "Brazil/Acre" is for the Territory of Acre; "Brazil/DeNoronha" is for
- + # Fernando De Noronha.
- +
- + # From Bob Devine (January 28, 1988):
- + # The only information I found is that there was no DST up to 1985.
- + # But there was some before 1952!
- +
- + # From U. S. Naval Observatory (January 16, 1989):
- + # BRAZIL WEST 5 H BEHIND UTC TERRITORY OF ACRE
- + # BRAZIL WEST 4 H BEHIND UTC ACRE OCT 23, '88-FEB 11,
- + # BRAZIL '89 (ESTIMATED)
- + # BRAZIL CENTRAL 4 H BEHIND UTC MANAUS
- + # BRAZIL CENTRAL 3 H BEHIND UTC MANAUS OCT 23, '88-FEB 11,
- + # BRAZIL CENTRAL '89 (ESTIMATED)
- + # BRAZIL EAST 3 H BEHIND UTC COASTAL STATES, RIO, SAO
- + # BRAZIL EAST PAULO, BRASILIA
- + # BRAZIL EAST 2 H BEHIND UTC COASTAL STATES, RIO, SAO
- + # BRAZIL PAULO, BRASILIA OCT 23,
- + # BRAZIL '88-FEB 11, '89
- + # BRAZIL (ESTIMATED)
- + # BRAZIL 2 H BEHIND UTC ATLANTIC ISLANDS, FERNANDO
- + # BRAZIL DE NORONHA
- + # BRAZIL 1 H BEHIND UTC OCT 23, '88-FEB 11, '89
- + # BRAZIL (ESTIMATED)
- + # BRAZIL 3 H BEHIND UTC FOR MOST MAJOR AIRPORTS.
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule Brazil 1987 max - Feb Sat<=14 2:00 0 S
- + Rule Brazil 1987 max - Oct Sat<=28 2:00 1:00 D
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone Brazil/East -3:00 Brazil E%sT
- + Zone Brazil/West -4:00 Brazil W%sT
- + Zone Brazil/Acre -5:00 Brazil A%sT
- + Zone Brazil/DeNoronha -2:00 Brazil F%sT
- +
- + ###############################################################################
- +
- + # Chile
- +
- + # From Guy Harris:
- + # The OAG lists October 11, 1987 and March 12, 1988 as the starting and
- + # ending dates, giving them as "estimated date(s) based on previous year."
- +
- + # From Bob Devine (January 28, 1988):
- + # Chile has had 2nd Sunday in October to 2nd Sunday in March DST since 1977.
- + # Switch is at midnight. OAG is right.
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule Chile 1977 max - Oct Sun>=8 0:00 1:00 D
- + Rule Chile 1978 max - Mar Sun>=8 0:00 0 S
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone Chile/Continental -4:00 Chile C%sT
- + Zone Chile/EasterIsland -6:00 Chile E%sT
- +
- + ###############################################################################
- +
- + # Paraguay
- +
- + # From Bob Devine (January 28, 1988):
- + # Paraguay: First day in October to last in March. Midnight switch??
- + # Since 1980.
- +
- + # From U. S. Naval Observatory (January 19, 1989):
- + # PARAGUAY 4 H BEHIND UTC
- + # PARAGUAY 3 H BEHIND UTC OCT 1, '88-MAR 31, '89
- +
- + # From Arthur David Olson (January 21, 1989):
- + # Still don't know time of day when switch occurs. Punt.
- +
- + ###############################################################################
- +
- + # Argentina
- +
- + # From Bob Devine (January 28, 1988):
- + # Argentina: first Sunday in October to first Sunday in April since 1976.
- + # Double Summer time from 1969 to 1974. Switches at midnight.
- +
- + # From U. S. Naval Observatory (January 19, 19889):
- + # ARGENTINA 3 H BEHIND UTC
- +
- + # From Arthur David Olson (January 21, 1989):
- + # OAG, USNO and Bob have different data. Punt.
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/systemv emacs-18.59/amiga/unix/src/zoneinfo/datfiles/systemv
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/systemv Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/systemv Sat Aug 1 14:24:22 1992
- ***************
- *** 0 ****
- --- 1,35 ----
- + # @(#)systemv 4.1
- +
- + # Old rules, should the need arise.
- + # No attempt is made to handle Newfoundland, since it cannot be expressed
- + # using the System V "TZ" scheme (half-hour offset), or anything outside
- + # North America (no support for non-standard DST start/end dates), nor
- + # the change in the DST rules in the US in 1987 (can't split between
- + # Canada, with no changes, and the US)
- + #
- + # Be sure to compile this *without* leap second correction for true conformance.
- +
- + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + Rule SystemV min 1973 - Apr lastSun 2:00 1:00 D
- + Rule SystemV min 1973 - Oct lastSun 2:00 0 S
- + Rule SystemV 1974 only - Jan 6 2:00 1:00 D
- + Rule SystemV 1974 only - Nov lastSun 2:00 0 S
- + Rule SystemV 1975 only - Feb 23 2:00 1:00 D
- + Rule SystemV 1975 only - Oct lastSun 2:00 0 S
- + Rule SystemV 1976 max - Apr lastSun 2:00 1:00 D
- + Rule SystemV 1976 max - Oct lastSun 2:00 0 S
- +
- + # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + Zone SystemV/AST4ADT -4:00 SystemV A%sT
- + Zone SystemV/EST5EDT -5:00 SystemV E%sT
- + Zone SystemV/CST6CDT -6:00 SystemV C%sT
- + Zone SystemV/MST7MDT -7:00 SystemV M%sT
- + Zone SystemV/PST8PDT -8:00 SystemV P%sT
- + Zone SystemV/YST9YDT -9:00 SystemV Y%sT
- + Zone SystemV/AST4 -4:00 - AST
- + Zone SystemV/EST5 -5:00 - EST
- + Zone SystemV/CST6 -6:00 - CST
- + Zone SystemV/MST7 -7:00 - MST
- + Zone SystemV/PST8 -8:00 - PST
- + Zone SystemV/YST9 -9:00 - YST
- + Zone SystemV/HST10 -10:00 - HST
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/usno1988 emacs-18.59/amiga/unix/src/zoneinfo/datfiles/usno1988
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/usno1988 Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/usno1988 Sat Aug 1 14:24:22 1992
- ***************
- *** 0 ****
- --- 1,111 ----
- + # @(#)usno1988 1.1
- + #
- + # From Arthur David Olson (January 19, 1989):
- + #
- + # Here's some United States Naval Observatory time zone data from
- + # February 1988. It's here mostly to convince you that the USNO has indeed
- + # been updating its files (see its 1989 data elsewhere).
- + #
- + ANDORRA 1 H AHEAD OF UTC
- + ARGENTINA 3 H BEHIND UTC
- + BRASIL WEST 5 H BEHIND UTC (CRUZEIRO DO SUL)
- + BRASIL CENTRAL 4 H BEHIND UTC (MANAUS)
- + BRASIL EAST 3 H BEHIND UTC COASTAL STATES, RIO, SP, BRASILIA
- + BRASIL 2 H BEHIND UTC ATLANTIC ISLANDS
- + BRAZIL 5 H BEHIND UTC WEST (CRUZEIRO DO SUL)
- + BRAZIL 4 H BEHIND UTC CENTRAL (MANAUS)
- + BRAZIL 3 H BEHIND UTC COASTAL STATES, RIO, SP, BRASILIA
- + BRAZIL 3 H BEHIND UTC FOR MOST MAJOR AIRPORTS.
- + BRAZIL 2 H BEHIND UTC ATLANTIC ISLANDS
- + BULGARIA 2 H AHEAD OF UTC WINTER
- + BULGARIA 3 H AHEAD OF UTC SUMMER MAR31 - SEP 85, 0100 LOCAL
- + CHINA 8 H AHEAD OF UTC; ALL OF CHINA, INCL TAIWAN
- + CUBA 5 H BEHIND UTC IN WINTER
- + CUBA 4 H BEHIND UTC MAY 8 - OCT 8
- + CYPRUS 2 H AHEAD UTC IN WINTER
- + CYPRUS 3 H AHEAD UTC MAR 25 - SEP 30
- + DENMARK 1 H AHEAD UTC IN WINTER
- + DENMARK 2 H AHEAD UTC MAR 31 - SEP 30 , 0200 LOCAL
- + DENMK. FAEROE IS 1 H AHEAD UTC MAR 31 - SEP 30 , 0200 LOCAL
- + EGYPT 2 H AHEAD UTC
- + EGYPT 3 H AHEAD UTC SUMMER (AFTER RAMADAN)
- + ENGLAND ON UTC IN WINTER; WALES, SCOTLAND, N.I., CH.IS.
- + ENGLAND 1 H AHEAD OF UTC; SUMMER TIL 28 OCT 0200 LOCAL
- + FINLAND 2 H AHEAD OF UTC IN WINTER
- + FINLAND 3 H AHEAD OF UTC MAR 25 - SEP 30
- + FRANCE 1 H AHEAD OF UTC IN WINTER
- + FRANCE 2 H AHEAD OF UTC MAR 31 - SEP 30 , 0100 LOCAL
- + GREECE 2 H AHEAD OF UTC IN WINTER
- + GREECE 3 H AHEAD OF UTC IN SUMMER EFF. 31MAR85 02/03 LOCAL
- + GREECE 3 H AHEAD OF UTC MAR 25 - SEP 30
- + GREENLAND 4 H BEHIND UTC IN THULE AIRBASE YEAR ROUND
- + GREENLAND 3 H BEHIND UTC IN WINTER AT SONDRESTROM
- + GREENLAND 2 H BEHIND UTC 30 MAR - 30 SEP 2200 LOCAL AT -"-
- + GREENLAND 2 H BEHIND UTC AROUND SCORESBY SUND
- + ICELAND ON UTC
- + IRAN 3.5H AHEAD OF UTC
- + IRELAND ON UTC IN WINTER
- + IRELAND 1 H AHEAD OF UTC MAR 31 - OCT 23 0200 LOCAL
- + ITALY 1 H AHEAD OF UTC IN WINTER
- + ITALY 2 H AHEAD OF UTC MAR 31 - SEP 30, 0030 LOCAL
- + JAMAICA 5 H BEHIND UTC IN WINTER
- + JAMAICA 4 H BEHIND UTC APR 29 - OCT 29
- + LIBYA 2 H AHEAD OF UTC
- + MEXICO BAJA CAL N 8 H BEHIND UTC IN WINTER; NORTH BAJA CAL, TIJUANA
- + MEXICO BAJA CAL N 7 H BEHIND UTC APR 29 - OCT 29
- + MEXICO BAJA CAL S 7 H BEHIND UTC ALL YEAR; MAZATLAN
- + MEXICO CENTRAL 6 H BEHIND UTC ALL YEAR; MEXICO CITY
- + MONACO 1 H AHEAD UTC IN WINTER
- + MONACO 2 H AHEAD UTC MAR 25 - SEP30
- + PARAGUAY 4 H BEHIND UTC IN WINTER
- + PARAGUAY 3 H BEHIND UTC SEP 30 - MAR 30
- + POLAND 1 H AHEAD OF UTC IN WINTER
- + POLAND 2 H AHEAD OF UTC MAR 24 - SEP 0200 LOCAL
- + PORTUGAL ON UTC IN WINTER
- + PORTUGAL 1 H AHEAD OF UTC IN SUMMER MAR 31 - SEP 29 0100 LOCAL
- + PORTUGAL AZORES 1 H BEHIND UTC IN WINTER
- + PORTUGAL AZORES ON UTC IN SUMMER MAR 31 - SEP 29
- + PORTUGAL MADEIRA ON UTC ALL YEAR;
- + ROMANIA 2 H AHEAD OF UTC IN WINTER
- + ROMANIA 3 H AHEAD OF UTC APR 3 - SEP 24
- + SCOTLAND SEE ENGLAND
- + SWITZERLAND 1 H AHEAD OF UTC IN WINTER
- + SWITZERLAND 2 H AHEAD OF UTC MAR 31 - SEP 30 0200 LOCAL
- + TURKEY 3 H AHEAD OF UTC
- + USA EASTERN 5 H BEHIND UTC IN WINTER; NEW YORK, WASHINGTON
- + USA EASTERN 4 H BEHIND UTC APR 29 - OCT 29
- + USA CENTRAL 6 H BEHIND UTC IN WINTER; CHICAGO, HOUSTON
- + USA CENTRAL 5 H BEHIND UTC APR 29 - OCT 29
- + USA MOUNTAIN 7 H BEHIND UTC IN WINTER; DENVER
- + USA MOUNTAIN 6 H BEHIND UTC APR 29 - OCT 29
- + USA PACIFIC 8 H BEHIND UTC IN WINTER; L.A., SAN FRANCISCO
- + USA PACIFIC 7 H BEHIND UTC APR 29 - OCT 29
- + USA ALASKA STD 9 H BEHIND UTC IN WINTER; MOST OF ALASKA (AKST)
- + USA ALASKA STD 8 H BEHIND UTC APR 29 - OCT 29 (AKDT)
- + USA ALEUTIAN 10 H BEHIND UTC IN WINTER; ISLANDS WEST OF 170W
- + USA - " - 9 H BEHIND UTC APR 29 - OCT 29
- + USA HAWAII 10 H BEHIND UTC ALL YEAR;
- + USA BERING 11 H BEHIND UTC ALL YEAR; SAMOA, MIDWAY
- + USSR WEST EUROP 3 H AHEAD OF UTC IN WINTER; LENINGRAD, MOSCOW
- + USSR WEST EUROP 4 H AHEAD OF UTC APR 1 - SEP 30
- + USSR CENTRAL EUR 4 H AHEAD OF UTC IN WINTER; ROSTOV, BAKU
- + USSR CENTRAL EUR 5 H AHEAD OF UTC APR 1 - SEP 30
- + USSR EAST EUROP 5 H AHEAD OF UTC IN WINTER; SVERDLOVSK
- + USSR EAST EUROP 6 H AHEAD OF UTC APR 1 - SEP 30
- + USSR WEST SIBERIAN 6 H AHEAD OF UTC IN WINTER; TASHKENT, ALMA ATA
- + USSR WEST SIBERIAN 7 H AHEAD OF UTC APR 1 - SEP 30
- + USSR WEST-CENTRAL 7 H AHEAD OF UTC IN WINTER; NOVOSIBIRSK
- + USSR WEST-CENTRAL 8 H AHEAD OF UTC APR 1 - SEP 30
- + USSR WEST-CENTRAL 8 H AHEAD OF UTC IN WINTER; IRKUTSK
- + USSR WEST-CENTRAL 9 H AHEAD OF UTC APR 1 - SEP 30
- + USSR CENTRAL SIB 9 H AHEAD OF UTC IN WINTER; YAKUTSK
- + USSR CENTRAL SIB 10 H AHEAD OF UTC APR 1 - SEP 30
- + USSR CENTRAL SIB 10 H AHEAD OF UTC IN WINTER; VLADIVOSTOK
- + USSR CENTRAL SIB 11 H AHEAD OF UTC APR 1 - SEP 30
- + USSR EAST SIBERIA 11 H AHEAD OF UTC IN WINTER; MAGADAN
- + USSR EAST SIBERIA 12 H AHEAD OF UTC APR 1 - SEP 30
- + USSR EAST SIBERIA 12 H AHEAD OF UTC IN WINTER; PETROPAVLOVSK
- + USSR EAST SIBERIA 13 H AHEAD OF UTC APR 1 - SEP 30
- + USSR EAST SIBERIA 13 H AHEAD OF UTC IN WINTER; UELEN
- + USSR EAST SIBERIA 14 H AHEAD OF UTC APR 1 - SEP 30
- + WALES SEE ENGLAND
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/usno1989 emacs-18.59/amiga/unix/src/zoneinfo/datfiles/usno1989
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/datfiles/usno1989 Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/datfiles/usno1989 Sat Aug 1 14:24:26 1992
- ***************
- *** 0 ****
- --- 1,452 ----
- + # @(#)usno1989 1.3
- + #
- + # From Arthur David Olson (January 19, 1989):
- + #
- + # Here's time zone information from the United States Naval Observatory;
- + # no corrections have been made, and there are some obvious challenges.
- + # The USNO warns:
- + # DUE TO FREQUENT CHANGES IN THE LOCAL LAWS GOVERNING DAYLIGHT
- + # SAVING TIME, WE CANNOT GUARANTEE THE ACCURACY OF THIS
- + # INFORMATION. PLEASE ALERT US TO ANY DISCREPANCY YOU MAY
- + # DISCOVER.
- + #
- + AFGHANISTAN 4.5H AHEAD OF UTC
- + ALBANIA 1 H AHEAD OF UTC
- + ALBANIA 2 H AHEAD OF UTC MAR 27 - SEP 24
- + ALBANIA (ESTIMATED)
- + ALGERIA 1 H AHEAD OF UTC
- + AMERICAN SAMOA 11 H BEHIND UTC
- + ANDORRA 1 H AHEAD OF UTC
- + ANDORRA 2 H AHEAD OF UTC MAR 27 - SEP 24
- + ANDORRA (ESTIMATED)
- + ANGOLA 1 H AHEAD OF UTC
- + ARGENTINA 3 H BEHIND UTC
- + ARUBA 4 H BEHIND UTC ALSO BONAIRE, CURACAO,
- + ARUBA ST.MAARTEN
- + AUSTRALIA WEST 8 H AHEAD OF UTC PERTH, EXMOUTH
- + AUSTRALIA N.T. 9.5H AHEAD OF UTC DARWIN NO ADVANCED TIME
- + AUSTRALIA N.T. IN SUMMER
- + AUSTRALIA SOUTH 9.5H AHEAD OF UTC ADELAIDE
- + AUSTRALIA INCLUDING BROKEN HILL, NSW
- + AUSTRALIA SOUTH 10.5H AHEAD OF UTC ADELAIDE OCT 30, '88-MAR
- + AUSTRALIA SOUTH 18, '89 INCLUDING BROKEN
- + AUSTRIALIA SOUTH HILL, NSW
- + AUSTRALIA QUEENL 10 H AHEAD OF UTC
- + AUSTRALIA NSW 10 H AHEAD OF UTC SYDNEY
- + AUSTRALIA NSW 11 H AHEAD OF UTC SYDNEY OCT 30, '88-MAR 18,
- + AUSTRALIA NSW '89
- + AUSTRALIA TASM. 10 H AHEAD OF UTC HOBART
- + AUSTRALIA TASM. 11 H AHEAD OF UTC HOBART OCT 30, '88-MAR 18,
- + AUSTRALIA TASM. '89
- + AUSTRIA 1 H AHEAD OF UTC
- + AUSTRIA 2 H AHEAD OF UTC MAR 27 - SEPT 24
- + AZORES SEE PORTUGAL
- + BAHAMAS 5 H BEHIND UTC EXCLUDING TURKS AND CAICOS
- + BAHAMAS ISLANDS)
- + BAHAMAS 4 H BEHIND UTC APR 3 - OCT 29 (SAME
- + BAHAMAS EXCLUSION)
- + BAHRAIN 3 H AHEAD OF UTC
- + BANGLADESH 6 H AHEAD OF UTC
- + BARBADOS 4 H BEHIND UTC
- + BELGIUM 1 H AHEAD OF UTC
- + BELGIUM 2 H AHEAD OF UTC MAR 27 - SEP 24
- + BELIZE 6 H BEHIND UTC
- + BENIN PEOPLES REP 1 H AHEAD OF UTC DAHOMEY
- + BERMUDA 4 H BEHIND UTC
- + BERMUDA 3 H BEHIND UTC APR 3 - OCT 29
- + BHUTAN 6 H AHEAD OF UTC
- + BOLIVIA 4 H BEHIND UTC
- + BONAIRE 4 H BEHIND UTC ALSO ARUBA,CURACAO,
- + BONAIRE ST.MAARTEN, SABA
- + BOTSWANA 2 H AHEAD OF UTC
- + BRAZIL WEST 5 H BEHIND UTC TERRITORY OF ACRE
- + BRAZIL WEST 4 H BEHIND UTC ACRE OCT 23, '88-FEB 11,
- + BRAZIL '89 (ESTIMATED)
- + BRAZIL CENTRAL 4 H BEHIND UTC MANAUS
- + BRAZIL CENTRAL 3 H BEHIND UTC MANAUS OCT 23, '88-FEB 11,
- + BRAZIL CENTRAL '89 (ESTIMATED)
- + BRAZIL EAST 3 H BEHIND UTC COASTAL STATES, RIO, SAO
- + BRAZIL EAST PAULO, BRASILIA
- + BRAZIL EAST 2 H BEHIND UTC COASTAL STATES, RIO, SAO
- + BRAZIL PAULO, BRASILIA OCT 23,
- + BRAZIL '88-FEB 11, '89
- + BRAZIL (ESTIMATED)
- + BRAZIL 2 H BEHIND UTC ATLANTIC ISLANDS, FERNANDO
- + BRAZIL DE NORONHA
- + BRAZIL 1 H BEHIND UTC OCT 23, '88-FEB 11, '89
- + BRAZIL (ESTIMATED)
- + BRAZIL 3 H BEHIND UTC FOR MOST MAJOR AIRPORTS.
- + BRITISH VIRGIN I. 4 H BEHIND UTC
- + BRUNEI 8 H AHEAD OF UTC
- + BULGARIA 2 H AHEAD OF UTC
- + BULGARIA 3 H AHEAD OF UTC MAR 27 - SEP 24
- + BURKINA FASO ON UTC
- + BURMA 6.5H AHEAD OF UTC
- + BURUNDI 2 H AHEAD OF UTC
- + CAMBODIA SEE KAMPUCHEA
- + CAMEROON 1 H AHEAD OF UTC
- + CANADA NEW FDL 3.5H BEHIND UTC ST.JOHN'S
- + CANADA NEW FDL 1.5H BEHIND UTC APR 3 - OCT 29
- + CANADA ATLANTIC 4 H BEHIND UTC HALIFAX
- + CANADA ATLANTIC 3 H BEHIND UTC APR 3 - OCT 29
- + CANADA EASTERN 5 H BEHIND UTC TORONTO, MONTREAL, OTTAWA
- + CANADA EASTERN 4 H BEHIND UTC APR 3 - OCT 29
- + CANADA CENTRAL 6 H BEHIND UTC REGINA, WINNIPEG
- + CANADA CENTRAL 5 H BEHIND UTC APR 3 - OCT 29
- + CANADA MOUNTAIN 7 H BEHIND UTC CALGARY, EDMONTON
- + CANADA MOUNTAIN 6 H BEHIND UTC APR 3 - OCT 29
- + CANADA PACIFIC 8 H BEHIND UTC VANCOUVER
- + CANADA PACIFIC 7 H BEHIND UTC APR 3 - OCT 29
- + CANADA YUKON SAME AS PACIFIC DAWSON
- + CAPE VERDE 1 H BEHIND UTC
- + CAYMAN ISLANDS 5 H BEHIND UTC
- + CAROLINE ISLAND 10 H AHEAD OF UTC EXCLUDING PONAPE IS.,
- + CAROLINE ISLAND KUSAIE, AND PINGELAP
- + CENTRAL AFRICA 1 H AHEAD OF UTC
- + CEYLON 5.5H AHEAD OF UTC, SEE SRI LANKA
- + CHAD 1 H AHEAD OF UTC
- + CHANNEL ISLANDS SEE ENGLAND
- + CHILE 4 H BEHIND UTC CONTINENTAL
- + CHILE 3 H BEHIND UTC OCT 9, '88-MAR 11, '89
- + CHILE 6 H BEHIND UTC EASTER ISLAND
- + CHILE 5 H BEHIND UTC OCT 9, '88-MAR 11, '89
- + CHINA 8 H AHEAD OF UTC ALL OF CHINA, INCL TAIWAN
- + CHINA 9 H AHEAD OF UTC APR 17 - SEP 10
- + COCOS (Keeling) I. 6.5H AHEAD OF UTC
- + COLOMBIA 5 H BEHIND UTC
- + COMOROS 3 H AHEAD OF UTC
- + CONGO 1 H AHEAD OF UTC
- + COOK ISLANDS 10 H BEHIND UTC
- + COOK ISLANDS 9.5H BEHIND UTC OCT 30, '88-MAR 24, '89
- + COOK ISLANDS (ESTIMATED)
- + COSTA RICA 6 H BEHIND UTC
- + COTE D'IVOIRE ON UTC
- + CUBA 5 H BEHIND UTC
- + CUBA 4 H BEHIND UTC MAR 20 - OCT 8
- + CURACAO 4 H BEHIND UTC ALSO BONAIRE, ARUBA,
- + CURACAO ST.MAARTEN
- + CYPRUS 2 H AHEAD OF UTC
- + CYPRUS 3 H AHEAD OF UTC MAR 27 - SEP 24
- + CZECHOSLOVAKIA 1 H AHEAD OF UTC
- + CZECHOSLOVAKIA 2 H AHEAD OF UTC MAR 27 - SEP 24
- + DENMARK 1 H AHEAD OF UTC
- + DENMARK 2 H AHEAD OF UTC MAR 27 - SEP 24
- + DENMK. FAEROE IS 1 H AHEAD OF UTC MAR 27 - SEP 24
- + DJIBOUTI 3 H AHEAD OF UTC
- + DOMINICA 4 H BEHIND UTC
- + DOMINICAN REP 4 H BEHIND UTC
- + ECUADOR 5 H BEHIND UTC CONTINENTAL
- + ECUADOR 6 H BEHIND UTC GALAPAGOS ISLANDS
- + EGYPT 2 H AHEAD OF UTC
- + EGYPT 3 H AHEAD OF UTC MAY 17 - SEP 30 (AFTER
- + EGYPT RAMADAN)
- + EL SALVADOR 6 H BEHIND UTC
- + ENGLAND ON UTC (WALES, SCOTLAND, N.I.,
- + ENGLAND CH. IS.)
- + ENGLAND 1 H AHEAD OF UTC MAR 27 - OCT 22
- + ENEZUELA 4 H BEHIND UTC
- + EQUITORIAL GUINEA 1 H AHEAD OF UTC
- + ETHIOPIA 3 H AHEAD OF UTC
- + FALKLAND ISLANDS 4 H BEHIND UTC
- + FALKLAND ISLANDS 3 H BEHIND UTC SEP 11, '88-APR 15, '89
- + FALKLAND ISLANDS (ESTIMATED)
- + FAROE ISLAND ON UTC
- + FAROE ISLAND 1 H AHEAD OF UTC MAR 27 - SEP 24
- + FIJI 12 H AHEAD OF UTC
- + FINLAND 2 H AHEAD OF UTC
- + FINLAND 3 H AHEAD OF UTC MAR 27 - SEP 24
- + FRANCE 1 H AHEAD OF UTC
- + FRANCE 2 H AHEAD OF UTC MAR 27 - SEP 24
- + FRENCH GUIANA 3 H BEHIND UTC
- + FRENCH POLYNESIA 9 H BEHIND UTC GAMBIER ISLAND
- + FRENCH POLYNESIA 9.5H BEHIND UTC MARQUESAS ISLANDS
- + FRENCH POLYNESIA 10 H BEHIND UTC SOCIETY ISLANDS, TUBUAI
- + FRENCH POLYNESIA ISLANDS, TUAMOTU ISLAND,
- + FRENCH POLYNESIA TAHITI
- + GABON 1 H AHEAD OF UTC
- + GAMBIA ON UTC
- + GERMANY ALL 1 H AHEAD OF UTC
- + GERMANY ALL 2 H AHEAD OF UTC MAR 27 - SEP 24
- + GHANA ON UTC
- + GIBRALTAR 1 H AHEAD OF UTC
- + GIBRALTAR 2 H AHEAD OF UTC MAR 27 - SEP 24
- + GREECE 2 H AHEAD OF UTC
- + GREECE 3 H AHEAD OF UTC MAR 27 - SEP 24
- + GREENLAND 4 H BEHIND UTC THULE AIRBASE YEAR ROUND
- + GREENLAND 3 H BEHIND UTC ANGMAGSSALIK AND W. COAST
- + GREENLAND 2 H BEHIND UTC MAR 27 - SEP 24
- + GREENLAND 1 H BEHIND UTC SCORESBYSUND
- + GREENLAND ON UTC MAR 27 - SEP 24
- + GRENADA 4 H BEHIND UTC
- + GUADELOUPE 4 H BEHIND UTC ST. BARTHELEMY, NORTHERN
- + GUADELOUPE ST. MARTIN MARTINIQUE
- + GUAM 10 H AHEAD OF UTC
- + GUATEMALA 6 H BEHIND UTC
- + GUINEA ON UTC
- + GUINEA BISSAU ON UTC
- + GUINEA REPUBLIC ON UTC
- + GUINEA EQUATORIAL 1 H AHEAD OF UTC
- + GUYANA 3 H BEHIND UTC
- + HAITI 5 H BEHIND UTC
- + HAITI 4 H BEHIND UTC APR 3 - OCT 29
- + HOLLAND SEE NETHERLANDS
- + HONDURAS 6 H BEHIND UTC
- + HONG KONG 8 H AHEAD OF UTC
- + HUNGARY 1 H AHEAD OF UTC
- + HUNGARY 2 H AHEAD OF UTC MAR 27 - SEP 24
- + ICELAND ON UTC
- + INDIA 5.5H AHEAD OF UTC INCLUDING ANDAMAN ISLANDS
- + INDONESIA WEST 7 H AHEAD OF UTC SUMATRA, JAVA, BALI,
- + INDONESIA WEST JAKARTA
- + INDONESIA CENTRAL 8 H AHEAD OF UTC KALIMANTAN, SULAWESI
- + INDONESIA EAST 9 H AHEAD OF UTC IRIAN, BARAT
- + IRAN 3.5H AHEAD OF UTC
- + IRAQ 3 H AHEAD OF UTC
- + IRAQ 4 H AHEAD OF UTC APR 1 - SEP 30
- + IRELAND ON UTC
- + IRELAND 1 H AHEAD OF UTC MAR 27 - OCT 22
- + ISRAEL 2 H AHEAD OF UTC
- + ISRAEL 3 H AHEAD OF UTC APR 10 - SEP 3
- + ITALY 1 H AHEAD OF UTC
- + ITALY 2 H AHEAD OF UTC MAR 27 - SEP 24
- + IVORY COAST ON UTC
- + IWAN 8 H AHEAD OF UTC
- + JAMAICA 5 H BEHIND UTC
- + JAPAN 9 H AHEAD OF UTC
- + JOHNSTON ISLAND 10 H BEHIND UTC
- + JORDAN 2 H AHEAD OF UTC
- + JORDAN 3 H AHEAD OF UTC APR 1 - OCT 6
- + KAMPUCHEA 7 H AHEAD OF UTC
- + KENYA 3 H AHEAD OF UTC
- + KIRIBATI, REP OF 12 H AHEAD OF UTC CANTON, ENDERBURY ISLANDS
- + KIRIBATI, REP OF 11 H AHEAD OF UTC CHRISTMAS ISLAND
- + KOREA 9 H AHEAD OF UTC
- + KOREA, REP OF 9 H AHEAD OF UTC
- + KOREA, REP OF 10 H AHEAD OF UTC MAY 8 - OCT 8
- + KUWAIT 3 H AHEAD OF UTC
- + KUSAIE, PINGELAP 12 H AHEAD OF UTC INCLUDING MARSHALL IS.,
- + KUSAIE, PINGELAP EXCLUDING KWAJALEIN)
- + KWAJALEIN 12 H BEHIND UTC
- + LAOS 7 H AHEAD OF UTC
- + LEBANON 2 H AHEAD OF UTC
- + LEBANON 3 H AHEAD OF UTC JUN 1 - OCT 31
- + LEEWARD ISLANDS 4 H BEHIND UTC ANTIGUA, DOMINICA,
- + LEEWARD ISLANDS MONTSERRAT, ST.
- + LEEWARD ISLAANDS CHRISTOPHER, ST. KITTS,
- + LEEWARD ISLANDS NEVIS, ANGUILLA
- + LESOTHO 2 H AHEAD OF UTC
- + LIBERIA ON UTC
- + LIBYAN ARAB 1 H AHEAD OF UTC JAMAHIRIYA/LIBYA
- + LIBYAN ARAB 2 H AHEAD OF UTC APR 1 - SEP 30 JAMAHIRIYA/LIBYA
- + LIECHTENSTEIN 1 H AHEAD OF UTC
- + LIECHTENSTEIN 2 H AHEAD OF UTC MAR 27 - SEP 24
- + LUXEMBOURG 1 H AHEAD OF UTC
- + LUXEMBOURG 2 H AHEAD OF UTC MAR 27 - SEP 24
- + MACAO 8 H AHEAD OF UTC
- + MADAGASCAR 3 H AHEAD OF UTC
- + MADEIRA SEE PORTUGAL
- + MALAWI 2 H AHEAD OF UTC
- + MALAYSIA 8 H AHEAD OF UTC
- + MALDIVES 5 H AHEAD OF UTC
- + MALI ON UTC
- + MALTA 1 H AHEAD OF UTC
- + MALTA 2 H AHEAD OF UTC MAR 27 - SEP 24
- + MARTINIQUE 4 H BEHIND UTC
- + MAURITANIA ON UTC
- + MAURITIUS 4 H AHEAD OF UTC
- + MARIANA ISLAND 10 H AHEAD OF UTC EXCLUDING GUAM
- + MEXICO BAJA CAL N 7 H BEHIND UTC BAJA CALIFORNIA SUR AND
- + MEXICO BAJA CAL N N. PACIFIC COAST (STATES
- + MEXICO BAJA CAL N OF SINALOA AND SONORA)
- + MEXICO BAJA CAL N 8 H BEHIND UTC ABOVE 28TH PARALLAL APR 3
- + MEXICO BAJA CAL N - OCT 29
- + MEXICO BAJA CAL N 7 H BEHIND UTC ABOVE 28TH PARALLAL APR 3
- + MEXICO BAJA CAL N - 0CT 29
- + MEXICO 6 H BEHIND UTC STATES OF DURANGO,
- + MEXICO COAHUILA, NUEVO LEON,
- + MEXICO TAMAULIPAS
- + MEXICO 5 H BEHIND UTC STATES OF DURANGO,
- + MEXICO COAHUILA, NUEVO LEON,
- + MEXICO TAMAULIPAS APR 3 - OCT 29
- + MEXICO 6 H BEHIND UTC GENERAL MEXICO, STATES OF
- + MEXICO CAMPECHE, QUINTANA ROO AND
- + MEXICO YUCATAN
- + MIDWAY ISLAND 11 H BEHIND UTC
- + MONACO 1 H AHEAD OF UTC
- + MONACO 2 H AHEAD OF UTC MAR 27 - SEP 24
- + MONGOLIA 8 H AHEAD OF UTC
- + MONGOLIA 9 H AHEAD OF UTC MAR 27 - SEP 24
- + MONTSERRAT 4 H BEHIND UTC
- + MOROCCO ON UTC
- + MOZAMBIQUE 2 H AHEAD OF UTC
- + NAMIBIA 2 H AHEAD OF UTC
- + NAURU, REP OF 12 H AHEAD OF UTC
- + NEPAL 5H45M AHEAD OF UTC
- + NETHERLANDS 1 H AHEAD OF UTC
- + NETHERLANDS 2 H AHEAD OF UTC MAR 27 - SEP 24
- + NETHERLANDS 4 H BEHIND UTC ANTILLES AND SOUTHERN ST.
- + NETHERLANDS MAARTEN
- + NEW CALEDONIA 11 H AHEAD OF UTC
- + NEW HEBRIDES SEE VANUATU
- + NEW ZEALAND 12 H AHEAD OF UTC (EXCLUDING CHATHAM ISLAND)
- + NEW ZEALAND 13 H AHEAD OF UTC OCT 30, '88-MAR 4, '89
- + NEW ZEALAND 12H45M AHEAD OF UTC CHATHAM ISLAND
- + NICARAGUA 6 H BEHIND UTC
- + NIGER 1 H AHEAD OF UTC
- + NIGERIA 1 H AHEAD OF UTC
- + NIUE ISLAND 11 H BEHIND UTC
- + NORFOLK ISLAND 11H30M AHEAD OF UTC
- + NORTHERN IRELAND ON UTC WALES, SCOTLAND, N.I.,
- + NORTHERN IRELAND CH.IS.
- + NORTHERN IRELAND 1 H AHEAD OF UTC MAR 27 - OCT 22
- + NORWAY 1 H AHEAD OF UTC
- + NORWAY 2 H AHEAD OF UTC MAR 27 - SEP 24
- + OGO ON UTC
- + OMAN 4 H AHEAD OF UTC
- + PACIFIC ISLAND T.T.
- + PALAU ISLAND 9 H AHEAD OF UTC
- + PAKISTAN 5 H AHEAD OF UTC
- + PANAMA 5 H BEHIND UTC
- + PAPUA NEW GUINEA 10 H AHEAD OF UTC INCLUDING BOUGAINVILLE
- + PAPUA NEW GUINEA ISLAND
- + PARAGUAY 4 H BEHIND UTC
- + PARAGUAY 3 H BEHIND UTC OCT 1, '88-MAR 31, '89
- + PERU 5 H BEHIND UTC
- + PHILIPPINES 8 H AHEAD OF UTC
- + PONAPE ISLAND 11 H AHEAD OF UTC
- + POLAND 1 H AHEAD OF UTC
- + POLAND 2 H AHEAD OF UTC MAR 27 - SEP 24
- + PORTUGAL MAINLAND ON UTC
- + PORTUGAL MAINLAND 1 H AHEAD OF UTC MAR 27 - SEP 24
- + PORTUGAL AZORES 1 H BEHIND UTC
- + PORTUGAL AZORES ON UTC MAR 27 - SEP 24
- + PORTUGAL MADEIRA ON UTC
- + PORTUGAL MADEIRA 1 H AHEAD OF UTC MAR 27 - SEP 24
- + PUERTO RICO 4 H BEHIND UTC
- + QATAR 3 H AHEAD OF UTC
- + ROMANIA 2 H AHEAD OF UTC
- + ROMANIA 3 H AHEAD OF UTC MAR 27 - SEP 24
- + RUSSIA SEE USSR
- + RWANDA 2 H AHEAD OF UTC
- + SABA 4 H BEHIND UTC ALSO BONAIRE, CURACAO,
- + SAMOA 11 H BEHIND UTC
- + SAN MARINO 1 H AHEAD OF UTC
- + SAN MARINO 2 H AHEAD OF UTC MAR 27 - SEP 24
- + SAN SALVADOR 6 H BEHIND UTC
- + SAO TOME ISLAND ON UTC AND PRINCIPE ISLAND
- + SAUDI ARABIA 3 H AHEAD OF UTC
- + SCOTLAND SEE ENGLAND
- + SENEGAL ON UTC
- + SEYCHELLES 4 H AHEAD OF UTC
- + SIERRA LEONE ON UTC
- + SINGAPORE 8 H AHEAD OF UTC
- + SOLOMON ISLANDS 11 H AHEAD OF UTC EXCLUDING BOUGAINVILLE
- + SOLOMON ISLANDS ISLAND
- + SOMALI 3 H AHEAD OF UTC
- + SOUTH AFRICA 2 H AHEAD OF UTC
- + SPAIN CANARY IS ON UTC
- + SPAIN CANARY IS 1 H AHEAD OF UTC MAR 27 - SEP 24
- + SPAIN 1 H AHEAD OF UTC CONTINENTAL, BALEARIC AND
- + SPAIN MALLORCA ISLANDS
- + SPAIN 2 H AHEAD OF UTC CONTINENTAL, BALEARIC AND
- + SPAIN MALLORCA ISLANDS MAR 27 -
- + SPAIN SEP 24
- + SPAIN MAINLAND 1 H AHEAD OF UTC MELILLA
- + SPAIN MAINLAND 2 H AHEAD OF UTC MAR 27 - SEP 24
- + SRI LANKA 5H30M AHEAD OF UTC
- + ST.MAARTEN
- + ST.KITTS-NEVIS 4 H BEHIND UTC
- + ST.LUCIA 4 H BEHIND UTC
- + ST.PIERRE 3 H BEHIND UTC INCLUDING MIQUELON
- + ST.PIERRE 2 H BEHIND UTC INLCUDING MIQUELON APR 3
- + ST.PIERRE - OCT 29
- + ST.VINCENT 4 H BEHIND UTC INCLUDING THE GRENADINES
- + ST. HELENA ON UTC
- + SURINAME 3 H BEHIND UTC
- + SWAZILAND 2 H AHEAD OF UTC
- + SWEDEN 1 H AHEAD OF UTC
- + SWEDEN 2 H AHEAD OF UTC MAR 27 - SEP 24
- + SWITZERLAND 1 H AHEAD OF UTC
- + SWITZERLAND 2 H AHEAD OF UTC MAR 27 - SEP 24
- + SYRIA 2 H AHEAD OF UTC
- + SYRIA 3 H AHEAD OF UTC MAR 15 - OCT 30
- + TAHITI 10 H BEHIND UTC
- + TANZANIA 3 H AHEAD OF UTC
- + THAILAND 7 H AHEAD OF UTC
- + TRINIDAD / TOBAGO 4 H BEHIND UTC
- + TUNISIA 1 H AHEAD OF UTC
- + TUNISIA 2 H AHEAD OF UTC APR 10 - SEP 24
- + TURKEY 2 H AHEAD OF UTC
- + TURKEY 3 H AHEAD OF UTC MAR 27 - SEP 24
- + TURKS AND CAICOS 5 H BEHIND UTC
- + TURKS AND CAICOS 4 H BEHIND UTC APR 3 - OCT 29
- + TUVALU 12 H AHEAD OF UTC
- + UDAN 2 H AHEAD OF UTC
- + UGANDA 3 H AHEAD OF UTC
- + UNITED ARAB EMIR. 4 H AHEAD OF UTC ABU DHABI, DUBAI, SHARJAH,
- + UNITED ARAB EMIR RAS AL KHAIMAH
- + UNITED KINGDOM ON UTC WALES, SCOTLAND, N.I., CH.
- + UNITED KINGDOM IS.
- + UNITED KINGDOM 1 H AHEAD OF UTC MAR 27 - OCT 22
- + UNITED STATES SEE USA
- + UPPER VOLTA ON UTC
- + URUGUAY 3 H BEHIND UTC
- + URUGUAY 2 H BEHIND UTC DEC 11, '88-FEB 25, '89
- + URAGUAY (ESTIMATED)
- + USA EASTERN 5 H BEHIND UTC NEW YORK, WASHINGTON
- + USA EASTERN 4 H BEHIND UTC APR 3 - OCT 30
- + USA CENTRAL 6 H BEHIND UTC CHICAGO, HOUSTON
- + USA CENTRAL 5 H BEHIND UTC APR 3 - OCT 30
- + USA MOUNTAIN 7 H BEHIND UTC DENVER
- + USA MOUNTAIN 6 H BEHIND UTC APR 3 - OCT 30
- + USA PACIFIC 8 H BEHIND UTC L.A., SAN FRANCISCO
- + USA PACIFIC 7 H BEHIND UTC APR 3 - OCT 30
- + USA ALASKA STD 9 H BEHIND UTC MOST OF ALASKA (AKST)
- + USA ALASKA STD 8 H BEHIND UTC APR 3 - OCT 30 (AKDT)
- + USA ALEUTIAN 10 H BEHIND UTC ISLANDS WEST OF 170W
- + USA - " - 9 H BEHIND UTC APR 3 - OCT 30
- + USA HAWAII 10 H BEHIND UTC
- + USA BERING 11 H BEHIND UTC SAMOA, MIDWAY
- + USA FOR SPECIFIC INFO ON USA ZONES/TIMES CALL DOT 202-426-4520
- + USSR WEST EUROP 3 H AHEAD OF UTC LENINGRAD, MOSCOW
- + USSR WEST EUROP 4 H AHEAD OF UTC APR 1 - SEP 30
- + USSR CENTRAL EUR 4 H AHEAD OF UTC ROSTOV, BAKU
- + USSR CENTRAL EUR 5 H AHEAD OF UTC APR 1 - SEP 30
- + USSR EAST EUROP 5 H AHEAD OF UTC SVERDLOVSK
- + USSR EAST EUROP 6 H AHEAD OF UTC APR 1 - SEP 30
- + USSR WEST SIBERIAN 6 H AHEAD OF UTC TASHKENT, ALMA ATA
- + USSR WEST SIBERIAN 7 H AHEAD OF UTC APR 1 - SEP 30
- + USSR WEST-CENTRAL 7 H AHEAD OF UTC NOVOSIBIRSK
- + USSR WEST-CENTRAL 8 H AHEAD OF UTC APR 1 - SEP 30
- + USSR WEST-CENTRAL 8 H AHEAD OF UTC IRKUTSK
- + USSR WEST-CENTRAL 9 H AHEAD OF UTC APR 1 - SEP 30
- + USSR CENTRAL SIB 9 H AHEAD OF UTC YAKUTSK
- + USSR CENTRAL SIB 10 H AHEAD OF UTC APR 1 - SEP 30
- + USSR CENTRAL SIB 10 H AHEAD OF UTC VLADIVOSTOK
- + USSR CENTRAL SIB 11 H AHEAD OF UTC APR 1 - SEP 30
- + USSR EAST SIBERIA 11 H AHEAD OF UTC MAGADAN
- + USSR EAST SIBERIA 12 H AHEAD OF UTC APR 1 - SEP 30
- + USSR EAST SIBERIA 12 H AHEAD OF UTC PETROPAVLOVSK
- + USSR EAST SIBERIA 13 H AHEAD OF UTC APR 1 - SEP 30
- + USSR EAST SIBERIA 13 H AHEAD OF UTC UELEN
- + USSR EAST SIBERIA 14 H AHEAD OF UTC APR 1 - SEP 30
- + VANUATU 11 H AHEAD OF UTC (NEW HEBRIDES)
- + VANUATU 12 H AHEAD OF UTC SEP 25, '88-MAR 25, '89
- + VANUATU (ESTIMATED)
- + VATICAN 1 H AHEAD OF UTC
- + VATICAN 2 H AHEAD OF UTC MAR 27 - SEP 24
- + VIETNAM 7 H AHEAD OF UTC
- + VIRGIN ISLANDS 4 H BEHIND UTC ST.CROIX, ST.THOMAS,
- + VIRGIN ISLANDS ST.JOHN
- + WAKE ISLAND 12 H AHEAD OF UTC
- + WALES SEE ENGLAND
- + WALLIS/FUTUNA IS. 12 H AHEAD OF UTC
- + WINDWARD ISLANDS 4 H BEHIND UTC GRENADA, ST. LUCIA
- + YEMEN 3 H AHEAD OF UTC BOTH REPUBLICS
- + YUGOSLAVIA 1 H AHEAD OF UTC
- + YUGOSLAVIA 2 H AHEAD OF UTC MAR 27 - SEP 24
- + ZAIRE EAST 1 H AHEAD OF UTC KINSHASA MBANDAKA
- + ZAIRE WEST 2 H AHEAD OF UTC LUBUMBASHI, KASAI, KIVU,
- + ZAIRE WEST HAUT-ZAIRE, SHABA
- + ZAMBIA 2 H AHEAD OF UTC
- + ZIMBABWE 2 H AHEAD OF UTC
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/getopt.c emacs-18.59/amiga/unix/src/zoneinfo/getopt.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/getopt.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/getopt.c Sat Aug 1 16:48:36 1992
- ***************
- *** 0 ****
- --- 1,678 ----
- + /* Getopt for GNU.
- + NOTE: getopt is now part of the C library, so if you don't know what
- + "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu
- + before changing it!
- +
- + Copyright (C) 1987, 88, 89, 90, 91, 1992 Free Software Foundation, Inc.
- +
- + This program is free software; you can redistribute it and/or modify
- + it under the terms of the GNU General Public License as published by
- + the Free Software Foundation; either version 2, or (at your option)
- + any later version.
- +
- + This program is distributed in the hope that it will be useful,
- + but WITHOUT ANY WARRANTY; without even the implied warranty of
- + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- + GNU General Public License for more details.
- +
- + You should have received a copy of the GNU General Public License
- + along with this program; if not, write to the Free Software
- + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
- +
- + /* AIX requires this to be the first thing in the file. */
- + #ifdef __GNUC__
- + #define alloca __builtin_alloca
- + #else /* not __GNUC__ */
- + #if defined(sparc) && !defined(USG) && !defined(SVR4) && !defined(__svr4__)
- + #include <alloca.h>
- + #else
- + #ifdef _AIX
- + #pragma alloca
- + #else
- + char *alloca ();
- + #endif
- + #endif /* sparc */
- + #endif /* not __GNUC__ */
- +
- + #ifdef LIBC
- + /* For when compiled as part of the GNU C library. */
- + #include <ansidecl.h>
- + #endif
- +
- + #include <stdio.h>
- +
- + /* This needs to come after some library #include
- + to get __GNU_LIBRARY__ defined. */
- + #ifdef __GNU_LIBRARY__
- + #undef alloca
- + #include <stdlib.h>
- + #include <string.h>
- + #else /* Not GNU C library. */
- + #define __alloca alloca
- + #endif /* GNU C library. */
- +
- +
- + #ifndef __STDC__
- + #define const
- + #endif
- +
- + /* If GETOPT_COMPAT is defined, `+' as well as `--' can introduce a
- + long-named option. Because this is not POSIX.2 compliant, it is
- + being phased out. */
- + #define GETOPT_COMPAT
- +
- + /* This version of `getopt' appears to the caller like standard Unix `getopt'
- + but it behaves differently for the user, since it allows the user
- + to intersperse the options with the other arguments.
- +
- + As `getopt' works, it permutes the elements of ARGV so that,
- + when it is done, all the options precede everything else. Thus
- + all application programs are extended to handle flexible argument order.
- +
- + Setting the environment variable POSIXLY_CORRECT disables permutation.
- + Then the behavior is completely standard.
- +
- + GNU application programs can use a third alternative mode in which
- + they can distinguish the relative order of options and other arguments. */
- +
- + #include "getopt.h"
- +
- + /* For communication from `getopt' to the caller.
- + When `getopt' finds an option that takes an argument,
- + the argument value is returned here.
- + Also, when `ordering' is RETURN_IN_ORDER,
- + each non-option ARGV-element is returned here. */
- +
- + char *optarg = 0;
- +
- + /* Index in ARGV of the next element to be scanned.
- + This is used for communication to and from the caller
- + and for communication between successive calls to `getopt'.
- +
- + On entry to `getopt', zero means this is the first call; initialize.
- +
- + When `getopt' returns EOF, this is the index of the first of the
- + non-option elements that the caller should itself scan.
- +
- + Otherwise, `optind' communicates from one call to the next
- + how much of ARGV has been scanned so far. */
- +
- + int optind = 0;
- +
- + /* The next char to be scanned in the option-element
- + in which the last option character we returned was found.
- + This allows us to pick up the scan where we left off.
- +
- + If this is zero, or a null string, it means resume the scan
- + by advancing to the next ARGV-element. */
- +
- + static char *nextchar;
- +
- + /* Callers store zero here to inhibit the error message
- + for unrecognized options. */
- +
- + int opterr = 1;
- +
- + /* Describe how to deal with options that follow non-option ARGV-elements.
- +
- + If the caller did not specify anything,
- + the default is REQUIRE_ORDER if the environment variable
- + POSIXLY_CORRECT is defined, PERMUTE otherwise.
- +
- + REQUIRE_ORDER means don't recognize them as options;
- + stop option processing when the first non-option is seen.
- + This is what Unix does.
- + This mode of operation is selected by either setting the environment
- + variable POSIXLY_CORRECT, or using `+' as the first character
- + of the list of option characters.
- +
- + PERMUTE is the default. We permute the contents of ARGV as we scan,
- + so that eventually all the non-options are at the end. This allows options
- + to be given in any order, even with programs that were not written to
- + expect this.
- +
- + RETURN_IN_ORDER is an option available to programs that were written
- + to expect options and other ARGV-elements in any order and that care about
- + the ordering of the two. We describe each non-option ARGV-element
- + as if it were the argument of an option with character code 1.
- + Using `-' as the first character of the list of option characters
- + selects this mode of operation.
- +
- + The special argument `--' forces an end of option-scanning regardless
- + of the value of `ordering'. In the case of RETURN_IN_ORDER, only
- + `--' can cause `getopt' to return EOF with `optind' != ARGC. */
- +
- + static enum
- + {
- + REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
- + } ordering;
- +
- + #ifdef __GNU_LIBRARY__
- + #include <string.h>
- + #define my_index strchr
- + #define my_bcopy(src, dst, n) memcpy ((dst), (src), (n))
- + #else
- +
- + /* Avoid depending on library functions or files
- + whose names are inconsistent. */
- +
- + char *getenv ();
- +
- + static char *
- + my_index (string, chr)
- + char *string;
- + int chr;
- + {
- + while (*string)
- + {
- + if (*string == chr)
- + return string;
- + string++;
- + }
- + return 0;
- + }
- +
- + static void
- + my_bcopy (from, to, size)
- + char *from, *to;
- + int size;
- + {
- + int i;
- + for (i = 0; i < size; i++)
- + to[i] = from[i];
- + }
- + #endif /* GNU C library. */
- +
- + /* Handle permutation of arguments. */
- +
- + /* Describe the part of ARGV that contains non-options that have
- + been skipped. `first_nonopt' is the index in ARGV of the first of them;
- + `last_nonopt' is the index after the last of them. */
- +
- + static int first_nonopt;
- + static int last_nonopt;
- +
- + /* Exchange two adjacent subsequences of ARGV.
- + One subsequence is elements [first_nonopt,last_nonopt)
- + which contains all the non-options that have been skipped so far.
- + The other is elements [last_nonopt,optind), which contains all
- + the options processed since those non-options were skipped.
- +
- + `first_nonopt' and `last_nonopt' are relocated so that they describe
- + the new indices of the non-options in ARGV after they are moved. */
- +
- + static void
- + exchange (argv)
- + char **argv;
- + {
- + int nonopts_size = (last_nonopt - first_nonopt) * sizeof (char *);
- + char **temp = (char **) __alloca (nonopts_size);
- +
- + /* Interchange the two blocks of data in ARGV. */
- +
- + my_bcopy (&argv[first_nonopt], temp, nonopts_size);
- + my_bcopy (&argv[last_nonopt], &argv[first_nonopt],
- + (optind - last_nonopt) * sizeof (char *));
- + my_bcopy (temp, &argv[first_nonopt + optind - last_nonopt], nonopts_size);
- +
- + /* Update records for the slots the non-options now occupy. */
- +
- + first_nonopt += (optind - last_nonopt);
- + last_nonopt = optind;
- + }
- +
- + /* Scan elements of ARGV (whose length is ARGC) for option characters
- + given in OPTSTRING.
- +
- + If an element of ARGV starts with '-', and is not exactly "-" or "--",
- + then it is an option element. The characters of this element
- + (aside from the initial '-') are option characters. If `getopt'
- + is called repeatedly, it returns successively each of the option characters
- + from each of the option elements.
- +
- + If `getopt' finds another option character, it returns that character,
- + updating `optind' and `nextchar' so that the next call to `getopt' can
- + resume the scan with the following option character or ARGV-element.
- +
- + If there are no more option characters, `getopt' returns `EOF'.
- + Then `optind' is the index in ARGV of the first ARGV-element
- + that is not an option. (The ARGV-elements have been permuted
- + so that those that are not options now come last.)
- +
- + OPTSTRING is a string containing the legitimate option characters.
- + If an option character is seen that is not listed in OPTSTRING,
- + return '?' after printing an error message. If you set `opterr' to
- + zero, the error message is suppressed but we still return '?'.
- +
- + If a char in OPTSTRING is followed by a colon, that means it wants an arg,
- + so the following text in the same ARGV-element, or the text of the following
- + ARGV-element, is returned in `optarg'. Two colons mean an option that
- + wants an optional arg; if there is text in the current ARGV-element,
- + it is returned in `optarg', otherwise `optarg' is set to zero.
- +
- + If OPTSTRING starts with `-' or `+', it requests different methods of
- + handling the non-option ARGV-elements.
- + See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
- +
- + Long-named options begin with `--' instead of `-'.
- + Their names may be abbreviated as long as the abbreviation is unique
- + or is an exact match for some defined option. If they have an
- + argument, it follows the option name in the same ARGV-element, separated
- + from the option name by a `=', or else the in next ARGV-element.
- + When `getopt' finds a long-named option, it returns 0 if that option's
- + `flag' field is nonzero, the value of the option's `val' field
- + if the `flag' field is zero.
- +
- + The elements of ARGV aren't really const, because we permute them.
- + But we pretend they're const in the prototype to be compatible
- + with other systems.
- +
- + LONGOPTS is a vector of `struct option' terminated by an
- + element containing a name which is zero.
- +
- + LONGIND returns the index in LONGOPT of the long-named option found.
- + It is only valid when a long-named option has been found by the most
- + recent call.
- +
- + If LONG_ONLY is nonzero, '-' as well as '--' can introduce
- + long-named options. */
- +
- + int
- + _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
- + int argc;
- + char *const *argv;
- + const char *optstring;
- + const struct option *longopts;
- + int *longind;
- + int long_only;
- + {
- + int option_index;
- +
- + optarg = 0;
- +
- + /* Initialize the internal data when the first call is made.
- + Start processing options with ARGV-element 1 (since ARGV-element 0
- + is the program name); the sequence of previously skipped
- + non-option ARGV-elements is empty. */
- +
- + if (optind == 0)
- + {
- + first_nonopt = last_nonopt = optind = 1;
- +
- + nextchar = NULL;
- +
- + /* Determine how to handle the ordering of options and nonoptions. */
- +
- + if (optstring[0] == '-')
- + {
- + ordering = RETURN_IN_ORDER;
- + ++optstring;
- + }
- + else if (optstring[0] == '+')
- + {
- + ordering = REQUIRE_ORDER;
- + ++optstring;
- + }
- + else if (getenv ("POSIXLY_CORRECT") != NULL)
- + ordering = REQUIRE_ORDER;
- + else
- + ordering = PERMUTE;
- + }
- +
- + if (nextchar == NULL || *nextchar == '\0')
- + {
- + if (ordering == PERMUTE)
- + {
- + /* If we have just processed some options following some non-options,
- + exchange them so that the options come first. */
- +
- + if (first_nonopt != last_nonopt && last_nonopt != optind)
- + exchange ((char **) argv);
- + else if (last_nonopt != optind)
- + first_nonopt = optind;
- +
- + /* Now skip any additional non-options
- + and extend the range of non-options previously skipped. */
- +
- + while (optind < argc
- + && (argv[optind][0] != '-' || argv[optind][1] == '\0')
- + #ifdef GETOPT_COMPAT
- + && (longopts == NULL
- + || argv[optind][0] != '+' || argv[optind][1] == '\0')
- + #endif /* GETOPT_COMPAT */
- + )
- + optind++;
- + last_nonopt = optind;
- + }
- +
- + /* Special ARGV-element `--' means premature end of options.
- + Skip it like a null option,
- + then exchange with previous non-options as if it were an option,
- + then skip everything else like a non-option. */
- +
- + if (optind != argc && !strcmp (argv[optind], "--"))
- + {
- + optind++;
- +
- + if (first_nonopt != last_nonopt && last_nonopt != optind)
- + exchange ((char **) argv);
- + else if (first_nonopt == last_nonopt)
- + first_nonopt = optind;
- + last_nonopt = argc;
- +
- + optind = argc;
- + }
- +
- + /* If we have done all the ARGV-elements, stop the scan
- + and back over any non-options that we skipped and permuted. */
- +
- + if (optind == argc)
- + {
- + /* Set the next-arg-index to point at the non-options
- + that we previously skipped, so the caller will digest them. */
- + if (first_nonopt != last_nonopt)
- + optind = first_nonopt;
- + return EOF;
- + }
- +
- + /* If we have come to a non-option and did not permute it,
- + either stop the scan or describe it to the caller and pass it by. */
- +
- + if ((argv[optind][0] != '-' || argv[optind][1] == '\0')
- + #ifdef GETOPT_COMPAT
- + && (longopts == NULL
- + || argv[optind][0] != '+' || argv[optind][1] == '\0')
- + #endif /* GETOPT_COMPAT */
- + )
- + {
- + if (ordering == REQUIRE_ORDER)
- + return EOF;
- + optarg = argv[optind++];
- + return 1;
- + }
- +
- + /* We have found another option-ARGV-element.
- + Start decoding its characters. */
- +
- + nextchar = (argv[optind] + 1
- + + (longopts != NULL && argv[optind][1] == '-'));
- + }
- +
- + if (longopts != NULL
- + && ((argv[optind][0] == '-'
- + && (argv[optind][1] == '-' || long_only))
- + #ifdef GETOPT_COMPAT
- + || argv[optind][0] == '+'
- + #endif /* GETOPT_COMPAT */
- + ))
- + {
- + const struct option *p;
- + char *s = nextchar;
- + int exact = 0;
- + int ambig = 0;
- + const struct option *pfound = NULL;
- + int indfound;
- +
- + while (*s && *s != '=')
- + s++;
- +
- + /* Test all options for either exact match or abbreviated matches. */
- + for (p = longopts, option_index = 0; p->name;
- + p++, option_index++)
- + if (!strncmp (p->name, nextchar, s - nextchar))
- + {
- + if (s - nextchar == strlen (p->name))
- + {
- + /* Exact match found. */
- + pfound = p;
- + indfound = option_index;
- + exact = 1;
- + break;
- + }
- + else if (pfound == NULL)
- + {
- + /* First nonexact match found. */
- + pfound = p;
- + indfound = option_index;
- + }
- + else
- + /* Second nonexact match found. */
- + ambig = 1;
- + }
- +
- + if (ambig && !exact)
- + {
- + if (opterr)
- + fprintf (stderr, "%s: option `%s' is ambiguous\n",
- + argv[0], argv[optind]);
- + nextchar += strlen (nextchar);
- + optind++;
- + return '?';
- + }
- +
- + if (pfound != NULL)
- + {
- + option_index = indfound;
- + optind++;
- + if (*s)
- + {
- + /* Don't test has_arg with >, because some C compilers don't
- + allow it to be used on enums. */
- + if (pfound->has_arg)
- + optarg = s + 1;
- + else
- + {
- + if (opterr)
- + {
- + if (argv[optind - 1][1] == '-')
- + /* --option */
- + fprintf (stderr,
- + "%s: option `--%s' doesn't allow an argument\n",
- + argv[0], pfound->name);
- + else
- + /* +option or -option */
- + fprintf (stderr,
- + "%s: option `%c%s' doesn't allow an argument\n",
- + argv[0], argv[optind - 1][0], pfound->name);
- + }
- + nextchar += strlen (nextchar);
- + return '?';
- + }
- + }
- + else if (pfound->has_arg == 1)
- + {
- + if (optind < argc)
- + optarg = argv[optind++];
- + else
- + {
- + if (opterr)
- + fprintf (stderr, "%s: option `%s' requires an argument\n",
- + argv[0], argv[optind - 1]);
- + nextchar += strlen (nextchar);
- + return '?';
- + }
- + }
- + nextchar += strlen (nextchar);
- + if (longind != NULL)
- + *longind = option_index;
- + if (pfound->flag)
- + {
- + *(pfound->flag) = pfound->val;
- + return 0;
- + }
- + return pfound->val;
- + }
- + /* Can't find it as a long option. If this is not getopt_long_only,
- + or the option starts with '--' or is not a valid short
- + option, then it's an error.
- + Otherwise interpret it as a short option. */
- + if (!long_only || argv[optind][1] == '-'
- + #ifdef GETOPT_COMPAT
- + || argv[optind][0] == '+'
- + #endif /* GETOPT_COMPAT */
- + || my_index (optstring, *nextchar) == NULL)
- + {
- + if (opterr)
- + {
- + if (argv[optind][1] == '-')
- + /* --option */
- + fprintf (stderr, "%s: unrecognized option `--%s'\n",
- + argv[0], nextchar);
- + else
- + /* +option or -option */
- + fprintf (stderr, "%s: unrecognized option `%c%s'\n",
- + argv[0], argv[optind][0], nextchar);
- + }
- + nextchar += strlen (nextchar);
- + optind++;
- + return '?';
- + }
- + }
- +
- + /* Look at and handle the next option-character. */
- +
- + {
- + char c = *nextchar++;
- + char *temp = my_index (optstring, c);
- +
- + /* Increment `optind' when we start to process its last character. */
- + if (*nextchar == '\0')
- + optind++;
- +
- + if (temp == NULL || c == ':')
- + {
- + if (opterr)
- + {
- + if (c < 040 || c >= 0177)
- + fprintf (stderr, "%s: unrecognized option, character code 0%o\n",
- + argv[0], c);
- + else
- + fprintf (stderr, "%s: unrecognized option `-%c'\n", argv[0], c);
- + }
- + return '?';
- + }
- + if (temp[1] == ':')
- + {
- + if (temp[2] == ':')
- + {
- + /* This is an option that accepts an argument optionally. */
- + if (*nextchar != '\0')
- + {
- + optarg = nextchar;
- + optind++;
- + }
- + else
- + optarg = 0;
- + nextchar = NULL;
- + }
- + else
- + {
- + /* This is an option that requires an argument. */
- + if (*nextchar != 0)
- + {
- + optarg = nextchar;
- + /* If we end this ARGV-element by taking the rest as an arg,
- + we must advance to the next element now. */
- + optind++;
- + }
- + else if (optind == argc)
- + {
- + if (opterr)
- + fprintf (stderr, "%s: option `-%c' requires an argument\n",
- + argv[0], c);
- + c = '?';
- + }
- + else
- + /* We already incremented `optind' once;
- + increment it again when taking next ARGV-elt as argument. */
- + optarg = argv[optind++];
- + nextchar = NULL;
- + }
- + }
- + return c;
- + }
- + }
- +
- + int
- + getopt (argc, argv, optstring)
- + int argc;
- + char *const *argv;
- + const char *optstring;
- + {
- + return _getopt_internal (argc, argv, optstring,
- + (const struct option *) 0,
- + (int *) 0,
- + 0);
- + }
- +
- + #ifdef TEST
- +
- + /* Compile with -DTEST to make an executable for use in testing
- + the above definition of `getopt'. */
- +
- + int
- + main (argc, argv)
- + int argc;
- + char **argv;
- + {
- + int c;
- + int digit_optind = 0;
- +
- + while (1)
- + {
- + int this_option_optind = optind ? optind : 1;
- +
- + c = getopt (argc, argv, "abc:d:0123456789");
- + if (c == EOF)
- + break;
- +
- + switch (c)
- + {
- + case '0':
- + case '1':
- + case '2':
- + case '3':
- + case '4':
- + case '5':
- + case '6':
- + case '7':
- + case '8':
- + case '9':
- + if (digit_optind != 0 && digit_optind != this_option_optind)
- + printf ("digits occur in two different argv-elements.\n");
- + digit_optind = this_option_optind;
- + printf ("option %c\n", c);
- + break;
- +
- + case 'a':
- + printf ("option a\n");
- + break;
- +
- + case 'b':
- + printf ("option b\n");
- + break;
- +
- + case 'c':
- + printf ("option c with value `%s'\n", optarg);
- + break;
- +
- + case '?':
- + break;
- +
- + default:
- + printf ("?? getopt returned character code 0%o ??\n", c);
- + }
- + }
- +
- + if (optind < argc)
- + {
- + printf ("non-option ARGV-elements: ");
- + while (optind < argc)
- + printf ("%s ", argv[optind++]);
- + printf ("\n");
- + }
- +
- + exit (0);
- + }
- +
- + #endif /* TEST */
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/getopt.h emacs-18.59/amiga/unix/src/zoneinfo/getopt.h
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/getopt.h Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/getopt.h Tue Jun 23 20:12:40 1992
- ***************
- *** 0 ****
- --- 1,113 ----
- + /* Declarations for getopt.
- + Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
- +
- + This program is free software; you can redistribute it and/or modify
- + it under the terms of the GNU General Public License as published by
- + the Free Software Foundation; either version 2, or (at your option)
- + any later version.
- +
- + This program is distributed in the hope that it will be useful,
- + but WITHOUT ANY WARRANTY; without even the implied warranty of
- + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- + GNU General Public License for more details.
- +
- + You should have received a copy of the GNU General Public License
- + along with this program; if not, write to the Free Software
- + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
- +
- + #ifndef _GETOPT_H_
- + #define _GETOPT_H_
- +
- + /* For communication from `getopt' to the caller.
- + When `getopt' finds an option that takes an argument,
- + the argument value is returned here.
- + Also, when `ordering' is RETURN_IN_ORDER,
- + each non-option ARGV-element is returned here. */
- +
- + extern char *optarg;
- +
- + /* Index in ARGV of the next element to be scanned.
- + This is used for communication to and from the caller
- + and for communication between successive calls to `getopt'.
- +
- + On entry to `getopt', zero means this is the first call; initialize.
- +
- + When `getopt' returns EOF, this is the index of the first of the
- + non-option elements that the caller should itself scan.
- +
- + Otherwise, `optind' communicates from one call to the next
- + how much of ARGV has been scanned so far. */
- +
- + extern int optind;
- +
- + /* Callers store zero here to inhibit the error message `getopt' prints
- + for unrecognized options. */
- +
- + extern int opterr;
- +
- + /* Describe the long-named options requested by the application.
- + The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
- + of `struct option' terminated by an element containing a name which is
- + zero.
- +
- + The field `has_arg' is:
- + no_argument (or 0) if the option does not take an argument,
- + required_argument (or 1) if the option requires an argument,
- + optional_argument (or 2) if the option takes an optional argument.
- +
- + If the field `flag' is not NULL, it points to a variable that is set
- + to the value given in the field `val' when the option is found, but
- + left unchanged if the option is not found.
- +
- + To have a long-named option do something other than set an `int' to
- + a compiled-in constant, such as set a value from `optarg', set the
- + option's `flag' field to zero and its `val' field to a nonzero
- + value (the equivalent single-letter option character, if there is
- + one). For long options that have a zero `flag' field, `getopt'
- + returns the contents of the `val' field. */
- +
- + struct option
- + {
- + #ifdef __STDC__
- + const char *name;
- + #else
- + char *name;
- + #endif
- + /* has_arg can't be an enum because some compilers complain about
- + type mismatches in all the code that assumes it is an int. */
- + int has_arg;
- + int *flag;
- + int val;
- + };
- +
- + /* Names for the values of the `has_arg' field of `struct option'. */
- +
- + enum _argtype
- + {
- + no_argument,
- + required_argument,
- + optional_argument
- + };
- +
- + #ifdef __STDC__
- + extern int getopt (int argc, char *const *argv, const char *shortopts);
- + extern int getopt_long (int argc, char *const *argv, const char *shortopts,
- + const struct option *longopts, int *longind);
- + extern int getopt_long_only (int argc, char *const *argv,
- + const char *shortopts,
- + const struct option *longopts, int *longind);
- +
- + /* Internal only. Users should not call this directly. */
- + extern int _getopt_internal (int argc, char *const *argv,
- + const char *shortopts,
- + const struct option *longopts, int *longind,
- + int long_only);
- + #else /* not __STDC__ */
- + extern int getopt ();
- + extern int getopt_long ();
- + extern int getopt_long_only ();
- +
- + extern int _getopt_internal ();
- + #endif /* not __STDC__ */
- +
- + #endif /* _GETOPT_H_ */
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/ialloc.c emacs-18.59/amiga/unix/src/zoneinfo/ialloc.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/ialloc.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/ialloc.c Sat Aug 1 16:53:24 1992
- ***************
- *** 0 ****
- --- 1,142 ----
- + /*-
- + * Copyright (c) 1991 The Regents of the University of California.
- + * All rights reserved.
- + *
- + * This code is derived from software contributed to Berkeley by
- + * Arthur David Olson of the National Cancer Institute.
- + *
- + * Redistribution and use in source and binary forms, with or without
- + * modification, are permitted provided that the following conditions
- + * are met:
- + * 1. Redistributions of source code must retain the above copyright
- + * notice, this list of conditions and the following disclaimer.
- + * 2. Redistributions in binary form must reproduce the above copyright
- + * notice, this list of conditions and the following disclaimer in the
- + * documentation and/or other materials provided with the distribution.
- + * 3. All advertising materials mentioning features or use of this software
- + * must display the following acknowledgement:
- + * This product includes software developed by the University of
- + * California, Berkeley and its contributors.
- + * 4. Neither the name of the University nor the names of its contributors
- + * may be used to endorse or promote products derived from this software
- + * without specific prior written permission.
- + *
- + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- + * SUCH DAMAGE.
- + */
- +
- + #ifndef lint
- + static char sccsid[] = "@(#)ialloc.c 5.3 (Berkeley) 4/20/91";
- + #endif /* not lint */
- +
- + #ifdef notdef
- + static char elsieid[] = "@(#)ialloc.c 8.18";
- + #endif
- +
- + /*LINTLIBRARY*/
- +
- + #include <sys/cdefs.h>
- + #include <sys/types.h>
- + #include <string.h>
- + #include <stdlib.h>
- +
- + #ifdef MAL
- + #define NULLMAL(x) ((x) == NULL || (x) == MAL)
- + #else /* !defined MAL */
- + #define NULLMAL(x) ((x) == NULL)
- + #endif /* !defined MAL */
- +
- + #define nonzero(n) (((n) == 0) ? 1 : (n))
- +
- + char * icalloc __P((int nelem, int elsize));
- + char * icatalloc __P((char * old, const char * new));
- + char * icpyalloc __P((const char * string));
- + char * imalloc __P((int n));
- + char * irealloc __P((char * pointer, int size));
- + void ifree __P((char * pointer));
- +
- + char *
- + imalloc(n)
- + const int n;
- + {
- + #ifdef MAL
- + register char * result;
- +
- + result = malloc((size_t) nonzero(n));
- + return NULLMAL(result) ? NULL : result;
- + #else /* !defined MAL */
- + return malloc((size_t) nonzero(n));
- + #endif /* !defined MAL */
- + }
- +
- + char *
- + icalloc(nelem, elsize)
- + int nelem;
- + int elsize;
- + {
- + if (nelem == 0 || elsize == 0)
- + nelem = elsize = 1;
- + return calloc((size_t) nelem, (size_t) elsize);
- + }
- +
- + char *
- + irealloc(pointer, size)
- + char * const pointer;
- + const int size;
- + {
- + if (NULLMAL(pointer))
- + return imalloc(size);
- + return realloc((void *) pointer, (size_t) nonzero(size));
- + }
- +
- + char *
- + icatalloc(old, new)
- + char * const old;
- + const char * const new;
- + {
- + register char * result;
- + register oldsize, newsize;
- +
- + newsize = NULLMAL(new) ? 0 : strlen(new);
- + if (NULLMAL(old))
- + oldsize = 0;
- + else if (newsize == 0)
- + return old;
- + else oldsize = strlen(old);
- + if ((result = irealloc(old, oldsize + newsize + 1)) != NULL)
- + if (!NULLMAL(new))
- + (void) strcpy(result + oldsize, new);
- + return result;
- + }
- +
- + char *
- + icpyalloc(string)
- + const char * const string;
- + {
- + return icatalloc((char *) NULL, string);
- + }
- +
- + void
- + ifree(p)
- + char * const p;
- + {
- + if (!NULLMAL(p))
- + (void) free(p);
- + }
- +
- + void
- + icfree(p)
- + char * const p;
- + {
- + if (!NULLMAL(p))
- + (void) free(p);
- + }
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/smakefile emacs-18.59/amiga/unix/src/zoneinfo/smakefile
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/smakefile Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/smakefile Thu Sep 30 19:25:36 1993
- ***************
- *** 0 ****
- --- 1,11 ----
- + CFLAGS= DEFINE=TM_GMTOFF=tm_gmtoff DEFINE=TM_ZONE=tm_zone DEFINE=emkdir=mkdir DEFINE=NOSOLAR IDIR=src:unix/include/ IGNORE=104
- +
- + all: zic
- +
- + zic: zic.o ialloc.o getopt.o
- + sc link to zic zic.o ialloc.o getopt.o lib src:unix/src/unix.lib
- +
- + zic.o: zic.c
- + ialloc.o: ialloc.c
- + getopt.o: getopt.c getopt.h
- +
- Binary files /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/zic and emacs-18.59/amiga/unix/src/zoneinfo/zic differ
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/zic.8 emacs-18.59/amiga/unix/src/zoneinfo/zic.8
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/zic.8 Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/zic.8 Sat Aug 1 14:23:58 1992
- ***************
- *** 0 ****
- --- 1,424 ----
- + .\" Copyright (c) 1991 The Regents of the University of California.
- + .\" All rights reserved.
- + .\"
- + .\" This code is derived from software contributed to Berkeley by
- + .\" Arthur David Olson of the National Cancer Institute.
- + .\"
- + .\" Redistribution and use in source and binary forms, with or without
- + .\" modification, are permitted provided that the following conditions
- + .\" are met:
- + .\" 1. Redistributions of source code must retain the above copyright
- + .\" notice, this list of conditions and the following disclaimer.
- + .\" 2. Redistributions in binary form must reproduce the above copyright
- + .\" notice, this list of conditions and the following disclaimer in the
- + .\" documentation and/or other materials provided with the distribution.
- + .\" 3. All advertising materials mentioning features or use of this software
- + .\" must display the following acknowledgement:
- + .\" This product includes software developed by the University of
- + .\" California, Berkeley and its contributors.
- + .\" 4. Neither the name of the University nor the names of its contributors
- + .\" may be used to endorse or promote products derived from this software
- + .\" without specific prior written permission.
- + .\"
- + .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- + .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- + .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- + .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- + .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- + .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- + .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- + .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- + .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- + .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- + .\" SUCH DAMAGE.
- + .\"
- + .\" @(#)zic.8 5.2 (Berkeley) 4/20/91
- + .\"
- + .TH ZIC 8
- + .SH NAME
- + zic \- time zone compiler
- + .SH SYNOPSIS
- + .B zic
- + [
- + .B \-v
- + ] [
- + .B \-d
- + .I directory
- + ] [
- + .B \-l
- + .I localtime
- + ] [
- + .B \-p
- + .I posixrules
- + ] [
- + .B \-L
- + .I leapsecondfilename
- + ] [
- + .B \-s
- + ] [
- + .I filename
- + \&... ]
- + .SH DESCRIPTION
- + .if t .ds lq ``
- + .if t .ds rq ''
- + .if n .ds lq \&"\"
- + .if n .ds rq \&"\"
- + .de q
- + \\$3\*(lq\\$1\*(rq\\$2
- + ..
- + .I Zic
- + reads text from the file(s) named on the command line
- + and creates the time conversion information files specified in this input.
- + If a
- + .I filename
- + is
- + .BR \- ,
- + the standard input is read.
- + .PP
- + These options are available:
- + .TP
- + .BI "\-d " directory
- + Create time conversion information files in the named directory rather than
- + in the standard directory named below.
- + .TP
- + .BI "\-l " timezone
- + Use the given time zone as local time.
- + .I Zic
- + will act as if the input contained a link line of the form
- + .sp
- + .ti +.5i
- + Link \fItimezone\fP localtime
- + .TP
- + .BI "\-p " timezone
- + Use the given time zone's rules when handling POSIX-format
- + time zone environment variables.
- + .I Zic
- + will act as if the input contained a link line of the form
- + .sp
- + .ti +.5i
- + Link \fItimezone\fP posixrules
- + .TP
- + .BI "\-L " leapsecondfilename
- + Read leap second information from the file with the given name.
- + If this option is not used,
- + no leap second information appears in output files.
- + .TP
- + .B \-v
- + Complain if a year that appears in a data file is outside the range
- + of years representable by
- + .IR time (2)
- + values.
- + .TP
- + .B \-s
- + Limit time values stored in output files to values that are the same
- + whether they're taken to be signed or unsigned.
- + You can use this option to generate SVVS-compatible files.
- + .sp
- + Input lines are made up of fields.
- + Fields are separated from one another by any number of white space characters.
- + Leading and trailing white space on input lines is ignored.
- + An unquoted sharp character (#) in the input introduces a comment which extends
- + to the end of the line the sharp character appears on.
- + White space characters and sharp characters may be enclosed in double quotes
- + (") if they're to be used as part of a field.
- + Any line that is blank (after comment stripping) is ignored.
- + Non-blank lines are expected to be of one of three types:
- + rule lines, zone lines, and link lines.
- + .PP
- + A rule line has the form
- + .nf
- + .B
- + .ti +.5i
- + .ta \w'Rule\0\0'u +\w'NAME\0\0'u +\w'FROM\0\0'u +\w'1973\0\0'u +\w'TYPE\0\0'u +\w'Apr\0\0'u +\w'lastSun\0\0'u +\w'2:00\0\0'u +\w'SAVE\0\0'u
- + .sp
- + Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
- + .sp
- + For example:
- + .ti +.5i
- + .sp
- + Rule USA 1969 1973 \- Apr lastSun 2:00 1:00 D
- + .sp
- + .fi
- + The fields that make up a rule line are:
- + .TP "\w'LETTER/S'u"
- + .B NAME
- + Gives the (arbitrary) name of the set of rules this rule is part of.
- + .TP
- + .B FROM
- + Gives the first year in which the rule applies.
- + The word
- + .B minimum
- + (or an abbreviation) means the minimum year with a representable time value.
- + The word
- + .B maximum
- + (or an abbreviation) means the maximum year with a representable time value.
- + .TP
- + .B TO
- + Gives the final year in which the rule applies.
- + In addition to
- + .B minimum
- + and
- + .B maximum
- + (as above),
- + the word
- + .B only
- + (or an abbreviation)
- + may be used to repeat the value of the
- + .B FROM
- + field.
- + .TP
- + .B TYPE
- + Gives the type of year in which the rule applies.
- + If
- + .B TYPE
- + is
- + .B \-
- + then the rule applies in all years between
- + .B FROM
- + and
- + .B TO
- + inclusive;
- + if
- + .B TYPE
- + is
- + .BR uspres ,
- + the rule applies in U.S. Presidential election years;
- + if
- + .B TYPE
- + is
- + .BR nonpres ,
- + the rule applies in years other than U.S. Presidential election years.
- + If
- + .B TYPE
- + is something else, then
- + .I zic
- + executes the command
- + .ti +.5i
- + \fByearistype\fP \fIyear\fP \fItype\fP
- + .br
- + to check the type of a year:
- + an exit status of zero is taken to mean that the year is of the given type;
- + an exit status of one is taken to mean that the year is not of the given type.
- + .TP
- + .B IN
- + Names the month in which the rule takes effect.
- + Month names may be abbreviated.
- + .TP
- + .B ON
- + Gives the day on which the rule takes effect.
- + Recognized forms include:
- + .nf
- + .in +.5i
- + .sp
- + .ta \w'Sun<=25\0\0'u
- + 5 the fifth of the month
- + lastSun the last Sunday in the month
- + lastMon the last Monday in the month
- + Sun>=8 first Sunday on or after the eighth
- + Sun<=25 last Sunday on or before the 25th
- + .fi
- + .in -.5i
- + .sp
- + Names of days of the week may be abbreviated or spelled out in full.
- + Note that there must be no spaces within the
- + .B ON
- + field.
- + .TP
- + .B AT
- + Gives the time of day at which the rule takes effect.
- + Recognized forms include:
- + .nf
- + .in +.5i
- + .sp
- + .ta \w'1:28:13\0\0'u
- + 2 time in hours
- + 2:00 time in hours and minutes
- + 15:00 24-hour format time (for times after noon)
- + 1:28:14 time in hours, minutes, and seconds
- + .fi
- + .in -.5i
- + .sp
- + Any of these forms may be followed by the letter
- + .B w
- + if the given time is local
- + .q "wall clock"
- + time or
- + .B s
- + if the given time is local
- + .q standard
- + time; in the absence of
- + .B w
- + or
- + .BR s ,
- + wall clock time is assumed.
- + .TP
- + .B SAVE
- + Gives the amount of time to be added to local standard time when the rule is in
- + effect.
- + This field has the same format as the
- + .B AT
- + field
- + (although, of course, the
- + .B w
- + and
- + .B s
- + suffixes are not used).
- + .TP
- + .B LETTER/S
- + Gives the
- + .q "variable part"
- + (for example, the
- + .q S
- + or
- + .q D
- + in
- + .q EST
- + or
- + .q EDT )
- + of time zone abbreviations to be used when this rule is in effect.
- + If this field is
- + .BR \- ,
- + the variable part is null.
- + .PP
- + A zone line has the form
- + .sp
- + .nf
- + .ti +.5i
- + .ta \w'Zone\0\0'u +\w'Australia/South\-west\0\0'u +\w'GMTOFF\0\0'u +\w'RULES/SAVE\0\0'u +\w'FORMAT\0\0'u
- + Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
- + .sp
- + For example:
- + .sp
- + .ti +.5i
- + Zone Australia/South\-west 9:30 Aus CST 1987 Mar 15 2:00
- + .sp
- + .fi
- + The fields that make up a zone line are:
- + .TP "\w'GMTOFF'u"
- + .B NAME
- + The name of the time zone.
- + This is the name used in creating the time conversion information file for the
- + zone.
- + .TP
- + .B GMTOFF
- + The amount of time to add to GMT to get standard time in this zone.
- + This field has the same format as the
- + .B AT
- + and
- + .B SAVE
- + fields of rule lines;
- + begin the field with a minus sign if time must be subtracted from GMT.
- + .TP
- + .B RULES/SAVE
- + The name of the rule(s) that apply in the time zone or,
- + alternately, an amount of time to add to local standard time.
- + If this field is
- + .B \-
- + then standard time always applies in the time zone.
- + .TP
- + .B FORMAT
- + The format for time zone abbreviations in this time zone.
- + The pair of characters
- + .B %s
- + is used to show where the
- + .q "variable part"
- + of the time zone abbreviation goes.
- + .TP
- + .B UNTIL
- + The time at which the GMT offset or the rule(s) change for a location.
- + It is specified as a year, a month, a day, and a time of day.
- + If this is specified,
- + the time zone information is generated from the given GMT offset
- + and rule change until the time specified.
- + .IP
- + The next line must be a
- + .q continuation
- + line; this has the same form as a zone line except that the
- + string
- + .q Zone
- + and the name are omitted, as the continuation line will
- + place information starting at the time specified as the
- + .B UNTIL
- + field in the previous line in the file used by the previous line.
- + Continuation lines may contain an
- + .B UNTIL
- + field, just as zone lines do, indicating that the next line is a further
- + continuation.
- + .PP
- + A link line has the form
- + .sp
- + .nf
- + .ti +.5i
- + .if t .ta \w'Link\0\0'u +\w'LINK-FROM\0\0'u
- + .if n .ta \w'Link\0\0'u +\w'US/Eastern\0\0'u
- + Link LINK-FROM LINK-TO
- + .sp
- + For example:
- + .sp
- + .ti +.5i
- + Link US/Eastern EST5EDT
- + .sp
- + .fi
- + The
- + .B LINK-FROM
- + field should appear as the
- + .B NAME
- + field in some zone line;
- + the
- + .B LINK-TO
- + field is used as an alternate name for that zone.
- + .PP
- + Except for continuation lines,
- + lines may appear in any order in the input.
- + .PP
- + Lines in the file that describes leap seconds have the following form:
- + .nf
- + .B
- + .ti +.5i
- + .ta \w'Leap\0\0'u +\w'YEAR\0\0'u +\w'MONTH\0\0'u +\w'DAY\0\0'u +\w'HH:MM:SS\0\0'u +\w'CORR\0\0'u
- + Leap YEAR MONTH DAY HH:MM:SS CORR R/S
- + .sp
- + For example:
- + .ti +.5i
- + .sp
- + Leap 1974 Dec 31 23:59:60 + S
- + .sp
- + .fi
- + The
- + .BR YEAR ,
- + .BR MONTH ,
- + .BR DAY ,
- + and
- + .B HH:MM:SS
- + fields tell when the leap second happened.
- + The
- + .B CORR
- + field
- + should be
- + .q +
- + if a second was added
- + or
- + .q -
- + if a second was skipped.
- + The
- + .B R/S
- + field
- + should be (an abbreviation of)
- + .q Stationary
- + if the leap second time given by the other fields should be interpreted as GMT
- + or
- + (an abbreviation of)
- + .q Rolling
- + if the leap second time given by the other fields should be interpreted as
- + local wall clock time.
- + .SH NOTE
- + For areas with more than two types of local time,
- + you may need to use local standard time in the
- + .B AT
- + field of the earliest transition time's rule to ensure that
- + the earliest transition time recorded in the compiled file is correct.
- + .SH FILE
- + /etc/zoneinfo standard directory used for created files
- + .SH "SEE ALSO"
- + newctime(3), tzfile(5), zdump(8)
- + .. @(#)zic.8 4.4
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/zic.c emacs-18.59/amiga/unix/src/zoneinfo/zic.c
- *** /src/baseline/emacs-18.59/amiga/unix/src/zoneinfo/zic.c Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/src/zoneinfo/zic.c Sat Aug 1 18:39:52 1992
- ***************
- *** 0 ****
- --- 1,1903 ----
- + /*-
- + * Copyright (c) 1991 The Regents of the University of California.
- + * All rights reserved.
- + *
- + * This code is derived from software contributed to Berkeley by
- + * Arthur David Olson of the National Cancer Institute.
- + *
- + * Redistribution and use in source and binary forms, with or without
- + * modification, are permitted provided that the following conditions
- + * are met:
- + * 1. Redistributions of source code must retain the above copyright
- + * notice, this list of conditions and the following disclaimer.
- + * 2. Redistributions in binary form must reproduce the above copyright
- + * notice, this list of conditions and the following disclaimer in the
- + * documentation and/or other materials provided with the distribution.
- + * 3. All advertising materials mentioning features or use of this software
- + * must display the following acknowledgement:
- + * This product includes software developed by the University of
- + * California, Berkeley and its contributors.
- + * 4. Neither the name of the University nor the names of its contributors
- + * may be used to endorse or promote products derived from this software
- + * without specific prior written permission.
- + *
- + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- + * SUCH DAMAGE.
- + */
- +
- + #ifndef lint
- + static char sccsid[] = "@(#)zic.c 5.3 (Berkeley) 4/20/91";
- + #endif /* not lint */
- +
- + #ifdef notdef
- + static char elsieid[] = "@(#)zic.c 4.12";
- + #endif
- +
- + #include <sys/types.h>
- + #include <sys/cdefs.h>
- + #include <sys/stat.h>
- + #include <time.h>
- + #include <tzfile.h>
- + #include <stdio.h>
- + #include <ctype.h>
- + #include <string.h>
- + #include <stdlib.h>
- +
- + #ifndef TRUE
- + #define TRUE 1
- + #define FALSE 0
- + #endif /* !defined TRUE */
- +
- + #ifndef EXIT_FAILURE
- + #define EXIT_FAILURE 1
- + #endif
- +
- + #ifndef EXIT_SUCCESS
- + #define EXIT_SUCCESS 0
- + #endif
- +
- + struct rule {
- + const char * r_filename;
- + int r_linenum;
- + const char * r_name;
- +
- + int r_loyear; /* for example, 1986 */
- + int r_hiyear; /* for example, 1986 */
- + const char * r_yrtype;
- +
- + int r_month; /* 0..11 */
- +
- + int r_dycode; /* see below */
- + int r_dayofmonth;
- + int r_wday;
- +
- + long r_tod; /* time from midnight */
- + int r_todisstd; /* above is standard time if TRUE */
- + /* or wall clock time if FALSE */
- + long r_stdoff; /* offset from standard time */
- + const char * r_abbrvar; /* variable part of abbreviation */
- +
- + int r_todo; /* a rule to do (used in outzone) */
- + time_t r_temp; /* used in outzone */
- + };
- +
- + /*
- + ** r_dycode r_dayofmonth r_wday
- + */
- +
- + #define DC_DOM 0 /* 1..31 */ /* unused */
- + #define DC_DOWGEQ 1 /* 1..31 */ /* 0..6 (Sun..Sat) */
- + #define DC_DOWLEQ 2 /* 1..31 */ /* 0..6 (Sun..Sat) */
- +
- + struct zone {
- + const char * z_filename;
- + int z_linenum;
- +
- + const char * z_name;
- + long z_gmtoff;
- + const char * z_rule;
- + const char * z_format;
- +
- + long z_stdoff;
- +
- + struct rule * z_rules;
- + int z_nrules;
- +
- + struct rule z_untilrule;
- + time_t z_untiltime;
- + };
- +
- + extern char * icatalloc __P((char * old, const char * new));
- + extern char * icpyalloc __P((const char * string));
- + extern void ifree __P((char * p));
- + extern char * imalloc __P((int n));
- + extern char * irealloc __P((char * old, int n));
- + extern int link __P((const char * fromname, const char * toname));
- + extern char * optarg;
- + extern int optind;
- + static void addtt __P((time_t starttime, int type));
- + static int addtype
- + __P((long gmtoff, const char * abbr, int isdst,
- + int ttisstd));
- + static void addleap __P((time_t t, int positive, int rolling));
- + static void adjleap __P((void));
- + static void associate __P((void));
- + static int ciequal __P((const char * ap, const char * bp));
- + static void convert __P((long val, char * buf));
- + static void dolink __P((const char * fromfile, const char * tofile));
- + static void eat __P((const char * name, int num));
- + static void eats __P((const char * name, int num,
- + const char * rname, int rnum));
- + static long eitol __P((int i));
- + static void error __P((const char * message));
- + static char ** getfields __P((char * buf));
- + static long gethms __P((char * string, const char * errstrng,
- + int signable));
- + static void infile __P((const char * filename));
- + static void inleap __P((char ** fields, int nfields));
- + static void inlink __P((char ** fields, int nfields));
- + static void inrule __P((char ** fields, int nfields));
- + static int inzcont __P((char ** fields, int nfields));
- + static int inzone __P((char ** fields, int nfields));
- + static int inzsub __P((char ** fields, int nfields, int iscont));
- + static int itsabbr __P((const char * abbr, const char * word));
- + static int itsdir __P((const char * name));
- + static int lowerit __P((int c));
- + static char * memcheck __P((char * tocheck));
- + static int mkdirs __P((char * filename));
- + static void newabbr __P((const char * abbr));
- + static long oadd __P((long t1, long t2));
- + static void outzone __P((const struct zone * zp, int ntzones));
- + static void puttzcode __P((long code, FILE * fp));
- + static int rcomp __P((const void *leftp, const void *rightp));
- + static time_t rpytime __P((const struct rule * rp, int wantedy));
- + static void rulesub __P((struct rule * rp, char * loyearp, char * hiyearp,
- + char * typep, char * monthp, char * dayp, char * timep));
- + static void setboundaries __P((void));
- + static time_t tadd __P((time_t t1, long t2));
- + static void usage __P((void));
- + static void writezone __P((const char * name));
- + static int yearistype __P((int year, const char * type));
- +
- + static int charcnt;
- + static int errors;
- + static const char * filename;
- + static int leapcnt;
- + static int linenum;
- + static time_t max_time;
- + static int max_year;
- + static time_t min_time;
- + static int min_year;
- + static int noise;
- + static const char * rfilename;
- + static int rlinenum;
- + static const char * progname;
- + static int timecnt;
- + static int typecnt;
- + static int tt_signed;
- +
- + /*
- + ** Line codes.
- + */
- +
- + #define LC_RULE 0
- + #define LC_ZONE 1
- + #define LC_LINK 2
- + #define LC_LEAP 3
- +
- + /*
- + ** Which fields are which on a Zone line.
- + */
- +
- + #define ZF_NAME 1
- + #define ZF_GMTOFF 2
- + #define ZF_RULE 3
- + #define ZF_FORMAT 4
- + #define ZF_TILYEAR 5
- + #define ZF_TILMONTH 6
- + #define ZF_TILDAY 7
- + #define ZF_TILTIME 8
- + #define ZONE_MINFIELDS 5
- + #define ZONE_MAXFIELDS 9
- +
- + /*
- + ** Which fields are which on a Zone continuation line.
- + */
- +
- + #define ZFC_GMTOFF 0
- + #define ZFC_RULE 1
- + #define ZFC_FORMAT 2
- + #define ZFC_TILYEAR 3
- + #define ZFC_TILMONTH 4
- + #define ZFC_TILDAY 5
- + #define ZFC_TILTIME 6
- + #define ZONEC_MINFIELDS 3
- + #define ZONEC_MAXFIELDS 7
- +
- + /*
- + ** Which files are which on a Rule line.
- + */
- +
- + #define RF_NAME 1
- + #define RF_LOYEAR 2
- + #define RF_HIYEAR 3
- + #define RF_COMMAND 4
- + #define RF_MONTH 5
- + #define RF_DAY 6
- + #define RF_TOD 7
- + #define RF_STDOFF 8
- + #define RF_ABBRVAR 9
- + #define RULE_FIELDS 10
- +
- + /*
- + ** Which fields are which on a Link line.
- + */
- +
- + #define LF_FROM 1
- + #define LF_TO 2
- + #define LINK_FIELDS 3
- +
- + /*
- + ** Which fields are which on a Leap line.
- + */
- +
- + #define LP_YEAR 1
- + #define LP_MONTH 2
- + #define LP_DAY 3
- + #define LP_TIME 4
- + #define LP_CORR 5
- + #define LP_ROLL 6
- + #define LEAP_FIELDS 7
- +
- + /*
- + ** Year synonyms.
- + */
- +
- + #define YR_MINIMUM 0
- + #define YR_MAXIMUM 1
- + #define YR_ONLY 2
- +
- + static struct rule * rules;
- + static int nrules; /* number of rules */
- +
- + static struct zone * zones;
- + static int nzones; /* number of zones */
- +
- + struct link {
- + const char * l_filename;
- + int l_linenum;
- + const char * l_from;
- + const char * l_to;
- + };
- +
- + static struct link * links;
- + static int nlinks;
- +
- + struct lookup {
- + const char * l_word;
- + const int l_value;
- + };
- +
- + static struct lookup const * byword __P((const char * string,
- + const struct lookup * lp));
- +
- + static struct lookup const line_codes[] = {
- + "Rule", LC_RULE,
- + "Zone", LC_ZONE,
- + "Link", LC_LINK,
- + "Leap", LC_LEAP,
- + NULL, 0
- + };
- +
- + static struct lookup const mon_names[] = {
- + "January", TM_JANUARY,
- + "February", TM_FEBRUARY,
- + "March", TM_MARCH,
- + "April", TM_APRIL,
- + "May", TM_MAY,
- + "June", TM_JUNE,
- + "July", TM_JULY,
- + "August", TM_AUGUST,
- + "September", TM_SEPTEMBER,
- + "October", TM_OCTOBER,
- + "November", TM_NOVEMBER,
- + "December", TM_DECEMBER,
- + NULL, 0
- + };
- +
- + static struct lookup const wday_names[] = {
- + "Sunday", TM_SUNDAY,
- + "Monday", TM_MONDAY,
- + "Tuesday", TM_TUESDAY,
- + "Wednesday", TM_WEDNESDAY,
- + "Thursday", TM_THURSDAY,
- + "Friday", TM_FRIDAY,
- + "Saturday", TM_SATURDAY,
- + NULL, 0
- + };
- +
- + static struct lookup const lasts[] = {
- + "last-Sunday", TM_SUNDAY,
- + "last-Monday", TM_MONDAY,
- + "last-Tuesday", TM_TUESDAY,
- + "last-Wednesday", TM_WEDNESDAY,
- + "last-Thursday", TM_THURSDAY,
- + "last-Friday", TM_FRIDAY,
- + "last-Saturday", TM_SATURDAY,
- + NULL, 0
- + };
- +
- + static struct lookup const begin_years[] = {
- + "minimum", YR_MINIMUM,
- + "maximum", YR_MAXIMUM,
- + NULL, 0
- + };
- +
- + static struct lookup const end_years[] = {
- + "minimum", YR_MINIMUM,
- + "maximum", YR_MAXIMUM,
- + "only", YR_ONLY,
- + NULL, 0
- + };
- +
- + static struct lookup const leap_types[] = {
- + "Rolling", TRUE,
- + "Stationary", FALSE,
- + NULL, 0
- + };
- +
- + static const int len_months[2][MONSPERYEAR] = {
- + 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,
- + 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
- + };
- +
- + static const int len_years[2] = {
- + DAYSPERNYEAR, DAYSPERLYEAR
- + };
- +
- + static time_t ats[TZ_MAX_TIMES];
- + static unsigned char types[TZ_MAX_TIMES];
- + static long gmtoffs[TZ_MAX_TYPES];
- + static char isdsts[TZ_MAX_TYPES];
- + static char abbrinds[TZ_MAX_TYPES];
- + static char ttisstds[TZ_MAX_TYPES];
- + static char chars[TZ_MAX_CHARS];
- + static time_t trans[TZ_MAX_LEAPS];
- + static long corr[TZ_MAX_LEAPS];
- + static char roll[TZ_MAX_LEAPS];
- +
- + /*
- + ** Memory allocation.
- + */
- +
- + static char *
- + memcheck(ptr)
- + char * const ptr;
- + {
- + if (ptr == NULL) {
- + (void) perror(progname);
- + (void) exit(EXIT_FAILURE);
- + }
- + return ptr;
- + }
- +
- + #define emalloc(size) memcheck(imalloc(size))
- + #define erealloc(ptr, size) memcheck(irealloc(ptr, size))
- + #define ecpyalloc(ptr) memcheck(icpyalloc(ptr))
- + #define ecatalloc(oldp, newp) memcheck(icatalloc(oldp, newp))
- +
- + /*
- + ** Error handling.
- + */
- +
- + static void
- + eats(name, num, rname, rnum)
- + const char * const name;
- + const int num;
- + const char * const rname;
- + const int rnum;
- + {
- + filename = name;
- + linenum = num;
- + rfilename = rname;
- + rlinenum = rnum;
- + }
- +
- + static void
- + eat(name, num)
- + const char * const name;
- + const int num;
- + {
- + eats(name, num, (char *) NULL, -1);
- + }
- +
- + static void
- + error(string)
- + const char * const string;
- + {
- + /*
- + ** Match the format of "cc" to allow sh users to
- + ** zic ... 2>&1 | error -t "*" -v
- + ** on BSD systems.
- + */
- + (void) fprintf(stderr, "\"%s\", line %d: %s",
- + filename, linenum, string);
- + if (rfilename != NULL)
- + (void) fprintf(stderr, " (rule from \"%s\", line %d)",
- + rfilename, rlinenum);
- + (void) fprintf(stderr, "\n");
- + ++errors;
- + }
- +
- + static void
- + usage()
- + {
- + (void) fprintf(stderr,
- + "%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d directory ]\n\
- + \t[ -L leapseconds ] [ filename ... ]\n",
- + progname, progname);
- + (void) exit(EXIT_FAILURE);
- + }
- +
- + static const char * psxrules = NULL;
- + static const char * lcltime = NULL;
- + static const char * directory = NULL;
- + static const char * leapsec = NULL;
- + static int sflag = FALSE;
- +
- + int
- + main(argc, argv)
- + int argc;
- + char * argv[];
- + {
- + register int i, j;
- + register int c;
- +
- + (void) umask(umask(022) | 022);
- + progname = argv[0];
- + while ((c = getopt(argc, argv, "d:l:p:L:vs")) != EOF)
- + switch (c) {
- + default:
- + usage();
- + case 'd':
- + if (directory == NULL)
- + directory = optarg;
- + else {
- + (void) fprintf(stderr,
- + "%s: More than one -d option specified\n",
- + progname);
- + (void) exit(EXIT_FAILURE);
- + }
- + break;
- + case 'l':
- + if (lcltime == NULL)
- + lcltime = optarg;
- + else {
- + (void) fprintf(stderr,
- + "%s: More than one -l option specified\n",
- + progname);
- + (void) exit(EXIT_FAILURE);
- + }
- + break;
- + case 'p':
- + if (psxrules == NULL)
- + psxrules = optarg;
- + else {
- + (void) fprintf(stderr,
- + "%s: More than one -p option specified\n",
- + progname);
- + (void) exit(EXIT_FAILURE);
- + }
- + break;
- + case 'L':
- + if (leapsec == NULL)
- + leapsec = optarg;
- + else {
- + (void) fprintf(stderr,
- + "%s: More than one -L option specified\n",
- + progname);
- + (void) exit(EXIT_FAILURE);
- + }
- + break;
- + case 'v':
- + noise = TRUE;
- + break;
- + case 's':
- + sflag = TRUE;
- + break;
- + }
- + if (optind == argc - 1 && strcmp(argv[optind], "=") == 0)
- + usage(); /* usage message by request */
- + if (directory == NULL)
- + directory = TZDIR;
- +
- + setboundaries();
- +
- + if (optind < argc && leapsec != NULL) {
- + infile(leapsec);
- + adjleap();
- + }
- +
- + zones = (struct zone *) emalloc(0);
- + rules = (struct rule *) emalloc(0);
- + links = (struct link *) emalloc(0);
- + for (i = optind; i < argc; ++i)
- + infile(argv[i]);
- + if (errors)
- + (void) exit(EXIT_FAILURE);
- + associate();
- + for (i = 0; i < nzones; i = j) {
- + /*
- + ** Find the next non-continuation zone entry.
- + */
- + for (j = i + 1; j < nzones && zones[j].z_name == NULL; ++j)
- + ;
- + outzone(&zones[i], j - i);
- + }
- + /*
- + ** Make links.
- + */
- + for (i = 0; i < nlinks; ++i)
- + dolink(links[i].l_from, links[i].l_to);
- + if (lcltime != NULL)
- + dolink(lcltime, TZDEFAULT);
- + if (psxrules != NULL)
- + dolink(psxrules, TZDEFRULES);
- + return (errors == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
- + }
- +
- + static void
- + dolink(fromfile, tofile)
- + const char * const fromfile;
- + const char * const tofile;
- + {
- + register char * fromname;
- + register char * toname;
- +
- + fromname = ecpyalloc(directory);
- + fromname = ecatalloc(fromname, "/");
- + fromname = ecatalloc(fromname, fromfile);
- + if (strchr(tofile, ':')) toname = ecpyalloc(tofile);
- + else
- + {
- + toname = ecpyalloc(directory);
- + toname = ecatalloc(toname, "/");
- + toname = ecatalloc(toname, tofile);
- + }
- + /*
- + ** We get to be careful here since
- + ** there's a fair chance of root running us.
- + */
- + if (!itsdir(toname))
- + (void) remove(toname);
- + if (link(fromname, toname) != 0) {
- + (void) fprintf(stderr, "%s: Can't link from %s to ",
- + progname, fromname);
- + (void) perror(toname);
- + (void) exit(EXIT_FAILURE);
- + }
- + ifree(fromname);
- + ifree(toname);
- + }
- +
- + static void
- + setboundaries()
- + {
- + register time_t bit;
- +
- + for (bit = 1; bit > 0; bit <<= 1)
- + ;
- + if (bit == 0) { /* time_t is an unsigned type */
- + tt_signed = FALSE;
- + min_time = 0;
- + max_time = ~(time_t) 0;
- + if (sflag)
- + max_time >>= 1;
- + } else {
- + tt_signed = TRUE;
- + min_time = bit;
- + max_time = bit;
- + ++max_time;
- + max_time = -max_time;
- + if (sflag)
- + min_time = 0;
- + }
- + min_year = TM_YEAR_BASE + gmtime(&min_time)->tm_year;
- + max_year = TM_YEAR_BASE + gmtime(&max_time)->tm_year;
- + }
- +
- + static int
- + itsdir(name)
- + const char * const name;
- + {
- + struct stat s;
- +
- + return (stat(name, &s) == 0 && S_ISDIR(s.st_mode));
- + }
- +
- + /*
- + ** Associate sets of rules with zones.
- + */
- +
- + /*
- + ** Sort by rule name.
- + */
- +
- + static int
- + rcomp(cp1, cp2)
- + const void * cp1;
- + const void * cp2;
- + {
- + return strcmp(((struct rule *) cp1)->r_name,
- + ((struct rule *) cp2)->r_name);
- + }
- +
- + static void
- + associate()
- + {
- + register struct zone * zp;
- + register struct rule * rp;
- + register int base, out;
- + register int i;
- +
- + if (nrules != 0)
- + (void) qsort((void *) rules, (size_t) nrules,
- + (size_t) sizeof *rules, rcomp);
- + for (i = 0; i < nzones; ++i) {
- + zp = &zones[i];
- + zp->z_rules = NULL;
- + zp->z_nrules = 0;
- + }
- + for (base = 0; base < nrules; base = out) {
- + rp = &rules[base];
- + for (out = base + 1; out < nrules; ++out)
- + if (strcmp(rp->r_name, rules[out].r_name) != 0)
- + break;
- + for (i = 0; i < nzones; ++i) {
- + zp = &zones[i];
- + if (strcmp(zp->z_rule, rp->r_name) != 0)
- + continue;
- + zp->z_rules = rp;
- + zp->z_nrules = out - base;
- + }
- + }
- + for (i = 0; i < nzones; ++i) {
- + zp = &zones[i];
- + if (zp->z_nrules == 0) {
- + /*
- + ** Maybe we have a local standard time offset.
- + */
- + eat(zp->z_filename, zp->z_linenum);
- + zp->z_stdoff =
- + gethms((char *)zp->z_rule, "unruly zone", TRUE);
- + /*
- + ** Note, though, that if there's no rule,
- + ** a '%s' in the format is a bad thing.
- + */
- + if (strchr(zp->z_format, '%') != 0)
- + error("%s in ruleless zone");
- + }
- + }
- + if (errors)
- + (void) exit(EXIT_FAILURE);
- + }
- +
- + static void
- + infile(name)
- + const char * name;
- + {
- + register FILE * fp;
- + register char ** fields;
- + register char * cp;
- + register const struct lookup * lp;
- + register int nfields;
- + register int wantcont;
- + register int num;
- + char buf[BUFSIZ];
- +
- + if (strcmp(name, "-") == 0) {
- + name = "standard input";
- + fp = stdin;
- + } else if ((fp = fopen(name, "r")) == NULL) {
- + (void) fprintf(stderr, "%s: Can't open ", progname);
- + (void) perror(name);
- + (void) exit(EXIT_FAILURE);
- + }
- + wantcont = FALSE;
- + for (num = 1; ; ++num) {
- + eat(name, num);
- + if (fgets(buf, (int) sizeof buf, fp) != buf)
- + break;
- + cp = strchr(buf, '\n');
- + if (cp == NULL) {
- + error("line too long");
- + (void) exit(EXIT_FAILURE);
- + }
- + *cp = '\0';
- + fields = getfields(buf);
- + nfields = 0;
- + while (fields[nfields] != NULL) {
- + if (ciequal(fields[nfields], "-"))
- + fields[nfields] = "";
- + ++nfields;
- + }
- + if (nfields == 0) {
- + /* nothing to do */
- + } else if (wantcont) {
- + wantcont = inzcont(fields, nfields);
- + } else {
- + lp = byword(fields[0], line_codes);
- + if (lp == NULL)
- + error("input line of unknown type");
- + else switch ((int) (lp->l_value)) {
- + case LC_RULE:
- + inrule(fields, nfields);
- + wantcont = FALSE;
- + break;
- + case LC_ZONE:
- + wantcont = inzone(fields, nfields);
- + break;
- + case LC_LINK:
- + inlink(fields, nfields);
- + wantcont = FALSE;
- + break;
- + case LC_LEAP:
- + if (name != leapsec)
- + (void) fprintf(stderr,
- + "%s: Leap line in non leap seconds file %s\n",
- + progname, name);
- + else inleap(fields, nfields);
- + wantcont = FALSE;
- + break;
- + default: /* "cannot happen" */
- + (void) fprintf(stderr,
- + "%s: panic: Invalid l_value %d\n",
- + progname, lp->l_value);
- + (void) exit(EXIT_FAILURE);
- + }
- + }
- + ifree((char *) fields);
- + }
- + if (ferror(fp)) {
- + (void) fprintf(stderr, "%s: Error reading ", progname);
- + (void) perror(filename);
- + (void) exit(EXIT_FAILURE);
- + }
- + if (fp != stdin && fclose(fp)) {
- + (void) fprintf(stderr, "%s: Error closing ", progname);
- + (void) perror(filename);
- + (void) exit(EXIT_FAILURE);
- + }
- + if (wantcont)
- + error("expected continuation line not found");
- + }
- +
- + /*
- + ** Convert a string of one of the forms
- + ** h -h hh:mm -hh:mm hh:mm:ss -hh:mm:ss
- + ** into a number of seconds.
- + ** A null string maps to zero.
- + ** Call error with errstring and return zero on errors.
- + */
- +
- + static long
- + gethms(string, errstring, signable)
- + char * string;
- + const char * const errstring;
- + const int signable;
- + {
- + int hh, mm, ss, sign;
- +
- + if (string == NULL || *string == '\0')
- + return 0;
- + if (!signable)
- + sign = 1;
- + else if (*string == '-') {
- + sign = -1;
- + ++string;
- + } else sign = 1;
- + if (sscanf(string, "%d:%d:%d", &hh, &mm, &ss) == 3) ;
- + else if (sscanf(string, "%d:%d", &hh, &mm) == 2) ss = 0;
- + else if (sscanf(string, "%d", &hh) == 1) mm = ss = 0;
- + else
- + {
- + error(errstring);
- + return 0;
- + }
- + if (hh < 0 || hh >= HOURSPERDAY ||
- + mm < 0 || mm >= MINSPERHOUR ||
- + ss < 0 || ss > SECSPERMIN) {
- + error(errstring);
- + return 0;
- + }
- + return eitol(sign) *
- + (eitol(hh * MINSPERHOUR + mm) *
- + eitol(SECSPERMIN) + eitol(ss));
- + }
- +
- + static void
- + inrule(fields, nfields)
- + register char ** const fields;
- + const int nfields;
- + {
- + static struct rule r;
- +
- + if (nfields != RULE_FIELDS) {
- + error("wrong number of fields on Rule line");
- + return;
- + }
- + if (*fields[RF_NAME] == '\0') {
- + error("nameless rule");
- + return;
- + }
- + r.r_filename = filename;
- + r.r_linenum = linenum;
- + r.r_stdoff = gethms(fields[RF_STDOFF], "invalid saved time", TRUE);
- + rulesub(&r, fields[RF_LOYEAR], fields[RF_HIYEAR], fields[RF_COMMAND],
- + fields[RF_MONTH], fields[RF_DAY], fields[RF_TOD]);
- + r.r_name = ecpyalloc(fields[RF_NAME]);
- + r.r_abbrvar = ecpyalloc(fields[RF_ABBRVAR]);
- + rules = (struct rule *) erealloc((char *) rules,
- + (int) ((nrules + 1) * sizeof *rules));
- + rules[nrules++] = r;
- + }
- +
- + static int
- + inzone(fields, nfields)
- + register char ** const fields;
- + const int nfields;
- + {
- + register int i;
- + char buf[132];
- +
- + if (nfields < ZONE_MINFIELDS || nfields > ZONE_MAXFIELDS) {
- + error("wrong number of fields on Zone line");
- + return FALSE;
- + }
- + if (strcmp(fields[ZF_NAME], TZDEFAULT) == 0 && lcltime != NULL) {
- + (void) sprintf(buf,
- + "\"Zone %s\" line and -l option are mutually exclusive",
- + TZDEFAULT);
- + error(buf);
- + return FALSE;
- + }
- + if (strcmp(fields[ZF_NAME], TZDEFRULES) == 0 && psxrules != NULL) {
- + (void) sprintf(buf,
- + "\"Zone %s\" line and -p option are mutually exclusive",
- + TZDEFRULES);
- + error(buf);
- + return FALSE;
- + }
- + for (i = 0; i < nzones; ++i)
- + if (zones[i].z_name != NULL &&
- + strcmp(zones[i].z_name, fields[ZF_NAME]) == 0) {
- + (void) sprintf(buf,
- + "duplicate zone name %s (file \"%s\", line %d)",
- + fields[ZF_NAME],
- + zones[i].z_filename,
- + zones[i].z_linenum);
- + error(buf);
- + return FALSE;
- + }
- + return inzsub(fields, nfields, FALSE);
- + }
- +
- + static int
- + inzcont(fields, nfields)
- + register char ** const fields;
- + const int nfields;
- + {
- + if (nfields < ZONEC_MINFIELDS || nfields > ZONEC_MAXFIELDS) {
- + error("wrong number of fields on Zone continuation line");
- + return FALSE;
- + }
- + return inzsub(fields, nfields, TRUE);
- + }
- +
- + static int
- + inzsub(fields, nfields, iscont)
- + register char ** const fields;
- + const int nfields;
- + const int iscont;
- + {
- + register char * cp;
- + static struct zone z;
- + register int i_gmtoff, i_rule, i_format;
- + register int i_untilyear, i_untilmonth;
- + register int i_untilday, i_untiltime;
- + register int hasuntil;
- +
- + if (iscont) {
- + i_gmtoff = ZFC_GMTOFF;
- + i_rule = ZFC_RULE;
- + i_format = ZFC_FORMAT;
- + i_untilyear = ZFC_TILYEAR;
- + i_untilmonth = ZFC_TILMONTH;
- + i_untilday = ZFC_TILDAY;
- + i_untiltime = ZFC_TILTIME;
- + z.z_name = NULL;
- + } else {
- + i_gmtoff = ZF_GMTOFF;
- + i_rule = ZF_RULE;
- + i_format = ZF_FORMAT;
- + i_untilyear = ZF_TILYEAR;
- + i_untilmonth = ZF_TILMONTH;
- + i_untilday = ZF_TILDAY;
- + i_untiltime = ZF_TILTIME;
- + z.z_name = ecpyalloc(fields[ZF_NAME]);
- + }
- + z.z_filename = filename;
- + z.z_linenum = linenum;
- + z.z_gmtoff = gethms(fields[i_gmtoff], "invalid GMT offset", TRUE);
- + if ((cp = strchr(fields[i_format], '%')) != 0) {
- + if (*++cp != 's' || strchr(cp, '%') != 0) {
- + error("invalid abbreviation format");
- + return FALSE;
- + }
- + }
- + z.z_rule = ecpyalloc(fields[i_rule]);
- + z.z_format = ecpyalloc(fields[i_format]);
- + hasuntil = nfields > i_untilyear;
- + if (hasuntil) {
- + z.z_untilrule.r_filename = filename;
- + z.z_untilrule.r_linenum = linenum;
- + rulesub(&z.z_untilrule,
- + fields[i_untilyear],
- + "only",
- + "",
- + (nfields > i_untilmonth) ? fields[i_untilmonth] : "Jan",
- + (nfields > i_untilday) ? fields[i_untilday] : "1",
- + (nfields > i_untiltime) ? fields[i_untiltime] : "0");
- + z.z_untiltime = rpytime(&z.z_untilrule, z.z_untilrule.r_loyear);
- + if (iscont && nzones > 0 && z.z_untiltime < max_time &&
- + z.z_untiltime > min_time &&
- + zones[nzones - 1].z_untiltime >= z.z_untiltime) {
- + error("Zone continuation line end time is not after end time of previous line");
- + return FALSE;
- + }
- + }
- + zones = (struct zone *) erealloc((char *) zones,
- + (int) ((nzones + 1) * sizeof *zones));
- + zones[nzones++] = z;
- + /*
- + ** If there was an UNTIL field on this line,
- + ** there's more information about the zone on the next line.
- + */
- + return hasuntil;
- + }
- +
- + static void
- + inleap(fields, nfields)
- + register char ** const fields;
- + const int nfields;
- + {
- + register const char * cp;
- + register const struct lookup * lp;
- + register int i, j;
- + int year, month, day;
- + long dayoff, tod;
- + time_t t;
- +
- + if (nfields != LEAP_FIELDS) {
- + error("wrong number of fields on Leap line");
- + return;
- + }
- + dayoff = 0;
- + cp = fields[LP_YEAR];
- + if (sscanf((char *)cp, "%d", &year) != 1 ||
- + year < min_year || year > max_year) {
- + /*
- + * Leapin' Lizards!
- + */
- + error("invalid leaping year");
- + return;
- + }
- + j = EPOCH_YEAR;
- + while (j != year) {
- + if (year > j) {
- + i = len_years[isleap(j)];
- + ++j;
- + } else {
- + --j;
- + i = -len_years[isleap(j)];
- + }
- + dayoff = oadd(dayoff, eitol(i));
- + }
- + if ((lp = byword(fields[LP_MONTH], mon_names)) == NULL) {
- + error("invalid month name");
- + return;
- + }
- + month = lp->l_value;
- + j = TM_JANUARY;
- + while (j != month) {
- + i = len_months[isleap(year)][j];
- + dayoff = oadd(dayoff, eitol(i));
- + ++j;
- + }
- + cp = fields[LP_DAY];
- + if (sscanf((char *)cp, "%d", &day) != 1 ||
- + day <= 0 || day > len_months[isleap(year)][month]) {
- + error("invalid day of month");
- + return;
- + }
- + dayoff = oadd(dayoff, eitol(day - 1));
- + if (dayoff < 0 && !tt_signed) {
- + error("time before zero");
- + return;
- + }
- + t = (time_t) dayoff * SECSPERDAY;
- + /*
- + ** Cheap overflow check.
- + */
- + if (t / SECSPERDAY != dayoff) {
- + error("time overflow");
- + return;
- + }
- + tod = gethms(fields[LP_TIME], "invalid time of day", FALSE);
- + cp = fields[LP_CORR];
- + if (strcmp(cp, "+") != 0 && strcmp(cp, "") != 0) {
- + /* infile() turned "-" into "" */
- + error("illegal CORRECTION field on Leap line");
- + return;
- + }
- + if ((lp = byword(fields[LP_ROLL], leap_types)) == NULL) {
- + error("illegal Rolling/Stationary field on Leap line");
- + return;
- + }
- + addleap(tadd(t, tod), *cp == '+', lp->l_value);
- + }
- +
- + static void
- + inlink(fields, nfields)
- + register char ** const fields;
- + const int nfields;
- + {
- + struct link l;
- +
- + if (nfields != LINK_FIELDS) {
- + error("wrong number of fields on Link line");
- + return;
- + }
- + if (*fields[LF_FROM] == '\0') {
- + error("blank FROM field on Link line");
- + return;
- + }
- + if (*fields[LF_TO] == '\0') {
- + error("blank TO field on Link line");
- + return;
- + }
- + l.l_filename = filename;
- + l.l_linenum = linenum;
- + l.l_from = ecpyalloc(fields[LF_FROM]);
- + l.l_to = ecpyalloc(fields[LF_TO]);
- + links = (struct link *) erealloc((char *) links,
- + (int) ((nlinks + 1) * sizeof *links));
- + links[nlinks++] = l;
- + }
- +
- + static void
- + rulesub(rp, loyearp, hiyearp, typep, monthp, dayp, timep)
- + register struct rule * const rp;
- + char * const loyearp;
- + char * const hiyearp;
- + char * const typep;
- + char * const monthp;
- + char * const dayp;
- + char * const timep;
- + {
- + register struct lookup const * lp;
- + register char * cp;
- +
- + if ((lp = byword(monthp, mon_names)) == NULL) {
- + error("invalid month name");
- + return;
- + }
- + rp->r_month = lp->l_value;
- + rp->r_todisstd = FALSE;
- + cp = timep;
- + if (*cp != '\0') {
- + cp += strlen(cp) - 1;
- + switch (lowerit(*cp)) {
- + case 's':
- + rp->r_todisstd = TRUE;
- + *cp = '\0';
- + break;
- + case 'w':
- + rp->r_todisstd = FALSE;
- + *cp = '\0';
- + break;
- + }
- + }
- + rp->r_tod = gethms(timep, "invalid time of day", FALSE);
- + /*
- + ** Year work.
- + */
- + cp = loyearp;
- + if ((lp = byword(cp, begin_years)) != NULL) switch ((int) lp->l_value) {
- + case YR_MINIMUM:
- + rp->r_loyear = min_year;
- + break;
- + case YR_MAXIMUM:
- + rp->r_loyear = max_year;
- + break;
- + default: /* "cannot happen" */
- + (void) fprintf(stderr,
- + "%s: panic: Invalid l_value %d\n",
- + progname, lp->l_value);
- + (void) exit(EXIT_FAILURE);
- + } else if (sscanf(cp, "%d", &rp->r_loyear) != 1 ||
- + rp->r_loyear < min_year || rp->r_loyear > max_year) {
- + if (noise)
- + error("invalid starting year");
- + if (rp->r_loyear > max_year)
- + return;
- + }
- + cp = hiyearp;
- + if ((lp = byword(cp, end_years)) != NULL) switch ((int) lp->l_value) {
- + case YR_MINIMUM:
- + rp->r_hiyear = min_year;
- + break;
- + case YR_MAXIMUM:
- + rp->r_hiyear = max_year;
- + break;
- + case YR_ONLY:
- + rp->r_hiyear = rp->r_loyear;
- + break;
- + default: /* "cannot happen" */
- + (void) fprintf(stderr,
- + "%s: panic: Invalid l_value %d\n",
- + progname, lp->l_value);
- + (void) exit(EXIT_FAILURE);
- + } else if (sscanf(cp, "%d", &rp->r_hiyear) != 1 ||
- + rp->r_hiyear < min_year || rp->r_hiyear > max_year) {
- + if (noise)
- + error("invalid ending year");
- + if (rp->r_hiyear < min_year)
- + return;
- + }
- + if (rp->r_hiyear < min_year)
- + return;
- + if (rp->r_loyear < min_year)
- + rp->r_loyear = min_year;
- + if (rp->r_hiyear > max_year)
- + rp->r_hiyear = max_year;
- + if (rp->r_loyear > rp->r_hiyear) {
- + error("starting year greater than ending year");
- + return;
- + }
- + if (*typep == '\0')
- + rp->r_yrtype = NULL;
- + else {
- + if (rp->r_loyear == rp->r_hiyear) {
- + error("typed single year");
- + return;
- + }
- + rp->r_yrtype = ecpyalloc(typep);
- + }
- + /*
- + ** Day work.
- + ** Accept things such as:
- + ** 1
- + ** last-Sunday
- + ** Sun<=20
- + ** Sun>=7
- + */
- + if ((lp = byword(dayp, lasts)) != NULL) {
- + rp->r_dycode = DC_DOWLEQ;
- + rp->r_wday = lp->l_value;
- + rp->r_dayofmonth = len_months[1][rp->r_month];
- + } else {
- + if ((cp = strchr(dayp, '<')) != 0)
- + rp->r_dycode = DC_DOWLEQ;
- + else if ((cp = strchr(dayp, '>')) != 0)
- + rp->r_dycode = DC_DOWGEQ;
- + else {
- + cp = dayp;
- + rp->r_dycode = DC_DOM;
- + }
- + if (rp->r_dycode != DC_DOM) {
- + *cp++ = 0;
- + if (*cp++ != '=') {
- + error("invalid day of month");
- + return;
- + }
- + if ((lp = byword(dayp, wday_names)) == NULL) {
- + error("invalid weekday name");
- + return;
- + }
- + rp->r_wday = lp->l_value;
- + }
- + if (sscanf(cp, "%d", &rp->r_dayofmonth) != 1 ||
- + rp->r_dayofmonth <= 0 ||
- + (rp->r_dayofmonth > len_months[1][rp->r_month])) {
- + error("invalid day of month");
- + return;
- + }
- + }
- + }
- +
- + static void
- + convert(val, buf)
- + const long val;
- + char * const buf;
- + {
- + register int i;
- + register long shift;
- +
- + for (i = 0, shift = 24; i < 4; ++i, shift -= 8)
- + buf[i] = val >> shift;
- + }
- +
- + static void
- + puttzcode(val, fp)
- + const long val;
- + FILE * const fp;
- + {
- + char buf[4];
- +
- + convert(val, buf);
- + (void) fwrite((void *) buf, (size_t) sizeof buf, (size_t) 1, fp);
- + }
- +
- + static void
- + writezone(name)
- + const char * const name;
- + {
- + register FILE * fp;
- + register int i, j;
- + char fullname[BUFSIZ];
- + static struct tzhead tzh;
- +
- + if (strlen(directory) + 1 + strlen(name) >= sizeof fullname) {
- + (void) fprintf(stderr,
- + "%s: File name %s/%s too long\n", progname,
- + directory, name);
- + (void) exit(EXIT_FAILURE);
- + }
- + (void) sprintf(fullname, "%s/%s", directory, name);
- + if ((fp = fopen(fullname, "wb")) == NULL) {
- + if (mkdirs(fullname) != 0)
- + (void) exit(EXIT_FAILURE);
- + if ((fp = fopen(fullname, "wb")) == NULL) {
- + (void) fprintf(stderr, "%s: Can't create ", progname);
- + (void) perror(fullname);
- + (void) exit(EXIT_FAILURE);
- + }
- + }
- + convert(eitol(typecnt), tzh.tzh_ttisstdcnt);
- + convert(eitol(leapcnt), tzh.tzh_leapcnt);
- + convert(eitol(timecnt), tzh.tzh_timecnt);
- + convert(eitol(typecnt), tzh.tzh_typecnt);
- + convert(eitol(charcnt), tzh.tzh_charcnt);
- + (void) fwrite((void *) &tzh, (size_t) sizeof tzh, (size_t) 1, fp);
- + for (i = 0; i < timecnt; ++i) {
- + j = leapcnt;
- + while (--j >= 0)
- + if (ats[i] >= trans[j]) {
- + ats[i] = tadd(ats[i], corr[j]);
- + break;
- + }
- + puttzcode((long) ats[i], fp);
- + }
- + if (timecnt > 0)
- + (void) fwrite((void *) types, (size_t) sizeof types[0],
- + (size_t) timecnt, fp);
- + for (i = 0; i < typecnt; ++i) {
- + puttzcode((long) gmtoffs[i], fp);
- + (void) putc(isdsts[i], fp);
- + (void) putc(abbrinds[i], fp);
- + }
- + if (charcnt != 0)
- + (void) fwrite((void *) chars, (size_t) sizeof chars[0],
- + (size_t) charcnt, fp);
- + for (i = 0; i < leapcnt; ++i) {
- + if (roll[i]) {
- + if (timecnt == 0 || trans[i] < ats[0]) {
- + j = 0;
- + while (isdsts[j])
- + if (++j >= typecnt) {
- + j = 0;
- + break;
- + }
- + } else {
- + j = 1;
- + while (j < timecnt && trans[i] >= ats[j])
- + ++j;
- + j = types[j - 1];
- + }
- + puttzcode((long) tadd(trans[i], -gmtoffs[j]), fp);
- + } else puttzcode((long) trans[i], fp);
- + puttzcode((long) corr[i], fp);
- + }
- + for (i = 0; i < typecnt; ++i)
- + (void) putc(ttisstds[i], fp);
- + if (ferror(fp) || fclose(fp)) {
- + (void) fprintf(stderr, "%s: Write error on ", progname);
- + (void) perror(fullname);
- + (void) exit(EXIT_FAILURE);
- + }
- + }
- +
- + static void
- + outzone(zpfirst, zonecount)
- + const struct zone * const zpfirst;
- + const int zonecount;
- + {
- + register const struct zone * zp;
- + register struct rule * rp;
- + register int i, j;
- + register int usestart, useuntil;
- + register time_t starttime, untiltime;
- + register long gmtoff;
- + register long stdoff;
- + register int year;
- + register long startoff;
- + register int startisdst;
- + register int startttisstd;
- + register int type;
- + char startbuf[BUFSIZ];
- +
- + /*
- + ** Now. . .finally. . .generate some useful data!
- + */
- + timecnt = 0;
- + typecnt = 0;
- + charcnt = 0;
- + /*
- + ** Two guesses. . .the second may well be corrected later.
- + */
- + gmtoff = zpfirst->z_gmtoff;
- + stdoff = 0;
- + #ifdef lint
- + starttime = 0;
- + startttisstd = FALSE;
- + #endif /* defined lint */
- + for (i = 0; i < zonecount; ++i) {
- + usestart = i > 0;
- + useuntil = i < (zonecount - 1);
- + zp = &zpfirst[i];
- + eat(zp->z_filename, zp->z_linenum);
- + startisdst = -1;
- + if (zp->z_nrules == 0) {
- + type = addtype(oadd(zp->z_gmtoff, zp->z_stdoff),
- + zp->z_format, zp->z_stdoff != 0,
- + startttisstd);
- + if (usestart)
- + addtt(starttime, type);
- + gmtoff = zp->z_gmtoff;
- + stdoff = zp->z_stdoff;
- + } else for (year = min_year; year <= max_year; ++year) {
- + if (useuntil && year > zp->z_untilrule.r_hiyear)
- + break;
- + /*
- + ** Mark which rules to do in the current year.
- + ** For those to do, calculate rpytime(rp, year);
- + */
- + for (j = 0; j < zp->z_nrules; ++j) {
- + rp = &zp->z_rules[j];
- + eats(zp->z_filename, zp->z_linenum,
- + rp->r_filename, rp->r_linenum);
- + rp->r_todo = year >= rp->r_loyear &&
- + year <= rp->r_hiyear &&
- + yearistype(year, rp->r_yrtype);
- + if (rp->r_todo)
- + rp->r_temp = rpytime(rp, year);
- + }
- + for ( ; ; ) {
- + register int k;
- + register time_t jtime, ktime;
- + register long offset;
- + char buf[BUFSIZ];
- +
- + if (useuntil) {
- + /*
- + ** Turn untiltime into GMT
- + ** assuming the current gmtoff and
- + ** stdoff values.
- + */
- + offset = gmtoff;
- + if (!zp->z_untilrule.r_todisstd)
- + offset = oadd(offset, stdoff);
- + untiltime = tadd(zp->z_untiltime,
- + -offset);
- + }
- + /*
- + ** Find the rule (of those to do, if any)
- + ** that takes effect earliest in the year.
- + */
- + k = -1;
- + #ifdef lint
- + ktime = 0;
- + #endif /* defined lint */
- + for (j = 0; j < zp->z_nrules; ++j) {
- + rp = &zp->z_rules[j];
- + if (!rp->r_todo)
- + continue;
- + eats(zp->z_filename, zp->z_linenum,
- + rp->r_filename, rp->r_linenum);
- + offset = gmtoff;
- + if (!rp->r_todisstd)
- + offset = oadd(offset, stdoff);
- + jtime = rp->r_temp;
- + if (jtime == min_time ||
- + jtime == max_time)
- + continue;
- + jtime = tadd(jtime, -offset);
- + if (k < 0 || jtime < ktime) {
- + k = j;
- + ktime = jtime;
- + }
- + }
- + if (k < 0)
- + break; /* go on to next year */
- + rp = &zp->z_rules[k];
- + rp->r_todo = FALSE;
- + if (useuntil && ktime >= untiltime)
- + break;
- + if (usestart) {
- + if (ktime < starttime) {
- + stdoff = rp->r_stdoff;
- + startoff = oadd(zp->z_gmtoff,
- + rp->r_stdoff);
- + (void) sprintf(startbuf,
- + zp->z_format,
- + rp->r_abbrvar);
- + startisdst =
- + rp->r_stdoff != 0;
- + continue;
- + }
- + if (ktime != starttime &&
- + startisdst >= 0)
- + addtt(starttime, addtype(startoff, startbuf, startisdst, startttisstd));
- + usestart = FALSE;
- + }
- + eats(zp->z_filename, zp->z_linenum,
- + rp->r_filename, rp->r_linenum);
- + (void) sprintf(buf, zp->z_format,
- + rp->r_abbrvar);
- + offset = oadd(zp->z_gmtoff, rp->r_stdoff);
- + type = addtype(offset, buf, rp->r_stdoff != 0,
- + rp->r_todisstd);
- + if (timecnt != 0 || rp->r_stdoff != 0)
- + addtt(ktime, type);
- + gmtoff = zp->z_gmtoff;
- + stdoff = rp->r_stdoff;
- + }
- + }
- + /*
- + ** Now we may get to set starttime for the next zone line.
- + */
- + if (useuntil) {
- + starttime = tadd(zp->z_untiltime,
- + -gmtoffs[types[timecnt - 1]]);
- + startttisstd = zp->z_untilrule.r_todisstd;
- + }
- + }
- + writezone(zpfirst->z_name);
- + }
- +
- + static void
- + addtt(starttime, type)
- + const time_t starttime;
- + const int type;
- + {
- + if (timecnt != 0 && type == types[timecnt - 1])
- + return; /* easy enough! */
- + if (timecnt >= TZ_MAX_TIMES) {
- + error("too many transitions?!");
- + (void) exit(EXIT_FAILURE);
- + }
- + ats[timecnt] = starttime;
- + types[timecnt] = type;
- + ++timecnt;
- + }
- +
- + static int
- + addtype(gmtoff, abbr, isdst, ttisstd)
- + const long gmtoff;
- + const char * const abbr;
- + const int isdst;
- + const int ttisstd;
- + {
- + register int i, j;
- +
- + /*
- + ** See if there's already an entry for this zone type.
- + ** If so, just return its index.
- + */
- + for (i = 0; i < typecnt; ++i) {
- + if (gmtoff == gmtoffs[i] && isdst == isdsts[i] &&
- + strcmp(abbr, &chars[abbrinds[i]]) == 0 &&
- + ttisstd == ttisstds[i])
- + return i;
- + }
- + /*
- + ** There isn't one; add a new one, unless there are already too
- + ** many.
- + */
- + if (typecnt >= TZ_MAX_TYPES) {
- + error("too many local time types");
- + (void) exit(EXIT_FAILURE);
- + }
- + gmtoffs[i] = gmtoff;
- + isdsts[i] = isdst;
- + ttisstds[i] = ttisstd;
- +
- + for (j = 0; j < charcnt; ++j)
- + if (strcmp(&chars[j], abbr) == 0)
- + break;
- + if (j == charcnt)
- + newabbr(abbr);
- + abbrinds[i] = j;
- + ++typecnt;
- + return i;
- + }
- +
- + static void
- + addleap(t, positive, rolling)
- + const time_t t;
- + const int positive;
- + const int rolling;
- + {
- + register int i, j;
- +
- + if (leapcnt >= TZ_MAX_LEAPS) {
- + error("too many leap seconds");
- + (void) exit(EXIT_FAILURE);
- + }
- + for (i = 0; i < leapcnt; ++i)
- + if (t <= trans[i]) {
- + if (t == trans[i]) {
- + error("repeated leap second moment");
- + (void) exit(EXIT_FAILURE);
- + }
- + break;
- + }
- + for (j = leapcnt; j > i; --j) {
- + trans[j] = trans[j-1];
- + corr[j] = corr[j-1];
- + roll[j] = roll[j-1];
- + }
- + trans[i] = t;
- + corr[i] = (positive ? 1L : -1L);
- + roll[i] = rolling;
- + ++leapcnt;
- + }
- +
- + static void
- + adjleap()
- + {
- + register int i;
- + register long last = 0;
- +
- + /*
- + ** propagate leap seconds forward
- + */
- + for (i = 0; i < leapcnt; ++i) {
- + trans[i] = tadd(trans[i], last);
- + last = corr[i] += last;
- + }
- + }
- +
- + static int
- + yearistype(year, type)
- + const int year;
- + const char * const type;
- + {
- + char buf[BUFSIZ];
- + int result;
- +
- + if (type == NULL || *type == '\0')
- + return TRUE;
- + if (strcmp(type, "uspres") == 0)
- + return (year % 4) == 0;
- + if (strcmp(type, "nonpres") == 0)
- + return (year % 4) != 0;
- + (void) sprintf(buf, "yearistype %d %s", year, type);
- + result = system(buf);
- + if (result == 0)
- + return TRUE;
- + if (result == (1 << 8))
- + return FALSE;
- + error("Wild result from command execution");
- + (void) fprintf(stderr, "%s: command was '%s', result was %d\n",
- + progname, buf, result);
- + for ( ; ; )
- + (void) exit(EXIT_FAILURE);
- + }
- +
- + static int
- + lowerit(a)
- + const int a;
- + {
- + return (isascii(a) && isupper(a)) ? tolower(a) : a;
- + }
- +
- + static int
- + ciequal(ap, bp) /* case-insensitive equality */
- + register const char * ap;
- + register const char * bp;
- + {
- + while (lowerit(*ap) == lowerit(*bp++))
- + if (*ap++ == '\0')
- + return TRUE;
- + return FALSE;
- + }
- +
- + static int
- + itsabbr(abbr, word)
- + register const char * abbr;
- + register const char * word;
- + {
- + if (lowerit(*abbr) != lowerit(*word))
- + return FALSE;
- + ++word;
- + while (*++abbr != '\0')
- + do if (*word == '\0')
- + return FALSE;
- + while (lowerit(*word++) != lowerit(*abbr));
- + return TRUE;
- + }
- +
- + static const struct lookup *
- + byword(word, table)
- + register const char * const word;
- + register const struct lookup * const table;
- + {
- + register const struct lookup * foundlp;
- + register const struct lookup * lp;
- +
- + if (word == NULL || table == NULL)
- + return NULL;
- + /*
- + ** Look for exact match.
- + */
- + for (lp = table; lp->l_word != NULL; ++lp)
- + if (ciequal(word, lp->l_word))
- + return lp;
- + /*
- + ** Look for inexact match.
- + */
- + foundlp = NULL;
- + for (lp = table; lp->l_word != NULL; ++lp)
- + if (itsabbr(word, lp->l_word))
- + if (foundlp == NULL)
- + foundlp = lp;
- + else return NULL; /* multiple inexact matches */
- + return foundlp;
- + }
- +
- + static char **
- + getfields(cp)
- + register char * cp;
- + {
- + register char * dp;
- + register char ** array;
- + register int nsubs;
- +
- + if (cp == NULL)
- + return NULL;
- + array = (char **) emalloc((int) ((strlen(cp) + 1) * sizeof *array));
- + nsubs = 0;
- + for ( ; ; ) {
- + while (isascii(*cp) && isspace(*cp))
- + ++cp;
- + if (*cp == '\0' || *cp == '#')
- + break;
- + array[nsubs++] = dp = cp;
- + do {
- + if ((*dp = *cp++) != '"')
- + ++dp;
- + else while ((*dp = *cp++) != '"')
- + if (*dp != '\0')
- + ++dp;
- + else error("Odd number of quotation marks");
- + } while (*cp != '\0' && *cp != '#' &&
- + (!isascii(*cp) || !isspace(*cp)));
- + if (isascii(*cp) && isspace(*cp))
- + ++cp;
- + *dp = '\0';
- + }
- + array[nsubs] = NULL;
- + return array;
- + }
- +
- + static long
- + oadd(t1, t2)
- + const long t1;
- + const long t2;
- + {
- + register long t;
- +
- + t = t1 + t2;
- + if (t2 > 0 && t <= t1 || t2 < 0 && t >= t1) {
- + error("time overflow");
- + (void) exit(EXIT_FAILURE);
- + }
- + return t;
- + }
- +
- + static time_t
- + tadd(t1, t2)
- + const time_t t1;
- + const long t2;
- + {
- + register time_t t;
- +
- + if (t1 == max_time && t2 > 0)
- + return max_time;
- + if (t1 == min_time && t2 < 0)
- + return min_time;
- + t = t1 + t2;
- + if (t2 > 0 && t <= t1 || t2 < 0 && t >= t1) {
- + error("time overflow");
- + (void) exit(EXIT_FAILURE);
- + }
- + return t;
- + }
- +
- + /*
- + ** Given a rule, and a year, compute the date - in seconds since January 1,
- + ** 1970, 00:00 LOCAL time - in that year that the rule refers to.
- + */
- +
- + static time_t
- + rpytime(rp, wantedy)
- + register const struct rule * const rp;
- + register const int wantedy;
- + {
- + register int y, m, i;
- + register long dayoff; /* with a nod to Margaret O. */
- + register time_t t;
- +
- + dayoff = 0;
- + m = TM_JANUARY;
- + y = EPOCH_YEAR;
- + while (wantedy != y) {
- + if (wantedy > y) {
- + i = len_years[isleap(y)];
- + ++y;
- + } else {
- + --y;
- + i = -len_years[isleap(y)];
- + }
- + dayoff = oadd(dayoff, eitol(i));
- + }
- + while (m != rp->r_month) {
- + i = len_months[isleap(y)][m];
- + dayoff = oadd(dayoff, eitol(i));
- + ++m;
- + }
- + i = rp->r_dayofmonth;
- + if (m == TM_FEBRUARY && i == 29 && !isleap(y)) {
- + if (rp->r_dycode == DC_DOWLEQ)
- + --i;
- + else {
- + error("use of 2/29 in non leap-year");
- + (void) exit(EXIT_FAILURE);
- + }
- + }
- + --i;
- + dayoff = oadd(dayoff, eitol(i));
- + if (rp->r_dycode == DC_DOWGEQ || rp->r_dycode == DC_DOWLEQ) {
- + register long wday;
- +
- + #define LDAYSPERWEEK ((long) DAYSPERWEEK)
- + wday = eitol(EPOCH_WDAY);
- + /*
- + ** Don't trust mod of negative numbers.
- + */
- + if (dayoff >= 0)
- + wday = (wday + dayoff) % LDAYSPERWEEK;
- + else {
- + wday -= ((-dayoff) % LDAYSPERWEEK);
- + if (wday < 0)
- + wday += LDAYSPERWEEK;
- + }
- + while (wday != eitol(rp->r_wday))
- + if (rp->r_dycode == DC_DOWGEQ) {
- + dayoff = oadd(dayoff, (long) 1);
- + if (++wday >= LDAYSPERWEEK)
- + wday = 0;
- + ++i;
- + } else {
- + dayoff = oadd(dayoff, (long) -1);
- + if (--wday < 0)
- + wday = LDAYSPERWEEK;
- + --i;
- + }
- + if (i < 0 || i >= len_months[isleap(y)][m]) {
- + error("no day in month matches rule");
- + (void) exit(EXIT_FAILURE);
- + }
- + }
- + if (dayoff < 0 && !tt_signed) {
- + if (wantedy == rp->r_loyear)
- + return min_time;
- + error("time before zero");
- + (void) exit(EXIT_FAILURE);
- + }
- + t = (time_t) dayoff * SECSPERDAY;
- + /*
- + ** Cheap overflow check.
- + */
- + if (t / SECSPERDAY != dayoff) {
- + if (wantedy == rp->r_hiyear)
- + return max_time;
- + if (wantedy == rp->r_loyear)
- + return min_time;
- + error("time overflow");
- + (void) exit(EXIT_FAILURE);
- + }
- + return tadd(t, rp->r_tod);
- + }
- +
- + static void
- + newabbr(string)
- + const char * const string;
- + {
- + register int i;
- +
- + i = strlen(string) + 1;
- + if (charcnt + i >= TZ_MAX_CHARS) {
- + error("too many, or too long, time zone abbreviations");
- + (void) exit(EXIT_FAILURE);
- + }
- + (void) strcpy(&chars[charcnt], string);
- + charcnt += eitol(i);
- + }
- +
- + static int
- + mkdirs(name)
- + char * const name;
- + {
- + register char * cp;
- +
- + if ((cp = name) == NULL || *cp == '\0')
- + return 0;
- + while ((cp = strchr(cp + 1, '/')) != 0) {
- + *cp = '\0';
- + if (!itsdir(name)) {
- + /*
- + ** It doesn't seem to exist, so we try to create it.
- + */
- + if (mkdir(name, 0755) != 0) {
- + (void) fprintf(stderr,
- + "%s: Can't create directory ",
- + progname);
- + (void) perror(name);
- + return -1;
- + }
- + }
- + *cp = '/';
- + }
- + return 0;
- + }
- +
- + static long
- + eitol(i)
- + const int i;
- + {
- + long l;
- +
- + l = i;
- + if (i < 0 && l >= 0 || i == 0 && l != 0 || i > 0 && l <= 0) {
- + (void) fprintf(stderr, "%s: %d did not sign extend correctly\n",
- + progname, i);
- + (void) exit(EXIT_FAILURE);
- + }
- + return l;
- + }
- +
- + /*
- + ** UNIX is a registered trademark of AT&T.
- + */
- diff -rc --new-file /src/baseline/emacs-18.59/amiga/unix/unix.doc emacs-18.59/amiga/unix/unix.doc
- *** /src/baseline/emacs-18.59/amiga/unix/unix.doc Thu Jan 1 00:00:00 1970
- --- emacs-18.59/amiga/unix/unix.doc Sun Jun 6 08:43:38 1993
- ***************
- *** 0 ****
- --- 1,452 ----
- + Unix compatibility library for SAS C 6.x version 1.2
- + ----------------------------------------------------
- +
- + Introduction
- + ------------
- +
- + This library provides 80 odd functions which are useful for porting
- + Unix programs to the Amiga running AmigaDOS 2.04 or higher. It is thus
- + similar to Markus Wild's ixemul.library, but has more restricted aims:
- +
- + a) It is written specifically for SAS C 6.1, 6.2, ...
- +
- + b) It isn't a complete C library, it requires the SAS C library to function.
- + It adds some routines, and replaces others that were deficient, out of date,
- + or that didn't provide adequate functionality.
- +
- + c) It isn't a complete Unix emulation library, it only contains those functions
- + that I needed while porting various utilities (mainly from GNU) to the Amiga.
- +
- + d) It is a traditional C link library, not an Amiga library. This produces
- + bigger executables.
- +
- + Considering the above points, you might ask why I wrote it ... There are several
- + good answers:
- +
- + a) I started it before I was aware of ixemul.library.
- +
- + b) ixemul.library didn't provide the features I needed for Emacs (support for
- + select).
- +
- + c) It is easier for me to maintain when I find I need to support another Unix
- + feature (eg deleting open files).
- +
- + Copying
- + -------
- +
- + The library includes code that I have written, which I place in the public domain.
- + This is found in all the files that don't have a Copyright notice.
- +
- + It also includes code which is (inclusive of my modifications)
- +
- + Copyright (c) 1982, 1986, 1991 The Regents of the University of California.
- + All rights reserved.
- +
- + This code is freely redistributable (see the copyright notices in the source
- + and include files).
- +
- + Finally it includes Doug Gwyn's public domain alloca implementation.
- +
- + Installation & Use
- + ------------------
- +
- + To use this library, you must compile with the include directory in your include
- + search path, and link with the unix.lib library (which must be specified before
- + lc.lib). For example, if you extract this archive in a directory called src:, you
- + could compile the following program:
- +
- + echo.c:
- +
- + #include <sys/unistd.h>
- +
- + void main(int argc, char **argv)
- + {
- + int i;
- +
- + for (i = 1; i < argc; i++)
- + {
- + if (i != 1) write(1, " ", 1);
- + write(1, argv[i], strlen(argv[i]));
- + }
- + write(1, "\n", 1);
- + }
- +
- + with the command
- +
- + sc idir src:unix/include/ lib src:unix/src/unix.lib link echo.c
- +
- + to produce a simple unix-like echo command.
- +
- + You should define the following environment variables:
- +
- + USER - A user name for the sole Amiga user (default "user").
- + USERNAME - The full name of the sole Amiga user (default $USER).
- + HOME - A "home" directory (default "s:") for programs that want one. Configuration
- + files will probably end up here ...
- + SHELL - A program which behaves reasonably like a Unix shell (default "bin:sh").
- + You should copy the sh executable there if you don't have a Unix-like shell.
- + HOSTNAME - The name of your machine (default "amiga").
- +
- + If you are going to be using pipes, you will require Matt Dillon's fifo.library
- + and fifo: device. This can be found on the Fish disks, with his UUCP distribution
- + and on many FTP sites.
- +
- + If you want to install the timezone information (see the discussion below on
- + Unix vs Amiga time), do the following:
- +
- + a) change to the zoneinfo directory
- + b) compile the zic problem by running lmk.
- + c) change to the datfiles directory.
- + d) edit lmkfile and choose your timezone (you can look at the data files
- + to see the ones available). If you get this wrong, you can always change
- + it later with the zic program.
- + e) type 'lmk install'. This will compile the timezones, and setup the one
- + you chose as the default. The default can be changed with
- + zic -l <timezone name>
- +
- + or by defining the environment variable TZ.
- +
- + Functionality
- + -------------
- +
- + While this library aims to hide the differences between AmigaDOS & Unix,
- + it also aims to provide support for Amiga specific features. This sometimes
- + produces strange compromises.
- +
- + This library provides two things to programs linked with it:
- +
- + a) A Unix-like environment:
- +
- + This includes:
- +
- + - Unix-like command line parsing, with wildcard expansion. These
- + wildcards are however specified with the Amiga syntax.
- +
- + Arguments which are unquoted or surround with single quotes are
- + handled like Unix shells. Those surrounded with double quotes are
- + handled in the Amiga fashion, but with wildcard expansion (this is
- + done to avoid problems with the way the exec function works).
- +
- + Here is a summary of argument splitting:
- +
- + Arguments can be enclosed in single quotes, (') double quotes ("), or
- + separated by spaces.
- +
- + Arguments enclosed by single quotes never suffer wildcard expansion, and
- + no character is significant inside them (not even \). Given the echo program
- + given above,
- +
- + echo 'f*un\'
- +
- + simply displays
- +
- + f*un\
- +
- + Within double quotes, * is the standard Amiga escape character. \ is
- + handled just like any other character. Wildcards are expanded. So,
- + assuming the current directory contains only echo.c and echo,
- +
- + echo "#?.c" "*.c" "\mad"
- +
- + displays
- +
- + echo.c .c \mad
- +
- + (* escapes the following character, except that *N is newline and *E is
- + escape. Wildcard characters still behave as usual (' is the standard
- + Amiga wildcard escape character)).
- +
- + If an argument is unquoted, \ acts as an escape character (removing
- + special significance from the next character, be it a wildcard, a space,
- + a \, ...). So
- +
- + echo \*.c \\ \n
- +
- + displays
- +
- + *.c \ n
- +
- + - When a program is run from the Workbench, stdin, stdout & stderr are opened
- + on NIL:, and the icons selected are converted to file names and passed as the
- + argc,argv to main.
- +
- + - The standard variable environ is defined and contains all the local environment
- + variables. This is passed as the envp parameter to main.
- +
- + - The program is led to believe that all files belong to $USER (uid 1), group
- + wheel (gid 0).
- +
- + - Amiga protection flags are mapped onto the standard 12 Unix protection bits
- + (and back when necessary). This can be overridden (dynamically) by changing the
- + value of use_amiga_flags. Eg:
- +
- + extern int use_amiga_flags;
- +
- + ...
- +
- +
- + main()
- + {
- + use_amiga_flags = 1;
- +
- + ... some code using stat or chmod or ...
- + }
- +
- + In this case, the Amiga protection bits are left untouched. Otherwise the
- + mapping is as follows (note that the archive bit is lost):
- +
- + Unix -> Amiga
- +
- + Amiga read: if user, group or world read.
- + Amiga write: if user or group write.
- + Amiga delete: if user or world write.
- + Amiga execute: if group execute or only user execute.
- + Amiga script: if world execute or only user execute.
- + Amiga pure: if sticky.
- +
- + Amiga -> Unix
- +
- + user, group, world read: if amiga read.
- + user write: if amiga write and delete.
- + group write: if amiga write.
- + world write: if amiga delete.
- + user execute: if amiga execute or amiga script.
- + group execute: if amiga execute.
- + world execute: if amiga script.
- + sticky: if amiga pure.
- +
- + - Unix-like time. time is expressed in seconds since 1-Jan-1970 00:00 GMT.
- + This is the format used by the time(), stat() and utime() functions. The
- + library uses the BSD time functions which properly handle timezones,
- + daylight savings time, etc.
- +
- + On Unix systems, time is generally stored as GMT, while the Amiga stores
- + local time. These times are visible in two places: the time stored in the
- + system clock and the creation, modification or access dates for files (only
- + the modification date is available on the Amiga). There are 3 ways to resolve
- + this conflict:
- +
- + 1) Ignore timezones (you can choose this option by not installing the
- + timezone information). The library will then assume that system time
- + and file times are expressed in GMT and will never apply any
- + corrections. All will work well (except maybe on a global network).
- + This is the simplest solution.
- +
- + 2) System & file time are assumed to be local times. The time() & stat()
- + functions convert local time to GMT, the utime() call converts GMT to
- + local time. This allows you to keep the system clock on local time, which
- + is compatible with most (all?) Amiga applications. However, nearly every
- + program will be bigger because they will need the timezone information and
- + timezone conversion code (approximately 7k). The library can be recompiled
- + if you prefer to have things this way by adding -dUSE_LOCAL to the CFLAGS
- + variable in lmkfile.
- +
- + 3) System & file time are stored in GMT. Times are converted to local time
- + only when they are displayed to the user, who must of course choose the
- + correct timezone. This entails changing your system clock to GMT, which means
- + that most programs will display an incorrect time. However, you won't have
- + to change your system clock when daylight savings time ends ... The library
- + comes compiled this way (But you can still choose option 1, no timezone
- + information, and avoid the potential confusion).
- +
- + - BSD-like signals. Signal handlers stay enabled after a signal occurs
- + (that particular signal is simply masked for the duration of the handler).
- + setjmp & longjmp preserve the signal mask (the functions _setjmp & _longjmp
- + don't). You may receive any signal with kill(getpid(), sig). Otherwise only
- + the following occur:
- +
- + SIGINT: user typed ctrl-c
- + SIGQUIT: user typed ctrl-d
- + SIGALRM: alarm() expired
- + SIGCHLD: a child process died
- +
- + When using kill to signal another process, only SIGHUP, SIGINT, SIGQUIT &
- + SIGKILL do anything. They all send SIGBREAKF_CTRL_C | D to the process (and
- + hopefully its children). See the discussion under the exec function.
- +
- +
- + b) A large number of unix C library calls:
- +
- + _exit, _setjmp, _longjmp, abort, access, alloca, gettimeofday, ftime,
- + bcmp, bcopy, bzero, chmod, chown, fchown, close, creat, tzset, tzsetwall,
- + localtime, gmtime, asctime, ctime, mktime, opendir, closedir, readdir,
- + telldir, seekdir, fchmod, fcntl, fstat, ftruncate, getenv, gethostname,
- + getpid, getwd, getgid, getegid, getgrgid, getgrnam, index, ioctl, isatty,
- + kill, link, lseek, mkdir, mkfifo, mknod, mktemp, open, perror, pipe, sktpair,
- + getpwuid, getpwnam, getlogin, read, rename, rindex, rmdir, select, setjmp,
- + longjmp, signal, sigpause, sigsetmask, sleep, stat, strftime, time, truncate,
- + getuid, geteuid, umask, unlink, utime, wait, waitpid, wait3, wait4, write,
- + readlink, symlink, popen, pclose.
- +
- + These functions aim to be BSD compatible, however I based myself on descriptions
- + in the SunOS 4 man pages. Their behaviour is sometimes strange or incomplete.
- +
- + Here is a summary of the differences with the standard Unix functions:
- +
- + alloca - This is Doug Gwyn's portable alloca. Memory allocated is freed
- + later than with a true alloca.
- +
- + gettimeofday - The dst field of the timezone is a (not very good) guess. It
- + shouldn't be used anyway.
- +
- + chown, fchown - These are do-nothing routines.
- +
- + opendir, closedir, ... - These interact with stat to avoid having to read
- + each directory entry twice when doing a readdir + stat loop.
- +
- + fchmod - The protection is only set when the file is closed. See also the
- + discussion of protection modes above.
- +
- + fcntl - Only the F_GETFL & F_SETFL operations are supported.
- +
- + truncate, ftruncate - These will not necessarily work with all filing systems.
- + See the discussion of the AmigaDOS SetFileSize function.
- +
- + getenv - This checks local environment variables and then global ones. It
- + allocates memory for the variables value each time. This memory is never freed
- + (till the program exits).
- +
- + gethostname - This is obtained from the HOSTNAME environment variable at startup.
- +
- + getuid, geteuid, getgid, getegid, getpwuid, getpwnam, getgrgid, getgrnam, getlogin -
- + These function only know about one user. He/She is:
- +
- + name: $USER (default "user")
- + home directory: $HOME (default "s:")
- + shell: $SHELL (default "bin:sh")
- + uid: 1, gid: 0
- +
- + ioctl - Only FIONBIO & TIOCGWINSZ are known, plus a number of amiga specific
- + ioctls (for internal use). These are documented in include/amiga/ioctl.h.
- +
- + lseek - Seeks beyond the end of a file are not implemented.
- +
- + mkfifo, mknod - These are 'do-nothing' routines.
- +
- + pipe - This uses Matt Dillon's fifo.library and fifo: device. It works well
- + for interactive use, but not for transfering large quantities of data.
- +
- + select - This implementation only works with pipes & sktpairs, and cannot
- + detect 'exceptional' conditions.
- +
- + sigvec - The flags are not recognized.
- +
- + symlink - Symbolic links on the Amiga are far too buggy and should not be used.
- + By default, as compiled, this routine always returns an error. However readlink
- + does work, so you can read existing symbolic links.
- +
- + umask - This is a 'do-nothing' routine.
- +
- + unlink - You can unlink a file that your program has opened before you close
- + it. At that point, the AmigaDOS file is closed & deleted, though it still
- + appears open to read (it returns EOF), write, close, etc. Also you can unlink
- + a file even if it is protected from deletion (the protection mode is changed
- + first ...).
- +
- + utime - Only the modification time can be changed (the others don't exist).
- +
- + wait3, wait4 - Resource usage is never returned.
- +
- + exec
- + ----
- +
- + vfork() and execxx() are very tricky to implement. So I took the easy
- + (but see below) way out, providing a function, eexec, that create a
- + new process given argc, argv. This functions returns a pid which can
- + be used with wait, waitpid, ... as usual. Also exiting processes
- + generate the SIGCHLD signal. With this, it is generally fairly easy to
- + replace the process creation parts of most Unix programs.
- +
- + First, here is a description of the problems which arise:
- +
- + Executing an external program is tricky with AmigaDOS. The various system
- + routines (CreateNewProc, SystemTags, Execute) allow some operations to be
- + done easily, but make others difficult. Specifically, if you want to do all
- + of the following:
- +
- + - Execute a program given argc, argv (like with unix)
- + - Specify arbitrary input, output and error streams, including inheriting
- + the current ones.
- + - Have some of these streams be pipes of which you keep one end.
- + - Have some of these pipes appear to be interactive (this is used for example
- + by programs running inside emacs).
- + - Detect when the execute program exits, and get its return code.
- + - Send signals (eg ctrl-c) to the created process, and preferably its children.
- +
- + you are in deep trouble. A minimum of 10 attempts is needed to get
- + something which works most of the time, ie the eexec function.
- +
- + The problems are:
- + - You have to make a command line from argc, argv. But these arguments may
- + contain spaces, so they must be surrounded by double quotes. And then, '*'
- + must be escaped as it is the escape character. And so on.
- + - Only recently has an error stream appeared in AmigaDOS. And it doesn't
- + inherit very well (Indeed, specifying the error stream doesn't work in the
- + current version).
- + - Amiga programs generally expect interactive files to be console windows.
- + And fifo: is the only interactive pipe I'm aware of. So the pipe: system
- + call uses fifo: and fifo.library.
- + - To get the return code of an application, you must use the synchronous
- + version of SystemTags. Otherwise it is lost. But you want an asynchronous
- + process facility. So I create 2 processes, the first one is created with
- + CreateNewProc and executes a custom piece of code. This code launches
- + the real program with SystemTags, and sends a message with the return code
- + to its parent (if it is still around).
- + - You can't find the children of a process. So the signal is sent to all
- + the processes that share the input filehandle of the created process. This
- + is the best solution that I found.
- + - AmigaDOS isn't Unix.
- +
- + Therefore, the eexec function is far from perfect. It works as follows:
- +
- + eexec(program, argv, input, output, error, directory, stacksize)
- +
- + program: the path of the executable file. Your path is searched.
- + argv: A null terminated array of arguments. The first (argv[0]) is ignored.
- + input: A unix filehandle on the desired input. -1 means copy Input().
- + output: A unix filehandle on the desired output. -1 means copy Output().
- + error: A unix filehandle on the desired error stream. -1 means copy the pr_CES
- + field of the current process, -2 means copy the value specified for output.
- + Currently, this parameter has no effect.
- + directory: pathname for the current directory for the created process, or NULL
- + to inheir the current processes'.
- + stacksize: stack size for the created process. 0 means the same size as the
- + current stack.
- +
- + _start_process is a lower level interface:
- +
- + _start_process(command, input, close_input, output, close_output,
- + error, close_error, dir, stacksize)
- + command: the string to pass to SystemTags (it will be passed to
- + the UserShell, not the system default).
- + input, output, error, close_xxx: AmigaDOS filehandles for use as the
- + appropriate stream. If close_x is true, the corresponding stream will be
- + closed when the process exits.
- + dir: Lock on the desired directory for the new process.
- + stacksize: as above.
- +
- +
- + Recompiling
- + -----------
- +
- + To recompile, simply run lmk in the src directory. You can add the -dUSE_LOCAL
- + flag to CFLAGS in lmkfile if you want the system clock to store local time
- + instead of GMT.
- +
- + If you want symlink to work, add -dSOFTLINK to CFLAGS (For example, tar uses
- + a version of unix.lib compiled like this).
- +
- + If you add modules, you can use the mkmkf to remake the makefile dependencies
- + (it generates lmkfile from lmkfile.base and the dependencies for all the .c
- + files in the current directory). This program requires perl (available from
- + ftp sites).
- +
- +
- + Changes from 1.0 to 1.1
- + -----------------------
- + stat() now returns a value for st_dev.
- + exec() extended by eexec, assembly part rewritten in C.
- + symbolic links recognized. Their use is not recommended (too buggy).
- + sigvec added.
- + popen, pclose added.
- + Documentation discusses exec.
- diff -rc --new-file /src/baseline/emacs-18.59/cpp/SCOPTIONS emacs-18.59/cpp/SCOPTIONS
- *** /src/baseline/emacs-18.59/cpp/SCOPTIONS Thu Jan 1 00:00:00 1970
- --- emacs-18.59/cpp/SCOPTIONS Sat Jun 5 12:01:06 1993
- ***************
- *** 0 ****
- --- 1,7 ----
- + IGNORE=161
- + IGNORE=154
- + IGNORE=100
- + IGNORE=181
- + IGNORE=84
- + IGNORE=93
- + IGNORE=72
- \ No newline at end of file
- diff -rc --new-file /src/baseline/emacs-18.59/cpp/cccp.c emacs-18.59/cpp/cccp.c
- *** /src/baseline/emacs-18.59/cpp/cccp.c Fri Sep 28 16:17:57 1990
- --- emacs-18.59/cpp/cccp.c Sat Jun 5 12:07:16 1993
- ***************
- *** 97,103 ****
- --- 97,113 ----
-
- #ifdef EMACS
- #define NO_SHORTNAMES
- + #ifdef AMIGA
- + #include "/src/config.h"
- + #undef fflush
- + #undef fwrite
- + #undef main
- + #undef putchar
- + #undef AMIGA_DUMP
- + #include <string.h>
- + #else
- #include "../src/config.h"
- + #endif
- #ifdef static
- #undef static
- #endif
- ***************
- *** 115,121 ****
- --- 125,135 ----
- #include <ctype.h>
- #include <stdio.h>
- #ifndef USG
- + #ifdef AMIGA
- + #include <time.h>
- + #else
- #include <sys/time.h> /* for __DATE__ and __TIME__ */
- + #endif
- #else
- #define index strchr
- #define rindex strrchr
- ***************
- *** 123,130 ****
- --- 137,146 ----
- #include <fcntl.h>
- #endif /* USG */
-
- + #ifndef AMIGA
- void bcopy (), bzero ();
- int bcmp ();
- + #endif
-
- char *xmalloc (), *xrealloc (), *xcalloc ();
- void fatal (), pfatal_with_name (), perror_with_name ();
- ***************
- *** 142,156 ****
- --- 158,186 ----
- /* #include "file" starts with the first entry in the stack */
- /* #include <file> starts with the second. */
- /* -I directories are added after the first */
- + #ifdef AMIGA
- + struct directory_stack default_includes[2] =
- + {
- + { &default_includes[1], "" },
- + { 0, "include:" }
- + };
- + #else
- struct directory_stack default_includes[2] =
- {
- { &default_includes[1], "." },
- { 0, "/usr/include" }
- };
- + #endif
- +
- struct directory_stack *include = &default_includes[0];
-
- + #ifdef AMIGA
- int max_include_len = 14; /* strlen (default_include) + 2
- (for / and null) */
- + #else
- + int max_include_len = 9; /* st