]> pere.pagekite.me Git - homepage.git/commitdiff
More pages from www.hungry.com.
authorPetter Reinholdtsen <pere@hungry.com>
Thu, 15 Jan 2004 16:02:43 +0000 (16:02 +0000)
committerPetter Reinholdtsen <pere@hungry.com>
Thu, 15 Jan 2004 16:02:43 +0000 (16:02 +0000)
85 files changed:
hp4000c/XF86Config [new file with mode: 0644]
hp4000c/index.html [new file with mode: 0644]
hp4000c/index.html.19961018 [new file with mode: 0644]
hp4000c/soundconf [new file with mode: 0644]
huset/styrem.html [new file with mode: 0644]
java/Hello.html [new file with mode: 0644]
java/HelloWorld.class [new file with mode: 0644]
mrtg/index.html [new file with mode: 0644]
mrtg/mail-day.gif [new file with mode: 0644]
mrtg/mail-month.gif [new file with mode: 0644]
mrtg/mail-week.gif [new file with mode: 0644]
mrtg/mail-year.gif [new file with mode: 0644]
mrtg/mail.html [new file with mode: 0644]
mrtg/mail.log [new file with mode: 0644]
mrtg/mailstats [new file with mode: 0755]
mrtg/mq-day.gif [new file with mode: 0644]
mrtg/mq-month.gif [new file with mode: 0644]
mrtg/mq-week.gif [new file with mode: 0644]
mrtg/mq.html [new file with mode: 0644]
mrtg/mq.log [new file with mode: 0644]
mrtg/mqueue [new file with mode: 0755]
mrtg/mrtg.conf [new file with mode: 0644]
mrtg/mrtg.ok [new file with mode: 0644]
perl/aliases2html-1.0.tar.gz [new file with mode: 0644]
perl/aliases2html-1.1.tar.gz [new file with mode: 0644]
reports/rfc/draft-andrews-dns-ascii-01.txt [new file with mode: 0644]
reports/rfc/draft-gulbrandsen-dns-rr-srvcs-03.txt [new file with mode: 0644]
reports/rfc/draft-ietf-dnsind-clarify-01.txt [new file with mode: 0644]
reports/rfc/draft-ietf-dnsind-serial-03.txt [new file with mode: 0644]
reports/rfc/draft-ietf-drums-smtpupd-02.txt [new file with mode: 0644]
reports/rfc/draft-ietf-html-i18n-04.txt [new file with mode: 0644]
reports/rfc/draft-ietf-http-v11-spec-03.txt [new file with mode: 0644]
reports/rfc/draft-ietf-ids-dnsnames-00.txt [new file with mode: 0644]
reports/rfc/draft-ietf-mailext-mail-attributes-04.txt [new file with mode: 0644]
reports/rfc/draft-ietf-ssh-handbook-03.txt [new file with mode: 0644]
reports/rfc/draft-ietf-userglos-glossary2-01.txt [new file with mode: 0644]
reports/rfc/draft-newman-datetime-00.txt [new file with mode: 0644]
reports/rfc/draft-vixie-ops-stdaddr-00.txt [new file with mode: 0644]
reports/rfc/draft-vixie-ops-stdaddr-01.txt [new file with mode: 0644]
reports/rfc/rfc1942.txt [new file with mode: 0644]
ss/19960831-rekrutering.html [new file with mode: 0644]
ss/19960908.net-tjenester.html [new file with mode: 0644]
ss/9610.semavg.html [new file with mode: 0644]
ss/budsj96.html [new file with mode: 0644]
ss/pc-spec.html [new file with mode: 0644]
ss/ref97k.html [new file with mode: 0644]
ss/regn96.html [new file with mode: 0644]
store/doc-espensk/emacs-default.html [new file with mode: 0644]
store/doc-espensk/emacs-dir.html [new file with mode: 0644]
store/doc-espensk/environ.html [new file with mode: 0644]
store/doc-espensk/in-install.html [new file with mode: 0644]
store/doc-espensk/index.html [new file with mode: 0644]
store/doc-espensk/install.html [new file with mode: 0644]
store/doc-espensk/mailcap.html [new file with mode: 0644]
store/doc-espensk/post-install.html [new file with mode: 0644]
store/doc-espensk/pre-install.html [new file with mode: 0644]
store/doc-espensk/spec-config.html [new file with mode: 0644]
store/httpstore.html [new file with mode: 0644]
store/httpstore/httpstore-0.1.tar.gz [new file with mode: 0644]
store/httpstore/httpstore-0.2.tar.gz [new file with mode: 0644]
store/storepaper.ps [new file with mode: 0644]
td-drift/950209.referat.html [new file with mode: 0755]
td-drift/950330.referat.html [new file with mode: 0755]
td-drift/foreningstilgang.html [new file with mode: 0644]
td-drift/letter2.gif [new file with mode: 0644]
td-drift/skjema.html [new file with mode: 0644]
td-drift/tddb.gif [new file with mode: 0644]
td/jubile.budsjett.html [new file with mode: 0644]
td/jubile.debatt.html [new file with mode: 0644]
td/jubile.gjest.html [new file with mode: 0644]
td/jubile.jobb.txt [new file with mode: 0644]
td/jubile.oppsum.html [new file with mode: 0644]
td/jubile.prog.html [new file with mode: 0644]
td/saker.940913.html [new file with mode: 0644]
td/saker.941003.html [new file with mode: 0644]
td/saker.941025.html [new file with mode: 0644]
td/saker.941122.html [new file with mode: 0644]
td/saker.950119.html [new file with mode: 0644]
td/saker.950119.vinduet.txt [new file with mode: 0644]
td/saker.950201.html [new file with mode: 0644]
td/saker.950215.html [new file with mode: 0644]
td/saker.950301.html [new file with mode: 0644]
tm/backuprutine.html [new file with mode: 0644]
tm/perl.compile.html [new file with mode: 0644]
tm/xntpd.conf.html [new file with mode: 0644]

diff --git a/hp4000c/XF86Config b/hp4000c/XF86Config
new file mode 100644 (file)
index 0000000..ffb6775
--- /dev/null
@@ -0,0 +1,403 @@
+# File generated by xf86config.
+
+#
+# Copyright (c) 1994 by The XFree86 Project, Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+# 
+# Except as contained in this notice, the name of the XFree86 Project shall
+# not be used in advertising or otherwise to promote the sale, use or other
+# dealings in this Software without prior written authorization from the
+# XFree86 Project.
+#
+
+# **********************************************************************
+# Refer to the XF86Config(4/5) man page for details about the format of 
+# this file.
+# **********************************************************************
+
+# **********************************************************************
+# Files section.  This allows default font and rgb paths to be set
+# **********************************************************************
+
+Section "Files"
+
+# The location of the RGB database.  Note, this is the name of the
+# file minus the extension (like ".txt" or ".db").  There is normally
+# no need to change the default.
+
+    RgbPath    "/usr/X11R6/lib/X11/rgb"
+
+# Multiple FontPath entries are allowed (which are concatenated together),
+# as well as specifying multiple comma-separated entries in one FontPath
+# command (or a combination of both methods)
+# 
+# If you don't have a floating point coprocessor and emacs, Mosaic or other
+# programs take long to start up, try moving the Type1 and Speedo directory
+# to the end of this list (or comment them out).
+# 
+
+    FontPath   "/usr/X11R6/lib/X11/fonts/misc/"
+    FontPath   "/usr/X11R6/lib/X11/fonts/Type1/"
+    FontPath   "/usr/X11R6/lib/X11/fonts/Speedo/"
+    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/"
+    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/"
+
+EndSection
+
+# **********************************************************************
+# Server flags section.
+# **********************************************************************
+
+Section "ServerFlags"
+
+# Uncomment this to cause a core dump at the spot where a signal is 
+# received.  This may leave the console in an unusable state, but may
+# provide a better stack trace in the core dump to aid in debugging
+
+#    NoTrapSignals
+
+# Uncomment this to disable the <Crtl><Alt><BS> server abort sequence
+# This allows clients to receive this key event.
+
+#    DontZap
+
+# Uncomment this to disable the <Crtl><Alt><KP_+>/<KP_-> mode switching
+# sequences.  This allows clients to receive these key events.
+
+#    DontZoom
+
+EndSection
+
+# **********************************************************************
+# Input devices
+# **********************************************************************
+
+# **********************************************************************
+# Keyboard section
+# **********************************************************************
+
+Section "Keyboard"
+
+    Protocol   "Standard"
+
+# when using XQUEUE, comment out the above line, and uncomment the
+# following line
+
+#    Protocol  "Xqueue"
+
+    AutoRepeat 500 5
+# Let the server do the NumLock processing.  This should only be required
+# when using pre-R6 clients
+#    ServerNumLock
+
+# Specifiy which keyboard LEDs can be user-controlled (eg, with xset(1))
+#    Xleds      1 2 3
+
+# To set the LeftAlt to Meta, RightAlt key to ModeShift, 
+# RightCtl key to Compose, and ScrollLock key to ModeLock:
+
+    LeftAlt     Meta
+#   RightAlt    ModeShift
+       LeftAlt         Meta
+#    RightCtl    Compose
+#    ScrollLock  ModeLock
+
+EndSection
+
+
+# **********************************************************************
+# Pointer section
+# **********************************************************************
+
+Section "Pointer"
+    Protocol    "PS/2"
+    Device      "/dev/mouse"
+# eller Device "/dev/psmouse"
+
+# When using XQUEUE, comment out the above two lines, and uncomment
+# the following line.
+
+#    Protocol  "Xqueue"
+
+# Baudrate and SampleRate are only for some Logitech mice
+
+#    BaudRate  9600
+#    SampleRate        150
+
+# Emulate3Buttons is an option for 2-button Microsoft mice
+# Emulate3Timeout is the timeout in milliseconds (default is 50ms)
+
+    Emulate3Buttons
+    Emulate3Timeout    50
+
+# ChordMiddle is an option for some 3-button Logitech mice
+
+#    ChordMiddle
+
+EndSection
+
+
+# **********************************************************************
+# Monitor section
+# **********************************************************************
+
+# Any number of monitor sections may be present
+
+Section "Monitor"
+
+    Identifier  "My Monitor"
+    VendorName  "HP"
+    ModelName   "OmniBook 4000C"
+
+# HorizSync is in kHz unless units are specified.
+# HorizSync may be a comma separated list of discrete values, or a
+# comma separated list of ranges of values.
+# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
+# USER MANUAL FOR THE CORRECT NUMBERS.
+
+#      HorizSync       31.47
+    HorizSync   30-64
+#    HorizSync 30-64         # multisync
+#    HorizSync 31.5, 35.2    # multiple fixed sync frequencies
+#    HorizSync 15-25, 30-50  # multiple ranges of sync frequencies
+
+# VertRefresh is in Hz unless units are specified.
+# VertRefresh may be a comma separated list of discrete values, or a
+# comma separated list of ranges of values.
+# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
+# USER MANUAL FOR THE CORRECT NUMBERS.
+
+#      VertRefresh 59.94
+       VertRefresh 50-100
+
+# Modes can be specified in two formats.  A compact one-line format, or
+# a multi-line format.
+
+# These two are equivalent
+
+#    ModeLine "1024x768i" 45 1024 1048 1208 1264 768 776 784 817 Interlace
+
+#    Mode "1024x768i"
+#        DotClock      45
+#        HTimings      1024 1048 1208 1264
+#        VTimings      768 776 784 817
+#        Flags         "Interlace"
+#    EndMode
+
+# This is a set of standard mode timings. Modes that are out of monitor spec
+# are automatically deleted by the server (provided the HorizSync and
+# VertRefresh lines are correct), so there's no immediate need to
+# delete mode timings (unless particular mode timings don't work on your
+# monitor). With these modes, the best standard mode that your monitor
+# and video card can support for a given resolution is automatically
+# used.
+
+# 640x480 @ 60 Hz, 31.5 kHz hsync
+Mode "640x480"
+       DotClock        25.175
+       HTimings        640 664 760 800
+       VTimings        480 491 493 525
+EndMode
+
+# 640x400 @ 70 Hz, 31.5 kHz hsync
+Modeline "640x400"     25.175 640  664  760  800   400  409  411  450
+
+# 640x480, 31.5 hsync
+Modeline "640x480"     28.32 640 680 720 864 480 488 491 521
+
+# 800x600 @ 56 Hz, 35.15 kHz hsync
+Modeline "800x600.36"     36     800  824  896 1024   600  601  603  625
+
+# 800x600 @ 72Hz Non interlace mode
+Mode "800x600.50"
+    DotClock   50
+    HTimings   800 856 896 1040
+    VTimings   600 637 643 666
+    Flags      "+HSync" "+VSync"
+EndMode
+
+# 1024x768 @ 87 Hz interlaced, 35.5 kHz hsync
+Modeline "1024x768"    44.9  1024 1048 1208 1264   768  776  784  817 Interlace
+
+# 640x480 @ 72 Hz, 36.5 kHz hsync
+Modeline "640x480"     31.5   640  680  720  864   480  488  491  521
+# 800x600 @ 60 Hz, 37.8 kHz hsync
+Modeline "800x600"     40     800  840  968 1056   600  601  605  628 +hsync 
++vsync
+
+# 800x600 @ 72 Hz, 48.0 kHz hsync
+Modeline "800x600"     50     800  856  976 1040   600  637  643  666 +hsync 
++vsync
+# 1024x768 @ 60 Hz, 48.4 kHz hsync
+Modeline "1024x768"    65    1024 1032 1176 1344   768  771  777  806 -hsync 
+-vsync
+
+# 1024x768 @ 70 Hz, 56.5 kHz hsync
+Modeline "1024x768"    75    1024 1048 1184 1328   768  771  777  806 -hsync 
+-vsync
+# 1280x1024 @ 87 Hz interlaced, 51 kHz hsync
+Modeline "1280x1024"   80    1280 1296 1512 1568  1024 1025 1037 1165 Interlace
+
+# 1024x768 @ 76 Hz, 62.5 kHz hsync
+Modeline "1024x768"    85    1024 1032 1152 1360   768  784  787  823
+# 1280x1024 @ 61 Hz, 64.2 kHz hsync
+Modeline "1280x1024"  110    1280 1328 1512 1712  1024 1025 1028 1054
+
+# 1280x1024 @ 74 Hz, 78.85 kHz hsync
+Modeline "1280x1024"  135    1280 1312 1456 1712  1024 1027 1030 1064
+
+# 1280x1024 @ 76 Hz, 81.13 kHz hsync
+Modeline "1280x1024"  135    1280 1312 1416 1664  1024 1027 1030 1064
+
+# Low-res Doublescan modes
+# If your chipset does not support doublescan, you get a 'squashed'
+# resolution like 320x400.
+
+# 320x200 @ 70 Hz, 31.5 kHz hsync, 8:5 aspect ratio
+Modeline "320x200"     12.588 320  336  384  400   200  204  205  225 
+Doublescan
+# 320x240 @ 60 Hz, 31.5 kHz hsync, 4:3 aspect ratio
+Modeline "320x240"     12.588 320  336  384  400   240  245  246  262 
+Doublescan
+# 320x240 @ 72 Hz, 36.5 kHz hsync
+Modeline "320x240"     15.750 320  336  384  400   240  244  246  262 
+Doublescan
+# 400x300 @ 56 Hz, 35.2 kHz hsync, 4:3 aspect ratio
+ModeLine "400x300"     18     400  416  448  512   300  301  602  312 
+Doublescan
+# 400x300 @ 60 Hz, 37.8 kHz hsync
+Modeline "400x300"     20     400  416  480  528   300  301  303  314 
+Doublescan
+# 400x300 @ 72 Hz, 48.0 kHz hsync
+Modeline "400x300"     25     400  424  488  520   300  319  322  333 
+Doublescan
+# 480x300 @ 56 Hz, 35.2 kHz hsync, 8:5 aspect ratio
+ModeLine "480x300"     21.656 480  496  536  616   300  301  302  312 
+Doublescan
+# 480x300 @ 60 Hz, 37.8 kHz hsync
+Modeline "480x300"     23.890 480  496  576  632   300  301  303  314 
+Doublescan
+# 480x300 @ 63 Hz, 39.6 kHz hsync
+Modeline "480x300"     25     480  496  576  632   300  301  303  314 
+Doublescan
+# 480x300 @ 72 Hz, 48.0 kHz hsync
+Modeline "480x300"     29.952 480  504  584  624   300  319  322  333 
+Doublescan
+
+EndSection
+
+
+# **********************************************************************
+# Graphics device section
+# **********************************************************************
+
+# Any number of graphics device sections may be present
+
+# Standard VGA Device:
+
+Section "Device"
+    Identifier "Generic VGA"
+    VendorName "Unknown"
+    BoardName  "Unknown"
+    Chipset    "generic"
+
+    VideoRam   256
+
+    Clocks     25.2 28.3
+
+EndSection
+
+# Sample Device for accelerated server:
+
+# Section "Device"
+#    Identifier        "Actix GE32+ 2MB"
+#    VendorName        "Actix"
+#    BoardName "GE32+"
+#    Ramdac    "ATT20C490"
+#    Dacspeed  110
+#    Option    "dac_8_bit"
+#    Clocks     25.0  28.0  40.0   0.0  50.0  77.0  36.0  45.0
+#    Clocks    130.0 120.0  80.0  31.0 110.0  65.0  75.0  94.0
+# EndSection
+
+# Device configured by xf86config:
+
+Section "Device"
+    Identifier  "WD 90C24A or 90C24A2 (laptop)"
+    VendorName  "Western Digital"
+    BoardName   "RocketChip"
+#    VideoRam    512
+#    Chipset "wd90c24"
+    Option      "med_dram"  # Set Mclk to 49.219
+
+    Clocks 25.175 28.322 65     36     # These are not programmable
+    Clocks 29.979 77.408 62.195 59.957 # These are programmable
+    Clocks 31.5   35.501 75.166 50.114 # These are not programmable
+    Clocks 39.822 72.038 44.744 65.1   # These are programmable
+    Clocks 49.219                      # Must match Mclk
+    # Insert Clocks lines here if appropriate
+EndSection
+
+
+# **********************************************************************
+# Screen sections
+# **********************************************************************
+
+# The Colour SVGA server
+
+Section "Screen"
+    Driver      "svga"
+    Device      "WD 90C24A or 90C24A2 (laptop)"
+    Monitor     "My Monitor"
+    Subsection "Display"
+        Depth       8
+        #Modes       "640x480" "800x600.36" "1024x768i"
+       Modes       "640x480"
+        ViewPort    0 0
+        #Virtual     800 600
+       Virtual      0 0
+    EndSubsection
+EndSection
+
+# The 16-color VGA server
+
+Section "Screen"
+    Driver      "vga16"
+    Device      "Generic VGA"
+    Monitor     "My Monitor"
+    Subsection "Display"
+        Modes       "640x480" "800x600"
+        ViewPort    0 0
+        Virtual     800 600
+    EndSubsection
+EndSection
+
+# The Mono server
+
+Section "Screen"
+    Driver      "vga2"
+    Device      "Generic VGA"
+    Monitor     "My Monitor"
+    Subsection "Display"
+        Modes       "640x480" "800x600"
+        ViewPort    0 0
+        Virtual     800 600
+    EndSubsection
+EndSection
diff --git a/hp4000c/index.html b/hp4000c/index.html
new file mode 100644 (file)
index 0000000..1c4c08c
--- /dev/null
@@ -0,0 +1,20 @@
+<HTML>
+<HEAD>
+<META HTTP-EQUIV=REFRESH CONTENT="0; URL=http://www.quiknet.com/~abond/4000c/hptop.html">
+<TITLE>Redirect to new maintainter</TITLE>
+<!-- Changed by: Petter Reinholdtsen, 18-Oct-1996 -->
+<LINK REV="made" HREF="mailto:pere@td.org.uit.no">
+</HEAD>
+<BODY>
+<H1>Redirect to new maintainter</H1>
+
+As of 1996-10-18, this page got a new maintainer, Aaron Bond
+&lt;abond@mail2.quiknet.com&gt;.  Take the jump to the 
+<A HREF="http://www.quiknet.com/~abond/4000c/hptop.html">new site</a>.
+<HR>
+<ADDRESS>Petter Reinholdtsen -
+<A HREF="mailto:pere@td.org.uit.no">pere@td.org.uit.no</A></ADDRESS>
+
+</BODY>
+</HTML>
+
diff --git a/hp4000c/index.html.19961018 b/hp4000c/index.html.19961018
new file mode 100644 (file)
index 0000000..c8ce4ad
--- /dev/null
@@ -0,0 +1,130 @@
+<HTML>
+<HEAD>
+<TITLE>HP Omnibook 4000C - Linux page</TITLE>
+<!-- Changed by: Petter Reinholdtsen, 14-Sep-1996 -->
+<LINK REV="made" HREF="mailto:petterr@stud.cs.uit.no">
+</HEAD>
+<BODY>
+
+<HR>
+
+This page is no longer maintained by me, as I don't have access to my
+old laptop.  I would therefore like to transfer this page to anyone
+who is interested in maintaining it.  Mail me at
+<A HREF="mailto:pere@td.org.uit.no">pere@td.org.uit.no</A> if you are
+interested. 
+
+<HR>
+
+<H1>HP Omnibook 4000C - Linux page</H1>
+
+I created this page after searching the web for information about the
+HP Omnibook 4000C.  I did not find anything, so I created my own.
+This is most of the information I found useful to configure my HP
+Omnibook 4000C for Linux.
+
+<P>4000C contains an 16bit sound-card and an infrared sender/receiver.
+The IR-device is <CODE>/dev/{ttyS1,cua1}</CODE>.  The tracking ball
+has an PS/2 busmouse interface.
+
+<UL>
+<LI><A HREF="#kernel">Kernel configuration</A>
+<LI><A HREF="#xfree86">XFree86 configuration</A>
+<LI><A HREF="#screen">My screen is screwed up</A>
+<LI><A HREF="#pcmcia">Problems with PCMCIA</A>
+<LI><A HREF="#info">More information</A>
+</UL>
+
+<A NAME="kernel"><H2>Kernel configuration</H2></A>
+
+All this is tried on Linux kernel v.1.3.59.
+
+<P>The option <CODE>Pocket and portable adaptors</CODE> is not needed to
+use PCMCIA cards.
+
+<H3>Advanced Power Management configuration</H3>
+
+<DL>
+<DT><CODE>Ignore USER SUSPEND</CODE>: <B>N</B>
+<DT><CODE>Enable PM at boot time</CODE>: <B>N</B>
+<DD>This seems to be important to get a stable system.
+<DT><CODE>Make CPU Idle calls when idle</CODE>: <B>Y</B>
+<DT><CODE>Enable console blanking using APM</CODE>: <B>N</B>
+<DD>Console blanking was not supported on linux 1.3.75
+</DL>
+
+<H3>Sound configuration</H3>
+
+Windows gives me the following information about the sound facilities:
+<PRE>
+ESS AudioDrive ES688
+  I/O port 220
+  IRQ        7
+  DMA        1 size 32
+ESS AudioDrive MIDI
+</PRE>
+
+Brian Vinter reported IRQ 5 from Windows 95.  This is normal, as the
+IRQ and DMA can be changed in the bios setup.
+
+<P>It seems to be compatible with Soundblaster Pro. With a simple 
+<A HREF="soundconf">configuration file</A> I managed to get stereo
+sound. Copy this to <CODE>/etc/soundconf</CODE> and run <CODE>make config</CODE> in <CODE>/usr/src/linux/drivers/sound/</CODE>.
+
+<A NAME="xfree86"><H2>XFree86 configuration</H2></A>
+
+The 4000c seems to be using the Western Digital 90C24A chipset.  This
+is supported by the XF86_SVGA server.  It has 512k videoram.  I have a
+<A HREF="XF86Config">sample <CODE>XF86Config</CODE></A> which gives
+you resolution 640x480.  Copy this file to
+<CODE>/etc/XF86Config</CODE> or <CODE>/etc/X11/XF86Config</CODE>.
+
+
+<A NAME="screen"><H2>My screen is screwed up</H2></A>
+
+Sometime, after leaving X, the screen gets completely screwed up.
+This is due to a bug in the chipset.  To restore the screen, press
+<KBD>fn F5</KBD>.
+
+<A NAME="pcmcia"><H2>Problems with PCMCIA</H2></A>
+
+Dag Brattli has experimented with two different Ethernet-cards and
+discovered many problems.  
+
+<P>"3Com 3c589C Etherlink III worked with pcmcia-cs-2.7.6 but not with
+pcmcia-cs-2.8.6 and 2.8.7. 'if_port=3' must be present in
+<CODE>/etc/pcmcia/config</CODE>, or
+<CODE>/etc/pcmcia/config.opts</CODE> to get the card to work at
+all. 'exclude 0x300-0x30f' in the same file seems to avoid some strange
+conflict.
+
+<P>IBM CCA Ethernet II works with all the pcmcia-cs versions tried.
+This card needs 'mem_speed=600' in <CODE>/etc/pcmcia/config</CODE> or
+<CODE>/etc/pcmcia/config.opts</CODE> if it exists.  This improves
+transfer speed and prevents filling <CODE>/usr/adm/messages</CODE>
+with UDP error messages."
+
+<A NAME="info"><H2>More information</H2></A>
+<UL>
+<LI><A HREF="http://www.cs.utexas.edu/users/kharker/linux-laptop/">The
+Linux Laptop Home Page</A>
+<LI><A HREF="http://hyper.stanford.edu/~dhinds/pcmcia/pcmcia.html">Linux
+PCMCIA Information Page</a>
+<LI><A HREF="http://www.cs.utexas.edu/users/kharker/linux-laptop/apm.html">Linux
+and Advanced Power Management</A>
+</UL>
+
+
+<A NAME="acknow"><H2>Acknowledgments</H2></A>
+
+Thanks to Dag Brattli &lt;dagb@stud.cs.uit.no&gt; for the
+XF86Config-file and lots of other info.  Thanks to Brian Vinter
+&lt;vinter@cs.uit.no&gt; for some informations on the screen.
+
+<HR>
+<ADDRESS>Petter Reinholdtsen -
+<A HREF="mailto:pere@td.org.uit.no">pere@td.org.uit.no</A></ADDRESS>
+
+</BODY>
+</HTML>
+
diff --git a/hp4000c/soundconf b/hp4000c/soundconf
new file mode 100644 (file)
index 0000000..51424e4
--- /dev/null
@@ -0,0 +1,38 @@
+/*     Generated by configure. Don't edit!!!!  */
+/*     Making changes to this file is not as simple as it may look.    */
+
+/*     If you change the CONFIG_ settings in local.h you       */
+/*     _have_ to edit .defines too.    */
+
+#undef  CONFIG_PAS
+#define CONFIG_SB
+#undef  CONFIG_ADLIB
+#undef  CONFIG_GUS
+#undef  CONFIG_MPU401
+#undef  CONFIG_UART6850
+#undef  CONFIG_PSS
+#undef  CONFIG_GUS16
+#undef  CONFIG_GUSMAX
+#undef  CONFIG_MSS
+#undef  CONFIG_SSCAPE
+#undef  CONFIG_TRIX
+#undef  CONFIG_MAD16
+#undef  CONFIG_CS4232
+#undef  CONFIG_MAUI
+#undef  CONFIG_PNP
+#define CONFIG_SBPRO
+#undef  CONFIG_SB16
+#undef  CONFIG_AEDSP16
+#define CONFIG_AUDIO
+#define CONFIG_MIDI
+#define CONFIG_YM3812
+#define CONFIG_SEQUENCER
+
+#undef  CONFIG_MPU_EMU
+#undef  CONFIG_AD1848
+
+#define SBC_BASE 0x220
+#define SBC_IRQ 7
+#define SBC_DMA 1
+#define DSP_BUFFSIZE 32768
+#define SELECTED_SOUND_OPTIONS 0x01a90002
diff --git a/huset/styrem.html b/huset/styrem.html
new file mode 100644 (file)
index 0000000..32d4214
--- /dev/null
@@ -0,0 +1,26 @@
+<HTML>
+<HEAD>
+<TITLE>Møter i Studenthuset AS</TITLE>
+</HEAD>
+<BODY>
+
+<UL>
+<LI> 930626 Generalforsamling
+<HR>
+<LI> 940126 Styremøte 01.94 sak 01-03/94
+<LI> 940325 Styremøte 02.94 sak 04-07/94
+<LI> 940426 Styremøte 03.94 sak 08-11/94
+<LI> 940511 Styremøte 04.94 sak 12-14/94
+<LI> 940603 Styremøte 05.94 sak 15-17/94
+<LI> 940901 Styremøte 06.94 sak 18-22/94
+<LI> 940922 Ekstraordinært styremøte 07.94 sak 23/94
+<LI> 940925 Styremøte 08.94 sak 24-26/94
+<LI> 941007 Styremøte 09.94 sak 27-31/94
+<LI> 941014 Styremøte 10.94 sak 32-34/94
+<LI> 941020 Styremøte 11.94 sak 35-37/94
+</UL>
+
+
+</BODY>
+</HTML>
+
diff --git a/java/Hello.html b/java/Hello.html
new file mode 100644 (file)
index 0000000..539450a
--- /dev/null
@@ -0,0 +1,11 @@
+<HTML>
+            <HEAD>
+            <TITLE> A Simple Program </TITLE>
+            </HEAD>
+            <BODY>
+
+            Here is the output of my program:
+            <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25>
+            </APPLET>
+            </BODY>
+            </HTML>
diff --git a/java/HelloWorld.class b/java/HelloWorld.class
new file mode 100644 (file)
index 0000000..9bb0401
Binary files /dev/null and b/java/HelloWorld.class differ
diff --git a/mrtg/index.html b/mrtg/index.html
new file mode 100644 (file)
index 0000000..4c301b1
--- /dev/null
@@ -0,0 +1,54 @@
+<HTML>
+<HEAD>
+<TITLE>Sendmail statistics</TITLE>
+</HEAD>
+<BODY bgcolor=#ffffff>
+
+<TABLE BORDER=0 CELLSPACING=0 CELLPADING=0 WIDTH=100%>
+  <TR><TD><A HREF="http://www.ethz.ch">
+      <IMG border=0 alt="ETH: "   WIDTH=199 HEIGHT=32 SRC="/eth.199x32.gif" ></A>
+  </TD>
+      <TD ALIGN=RIGHT>
+      <A HREF="http://www.ethz.ch/">
+        Swiss Federal Institute of Technology Zurich</A><BR>
+      <A HREF="http://www.ee.ethz.ch/">
+        Department of Electrical Engineering</A><BR>
+  </TD>
+  </TR>
+</TABLE>
+
+<H1>Sendmail statistics</H1>
+<P><B><A HREF="mq.html">terror.hungry.com Sendmail MailQueue Statistics</B><P> 
+   <SMALL><!--#flastmod file="mq.html" --></SMALL></P>
+  <IMG  WIDTH=600 HEIGHT=163 SRC="mq-day.gif"></A>
+  <HR>
+<P><B><A HREF="mail.html">terror.hungry.com Sendmail send/receive Statistics</B><P> 
+   <SMALL><!--#flastmod file="mail.html" --></SMALL></P>
+  <IMG  WIDTH=600 HEIGHT=163 SRC="mail-day.gif"></A>
+  <HR>
+<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
+  <TR>
+    <TD WIDTH=63><A ALT="MRTG"
+    HREF="http://www.ee.ethz.ch/~oetiker/webtools/mrtg/mrtg.html"><IMG
+    BORDER=0     SRC="mrtg-l.gif"></A></TD>
+    <TD WIDTH=25><A ALT=""
+    HREF="http://www.ee.ethz.ch/~oetiker/webtools/mrtg/mrtg.html"><IMG
+    BORDER=0     SRC="mrtg-m.gif"></A></TD>
+    <TD WIDTH=388><A ALT=""
+    HREF="http://www.ee.ethz.ch/~oetiker/webtools/mrtg/mrtg.html"><IMG
+    BORDER=0     SRC="mrtg-r.gif"></A></TD>
+  </TR>
+</TABLE>
+<SPACER TYPE=VERTICAL SIZE=4>
+<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
+  <TR VALIGN=top>
+  <TD WIDTH=88 ALIGN=RIGHT><FONT FACE="Arial,Helvetica" SIZE=2>
+  2.0-1997/01/26</FONT></TD>
+  <TD WIDTH=388 ALIGN=RIGHT><FONT FACE="Arial,Helvetica" SIZE=2>
+  <A HREF="http://www.ee.ethz.ch/~oetiker">Tobias Oetiker</A>
+  <A HREF="mailto:oetiker@ee.ethz.ch">&lt;oetiker@ee.ethz.ch&gt;</A> 
+  and&nbsp;<A HREF="http://www.bungi.com">Dave&nbsp;Rand</A>&nbsp;<A HREF="mailto:dlr@bungi.com">&lt;dlr@bungi.com&gt;</A></FONT>
+  </TD>
+</TR>
+</TABLE>
+</BODY></HTML>
diff --git a/mrtg/mail-day.gif b/mrtg/mail-day.gif
new file mode 100644 (file)
index 0000000..82da8fb
Binary files /dev/null and b/mrtg/mail-day.gif differ
diff --git a/mrtg/mail-month.gif b/mrtg/mail-month.gif
new file mode 100644 (file)
index 0000000..450d72f
Binary files /dev/null and b/mrtg/mail-month.gif differ
diff --git a/mrtg/mail-week.gif b/mrtg/mail-week.gif
new file mode 100644 (file)
index 0000000..89a8f24
Binary files /dev/null and b/mrtg/mail-week.gif differ
diff --git a/mrtg/mail-year.gif b/mrtg/mail-year.gif
new file mode 100644 (file)
index 0000000..69f2247
Binary files /dev/null and b/mrtg/mail-year.gif differ
diff --git a/mrtg/mail.html b/mrtg/mail.html
new file mode 100644 (file)
index 0000000..3088fb8
--- /dev/null
@@ -0,0 +1,218 @@
+<HTML>
+<HEAD>
+<TITLE>
+terror.hungry.com Sendmail send/receive Statistics
+</TITLE>
+<META HTTP-EQUIV="Refresh" CONTENT=300 >
+<META HTTP-EQUIV="Expires" CONTENT="Wed, 11 Mar 1998 10:05:23 GMT">
+<!-- maxin d 28 -->
+<!-- maxout d 154 -->
+<!-- avin d 3 -->
+<!-- avout d 16 -->
+<!-- cuin d 0 -->
+<!-- cuout d 0 -->
+<!-- maxin w 41 -->
+<!-- maxout w 164 -->
+<!-- avin w 2 -->
+<!-- avout w 12 -->
+<!-- cuin w 2 -->
+<!-- cuout w 7 -->
+<!-- maxin m 41 -->
+<!-- maxout m 332 -->
+<!-- avin m 2 -->
+<!-- avout m 9 -->
+<!-- cuin m 0 -->
+<!-- cuout m 6 -->
+<!-- maxin y 243 -->
+<!-- maxout y 974 -->
+<!-- avin y 1 -->
+<!-- avout y 8 -->
+<!-- cuin y 1 -->
+<!-- cuout y 13 -->
+
+</HEAD>
+<BODY bgcolor=#000000 text="#ffffff" link="#cfcfcf" alink="#00ff00" vlink="#9f9f9f">
+terror.hungry.com Sendmail Statistics</H1><P>
+<HR>
+The statistics were last updated <B>Wednesday, 11 March 1998 at 2:00 </B>
+,<BR>
+at which time <B>'localhost'</B> had been up for <B>Thu Jan  1 09:00:10 1998</B>.
+
+<HR>
+<B>`Daily' Graph (5 Minute Average)</B><BR>
+<IMG VSPACE=10 WIDTH=600 HEIGHT=163 ALIGN=TOP 
+     SRC="mail-day.gif">
+ <TABLE CELLPADDING=0 CELLSPACING=0>
+<TR>
+  <TD ALIGN=right><SMALL>Max<FONT COLOR=#00cc00>&nbsp;Incoming:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>28.0 messages
+   </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Average<FONT COLOR=#00cc00>&nbsp;Incoming:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>3.0 messages
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Current<FONT COLOR=#00cc00>&nbsp;Incoming:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>0.0 messages
+  </SMALL></TD>
+ </TR>
+
+ <TR>
+  <TD ALIGN=right><SMALL>Max<FONT COLOR=#0000ff>&nbsp;Outgoing:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>154.0 messages
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Average<FONT COLOR=#0000ff>&nbsp;Outgoing:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>16.0 messages
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Current<FONT COLOR=#0000ff>&nbsp;Outgoing:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>0.0 messages
+ </SMALL></TD>
+ </TR> 
+</TABLE>
+
+<HR>
+<B>`Weekly' Graph (30 Minute Average)</B><BR>
+<IMG VSPACE=10 WIDTH=600 HEIGHT=163 ALIGN=TOP 
+     SRC="mail-week.gif">
+ <TABLE CELLPADDING=0 CELLSPACING=0>
+<TR>
+  <TD ALIGN=right><SMALL>Max<FONT COLOR=#00cc00>&nbsp;Incoming:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>41.0 messages
+   </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Average<FONT COLOR=#00cc00>&nbsp;Incoming:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>2.0 messages
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Current<FONT COLOR=#00cc00>&nbsp;Incoming:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>2.0 messages
+  </SMALL></TD>
+ </TR>
+
+ <TR>
+  <TD ALIGN=right><SMALL>Max<FONT COLOR=#0000ff>&nbsp;Outgoing:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>164.0 messages
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Average<FONT COLOR=#0000ff>&nbsp;Outgoing:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>12.0 messages
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Current<FONT COLOR=#0000ff>&nbsp;Outgoing:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>7.0 messages
+ </SMALL></TD>
+ </TR> 
+</TABLE>
+
+<HR>
+<B>`Monthly' Graph (2 Hour Average)</B><BR>
+<IMG VSPACE=10 WIDTH=600 HEIGHT=163 ALIGN=TOP 
+     SRC="mail-month.gif">
+ <TABLE CELLPADDING=0 CELLSPACING=0>
+<TR>
+  <TD ALIGN=right><SMALL>Max<FONT COLOR=#00cc00>&nbsp;Incoming:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>41.0 messages
+   </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Average<FONT COLOR=#00cc00>&nbsp;Incoming:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>2.0 messages
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Current<FONT COLOR=#00cc00>&nbsp;Incoming:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>0.0 messages
+  </SMALL></TD>
+ </TR>
+
+ <TR>
+  <TD ALIGN=right><SMALL>Max<FONT COLOR=#0000ff>&nbsp;Outgoing:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>332.0 messages
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Average<FONT COLOR=#0000ff>&nbsp;Outgoing:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>9.0 messages
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Current<FONT COLOR=#0000ff>&nbsp;Outgoing:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>6.0 messages
+ </SMALL></TD>
+ </TR> 
+</TABLE>
+
+<HR>
+<B>`Yearly' Graph (1 Day Average)</B><BR>
+<IMG VSPACE=10 WIDTH=600 HEIGHT=163 ALIGN=TOP 
+     SRC="mail-year.gif">
+ <TABLE CELLPADDING=0 CELLSPACING=0>
+<TR>
+  <TD ALIGN=right><SMALL>Max<FONT COLOR=#00cc00>&nbsp;Incoming:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>243.0 messages
+   </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Average<FONT COLOR=#00cc00>&nbsp;Incoming:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>1.0 messages
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Current<FONT COLOR=#00cc00>&nbsp;Incoming:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>1.0 messages
+  </SMALL></TD>
+ </TR>
+
+ <TR>
+  <TD ALIGN=right><SMALL>Max<FONT COLOR=#0000ff>&nbsp;Outgoing:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>974.0 messages
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Average<FONT COLOR=#0000ff>&nbsp;Outgoing:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>8.0 messages
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Current<FONT COLOR=#0000ff>&nbsp;Outgoing:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>13.0 messages
+ </SMALL></TD>
+ </TR> 
+</TABLE>
+
+  <HR><P>
+  <TABLE WIDTH=500 BORDER=0 CELLPADDING=4 CELLSPACING=0>
+   <TR><TD ALIGN=RIGHT><FONT SIZE=-1 COLOR="#00cc00">
+      <B>GREEN ###</B></FONT></TD>
+      <TD><FONT SIZE=-1>Incoming Traffic in Bytes per Second</FONT></TD></TR> 
+   <TR><TD ALIGN=RIGHT><FONT SIZE=-1 COLOR="#0000ff">
+      <B>BLUE ###</B></FONT></TD>
+      <TD><FONT SIZE=-1>Outgoing Traffic in Bytes per Second</FONT></TD></TR> 
+   <TR><TD ALIGN=RIGHT><FONT SIZE=-1 COLOR="#006600">
+                       <B>DARK GREEN###</B></FONT></TD>
+       <TD><FONT SIZE=-1>Maximal 5 Minute Incoming Traffic</FONT></TD></TR> 
+   <TR><TD ALIGN=RIGHT><FONT SIZE=-1 COLOR="#ff00ff">
+                       <B>MAGENTA###</B></FONT></TD>
+       <TD><FONT SIZE=-1>Maximal 5 Minute Outgoing Traffic</FONT></TD></TR> </TABLE><P><HR><P>
+
+<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
+  <TR>
+    <TD WIDTH=63><A ALT="MRTG"
+    HREF="http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html"><IMG
+    BORDER=0 SRC="mrtg-l.gif"></A></TD>
+    <TD WIDTH=25><A ALT=""
+    HREF="http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html"><IMG
+    BORDER=0 SRC="mrtg-m.gif"></A></TD>
+    <TD WIDTH=388><A ALT=""
+    HREF="http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html"><IMG
+    BORDER=0 SRC="mrtg-r.gif"></A></TD>
+  </TR>
+</TABLE>
+<SPACER TYPE=VERTICAL SIZE=4>
+<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
+  <TR VALIGN=top>
+  <TD WIDTH=88 ALIGN=RIGHT><FONT FACE="Arial,Helvetica" SIZE=2>
+  2.5.1-1997/10/24</FONT></TD>
+  <TD WIDTH=388 ALIGN=RIGHT><FONT FACE="Arial,Helvetica" SIZE=2>
+  <A HREF="http://ee-staff.ethz.ch/~oetiker/">Tobias Oetiker</A>
+  <A HREF="mailto:oetiker@ee.ethz.ch">&lt;oetiker@ee.ethz.ch&gt;</A> 
+  and&nbsp;<A HREF="http://www.bungi.com">Dave&nbsp;Rand</A>&nbsp;<A HREF="mailto:dlr@bungi.com">&lt;dlr@bungi.com&gt;</A></FONT>
+  </TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML>
diff --git a/mrtg/mail.log b/mrtg/mail.log
new file mode 100644 (file)
index 0000000..7df86b4
--- /dev/null
@@ -0,0 +1,2535 @@
+889610410 0 0
+889610410 0 0 0 0
+889610108 4 35 4 35
+889610100 4 35 5 40
+889609800 4 38 5 40
+889609500 0 0 1 17
+889609200 1 16 2 17
+889608900 2 14 6 15
+889608600 5 14 6 14
+889608300 3 13 5 14
+889608000 4 10 5 11
+889607700 2 6 3 7
+889607400 0 1 3 2
+889607100 3 1 4 2
+889606800 3 0 4 0
+889606500 3 0 3 8
+889606200 2 8 3 9
+889605900 1 8 2 9
+889605600 1 8 1 17
+889605300 1 16 3 17
+889605000 2 12 3 13
+889604700 2 0 3 3
+889604400 2 2 3 3
+889604100 1 1 2 2
+889603800 0 1 1 2
+889603500 0 0 0 0
+889603200 0 0 0 0
+889602900 0 0 0 0
+889602600 0 0 1 0
+889602300 0 0 1 0
+889602000 0 0 4 1
+889601700 3 1 4 1
+889601400 0 1 1 17
+889601100 0 17 3 21
+889600800 2 20 3 21
+889600500 0 2 1 24
+889600200 0 23 0 24
+889599900 0 0 4 1
+889599600 3 1 4 1
+889599300 2 1 2 19
+889599000 1 18 2 19
+889598700 0 0 0 0
+889598400 0 0 0 0
+889598100 0 0 0 1
+889597800 0 0 0 1
+889597500 0 0 4 18
+889597200 3 17 4 18
+889596900 0 0 5 49
+889596600 4 48 5 49
+889596300 0 0 1 0
+889596000 0 0 1 0
+889595700 0 0 0 0
+889595400 0 0 4 0
+889595100 3 0 4 20
+889594800 2 19 3 20
+889594500 0 0 0 2
+889594200 0 1 0 2
+889593900 0 0 0 0
+889593600 0 0 1 1
+889593300 0 0 1 1
+889593000 0 0 0 0
+889592700 0 0 0 11
+889592400 0 11 1 17
+889592100 0 16 1 17
+889591800 0 0 4 2
+889591500 3 1 4 2
+889591200 0 0 0 0
+889590900 0 0 0 0
+889590600 0 0 0 0
+889590300 0 0 0 0
+889590000 0 0 3 1
+889589700 3 1 4 17
+889589400 3 16 4 17
+889589100 0 0 1 1
+889588800 0 0 0 0
+889588500 0 0 4 0
+889588200 3 0 4 0
+889587900 0 0 1 1
+889587600 1 0 1 1
+889587300 1 0 2 0
+889587000 2 0 8 3
+889586700 7 2 8 3
+889586400 1 1 8 3
+889586100 7 2 8 3
+889585800 5 0 6 0
+889585500 0 0 1 1
+889585200 0 0 1 1
+889584900 0 0 3 0
+889584600 3 0 4 8
+889584300 3 8 4 9
+889584000 1 8 2 9
+889583700 0 0 1 1
+889583400 0 0 2 2
+889583100 2 1 3 2
+889582800 2 1 3 4
+889582500 2 3 4 4
+889582200 3 0 4 1
+889581900 2 0 2 1
+889581600 2 1 4 1
+889581300 3 1 4 8
+889581000 2 8 3 9
+889580700 2 9 6 30
+889580400 5 29 6 30
+889580100 2 1 2 1
+889579800 1 1 2 8
+889579500 0 7 1 8
+889579200 0 0 4 0
+889578900 4 0 7 10
+889578600 6 10 7 27
+889578300 4 26 5 27
+889578000 0 0 1 1
+889577700 1 0 2 1
+889577400 2 0 2 21
+889577100 2 20 5 21
+889576800 5 16 5 17
+889576500 4 8 5 9
+889576200 0 0 0 0
+889575900 0 0 0 0
+889575600 0 0 0 0
+889575300 0 0 5 17
+889575000 5 17 10 23
+889574700 9 22 10 23
+889574400 1 1 4 2
+889574100 4 2 12 2
+889573800 11 1 12 2
+889573500 0 0 0 0
+889573200 0 0 0 0
+889572900 0 0 5 8
+889572600 4 7 5 8
+889572300 1 0 11 2
+889572000 10 1 11 2
+889571700 0 0 5 1
+889571400 5 1 8 16
+889571100 7 15 8 16
+889570800 4 0 4 0
+889570500 3 0 4 20
+889570200 1 19 2 20
+889569900 0 0 0 0
+889569600 0 0 11 60
+889569300 10 59 11 60
+889569000 5 13 8 14
+889568700 7 8 8 14
+889568400 6 13 9 14
+889568100 8 8 9 41
+889567800 5 40 9 41
+889567500 8 2 9 13
+889567200 2 13 5 39
+889566900 4 38 5 39
+889566600 0 0 8 18
+889566300 7 18 8 78
+889566000 5 76 6 78
+889565700 0 0 0 0
+889565400 0 0 4 10
+889565100 4 10 8 38
+889564800 7 37 8 38
+889564500 6 10 7 11
+889564200 0 0 13 8
+889563900 12 7 13 8
+889563600 0 0 10 46
+889563300 9 45 10 46
+889563000 4 18 14 38
+889562700 13 38 14 72
+889562400 8 71 8 72
+889562100 8 28 11 84
+889561800 11 83 11 84
+889561500 10 70 11 71
+889561200 0 0 12 26
+889560900 11 25 12 26
+889560600 0 0 4 39
+889560300 4 38 6 39
+889560000 5 27 6 35
+889559700 4 34 5 35
+889559400 5 17 9 26
+889559100 8 25 9 26
+889558800 0 1 4 50
+889558500 3 49 4 50
+889558200 0 0 6 2
+889557900 5 1 6 2
+889557600 0 0 6 7
+889557300 5 6 6 7
+889557000 0 0 0 0
+889556700 0 0 3 2
+889556400 3 2 9 4
+889556100 8 3 9 4
+889555800 0 0 13 11
+889555500 12 10 13 11
+889555200 6 2 7 9
+889554900 4 8 5 9
+889554600 0 0 0 0
+889554300 0 0 2 1
+889554000 2 1 2 2
+889553700 2 2 4 2
+889553400 3 1 4 2
+889553100 2 1 3 1
+889552800 2 0 2 1
+889552500 1 0 2 0
+889552200 1 0 8 11
+889551900 7 11 8 12
+889551600 2 11 3 12
+889551300 0 0 3 1
+889551000 2 1 3 1
+889550700 2 1 8 2
+889550400 7 2 8 101
+889550100 1 100 2 101
+889549800 1 2 2 3
+889549500 0 0 0 0
+889549200 0 0 3 9
+889548900 3 8 3 9
+889548600 2 6 3 18
+889548300 2 18 2 37
+889548000 2 36 2 37
+889547700 2 0 3 1
+889547400 2 0 3 1
+889547100 0 0 4 8
+889546800 3 8 4 9
+889546500 1 8 2 9
+889546200 0 0 0 0
+889545900 0 0 0 0
+889545600 0 0 0 0
+889545300 0 0 2 12
+889545000 2 12 5 55
+889544700 4 54 5 55
+889544400 2 0 3 0
+889544100 0 0 0 0
+889543800 0 0 9 28
+889543500 8 27 9 28
+889543200 0 0 3 38
+889542900 2 37 3 38
+889542600 0 0 6 8
+889542300 5 7 6 8
+889542000 0 0 0 0
+889541700 0 0 6 5
+889541400 5 4 6 5
+889541100 0 0 3 13
+889540800 2 12 3 13
+889540500 0 0 0 0
+889540200 0 0 0 0
+889539900 0 0 4 14
+889539600 4 13 5 14
+889539300 4 3 5 4
+889539000 3 0 4 0
+889538700 0 0 2 1
+889538400 2 1 2 2
+889538100 2 1 3 2
+889537800 3 0 7 10
+889537500 6 9 7 10
+889537200 0 8 1 9
+889536900 1 1 2 2
+889536600 2 0 2 0
+889536300 1 0 2 0
+889536000 0 0 0 0
+889535700 0 0 0 0
+889535400 0 0 0 0
+889535100 0 0 0 0
+889534800 0 0 0 0
+889534500 0 0 4 0
+889534200 3 0 4 8
+889533900 1 8 1 9
+889533600 0 8 1 9
+889533300 0 0 0 2
+889533000 0 1 1 2
+889532700 0 0 1 2
+889532400 0 1 1 2
+889532100 0 0 1 0
+889531800 0 0 1 0
+889531500 0 0 1 0
+889531200 0 0 1 5
+889530900 1 4 4 5
+889530600 3 0 4 0
+889530300 1 0 5 43
+889530000 4 42 5 43
+889529700 0 6 1 7
+889529400 0 0 0 0
+889529100 0 0 1 34
+889528800 1 33 3 34
+889528500 3 9 4 14
+889528200 4 14 29 33
+889527900 28 32 29 33
+889527600 1 22 2 23
+889527300 0 0 2 0
+889527000 2 0 3 61
+889526700 2 60 3 61
+889526400 0 0 1 0
+889526100 1 0 3 2
+889525800 2 2 3 10
+889525500 1 9 2 10
+889525200 0 0 6 39
+889524900 5 38 6 39
+889524600 0 15 1 16
+889524300 0 0 1 0
+889524000 1 0 3 51
+889523700 2 50 3 51
+889523400 0 31 1 73
+889523100 0 72 1 73
+889522800 0 0 2 26
+889522500 2 25 4 26
+889522200 4 5 4 6
+889521900 4 0 4 1
+889521600 3 1 4 1
+889521300 1 1 2 40
+889521000 0 39 1 40
+889520700 0 0 0 0
+889520400 0 0 2 71
+889520100 2 70 3 71
+889519800 2 11 3 12
+889519500 1 2 1 5
+889519200 1 4 2 5
+889518900 2 1 7 2
+889518600 6 0 7 71
+889518300 2 70 3 71
+889518000 0 7 2 11
+889517700 2 11 6 18
+889517400 5 17 6 18
+889517100 0 0 1 16
+889516800 1 15 1 16
+889516500 1 11 1 42
+889516200 0 41 1 42
+889515900 0 0 4 2
+889515600 3 1 4 2
+889515300 1 0 2 1
+889515000 1 0 2 0
+889514700 2 0 4 1
+889514400 3 1 4 3
+889514100 2 2 2 3
+889513800 2 1 2 1
+889513500 1 0 2 1
+889513200 1 0 4 1
+889512900 3 0 4 1
+889512600 1 0 1 0
+889512300 1 0 3 1
+889512000 3 1 4 11
+889511700 4 10 4 11
+889511400 3 0 4 1
+889511100 1 0 2 18
+889510800 2 17 2 18
+889510500 2 0 3 2
+889510200 2 2 3 10
+889509900 1 9 4 10
+889509600 4 6 4 7
+889509300 4 0 5 1
+889509000 4 0 5 1
+889508700 1 0 3 0
+889508400 2 0 3 0
+889508100 0 0 1 0
+889507800 0 0 0 0
+889507500 0 0 3 0
+889507200 3 0 5 28
+889506900 4 27 5 28
+889506600 2 6 3 7
+889506300 0 0 0 0
+889506000 0 0 1 51
+889505700 1 50 3 51
+889505400 3 27 4 36
+889505100 3 35 4 36
+889504800 2 7 3 15
+889504500 1 15 1 22
+889504200 1 22 1 55
+889503900 0 54 1 55
+889503600 0 0 2 13
+889503300 1 12 2 13
+889503000 0 0 7 0
+889502700 6 0 7 1
+889502400 2 1 5 2
+889502100 4 1 5 2
+889501800 2 0 3 1
+889501500 0 0 2 0
+889501200 2 0 4 0
+889500900 3 0 4 0
+889500600 0 0 3 1
+889500300 3 1 3 2
+889500000 3 1 6 2
+889499700 5 0 6 0
+889499400 0 0 5 12
+889499100 4 12 5 37
+889498800 0 36 1 37
+889498500 0 0 7 27
+889498200 6 27 7 36
+889497900 4 35 5 36
+889497600 4 8 5 39
+889497300 3 38 4 39
+889497000 3 28 3 29
+889496700 3 17 5 18
+889496400 5 5 6 30
+889496100 5 29 6 30
+889495800 3 20 7 28
+889495500 7 27 7 28
+889495200 6 5 7 17
+889494900 2 16 3 17
+889494600 1 4 2 11
+889494300 1 10 12 11
+889494000 11 2 12 2
+889493700 2 2 2 4
+889493400 1 3 2 4
+889493100 0 0 0 0
+889492800 0 0 0 0
+889492500 0 0 0 0
+889492200 0 0 2 3
+889491900 2 3 5 9
+889491600 5 8 5 9
+889491300 4 0 5 1
+889491000 0 0 6 39
+889490700 6 39 6 121
+889490400 5 119 6 121
+889490100 2 0 6 56
+889489800 5 55 6 56
+889489500 0 0 0 0
+889489200 0 0 0 0
+889488900 0 0 0 0
+889488600 0 0 0 0
+889488300 0 0 2 18
+889488000 2 18 7 58
+889487700 6 57 7 58
+889487400 3 3 10 49
+889487100 9 48 10 49
+889486800 7 43 8 44
+889486500 3 28 4 40
+889486200 3 39 4 40
+889485900 0 0 2 29
+889485600 2 29 11 52
+889485300 10 52 11 93
+889485000 3 91 4 93
+889484700 0 1 2 123
+889484400 2 121 7 123
+889484100 6 15 7 27
+889483800 5 28 6 87
+889483500 5 86 6 87
+889483200 6 12 6 27
+889482900 6 27 9 42
+889482600 8 41 9 42
+889482300 0 21 9 22
+889482000 8 22 9 102
+889481700 6 100 7 102
+889481400 5 71 5 72
+889481100 4 50 5 51
+889480800 0 1 2 85
+889480500 1 84 2 85
+889480200 0 0 0 0
+889479900 0 0 2 52
+889479600 2 51 8 52
+889479300 7 12 8 13
+889479000 0 0 3 27
+889478700 2 26 3 27
+889478400 0 0 6 14
+889478100 5 13 6 14
+889477800 2 4 5 5
+889477500 5 0 6 3
+889477200 5 3 6 5
+889476900 2 4 3 5
+889476600 2 0 3 0
+889476300 2 0 3 0
+889476000 2 0 5 0
+889475700 4 0 5 0
+889475400 0 0 3 0
+889475100 3 0 4 2
+889474800 3 1 4 2
+889474500 1 1 2 1
+889474200 1 1 9 8
+889473900 8 7 9 8
+889473600 0 0 3 16
+889473300 2 15 3 16
+889473000 0 0 0 0
+889472700 0 0 4 0
+889472400 4 0 10 2
+889472100 9 2 10 14
+889471800 2 13 3 14
+889471500 0 0 3 10
+889471200 2 9 3 10
+889470900 2 7 7 17
+889470600 6 16 7 17
+889470300 1 9 2 9
+889470000 2 8 2 9
+889469700 1 0 2 0
+889469400 0 0 4 9
+889469100 3 8 4 9
+889468800 0 0 1 1
+889468500 0 1 6 10
+889468200 5 10 6 10
+889467900 5 10 7 10
+889467600 6 10 7 17
+889467300 2 17 5 25
+889467000 4 24 5 25
+889466700 0 0 3 8
+889466400 2 7 3 8
+889466100 0 0 2 2
+889465800 2 2 2 5
+889465500 1 4 2 5
+889465200 0 0 3 62
+889464900 2 61 3 62
+889464600 0 0 3 5
+889464300 3 5 3 85
+889464000 2 84 3 85
+889463700 1 58 3 59
+889463400 2 31 3 32
+889463100 0 0 2 59
+889462800 2 58 3 59
+889462500 2 48 3 66
+889462200 1 66 7 142
+889461900 6 140 7 142
+889461600 0 1 4 156
+889461300 3 154 4 156
+889461000 0 0 10 65
+889460700 9 64 10 65
+889460400 2 11 4 60
+889460100 3 59 4 60
+889459800 2 9 3 10
+889459500 0 1 3 101
+889459200 2 100 3 101
+889458900 1 22 2 67
+889458600 2 66 4 67
+889458300 3 61 4 62
+889458000 0 28 1 37
+889457700 0 36 1 37
+889457400 0 0 3 30
+889457100 2 29 3 30
+889456800 0 0 3 9
+889456500 3 9 5 34
+889456200 5 34 5 80
+889455900 4 79 5 80
+889455600 2 45 3 100
+889455300 2 98 3 100
+889455000 0 0 6 25
+889454700 5 25 6 107
+889454400 3 106 3 107
+889454100 2 48 3 49
+889453800 0 0 5 83
+889453500 5 82 5 83
+889453200 5 13 5 14
+889452900 4 12 5 13
+889452600 0 0 2 11
+889452300 2 11 12 66
+889452000 11 65 12 66
+889451700 0 0 1 11
+889451400 1 11 3 14
+889451100 2 14 3 105
+889450800 0 104 3 105
+889450500 3 52 3 53
+889450200 2 21 3 22
+889449900 2 8 2 30
+889449600 2 29 5 30
+889449300 4 11 5 12
+889449000 0 0 0 0
+889448700 0 0 0 0
+889448400 0 0 1 12
+889448100 1 11 4 12
+889447800 3 3 4 62
+889447500 0 61 1 62
+889447200 0 0 3 0
+889446900 2 0 3 2
+889446600 1 4 2 106
+889446300 1 105 3 106
+889446000 2 17 3 85
+889445700 0 84 1 85
+889445400 1 40 5 58
+889445100 4 57 5 58
+889444800 1 30 2 31
+889444500 0 1 1 107
+889444200 0 104 1 107
+889443900 0 0 0 0
+889443600 0 0 0 0
+889443300 0 0 0 0
+889443000 0 0 0 0
+889442700 0 0 0 0
+889442400 0 0 0 0
+889442100 0 0 0 0
+889441800 0 0 0 0
+889441500 0 0 0 0
+889441200 0 0 0 0
+889440900 0 0 0 0
+889440600 0 0 0 0
+889440300 0 0 0 0
+889440000 0 0 0 0
+889439700 0 0 0 0
+889439400 0 0 0 0
+889439100 0 0 0 0
+889438800 0 0 0 0
+889438500 0 0 0 0
+889438200 0 0 0 0
+889437900 0 0 0 0
+889437600 0 0 0 0
+889437300 0 0 0 0
+889437000 0 0 0 0
+889436700 0 0 0 0
+889436400 0 0 0 0
+889436100 0 0 0 0
+889435800 0 0 0 0
+889435500 0 0 0 0
+889435200 0 0 0 0
+889434900 0 0 0 0
+889434600 0 0 0 0
+889434300 0 0 0 0
+889434000 0 0 0 0
+889433700 0 0 0 0
+889433400 0 0 0 0
+889433100 0 0 0 0
+889432800 0 0 0 0
+889432500 0 0 0 0
+889432200 0 0 0 0
+889431900 0 0 0 0
+889431600 0 0 0 0
+889431300 0 0 0 0
+889431000 0 0 0 0
+889430700 0 0 0 0
+889430400 0 0 0 0
+889428600 0 0 0 0
+889426800 0 0 0 0
+889425000 0 0 0 0
+889423200 0 0 0 0
+889421400 0 0 0 0
+889419600 0 0 0 0
+889417800 0 0 0 0
+889416000 0 0 0 0
+889414200 0 0 0 0
+889412400 0 0 0 0
+889410600 0 0 0 0
+889408800 0 0 0 0
+889407000 0 0 0 0
+889405200 0 0 0 0
+889403400 0 0 0 0
+889401600 0 0 0 0
+889399800 0 0 0 0
+889398000 0 0 0 0
+889396200 0 0 0 0
+889394400 0 0 0 0
+889392600 0 0 0 0
+889390800 0 0 0 0
+889389000 0 0 0 0
+889387200 0 0 0 0
+889385400 0 0 0 0
+889383600 0 0 0 0
+889381800 0 0 0 0
+889380000 0 0 0 0
+889378200 0 0 0 0
+889376400 0 0 0 0
+889374600 0 0 0 0
+889372800 0 0 0 0
+889371000 0 0 0 0
+889369200 0 0 0 0
+889367400 0 0 0 0
+889365600 0 0 0 0
+889363800 0 0 0 0
+889362000 0 0 0 0
+889360200 0 0 0 0
+889358400 0 0 0 0
+889356600 0 0 0 0
+889354800 0 0 0 0
+889353000 0 0 0 0
+889351200 0 0 0 0
+889349400 0 0 0 0
+889347600 0 0 0 0
+889345800 0 0 0 0
+889344000 0 0 0 0
+889342200 0 0 0 0
+889340400 0 0 0 0
+889338600 0 0 0 0
+889336800 0 0 0 0
+889335000 0 0 0 0
+889333200 0 0 0 0
+889331400 0 0 0 0
+889329600 0 0 0 0
+889327800 0 0 0 0
+889326000 0 0 0 0
+889324200 0 0 0 0
+889322400 0 0 0 0
+889320600 0 0 0 0
+889318800 0 0 0 0
+889317000 0 0 0 0
+889315200 0 0 0 0
+889313400 0 0 0 0
+889311600 0 0 0 0
+889309800 0 0 0 0
+889308000 0 0 0 0
+889306200 0 0 0 0
+889304400 0 0 0 0
+889302600 0 0 0 0
+889300800 0 0 0 0
+889299000 0 0 0 0
+889297200 0 0 0 0
+889295400 0 0 0 0
+889293600 0 0 0 0
+889291800 0 0 0 0
+889290000 0 0 0 0
+889288200 0 0 0 0
+889286400 0 0 0 0
+889284600 0 0 0 0
+889282800 0 0 0 0
+889281000 0 0 0 0
+889279200 0 0 0 0
+889277400 0 0 0 0
+889275600 0 0 0 0
+889273800 0 0 0 0
+889272000 0 0 0 0
+889270200 0 0 0 0
+889268400 0 0 0 0
+889266600 0 0 0 0
+889264800 0 0 0 0
+889263000 0 0 0 0
+889261200 0 0 0 0
+889259400 0 0 0 0
+889257600 0 0 0 0
+889255800 0 0 0 0
+889254000 0 0 0 0
+889252200 0 0 0 0
+889250400 0 0 0 0
+889248600 0 0 0 0
+889246800 0 0 0 0
+889245000 0 0 0 0
+889243200 0 0 0 0
+889241400 0 0 0 0
+889239600 0 0 0 0
+889237800 0 0 0 0
+889236000 0 0 0 0
+889234200 0 0 0 0
+889232400 0 0 0 0
+889230600 0 0 0 0
+889228800 0 0 0 0
+889227000 0 0 0 0
+889225200 0 0 0 0
+889223400 0 0 0 0
+889221600 0 0 0 0
+889219800 0 0 0 0
+889218000 0 0 0 0
+889216200 0 0 0 0
+889214400 0 0 0 0
+889212600 0 0 0 0
+889210800 0 0 0 0
+889209000 0 0 0 0
+889207200 0 0 0 0
+889205400 0 0 0 0
+889203600 0 0 0 0
+889201800 0 0 0 0
+889200000 0 0 0 0
+889198200 0 0 0 0
+889196400 0 0 0 0
+889194600 0 0 0 0
+889192800 0 0 0 0
+889191000 0 0 0 0
+889189200 0 0 0 0
+889187400 0 0 0 0
+889185600 0 0 0 0
+889183800 0 0 0 0
+889182000 0 0 0 0
+889180200 0 0 0 0
+889178400 0 0 0 0
+889176600 0 0 0 0
+889174800 0 0 0 0
+889173000 0 0 0 0
+889171200 0 0 0 0
+889169400 0 0 0 0
+889167600 0 0 0 0
+889165800 0 0 0 0
+889164000 0 0 0 0
+889162200 0 0 0 0
+889160400 0 0 0 0
+889158600 0 0 0 0
+889156800 0 0 0 0
+889155000 0 0 0 0
+889153200 0 0 0 0
+889151400 0 0 0 0
+889149600 0 0 0 0
+889147800 0 0 0 0
+889146000 0 0 0 0
+889144200 0 0 0 0
+889142400 0 0 0 0
+889140600 0 0 0 0
+889138800 0 0 0 0
+889137000 0 0 0 0
+889135200 0 0 0 0
+889133400 0 0 0 0
+889131600 0 0 0 0
+889129800 0 0 0 0
+889128000 0 0 0 0
+889126200 0 0 0 0
+889124400 0 0 0 0
+889122600 3 0 9 1
+889120800 2 0 7 31
+889119000 5 8 8 31
+889117200 2 5 5 18
+889115400 2 0 8 2
+889113600 3 2 6 14
+889111800 1 0 6 0
+889110000 1 9 6 53
+889108200 2 0 10 2
+889106400 2 0 7 0
+889104600 2 9 5 46
+889102800 1 0 3 0
+889101000 2 1 5 6
+889099200 0 0 3 6
+889097400 1 0 5 6
+889095600 2 5 5 18
+889093800 3 1 5 9
+889092000 3 3 4 9
+889090200 2 8 4 18
+889088400 2 30 3 86
+889086600 2 61 7 128
+889084800 3 11 7 43
+889083000 3 22 7 65
+889081200 2 6 5 22
+889079400 2 7 6 21
+889077600 2 2 6 16
+889075800 3 0 6 1
+889074000 3 0 5 4
+889072200 2 9 5 41
+889070400 7 0 14 37
+889068600 3 24 11 50
+889066800 3 12 11 24
+889065000 3 9 10 23
+889063200 5 13 10 25
+889061400 3 29 8 58
+889059600 5 8 9 19
+889057800 5 10 11 46
+889056000 8 22 11 96
+889054200 6 39 13 96
+889052400 9 16 15 30
+889050600 6 16 9 57
+889048800 5 25 7 60
+889047000 7 5 14 14
+889045200 5 12 9 44
+889043400 5 0 10 2
+889041600 5 12 11 32
+889039800 3 0 10 1
+889038000 7 20 11 33
+889036200 4 3 13 12
+889034400 7 6 14 16
+889032600 5 8 10 21
+889030800 4 9 9 55
+889029000 4 23 5 41
+889027200 3 14 6 44
+889025400 4 3 7 16
+889023600 1 11 3 55
+889021800 2 11 6 52
+889020000 2 27 6 69
+889018200 2 8 6 52
+889016400 1 3 5 17
+889014600 4 0 9 2
+889012800 2 0 5 2
+889011000 2 10 5 39
+889009200 2 8 6 19
+889007400 3 14 7 42
+889005600 2 12 6 34
+889003800 4 0 6 19
+889002000 2 5 10 19
+889000200 6 9 11 55
+888998400 3 3 6 16
+888996600 2 40 6 86
+888994800 5 12 10 46
+888993000 6 18 12 53
+888991200 3 19 5 44
+888989400 3 4 6 15
+888987600 2 2 7 8
+888985800 3 5 6 15
+888984000 3 0 6 1
+888982200 4 0 8 1
+888980400 3 0 9 1
+888978600 5 2 13 12
+888976800 7 14 15 36
+888975000 4 7 7 30
+888973200 3 11 8 33
+888971400 6 6 8 27
+888969600 5 7 11 33
+888967800 4 15 7 38
+888966000 7 21 10 57
+888964200 6 21 10 46
+888962400 6 8 10 22
+888960600 4 14 8 33
+888958800 4 9 6 25
+888957000 5 20 10 57
+888955200 4 15 9 74
+888953400 3 14 11 42
+888951600 7 26 15 45
+888949800 4 12 9 67
+888948000 3 20 8 61
+888946200 4 26 7 88
+888944400 3 18 6 42
+888942600 4 15 7 38
+888940800 2 0 4 2
+888939000 0 0 5 3
+888937200 2 2 6 18
+888935400 1 0 5 3
+888933600 0 0 3 0
+888931800 0 8 4 39
+888930000 0 0 3 0
+888928200 0 0 3 1
+888926400 0 5 4 19
+888924600 0 0 4 3
+888922800 0 0 3 2
+888921000 1 0 5 17
+888919200 2 5 6 17
+888917400 3 11 8 58
+888915600 2 35 7 86
+888913800 1 32 7 54
+888912000 1 35 5 57
+888910200 1 5 5 18
+888908400 0 10 3 57
+888906600 2 30 6 60
+888904800 2 4 9 30
+888903000 3 13 10 27
+888901200 4 3 9 12
+888899400 2 0 8 5
+888897600 4 5 13 14
+888895800 2 9 7 35
+888894000 3 3 10 14
+888892200 4 0 13 6
+888890400 3 1 13 10
+888888600 3 4 5 17
+888886800 4 19 11 57
+888885000 5 38 9 95
+888883200 6 50 10 164
+888881400 4 93 10 164
+888879600 4 64 13 88
+888877800 5 88 14 136
+888876000 5 51 9 116
+888874200 4 57 7 120
+888872400 3 25 7 60
+888870600 3 6 10 19
+888868800 2 35 4 120
+888867000 6 55 15 103
+888865200 3 76 7 140
+888863400 2 51 7 119
+888861600 3 31 11 78
+888859800 2 39 11 84
+888858000 3 22 7 58
+888856200 2 42 7 124
+888854400 1 32 6 76
+888852600 2 33 10 74
+888850800 1 17 7 40
+888849000 1 0 3 1
+888847200 0 0 4 1
+888845400 1 10 6 63
+888843600 1 1 10 9
+888841800 1 0 10 1
+888840000 1 0 6 4
+888838200 0 19 6 66
+888836400 1 7 4 58
+888834600 1 15 5 58
+888832800 0 32 5 55
+888831000 1 2 5 15
+888829200 1 0 6 1
+888827400 2 1 6 13
+888825600 2 15 4 64
+888823800 2 29 5 65
+888822000 1 3 6 26
+888820200 7 7 30 31
+888818400 0 0 3 4
+888816600 2 0 9 2
+888814800 0 15 2 66
+888813000 1 12 4 31
+888811200 3 3 8 10
+888809400 2 10 10 29
+888807600 3 0 6 1
+888805800 1 0 8 1
+888804000 0 9 2 42
+888802200 3 0 6 1
+888800400 1 3 6 14
+888798600 3 9 6 26
+888796800 2 0 6 1
+888795000 1 13 5 45
+888793200 2 0 7 1
+888791400 2 0 6 3
+888789600 9 4 41 18
+888787800 0 0 0 4
+888786000 0 0 1 1
+888784200 1 1 1 1
+888782400 1 6 6 25
+888780600 1 7 7 35
+888778800 0 0 5 1
+888777000 1 0 4 3
+888775200 3 0 8 2
+888773400 2 45 5 112
+888771600 1 9 4 41
+888769800 1 35 4 107
+888768000 2 12 5 45
+888766200 0 0 2 1
+888764400 0 0 2 1
+888762600 0 0 2 1
+888760800 0 0 4 1
+888759000 0 10 5 39
+888757200 0 0 2 1
+888755400 0 0 2 2
+888753600 0 0 1 2
+888751800 0 0 3 1
+888750000 0 0 2 2
+888748200 2 2 9 15
+888746400 1 6 5 21
+888744600 1 0 4 1
+888742800 1 1 3 15
+888741000 2 0 4 1
+888739200 1 1 3 10
+888737400 2 1 5 6
+888735600 0 0 4 1
+888733800 1 0 6 1
+888732000 3 0 9 0
+888730200 1 2 3 16
+888728400 0 2 3 16
+888726600 1 0 6 2
+888724800 1 0 4 1
+888723000 1 0 3 1
+888721200 2 0 11 3
+888719400 1 13 4 41
+888717600 1 0 4 2
+888715800 1 0 3 2
+888714000 1 3 7 15
+888712200 2 1 7 16
+888710400 2 0 8 5
+888708600 1 0 5 2
+888706800 0 0 3 2
+888705000 2 2 5 17
+888703200 0 0 5 2
+888701400 1 0 5 4
+888699600 1 0 3 1
+888697800 1 0 3 6
+888696000 1 1 6 6
+888694200 0 0 4 2
+888692400 1 10 2 33
+888690600 1 0 5 3
+888688800 1 0 5 2
+888687000 0 0 3 2
+888685200 1 2 5 16
+888683400 1 2 5 14
+888681600 2 0 3 1
+888679800 0 0 3 1
+888678000 1 0 4 1
+888676200 0 4 3 16
+888674400 0 7 3 32
+888672600 0 10 2 32
+888670800 0 10 3 32
+888669000 0 3 2 20
+888667200 0 1 3 16
+888665400 1 7 4 17
+888663600 0 0 3 1
+888661800 0 0 4 2
+888660000 0 2 3 13
+888658200 0 0 3 1
+888656400 0 0 2 1
+888654600 1 0 6 1
+888652800 0 0 3 3
+888651000 2 0 4 3
+888649200 1 2 4 9
+888647400 1 12 4 15
+888645600 2 4 4 9
+888643800 1 6 5 14
+888642000 3 2 5 15
+888640200 1 3 4 15
+888638400 2 1 7 3
+888636600 2 8 6 15
+888634800 2 6 7 14
+888633000 2 39 7 157
+888631200 2 23 9 38
+888629400 6 37 9 57
+888627600 3 12 5 38
+888625800 1 6 6 27
+888624000 3 6 6 36
+888622200 3 5 8 18
+888620400 7 17 10 62
+888618600 4 25 7 60
+888616800 4 8 10 17
+888615000 5 6 8 33
+888613200 4 9 9 17
+888611400 3 7 6 16
+888609600 2 6 5 12
+888607800 4 3 7 12
+888606000 3 6 6 16
+888604200 8 3 13 12
+888602400 1 0 7 0
+888600600 3 0 8 2
+888598800 4 2 10 18
+888597000 4 0 8 0
+888595200 6 0 10 1
+888593400 2 0 6 1
+888591600 1 0 4 2
+888589800 2 0 4 1
+888588000 3 0 5 3
+888586200 2 3 5 48
+888584400 2 2 5 39
+888582600 1 0 2 1
+888580800 1 0 3 2
+888579000 1 0 4 2
+888577200 0 0 2 10
+888575400 2 7 5 16
+888573600 2 0 7 16
+888571800 2 7 4 50
+888570000 2 61 7 104
+888568200 0 5 2 8
+888566400 0 1 5 19
+888564600 1 0 7 3
+888562800 2 3 4 8
+888561000 2 0 8 2
+888559200 3 0 9 1
+888557400 2 1 7 4
+888555600 4 6 6 52
+888553800 1 0 5 1
+888552000 1 0 6 1
+888550200 2 0 5 3
+888548400 3 0 9 2
+888546600 2 6 4 40
+888544800 3 12 6 26
+888543000 4 0 6 1
+888541200 2 18 4 31
+888539400 4 43 10 148
+888537600 8 50 12 111
+888535800 3 35 5 58
+888534000 4 1 7 43
+888532200 3 42 7 85
+888530400 3 24 6 79
+888528600 5 38 11 75
+888526800 3 9 5 15
+888525000 3 77 6 108
+888523200 4 44 14 96
+888521400 6 11 9 73
+888519600 4 48 9 84
+888517800 5 21 9 47
+888516000 5 1 10 10
+888514200 2 0 7 3
+888512400 4 1 8 4
+888510600 4 2 7 5
+888508800 1 7 4 17
+888507000 3 0 10 2
+888505200 2 0 5 2
+888503400 4 0 7 1
+888501600 4 1 6 5
+888499800 2 7 5 53
+888498000 3 47 5 65
+888496200 0 5 2 11
+888494400 1 1 3 16
+888492600 0 0 4 18
+888490800 0 0 4 1
+888489000 1 0 5 1
+888487200 2 2 5 6
+888485400 1 0 3 1
+888483600 1 1 5 4
+888481800 2 11 7 17
+888480000 1 0 7 3
+888478200 5 8 8 25
+888476400 1 0 6 1
+888474600 5 0 9 4
+888472800 2 1 5 17
+888471000 2 3 5 16
+888469200 3 7 7 17
+888467400 1 0 5 1
+888465600 2 0 3 1
+888463800 4 13 7 37
+888462000 4 11 6 25
+888460200 3 0 6 2
+888458400 6 1 10 16
+888456600 5 15 9 33
+888454800 7 8 10 16
+888453000 3 23 7 34
+888451200 7 11 11 22
+888449400 3 4 5 20
+888447600 6 4 9 8
+888445800 3 10 5 18
+888444000 5 14 13 120
+888442200 5 69 11 117
+888440400 6 32 9 53
+888438600 3 0 8 1
+888436800 4 1 11 4
+888435000 4 2 8 8
+888433200 5 3 12 11
+888431400 4 6 8 18
+888429600 4 4 13 15
+888427800 5 1 10 3
+888426000 5 4 9 8
+888424200 3 0 5 1
+888422400 4 6 6 15
+888420600 4 2 8 5
+888418800 6 6 10 15
+888417000 4 3 6 19
+888415200 2 49 6 94
+888413400 1 7 5 17
+888411600 3 35 5 143
+888409800 3 23 5 87
+888408000 0 18 4 28
+888406200 2 0 4 1
+888404400 1 14 3 91
+888402600 3 82 6 138
+888400800 5 8 11 15
+888399000 2 0 4 6
+888397200 1 2 5 13
+888395400 2 2 5 8
+888393600 2 73 4 109
+888391800 3 4 7 15
+888390000 4 0 8 15
+888388200 3 0 8 4
+888386400 5 1 7 8
+888384600 3 49 7 149
+888382800 2 0 6 4
+888381000 2 2 5 16
+888379200 6 30 11 121
+888377400 4 0 8 1
+888375600 3 1 7 13
+888373800 5 4 10 16
+888372000 6 0 9 18
+888370200 6 6 11 30
+888368400 3 6 6 32
+888366600 5 0 11 1
+888364800 3 2 5 25
+888363000 3 36 9 150
+888361200 8 22 11 83
+888359400 2 27 13 57
+888357600 4 53 11 79
+888355800 4 0 8 1
+888354000 3 0 9 3
+888352200 3 2 7 13
+888350400 3 23 8 73
+888343200 4 39 12 145
+888336000 2 7 8 105
+888328800 1 3 9 46
+888321600 3 13 9 101
+888314400 1 15 6 78
+888307200 3 34 8 103
+888300000 2 2 7 15
+888292800 1 22 10 150
+888285600 3 5 10 58
+888278400 4 19 12 61
+888271200 4 6 14 31
+888264000 5 16 21 87
+888256800 4 22 13 149
+888249600 2 43 9 119
+888242400 0 13 4 70
+888235200 0 0 7 26
+888228000 1 5 5 24
+888220800 2 0 9 12
+888213600 0 0 5 12
+888206400 1 5 7 19
+888199200 2 4 9 44
+888192000 2 2 7 41
+888184800 3 12 8 106
+888177600 1 1 6 29
+888170400 1 0 7 14
+888163200 0 13 4 156
+888156000 0 0 4 37
+888148800 1 17 4 142
+888141600 0 2 7 26
+888134400 0 3 3 29
+888127200 0 5 5 52
+888120000 1 2 5 30
+888112800 2 4 10 108
+888105600 3 4 9 153
+888098400 2 14 20 165
+888091200 1 14 9 117
+888084000 1 3 7 16
+888076800 1 1 7 28
+888069600 0 0 3 58
+888062400 1 0 6 14
+888055200 1 0 5 3
+888048000 0 0 4 28
+888040800 0 1 6 19
+888033600 1 2 6 15
+888026400 3 8 10 39
+888019200 3 0 8 10
+888012000 3 7 8 71
+888004800 4 10 9 45
+887997600 4 12 11 89
+887990400 3 9 6 62
+887983200 1 43 7 156
+887976000 1 13 8 115
+887968800 3 19 9 115
+887961600 2 18 7 115
+887954400 3 8 8 51
+887947200 2 5 8 41
+887940000 5 16 13 81
+887932800 5 8 15 82
+887925600 4 43 12 135
+887918400 6 6 11 28
+887911200 3 3 9 23
+887904000 2 1 8 14
+887896800 1 1 6 33
+887889600 2 0 9 8
+887882400 2 8 11 41
+887875200 2 34 6 132
+887868000 2 2 7 21
+887860800 2 7 16 47
+887853600 3 1 11 16
+887846400 3 10 10 105
+887839200 5 17 15 76
+887832000 3 3 10 50
+887824800 2 8 11 46
+887817600 2 1 11 18
+887810400 2 1 9 44
+887803200 2 21 6 126
+887796000 1 12 28 83
+887788800 0 0 5 14
+887781600 1 4 7 30
+887774400 2 4 11 28
+887767200 3 1 9 35
+887760000 3 12 12 89
+887752800 3 34 7 111
+887745600 3 7 12 42
+887738400 3 0 6 32
+887731200 1 16 6 97
+887724000 0 16 9 86
+887716800 1 0 7 13
+887709600 0 0 7 13
+887702400 1 5 7 16
+887695200 1 0 6 16
+887688000 1 1 5 14
+887680800 2 1 12 16
+887673600 3 14 9 161
+887666400 3 2 10 15
+887659200 3 1 14 37
+887652000 3 0 8 12
+887644800 1 0 8 14
+887637600 1 0 5 36
+887630400 1 1 6 16
+887623200 1 1 6 14
+887616000 0 0 9 12
+887608800 1 3 6 12
+887601600 1 3 8 22
+887594400 2 2 7 19
+887587200 3 33 7 115
+887580000 1 11 7 89
+887572800 1 0 8 1
+887565600 3 0 5 0
+887558400 0 7 6 58
+887551200 0 4 4 67
+887544000 0 17 4 61
+887536800 1 1 5 55
+887529600 0 11 4 60
+887522400 0 5 4 28
+887515200 1 2 6 21
+887508000 0 1 6 14
+887500800 1 5 6 28
+887493600 0 0 7 8
+887486400 1 2 6 27
+887479200 0 2 4 14
+887472000 3 1 13 54
+887464800 0 0 4 1
+887457600 0 4 6 60
+887450400 1 0 8 0
+887443200 1 0 4 15
+887436000 2 15 10 92
+887428800 1 1 6 14
+887421600 2 7 10 31
+887414400 3 4 11 32
+887407200 6 9 12 83
+887400000 6 12 13 107
+887392800 5 14 18 47
+887385600 3 3 10 32
+887378400 2 3 5 15
+887371200 1 0 9 45
+887364000 1 4 5 34
+887356800 1 5 8 156
+887349600 2 20 6 51
+887342400 2 4 8 28
+887335200 4 2 14 29
+887328000 3 0 10 15
+887320800 5 3 15 49
+887313600 3 4 9 42
+887306400 3 2 10 14
+887299200 3 4 9 29
+887292000 2 9 7 87
+887284800 0 2 6 51
+887277600 1 6 10 56
+887270400 1 0 8 21
+887263200 1 0 5 13
+887256000 1 2 15 15
+887248800 1 5 9 24
+887241600 4 11 14 121
+887234400 4 0 21 14
+887227200 3 16 11 106
+887220000 3 8 9 140
+887212800 3 25 10 101
+887205600 2 57 8 145
+887198400 0 9 5 29
+887191200 0 4 4 18
+887184000 1 1 6 14
+887176800 1 63 7 163
+887169600 2 2 10 28
+887162400 3 4 8 87
+887155200 2 12 8 76
+887148000 4 27 12 114
+887140800 3 100 8 332
+887133600 3 16 9 63
+887126400 2 1 8 7
+887119200 2 0 12 4
+887112000 1 5 10 66
+887104800 0 24 5 102
+887097600 1 1 9 16
+887090400 1 11 7 93
+887083200 1 0 7 14
+887076000 3 0 8 15
+887068800 3 1 13 15
+887061600 2 1 9 13
+887054400 2 2 10 14
+887047200 2 8 7 85
+887040000 2 9 7 77
+887032800 1 3 7 33
+887025600 0 1 5 40
+887018400 2 0 7 7
+887011200 2 0 7 6
+887004000 0 0 6 7
+886996800 2 0 8 6
+886989600 1 1 6 13
+886982400 1 0 5 14
+886975200 2 0 6 13
+886968000 0 0 6 13
+886960800 0 0 4 1
+886953600 0 0 4 2
+886946400 0 8 7 119
+886939200 0 0 3 33
+886932000 0 0 5 13
+886924800 0 0 4 20
+886917600 0 0 8 2
+886910400 0 0 4 13
+886903200 1 0 7 15
+886896000 1 0 8 24
+886888800 2 0 7 14
+886881600 2 0 8 14
+886874400 2 0 9 14
+886867200 3 0 7 3
+886860000 0 5 4 91
+886852800 0 0 4 32
+886845600 0 0 5 2
+886838400 0 4 4 31
+886831200 1 1 7 44
+886824000 5 0 21 15
+886816800 2 5 10 47
+886809600 3 32 18 180
+886802400 3 20 19 121
+886795200 4 6 13 43
+886788000 6 15 19 66
+886780800 4 0 12 16
+886773600 3 3 15 19
+886766400 1 1 5 49
+886759200 1 9 6 91
+886752000 2 26 10 116
+886744800 1 4 7 30
+886737600 1 24 7 78
+886730400 1 14 11 103
+886723200 3 29 29 55
+886716000 7 17 26 45
+886708800 3 3 9 23
+886701600 3 1 14 20
+886694400 3 13 11 85
+886687200 4 7 25 119
+886680000 1 7 5 95
+886672800 1 5 8 34
+886665600 0 13 6 69
+886658400 3 20 9 95
+886651200 1 4 7 15
+886644000 1 7 9 21
+886636800 2 4 9 29
+886629600 3 4 9 46
+886622400 3 8 11 111
+886615200 2 4 10 37
+886608000 2 2 9 20
+886600800 3 0 9 3
+886593600 0 1 4 44
+886586400 1 1 5 17
+886579200 2 18 6 73
+886572000 1 9 5 39
+886564800 1 3 8 21
+886557600 7 0 32 13
+886550400 4 2 11 35
+886543200 5 3 14 22
+886536000 5 1 13 19
+886528800 2 15 13 74
+886521600 4 2 16 12
+886514400 2 12 9 96
+886507200 2 10 10 37
+886500000 2 1 8 13
+886492800 2 13 8 124
+886485600 1 14 9 64
+886478400 5 6 13 31
+886471200 1 4 7 25
+886464000 3 9 11 49
+886456800 4 5 9 86
+886449600 3 7 10 81
+886442400 6 14 28 150
+886435200 3 4 11 15
+886428000 1 10 7 70
+886420800 0 6 8 92
+886413600 1 0 6 5
+886406400 1 0 7 5
+886399200 1 6 6 52
+886392000 2 0 9 11
+886384800 2 0 9 5
+886377600 3 0 18 16
+886370400 3 29 12 116
+886363200 2 0 22 21
+886356000 0 0 6 5
+886348800 1 2 5 16
+886341600 0 0 2 8
+886334400 0 0 4 36
+886327200 0 0 4 2
+886320000 1 0 6 5
+886312800 0 0 4 10
+886305600 0 0 5 9
+886298400 1 11 6 75
+886291200 1 0 6 15
+886284000 0 0 5 16
+886276800 2 0 7 14
+886269600 1 0 8 1
+886262400 1 0 8 16
+886255200 0 0 4 1
+886248000 0 8 5 107
+886240800 0 0 5 14
+886233600 0 0 4 16
+886226400 1 2 8 20
+886219200 0 0 3 18
+886212000 1 6 8 47
+886204800 3 14 3 14
+886197600 3 14 3 14
+886190400 3 14 3 14
+886183200 3 14 3 14
+886176000 3 14 3 14
+886168800 3 14 3 14
+886161600 3 14 3 14
+886154400 3 14 3 14
+886147200 3 14 3 14
+886140000 3 14 3 14
+886132800 3 14 3 14
+886125600 3 14 3 14
+886118400 3 14 3 14
+886111200 3 14 3 14
+886104000 3 14 3 14
+886096800 3 14 3 14
+886089600 3 14 3 14
+886082400 3 14 3 14
+886075200 3 14 3 14
+886068000 3 14 3 14
+886060800 3 14 3 14
+886053600 3 9 8 14
+886046400 3 1 9 8
+886039200 2 9 8 39
+886032000 2 0 10 22
+886024800 6 12 15 169
+886017600 3 31 10 93
+886010400 4 20 10 97
+886003200 3 31 10 112
+885996000 3 0 7 15
+885988800 2 17 8 89
+885981600 2 26 7 98
+885974400 2 15 13 82
+885967200 2 2 12 24
+885960000 3 9 12 38
+885952800 3 10 9 78
+885945600 5 20 11 77
+885938400 4 34 11 122
+885931200 5 18 10 82
+885924000 4 16 12 61
+885916800 3 22 12 92
+885909600 1 19 8 83
+885902400 1 19 5 118
+885895200 2 2 16 31
+885888000 2 31 7 143
+885880800 2 0 7 27
+885873600 3 10 8 40
+885866400 3 0 10 23
+885859200 3 3 8 32
+885852000 4 6 13 36
+885844800 4 64 16 235
+885837600 3 25 12 69
+885830400 8 0 30 15
+885823200 3 1 7 16
+885816000 1 0 6 48
+885808800 1 15 5 69
+885801600 0 0 6 8
+885794400 1 0 6 11
+885787200 0 0 4 15
+885780000 1 0 6 1
+885772800 2 0 5 14
+885765600 0 0 8 15
+885758400 1 0 4 2
+885751200 1 1 11 15
+885744000 0 3 5 15
+885736800 0 1 5 50
+885729600 0 1 4 20
+885722400 0 0 4 15
+885715200 0 0 4 11
+885708000 0 0 4 15
+885700800 0 0 3 16
+885693600 1 2 4 16
+885686400 1 0 8 15
+885679200 1 0 9 16
+885672000 1 0 7 7
+885664800 0 0 5 10
+885657600 0 0 5 3
+885650400 0 12 3 118
+885643200 0 2 4 33
+885636000 0 0 5 15
+885628800 0 0 5 15
+885621600 0 1 5 30
+885614400 1 0 6 3
+885607200 2 0 10 15
+885600000 2 1 10 38
+885592800 2 1 10 13
+885585600 3 5 7 31
+885578400 3 0 10 16
+885571200 3 0 11 16
+885564000 4 0 19 12
+885556800 0 12 6 69
+885549600 1 17 6 90
+885542400 1 0 5 16
+885535200 2 0 8 13
+885528000 4 0 10 15
+885520800 5 1 12 18
+885513600 3 0 12 18
+885506400 3 5 8 42
+885499200 3 3 14 30
+885492000 5 20 12 60
+885484800 4 1 11 23
+885477600 4 7 17 70
+885470400 0 0 4 36
+885463200 0 0 7 2
+885456000 0 2 5 10
+885448800 1 0 6 17
+885441600 1 2 6 18
+885434400 1 5 7 41
+885427200 3 6 8 37
+885420000 3 0 12 17
+885412800 3 0 8 16
+885405600 4 3 16 21
+885398400 3 1 10 20
+885391200 4 0 16 2
+885384000 1 7 7 68
+885376800 2 11 6 47
+885369600 4 0 9 11
+885362400 1 18 6 101
+885355200 1 1 8 15
+885348000 1 5 9 27
+885340800 3 0 11 20
+885333600 2 2 7 63
+885326400 5 14 14 41
+885319200 5 13 13 43
+885312000 3 8 12 36
+885304800 1 0 9 3
+885297600 1 8 6 38
+885290400 2 9 7 66
+885283200 1 1 8 28
+885276000 2 2 7 20
+885268800 1 0 6 11
+885261600 2 2 8 32
+885254400 2 2 9 30
+885247200 1 0 7 10
+885240000 3 0 11 16
+885232800 1 0 10 19
+885225600 3 0 9 2
+885218400 1 0 12 14
+885211200 1 3 4 35
+885204000 1 0 8 2
+885196800 2 4 9 118
+885189600 0 12 4 56
+885182400 1 0 5 14
+885175200 1 0 4 20
+885168000 2 0 14 14
+885160800 4 2 11 14
+885153600 1 0 6 15
+885146400 1 3 8 22
+885139200 0 2 4 105
+885132000 0 14 6 47
+885124800 0 0 5 40
+885117600 0 0 4 2
+885110400 0 0 3 15
+885103200 0 0 3 24
+885096000 0 0 3 2
+885088800 0 1 4 10
+885081600 0 0 3 15
+885074400 0 3 4 21
+885067200 0 7 5 30
+885060000 1 2 4 15
+885052800 0 0 6 1
+885045600 0 2 3 86
+885038400 0 0 5 61
+885031200 0 1 10 29
+885024000 1 33 6 78
+885016800 2 24 7 116
+885009600 1 5 6 57
+885002400 1 4 7 13
+884995200 1 2 9 15
+884988000 2 1 8 22
+884980800 2 1 7 16
+884973600 3 8 11 31
+884966400 1 5 8 65
+884959200 1 7 6 96
+884952000 0 0 6 39
+884944800 1 4 9 18
+884937600 0 13 5 110
+884930400 1 0 6 8
+884923200 1 1 5 29
+884916000 3 4 9 30
+884908800 4 4 8 24
+884901600 3 2 10 16
+884894400 4 4 11 16
+884887200 2 14 9 109
+884880000 2 0 7 14
+884872800 1 0 6 40
+884865600 2 1 10 24
+884858400 2 0 7 28
+884851200 2 0 7 1
+884844000 2 20 7 117
+884836800 3 1 10 14
+884829600 4 4 17 28
+884822400 3 5 9 33
+884815200 3 7 20 31
+884808000 4 1 8 16
+884800800 2 13 7 93
+884793600 0 0 5 15
+884786400 1 10 10 68
+884779200 1 1 7 40
+884772000 1 0 8 4
+884764800 0 9 5 100
+884757600 1 1 5 14
+884750400 1 1 7 43
+884743200 2 15 6 58
+884736000 2 4 7 28
+884728800 4 9 12 42
+884721600 2 10 10 58
+884714400 3 14 13 38
+884707200 7 36 33 94
+884700000 0 20 6 88
+884692800 1 23 13 89
+884685600 0 6 6 37
+884678400 1 7 5 164
+884671200 0 28 5 150
+884664000 0 0 7 14
+884656800 1 4 7 40
+884649600 3 2 10 14
+884642400 3 17 11 91
+884635200 4 25 8 157
+884628000 4 12 10 90
+884620800 4 0 12 9
+884613600 2 1 10 15
+884606400 1 4 10 101
+884599200 2 0 15 10
+884592000 4 0 21 8
+884584800 0 14 5 132
+884577600 2 0 8 14
+884570400 2 13 10 148
+884563200 2 0 7 11
+884556000 2 45 5 181
+884548800 2 0 8 2
+884541600 1 0 7 2
+884534400 2 3 12 106
+884527200 0 1 5 18
+884520000 0 1 3 57
+884512800 0 0 4 3
+884505600 0 2 6 190
+884498400 2 14 10 68
+884491200 3 0 11 3
+884484000 0 0 3 1
+884476800 0 0 4 15
+884469600 1 12 5 64
+884462400 1 7 5 151
+884455200 1 15 5 63
+884448000 1 7 5 114
+884440800 1 2 6 59
+884433600 0 0 4 30
+884426400 0 0 4 30
+884419200 0 0 6 14
+884412000 0 0 4 15
+884404800 0 0 4 10
+884397600 2 0 12 3
+884390400 3 4 10 24
+884383200 3 0 10 13
+884376000 2 1 7 15
+884368800 4 4 11 24
+884361600 0 0 6 14
+884354400 1 35 7 382
+884347200 0 0 5 42
+884340000 5 0 25 9
+884332800 1 0 10 14
+884325600 0 0 5 16
+884318400 2 1 11 16
+884311200 1 19 7 103
+884304000 2 1 12 29
+884296800 4 6 14 25
+884289600 3 1 7 15
+884282400 2 4 8 45
+884275200 3 13 8 33
+884268000 1 8 7 75
+884260800 0 23 7 93
+884253600 0 0 5 13
+884246400 1 31 5 108
+884239200 1 0 6 1
+884232000 0 1 8 28
+884224800 1 0 6 23
+884217600 2 2 21 34
+884210400 3 3 6 22
+884203200 2 4 9 24
+884196000 2 6 7 24
+884188800 2 4 8 85
+884181600 0 0 7 20
+884174400 1 0 6 45
+884167200 1 2 5 18
+884160000 1 2 5 14
+884152800 0 0 4 15
+884145600 1 0 7 10
+884138400 2 1 7 15
+884131200 1 12 8 130
+884124000 3 62 12 268
+884116800 4 14 9 134
+884109600 3 13 8 71
+884102400 1 6 7 66
+884095200 2 9 5 68
+884088000 0 16 3 178
+884080800 1 18 7 96
+884073600 0 3 4 28
+884066400 1 79 6 694
+884059200 0 10 6 421
+884052000 1 22 8 90
+884044800 1 27 13 343
+884037600 0 0 9 17
+884030400 0 3 8 220
+883958400 0 5 10 143
+883872000 0 1 19 259
+883785600 0 1 9 123
+883699200 0 1 11 125
+883612800 0 1 10 144
+883526400 0 0 9 46
+883440000 0 0 12 50
+883353600 0 19 7 974
+883267200 0 0 6 16
+883180800 0 0 6 84
+883094400 0 31 9 666
+883008000 0 0 8 87
+882921600 0 0 12 58
+882835200 1 13 88 152
+882748800 0 0 13 196
+882662400 0 14 243 775
+882576000 0 0 8 0
+882489600 0 0 9 78
+882403200 0 8 11 187
+882316800 2 6 12 218
+882230400 1 6 35 193
+882144000 2 21 13 167
+882057600 0 12 14 215
+881971200 0 14 10 190
+881884800 1 6 16 185
+881798400 2 12 20 218
+881712000 2 4 13 168
+881625600 1 2 13 198
+881539200 3 1 12 116
+881452800 0 0 13 88
+881366400 0 14 13 642
+881280000 2 17 13 270
+881193600 1 10 10 162
+881107200 1 8 14 187
+881020800 2 4 18 91
+880934400 1 8 25 92
+880848000 0 2 10 105
+880761600 0 3 7 158
+880675200 0 10 11 190
+880588800 2 10 28 468
+880502400 3 9 14 121
+880416000 1 4 13 345
+880329600 2 16 13 163
+880243200 0 3 9 110
+880156800 0 0 11 123
+880070400 3 21 86 198
+879984000 0 4 13 111
+879897600 2 3 57 136
+879811200 2 12 14 155
+879724800 0 2 6 43
+879638400 0 0 0 0
+879552000 0 0 0 0
+879465600 0 0 0 0
+879379200 0 0 0 0
+879292800 0 0 0 0
+879206400 0 0 0 0
+879120000 0 0 0 0
+879033600 0 0 0 0
+878947200 0 0 0 0
+878860800 0 0 0 0
+878774400 0 0 0 0
+878688000 0 0 0 0
+878601600 0 0 0 0
+878515200 0 0 0 0
+878428800 0 0 0 0
+878342400 0 0 0 0
+878256000 0 0 0 0
+878169600 0 0 0 0
+878083200 0 0 0 0
+877996800 0 0 0 0
+877910400 0 0 0 0
+877824000 0 0 0 0
+877737600 0 0 0 0
+877651200 0 0 0 0
+877564800 0 0 0 0
+877478400 0 0 0 0
+877392000 0 0 0 0
+877305600 0 0 0 0
+877219200 0 0 0 0
+877132800 0 0 0 0
+877046400 0 0 0 0
+876960000 0 0 0 0
+876873600 0 0 0 0
+876787200 0 0 0 0
+876700800 0 0 0 0
+876614400 0 0 0 0
+876528000 0 0 0 0
+876441600 0 0 0 0
+876355200 0 0 0 0
+876268800 0 0 0 0
+876182400 0 0 0 0
+876096000 0 0 0 0
+876009600 0 0 0 0
+875923200 0 0 0 0
+875836800 0 0 0 0
+875750400 0 0 0 0
+875664000 0 0 0 0
+875577600 0 0 0 0
+875491200 0 0 0 0
+875404800 0 0 0 0
+875318400 0 0 0 0
+875232000 0 0 0 0
+875145600 0 0 0 0
+875059200 0 0 0 0
+874972800 0 0 0 0
+874886400 0 0 0 0
+874800000 0 0 0 0
+874713600 0 0 0 0
+874627200 0 0 0 0
+874540800 0 0 0 0
+874454400 0 0 0 0
+874368000 0 0 0 0
+874281600 0 0 0 0
+874195200 0 0 0 0
+874108800 0 0 0 0
+874022400 0 0 0 0
+873936000 0 0 0 0
+873849600 0 0 0 0
+873763200 0 0 0 0
+873676800 0 0 0 0
+873590400 0 0 0 0
+873504000 0 0 0 0
+873417600 0 0 0 0
+873331200 0 0 0 0
+873244800 0 0 0 0
+873158400 0 0 0 0
+873072000 0 0 0 0
+872985600 0 0 0 0
+872899200 0 0 0 0
+872812800 0 0 0 0
+872726400 0 0 0 0
+872640000 0 0 0 0
+872553600 0 0 0 0
+872467200 0 0 0 0
+872380800 0 0 0 0
+872294400 0 0 0 0
+872208000 0 0 0 0
+872121600 0 0 0 0
+872035200 0 0 0 0
+871948800 0 0 0 0
+871862400 0 0 0 0
+871776000 0 0 0 0
+871689600 0 0 0 0
+871603200 0 0 0 0
+871516800 0 0 0 0
+871430400 0 0 0 0
+871344000 0 0 0 0
+871257600 0 0 0 0
+871171200 0 0 0 0
+871084800 0 0 0 0
+870998400 0 0 0 0
+870912000 0 0 0 0
+870825600 0 0 0 0
+870739200 0 0 0 0
+870652800 0 0 0 0
+870566400 0 0 0 0
+870480000 0 0 0 0
+870393600 0 0 0 0
+870307200 0 0 0 0
+870220800 0 0 0 0
+870134400 0 0 0 0
+870048000 0 0 0 0
+869961600 0 0 0 0
+869875200 0 0 0 0
+869788800 0 0 0 0
+869702400 0 0 0 0
+869616000 0 0 0 0
+869529600 0 0 0 0
+869443200 0 0 0 0
+869356800 0 0 0 0
+869270400 0 0 0 0
+869184000 0 0 0 0
+869097600 0 0 0 0
+869011200 0 0 0 0
+868924800 0 0 0 0
+868838400 0 0 0 0
+868752000 0 0 0 0
+868665600 0 0 0 0
+868579200 0 0 0 0
+868492800 0 0 0 0
+868406400 0 0 0 0
+868320000 0 0 0 0
+868233600 0 0 0 0
+868147200 0 0 0 0
+868060800 0 0 0 0
+867974400 0 0 0 0
+867888000 0 0 0 0
+867801600 0 0 0 0
+867715200 0 0 0 0
+867628800 0 0 0 0
+867542400 0 0 0 0
+867456000 0 0 0 0
+867369600 0 0 0 0
+867283200 0 0 0 0
+867196800 0 0 0 0
+867110400 0 0 0 0
+867024000 0 0 0 0
+866937600 0 0 0 0
+866851200 0 0 0 0
+866764800 0 0 0 0
+866678400 0 0 0 0
+866592000 0 0 0 0
+866505600 0 0 0 0
+866419200 0 0 0 0
+866332800 0 0 0 0
+866246400 0 0 0 0
+866160000 0 0 0 0
+866073600 0 0 0 0
+865987200 0 0 0 0
+865900800 0 0 0 0
+865814400 0 0 0 0
+865728000 0 0 0 0
+865641600 0 0 0 0
+865555200 0 0 0 0
+865468800 0 0 0 0
+865382400 0 0 0 0
+865296000 0 0 0 0
+865209600 0 0 0 0
+865123200 0 0 0 0
+865036800 0 0 0 0
+864950400 0 0 0 0
+864864000 0 0 0 0
+864777600 0 0 0 0
+864691200 0 0 0 0
+864604800 0 0 0 0
+864518400 0 0 0 0
+864432000 0 0 0 0
+864345600 0 0 0 0
+864259200 0 0 0 0
+864172800 0 0 0 0
+864086400 0 0 0 0
+864000000 0 0 0 0
+863913600 0 0 0 0
+863827200 0 0 0 0
+863740800 0 0 0 0
+863654400 0 0 0 0
+863568000 0 0 0 0
+863481600 0 0 0 0
+863395200 0 0 0 0
+863308800 0 0 0 0
+863222400 0 0 0 0
+863136000 0 0 0 0
+863049600 0 0 0 0
+862963200 0 0 0 0
+862876800 0 0 0 0
+862790400 0 0 0 0
+862704000 0 0 0 0
+862617600 0 0 0 0
+862531200 0 0 0 0
+862444800 0 0 0 0
+862358400 0 0 0 0
+862272000 0 0 0 0
+862185600 0 0 0 0
+862099200 0 0 0 0
+862012800 0 0 0 0
+861926400 0 0 0 0
+861840000 0 0 0 0
+861753600 0 0 0 0
+861667200 0 0 0 0
+861580800 0 0 0 0
+861494400 0 0 0 0
+861408000 0 0 0 0
+861321600 0 0 0 0
+861235200 0 0 0 0
+861148800 0 0 0 0
+861062400 0 0 0 0
+860976000 0 0 0 0
+860889600 0 0 0 0
+860803200 0 0 0 0
+860716800 0 0 0 0
+860630400 0 0 0 0
+860544000 0 0 0 0
+860457600 0 0 0 0
+860371200 0 0 0 0
+860284800 0 0 0 0
+860198400 0 0 0 0
+860112000 0 0 0 0
+860025600 0 0 0 0
+859939200 0 0 0 0
+859852800 0 0 0 0
+859766400 0 0 0 0
+859680000 0 0 0 0
+859593600 0 0 0 0
+859507200 0 0 0 0
+859420800 0 0 0 0
+859334400 0 0 0 0
+859248000 0 0 0 0
+859161600 0 0 0 0
+859075200 0 0 0 0
+858988800 0 0 0 0
+858902400 0 0 0 0
+858816000 0 0 0 0
+858729600 0 0 0 0
+858643200 0 0 0 0
+858556800 0 0 0 0
+858470400 0 0 0 0
+858384000 0 0 0 0
+858297600 0 0 0 0
+858211200 0 0 0 0
+858124800 0 0 0 0
+858038400 0 0 0 0
+857952000 0 0 0 0
+857865600 0 0 0 0
+857779200 0 0 0 0
+857692800 0 0 0 0
+857606400 0 0 0 0
+857520000 0 0 0 0
+857433600 0 0 0 0
+857347200 0 0 0 0
+857260800 0 0 0 0
+857174400 0 0 0 0
+857088000 0 0 0 0
+857001600 0 0 0 0
+856915200 0 0 0 0
+856828800 0 0 0 0
+856742400 0 0 0 0
+856656000 0 0 0 0
+856569600 0 0 0 0
+856483200 0 0 0 0
+856396800 0 0 0 0
+856310400 0 0 0 0
+856224000 0 0 0 0
+856137600 0 0 0 0
+856051200 0 0 0 0
+855964800 0 0 0 0
+855878400 0 0 0 0
+855792000 0 0 0 0
+855705600 0 0 0 0
+855619200 0 0 0 0
+855532800 0 0 0 0
+855446400 0 0 0 0
+855360000 0 0 0 0
+855273600 0 0 0 0
+855187200 0 0 0 0
+855100800 0 0 0 0
+855014400 0 0 0 0
+854928000 0 0 0 0
+854841600 0 0 0 0
+854755200 0 0 0 0
+854668800 0 0 0 0
+854582400 0 0 0 0
+854496000 0 0 0 0
+854409600 0 0 0 0
+854323200 0 0 0 0
+854236800 0 0 0 0
+854150400 0 0 0 0
+854064000 0 0 0 0
+853977600 0 0 0 0
+853891200 0 0 0 0
+853804800 0 0 0 0
+853718400 0 0 0 0
+853632000 0 0 0 0
+853545600 0 0 0 0
+853459200 0 0 0 0
+853372800 0 0 0 0
+853286400 0 0 0 0
+853200000 0 0 0 0
+853113600 0 0 0 0
+853027200 0 0 0 0
+852940800 0 0 0 0
+852854400 0 0 0 0
+852768000 0 0 0 0
+852681600 0 0 0 0
+852595200 0 0 0 0
+852508800 0 0 0 0
+852422400 0 0 0 0
+852336000 0 0 0 0
+852249600 0 0 0 0
+852163200 0 0 0 0
+852076800 0 0 0 0
+851990400 0 0 0 0
+851904000 0 0 0 0
+851817600 0 0 0 0
+851731200 0 0 0 0
+851644800 0 0 0 0
+851558400 0 0 0 0
+851472000 0 0 0 0
+851385600 0 0 0 0
+851299200 0 0 0 0
+851212800 0 0 0 0
+851126400 0 0 0 0
+851040000 0 0 0 0
+850953600 0 0 0 0
+850867200 0 0 0 0
+850780800 0 0 0 0
+850694400 0 0 0 0
+850608000 0 0 0 0
+850521600 0 0 0 0
+850435200 0 0 0 0
+850348800 0 0 0 0
+850262400 0 0 0 0
+850176000 0 0 0 0
+850089600 0 0 0 0
+850003200 0 0 0 0
+849916800 0 0 0 0
+849830400 0 0 0 0
+849744000 0 0 0 0
+849657600 0 0 0 0
+849571200 0 0 0 0
+849484800 0 0 0 0
+849398400 0 0 0 0
+849312000 0 0 0 0
+849225600 0 0 0 0
+849139200 0 0 0 0
+849052800 0 0 0 0
+848966400 0 0 0 0
+848880000 0 0 0 0
+848793600 0 0 0 0
+848707200 0 0 0 0
+848620800 0 0 0 0
+848534400 0 0 0 0
+848448000 0 0 0 0
+848361600 0 0 0 0
+848275200 0 0 0 0
+848188800 0 0 0 0
+848102400 0 0 0 0
+848016000 0 0 0 0
+847929600 0 0 0 0
+847843200 0 0 0 0
+847756800 0 0 0 0
+847670400 0 0 0 0
+847584000 0 0 0 0
+847497600 0 0 0 0
+847411200 0 0 0 0
+847324800 0 0 0 0
+847238400 0 0 0 0
+847152000 0 0 0 0
+847065600 0 0 0 0
+846979200 0 0 0 0
+846892800 0 0 0 0
+846806400 0 0 0 0
+846720000 0 0 0 0
+846633600 0 0 0 0
+846547200 0 0 0 0
+846460800 0 0 0 0
+846374400 0 0 0 0
+846288000 0 0 0 0
+846201600 0 0 0 0
+846115200 0 0 0 0
+846028800 0 0 0 0
+845942400 0 0 0 0
+845856000 0 0 0 0
+845769600 0 0 0 0
+845683200 0 0 0 0
+845596800 0 0 0 0
+845510400 0 0 0 0
+845424000 0 0 0 0
+845337600 0 0 0 0
+845251200 0 0 0 0
+845164800 0 0 0 0
+845078400 0 0 0 0
+844992000 0 0 0 0
+844905600 0 0 0 0
+844819200 0 0 0 0
+844732800 0 0 0 0
+844646400 0 0 0 0
+844560000 0 0 0 0
+844473600 0 0 0 0
+844387200 0 0 0 0
+844300800 0 0 0 0
+844214400 0 0 0 0
+844128000 0 0 0 0
+844041600 0 0 0 0
+843955200 0 0 0 0
+843868800 0 0 0 0
+843782400 0 0 0 0
+843696000 0 0 0 0
+843609600 0 0 0 0
+843523200 0 0 0 0
+843436800 0 0 0 0
+843350400 0 0 0 0
+843264000 0 0 0 0
+843177600 0 0 0 0
+843091200 0 0 0 0
+843004800 0 0 0 0
+842918400 0 0 0 0
+842832000 0 0 0 0
+842745600 0 0 0 0
+842659200 0 0 0 0
+842572800 0 0 0 0
+842486400 0 0 0 0
+842400000 0 0 0 0
+842313600 0 0 0 0
+842227200 0 0 0 0
+842140800 0 0 0 0
+842054400 0 0 0 0
+841968000 0 0 0 0
+841881600 0 0 0 0
+841795200 0 0 0 0
+841708800 0 0 0 0
+841622400 0 0 0 0
+841536000 0 0 0 0
+841449600 0 0 0 0
+841363200 0 0 0 0
+841276800 0 0 0 0
+841190400 0 0 0 0
+841104000 0 0 0 0
+841017600 0 0 0 0
+840931200 0 0 0 0
+840844800 0 0 0 0
+840758400 0 0 0 0
+840672000 0 0 0 0
+840585600 0 0 0 0
+840499200 0 0 0 0
+840412800 0 0 0 0
+840326400 0 0 0 0
+840240000 0 0 0 0
+840153600 0 0 0 0
+840067200 0 0 0 0
+839980800 0 0 0 0
+839894400 0 0 0 0
+839808000 0 0 0 0
+839721600 0 0 0 0
+839635200 0 0 0 0
+839548800 0 0 0 0
+839462400 0 0 0 0
+839376000 0 0 0 0
+839289600 0 0 0 0
+839203200 0 0 0 0
+839116800 0 0 0 0
+839030400 0 0 0 0
+838944000 0 0 0 0
+838857600 0 0 0 0
+838771200 0 0 0 0
+838684800 0 0 0 0
+838598400 0 0 0 0
+838512000 0 0 0 0
+838425600 0 0 0 0
+838339200 0 0 0 0
+838252800 0 0 0 0
+838166400 0 0 0 0
+838080000 0 0 0 0
+837993600 0 0 0 0
+837907200 0 0 0 0
+837820800 0 0 0 0
+837734400 0 0 0 0
+837648000 0 0 0 0
+837561600 0 0 0 0
+837475200 0 0 0 0
+837388800 0 0 0 0
+837302400 0 0 0 0
+837216000 0 0 0 0
+837129600 0 0 0 0
+837043200 0 0 0 0
+836956800 0 0 0 0
+836870400 0 0 0 0
+836784000 0 0 0 0
+836697600 0 0 0 0
+836611200 0 0 0 0
+836524800 0 0 0 0
+836438400 0 0 0 0
+836352000 0 0 0 0
+836265600 0 0 0 0
+836179200 0 0 0 0
+836092800 0 0 0 0
+836006400 0 0 0 0
+835920000 0 0 0 0
+835833600 0 0 0 0
+835747200 0 0 0 0
+835660800 0 0 0 0
+835574400 0 0 0 0
+835488000 0 0 0 0
+835401600 0 0 0 0
+835315200 0 0 0 0
+835228800 0 0 0 0
+835142400 0 0 0 0
+835056000 0 0 0 0
+834969600 0 0 0 0
+834883200 0 0 0 0
+834796800 0 0 0 0
+834710400 0 0 0 0
+834624000 0 0 0 0
+834537600 0 0 0 0
+834451200 0 0 0 0
+834364800 0 0 0 0
+834278400 0 0 0 0
+834192000 0 0 0 0
+834105600 0 0 0 0
+834019200 0 0 0 0
+833932800 0 0 0 0
+833846400 0 0 0 0
+833760000 0 0 0 0
+833673600 0 0 0 0
+833587200 0 0 0 0
+833500800 0 0 0 0
+833414400 0 0 0 0
+833328000 0 0 0 0
+833241600 0 0 0 0
+833155200 0 0 0 0
+833068800 0 0 0 0
+832982400 0 0 0 0
+832896000 0 0 0 0
+832809600 0 0 0 0
+832723200 0 0 0 0
+832636800 0 0 0 0
+832550400 0 0 0 0
+832464000 0 0 0 0
+832377600 0 0 0 0
+832291200 0 0 0 0
+832204800 0 0 0 0
+832118400 0 0 0 0
+832032000 0 0 0 0
+831945600 0 0 0 0
+831859200 0 0 0 0
+831772800 0 0 0 0
+831686400 0 0 0 0
+831600000 0 0 0 0
+831513600 0 0 0 0
+831427200 0 0 0 0
+831340800 0 0 0 0
+831254400 0 0 0 0
+831168000 0 0 0 0
+831081600 0 0 0 0
+830995200 0 0 0 0
+830908800 0 0 0 0
+830822400 0 0 0 0
+830736000 0 0 0 0
+830649600 0 0 0 0
+830563200 0 0 0 0
+830476800 0 0 0 0
+830390400 0 0 0 0
+830304000 0 0 0 0
+830217600 0 0 0 0
+830131200 0 0 0 0
+830044800 0 0 0 0
+829958400 0 0 0 0
+829872000 0 0 0 0
+829785600 0 0 0 0
+829699200 0 0 0 0
+829612800 0 0 0 0
+829526400 0 0 0 0
+829440000 0 0 0 0
+829353600 0 0 0 0
+829267200 0 0 0 0
+829180800 0 0 0 0
+829094400 0 0 0 0
+829008000 0 0 0 0
+828921600 0 0 0 0
+828835200 0 0 0 0
+828748800 0 0 0 0
+828662400 0 0 0 0
+828576000 0 0 0 0
+828489600 0 0 0 0
+828403200 0 0 0 0
+828316800 0 0 0 0
+828230400 0 0 0 0
+828144000 0 0 0 0
+828057600 0 0 0 0
+827971200 0 0 0 0
+827884800 0 0 0 0
+827798400 0 0 0 0
+827712000 0 0 0 0
+827625600 0 0 0 0
+827539200 0 0 0 0
+827452800 0 0 0 0
+827366400 0 0 0 0
+827280000 0 0 0 0
+827193600 0 0 0 0
+827107200 0 0 0 0
+827020800 0 0 0 0
+826934400 0 0 0 0
+826848000 0 0 0 0
+826761600 0 0 0 0
+826675200 0 0 0 0
+826588800 0 0 0 0
+826502400 0 0 0 0
+826416000 0 0 0 0
+826329600 0 0 0 0
+826243200 0 0 0 0
+826156800 0 0 0 0
+826070400 0 0 0 0
+825984000 0 0 0 0
+825897600 0 0 0 0
+825811200 0 0 0 0
+825724800 0 0 0 0
+825638400 0 0 0 0
+825552000 0 0 0 0
+825465600 0 0 0 0
+825379200 0 0 0 0
+825292800 0 0 0 0
+825206400 0 0 0 0
+825120000 0 0 0 0
+825033600 0 0 0 0
+824947200 0 0 0 0
+824860800 0 0 0 0
+824774400 0 0 0 0
+824688000 0 0 0 0
+824601600 0 0 0 0
+824515200 0 0 0 0
+824428800 0 0 0 0
+824342400 0 0 0 0
+824256000 0 0 0 0
+824169600 0 0 0 0
+824083200 0 0 0 0
+823996800 0 0 0 0
+823910400 0 0 0 0
+823824000 0 0 0 0
+823737600 0 0 0 0
+823651200 0 0 0 0
+823564800 0 0 0 0
+823478400 0 0 0 0
+823392000 0 0 0 0
+823305600 0 0 0 0
+823219200 0 0 0 0
+823132800 0 0 0 0
+823046400 0 0 0 0
+822960000 0 0 0 0
+822873600 0 0 0 0
+822787200 0 0 0 0
+822700800 0 0 0 0
+822614400 0 0 0 0
+822528000 0 0 0 0
+822441600 0 0 0 0
+822355200 0 0 0 0
+822268800 0 0 0 0
+822182400 0 0 0 0
+822096000 0 0 0 0
+822009600 0 0 0 0
+821923200 0 0 0 0
+821836800 0 0 0 0
+821750400 0 0 0 0
+821664000 0 0 0 0
+821577600 0 0 0 0
+821491200 0 0 0 0
+821404800 0 0 0 0
+821318400 0 0 0 0
+821232000 0 0 0 0
+821145600 0 0 0 0
+821059200 0 0 0 0
+820972800 0 0 0 0
+820886400 0 0 0 0
+820800000 0 0 0 0
diff --git a/mrtg/mailstats b/mrtg/mailstats
new file mode 100755 (executable)
index 0000000..0860985
--- /dev/null
@@ -0,0 +1,94 @@
+#!/usr/local/bin/perl -w
+#
+# Author:  Petter Reinholdtsen <pere@td.org.uit.no>
+# Date:    1997-07-09
+# The original was written by Rachel Polanskis <rachel@juno.virago.org.au>
+# 
+# Fetches output from mailstats(1) either via TCP or via exec and
+# feeds changes on smtp to mrtg.
+#
+# Irix 6.x seems to lack mailstats
+#
+# Usage mailstats [host]
+#  if host is missing, localhost is used
+
+use strict;
+use Socket;
+
+my($datafile, $source, $sourceport, @mailstatspaths,
+   $oldfrm, $oldto,
+   $newfrm, $newto, $uptime);
+
+# Adjust this to your own mailserver.  Uses local `mailstats` if set
+# to 'localhost'
+$source         = $ARGV[0] || "localhost";
+$sourceport     = "7256";
+
+$datafile       = "/tmp/mailstat-$source.old";
+@mailstatspaths = ( "/usr/sbin/mailstats", "/usr/bin/mailstats" );
+
+($oldfrm, $oldto) = getOldStats($datafile);
+
+($newfrm, $newto, $uptime) = getStats($source, $sourceport);
+
+putOldStats($datafile, $newfrm, $newto) || warn "$0: Unable to save stats to $datafile";
+
+print $newfrm-$oldfrm,"\n",$newto-$oldto,"\n","$uptime\n$source\n" if ($oldfrm);
+
+##
+# Returns first line of file given as param splittet on space
+sub getOldStats {
+    my($filename) = @_;
+    open(OLD, $filename) || warn "$0: Unable to open $filename for reading";
+    my($line) = <OLD>;
+    close(OLD);
+    return split(/ /, $line);
+}
+
+sub findFirstExecutable {
+    my($filename);
+    foreach $filename (@_) {
+       return $filename if ( -x $filename && ! -d $filename );
+    }
+}
+
+sub getStats {
+    my($source, $sourceport) = @_;
+    my(@output, $port, $proto, $iaddr, $paddr);
+    if ( $source eq "localhost" ) {
+       my($progpath) = findFirstExecutable(@mailstatspaths);
+       @output = `$progpath`;
+       chomp(@output);
+    } else {
+       $port = $sourceport;
+       $port = getservbyname ($sourceport, 'tcp') if ($sourceport =~ /\D/);
+       die "$0: Bad port \"$sourceport\"" unless ($port);
+       $proto = getprotobyname ('tcp') || die "$0: Bad prototype tcp";
+
+       $iaddr = inet_aton($source) or die "$0: no host \"$source\"";
+       $paddr = sockaddr_in($port, $iaddr);
+
+       socket (SOCK, PF_INET, SOCK_STREAM, $proto) or die "$0: socket error $!";
+       connect (SOCK, $paddr) or die "$0: connect error $!";
+
+       while (<SOCK>) {
+           push(@output,$_);
+       }
+       close(SOCK) || warn "$0: socket close error $!";
+    }
+    my($curfrm, $curto, $uptime);
+    foreach (@output) {
+       # Our sendmail reports smtp as uucp (stupid admin... :-)
+       ($curfrm, $curto) = (split(/ +/))[2,4] if (/uucp|e?smtp/);
+       ($uptime) = m/Statistics from (.*)/ if (/Stati/);
+    }
+    return ($curfrm, $curto, $uptime);
+}
+
+sub putOldStats {
+    my($filename, $frm, $to) = @_;
+    open(STAT, ">$filename") || return "";
+    print STAT "$frm $to\n";
+    close(STAT);
+    return "1";
+}
diff --git a/mrtg/mq-day.gif b/mrtg/mq-day.gif
new file mode 100644 (file)
index 0000000..648c5ca
Binary files /dev/null and b/mrtg/mq-day.gif differ
diff --git a/mrtg/mq-month.gif b/mrtg/mq-month.gif
new file mode 100644 (file)
index 0000000..f803686
Binary files /dev/null and b/mrtg/mq-month.gif differ
diff --git a/mrtg/mq-week.gif b/mrtg/mq-week.gif
new file mode 100644 (file)
index 0000000..28f794b
Binary files /dev/null and b/mrtg/mq-week.gif differ
diff --git a/mrtg/mq.html b/mrtg/mq.html
new file mode 100644 (file)
index 0000000..f2c52be
--- /dev/null
@@ -0,0 +1,139 @@
+<HTML>
+<HEAD>
+<TITLE>
+terror.hungry.com Sendmail MailQueue Statistics
+</TITLE>
+<META HTTP-EQUIV="Refresh" CONTENT=300 >
+<META HTTP-EQUIV="Expires" CONTENT="Wed, 11 Mar 1998 10:05:26 GMT">
+<!-- maxin d 0 -->
+<!-- maxout d 377 -->
+<!-- avin d 0 -->
+<!-- avout d 261 -->
+<!-- cuin d 0 -->
+<!-- cuout d 207 -->
+<!-- maxin w 0 -->
+<!-- maxout w 374 -->
+<!-- avin w 0 -->
+<!-- avout w 188 -->
+<!-- cuin w 0 -->
+<!-- cuout w 192 -->
+<!-- maxin m 0 -->
+<!-- maxout m 378 -->
+<!-- avin m 0 -->
+<!-- avout m 90 -->
+<!-- cuin m 0 -->
+<!-- cuout m 203 -->
+<!-- maxin y 0 -->
+<!-- maxout y 0 -->
+<!-- avin y 0 -->
+<!-- avout y 0 -->
+<!-- cuin y 0 -->
+<!-- cuout y  -->
+
+</HEAD>
+<BODY bgcolor=#000000 text="#ffffff" link="#cfcfcf" alink="#00ff00" vlink="#9f9f9f">
+<H2>terror.hungry.com Sendmail MailQueue Statistics</H2><P>
+<HR>
+The statistics were last updated <B>Wednesday, 11 March 1998 at 2:00 </B>
+,<BR>
+at which time <B>'terror.hungry.com'</B> had been up for <B>1</B>.
+
+<HR>
+<B>`Daily' Graph (5 Minute Average)</B><BR>
+<IMG VSPACE=10 WIDTH=600 HEIGHT=163 ALIGN=TOP 
+     SRC="mq-day.gif">
+ <TABLE CELLPADDING=0 CELLSPACING=0>
+
+ <TR>
+  <TD ALIGN=right><SMALL>Max<FONT COLOR=#0000ff>&nbsp;Mailq:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>377.0 Mailq
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Average<FONT COLOR=#0000ff>&nbsp;Mailq:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>261.0 Mailq
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Current<FONT COLOR=#0000ff>&nbsp;Mailq:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>207.0 Mailq
+ </SMALL></TD>
+ </TR> 
+</TABLE>
+
+<HR>
+<B>`Weekly' Graph (30 Minute Average)</B><BR>
+<IMG VSPACE=10 WIDTH=600 HEIGHT=163 ALIGN=TOP 
+     SRC="mq-week.gif">
+ <TABLE CELLPADDING=0 CELLSPACING=0>
+
+ <TR>
+  <TD ALIGN=right><SMALL>Max<FONT COLOR=#0000ff>&nbsp;Mailq:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>374.0 Mailq
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Average<FONT COLOR=#0000ff>&nbsp;Mailq:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>188.0 Mailq
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Current<FONT COLOR=#0000ff>&nbsp;Mailq:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>192.0 Mailq
+ </SMALL></TD>
+ </TR> 
+</TABLE>
+
+<HR>
+<B>`Monthly' Graph (2 Hour Average)</B><BR>
+<IMG VSPACE=10 WIDTH=600 HEIGHT=163 ALIGN=TOP 
+     SRC="mq-month.gif">
+ <TABLE CELLPADDING=0 CELLSPACING=0>
+
+ <TR>
+  <TD ALIGN=right><SMALL>Max<FONT COLOR=#0000ff>&nbsp;Mailq:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>378.0 Mailq
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Average<FONT COLOR=#0000ff>&nbsp;Mailq:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>90.0 Mailq
+  </SMALL></TD>
+  <TD WIDTH=5></TD>
+  <TD ALIGN=right><SMALL>Current<FONT COLOR=#0000ff>&nbsp;Mailq:</FONT></SMALL></TD>
+  <TD ALIGN=right><SMALL>203.0 Mailq
+ </SMALL></TD>
+ </TR> 
+</TABLE>
+
+  <HR><P>
+  <TABLE WIDTH=500 BORDER=0 CELLPADDING=4 CELLSPACING=0>
+   <TR><TD ALIGN=RIGHT><FONT SIZE=-1 COLOR="#0000ff">
+      <B>BLUE ###</B></FONT></TD>
+      <TD><FONT SIZE=-1>Outgoing Traffic in Bytes per Second</FONT></TD></TR> 
+   <TR><TD ALIGN=RIGHT><FONT SIZE=-1 COLOR="#ff00ff">
+                       <B>MAGENTA###</B></FONT></TD>
+       <TD><FONT SIZE=-1>Maximal 5 Minute Outgoing Traffic</FONT></TD></TR> </TABLE><P><HR><P>
+
+<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
+  <TR>
+    <TD WIDTH=63><A ALT="MRTG"
+    HREF="http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html"><IMG
+    BORDER=0 SRC="mrtg-l.gif"></A></TD>
+    <TD WIDTH=25><A ALT=""
+    HREF="http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html"><IMG
+    BORDER=0 SRC="mrtg-m.gif"></A></TD>
+    <TD WIDTH=388><A ALT=""
+    HREF="http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html"><IMG
+    BORDER=0 SRC="mrtg-r.gif"></A></TD>
+  </TR>
+</TABLE>
+<SPACER TYPE=VERTICAL SIZE=4>
+<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
+  <TR VALIGN=top>
+  <TD WIDTH=88 ALIGN=RIGHT><FONT FACE="Arial,Helvetica" SIZE=2>
+  2.5.1-1997/10/24</FONT></TD>
+  <TD WIDTH=388 ALIGN=RIGHT><FONT FACE="Arial,Helvetica" SIZE=2>
+  <A HREF="http://ee-staff.ethz.ch/~oetiker/">Tobias Oetiker</A>
+  <A HREF="mailto:oetiker@ee.ethz.ch">&lt;oetiker@ee.ethz.ch&gt;</A> 
+  and&nbsp;<A HREF="http://www.bungi.com">Dave&nbsp;Rand</A>&nbsp;<A HREF="mailto:dlr@bungi.com">&lt;dlr@bungi.com&gt;</A></FONT>
+  </TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML>
diff --git a/mrtg/mq.log b/mrtg/mq.log
new file mode 100644 (file)
index 0000000..dfa0237
--- /dev/null
@@ -0,0 +1,2535 @@
+889610409 0 208
+889610409 0 208 0 208
+889610107 0 203 0 203
+889610100 0 203 0 204
+889609800 0 203 0 204
+889609500 0 196 0 197
+889609200 0 193 0 194
+889608900 0 192 0 196
+889608600 0 195 0 196
+889608300 0 193 0 194
+889608000 0 192 0 194
+889607700 0 193 0 194
+889607400 0 192 0 192
+889607100 0 192 0 193
+889606800 0 193 0 193
+889606500 0 193 0 193
+889606200 0 193 0 193
+889605900 0 192 0 193
+889605600 0 192 0 193
+889605300 0 193 0 193
+889605000 0 192 0 193
+889604700 0 191 0 191
+889604400 0 191 0 192
+889604100 0 191 0 192
+889603800 0 191 0 193
+889603500 0 193 0 193
+889603200 0 193 0 193
+889602900 0 193 0 193
+889602600 0 193 0 194
+889602300 0 194 0 197
+889602000 0 197 0 199
+889601700 0 199 0 199
+889601400 0 199 0 199
+889601100 0 199 0 202
+889600800 0 201 0 202
+889600500 0 200 0 200
+889600200 0 200 0 204
+889599900 0 204 0 212
+889599600 0 212 0 212
+889599300 0 212 0 213
+889599000 0 212 0 213
+889598700 0 211 0 212
+889598400 0 212 0 212
+889598100 0 212 0 212
+889597800 0 211 0 212
+889597500 0 208 0 209
+889597200 0 204 0 205
+889596900 0 202 0 203
+889596600 0 202 0 202
+889596300 0 202 0 206
+889596000 0 206 0 206
+889595700 0 206 0 206
+889595400 0 206 0 207
+889595100 0 207 0 207
+889594800 0 207 0 207
+889594500 0 207 0 207
+889594200 0 207 0 213
+889593900 0 213 0 214
+889593600 0 213 0 214
+889593300 0 211 0 212
+889593000 0 210 0 210
+889592700 0 210 0 210
+889592400 0 210 0 212
+889592100 0 212 0 212
+889591800 0 212 0 214
+889591500 0 213 0 214
+889591200 0 210 0 210
+889590900 0 210 0 210
+889590600 0 210 0 212
+889590300 0 211 0 212
+889590000 0 210 0 210
+889589700 0 210 0 210
+889589400 0 210 0 210
+889589100 0 210 0 210
+889588800 0 210 0 210
+889588500 0 210 0 210
+889588200 0 210 0 210
+889587900 0 210 0 210
+889587600 0 210 0 212
+889587300 0 212 0 212
+889587000 0 212 0 212
+889586700 0 212 0 213
+889586400 0 212 0 213
+889586100 0 212 0 212
+889585800 0 212 0 212
+889585500 0 212 0 212
+889585200 0 212 0 212
+889584900 0 212 0 212
+889584600 0 212 0 212
+889584300 0 212 0 213
+889584000 0 212 0 213
+889583700 0 212 0 213
+889583400 0 212 0 213
+889583100 0 212 0 212
+889582800 0 212 0 212
+889582500 0 212 0 215
+889582200 0 215 0 215
+889581900 0 214 0 215
+889581600 0 214 0 214
+889581300 0 214 0 216
+889581000 0 215 0 216
+889580700 0 213 0 214
+889580400 0 214 0 231
+889580100 0 231 0 237
+889579800 0 237 0 237
+889579500 0 237 0 238
+889579200 0 238 0 238
+889578900 0 237 0 238
+889578600 0 237 0 238
+889578300 0 238 0 238
+889578000 0 238 0 239
+889577700 0 238 0 239
+889577400 0 238 0 238
+889577100 0 238 0 244
+889576800 0 243 0 244
+889576500 0 238 0 239
+889576200 0 237 0 237
+889575900 0 237 0 237
+889575600 0 237 0 237
+889575300 0 237 0 243
+889575000 0 243 0 246
+889574700 0 245 0 246
+889574400 0 243 0 243
+889574100 0 243 0 243
+889573800 0 243 0 244
+889573500 0 243 0 244
+889573200 0 243 0 243
+889572900 0 243 0 246
+889572600 0 245 0 246
+889572300 0 244 0 244
+889572000 0 244 0 246
+889571700 0 245 0 246
+889571400 0 244 0 244
+889571100 0 244 0 246
+889570800 0 246 0 246
+889570500 0 246 0 246
+889570200 0 246 0 249
+889569900 0 249 0 251
+889569600 0 250 0 251
+889569300 0 246 0 246
+889569000 0 246 0 249
+889568700 0 248 0 249
+889568400 0 246 0 248
+889568100 0 247 0 248
+889567800 0 245 0 246
+889567500 0 246 0 249
+889567200 0 248 0 249
+889566900 0 248 0 250
+889566600 0 250 0 251
+889566300 0 250 0 251
+889566000 0 249 0 250
+889565700 0 247 0 247
+889565400 0 246 0 247
+889565100 0 246 0 246
+889564800 0 245 0 246
+889564500 0 243 0 244
+889564200 0 241 0 242
+889563900 0 242 0 245
+889563600 0 244 0 245
+889563300 0 243 0 244
+889563000 0 242 0 243
+889562700 0 241 0 242
+889562400 0 241 0 250
+889562100 0 249 0 250
+889561800 0 247 0 252
+889561500 0 251 0 252
+889561200 0 242 0 242
+889560900 0 242 0 243
+889560600 0 242 0 243
+889560300 0 242 0 242
+889560000 0 242 0 243
+889559700 0 243 0 247
+889559400 0 246 0 247
+889559100 0 240 0 241
+889558800 0 239 0 244
+889558500 0 243 0 244
+889558200 0 241 0 242
+889557900 0 240 0 241
+889557600 0 237 0 239
+889557300 0 238 0 239
+889557000 0 237 0 237
+889556700 0 237 0 238
+889556400 0 238 0 238
+889556100 0 238 0 238
+889555800 0 238 0 238
+889555500 0 238 0 242
+889555200 0 241 0 242
+889554900 0 238 0 240
+889554600 0 239 0 240
+889554300 0 239 0 242
+889554000 0 241 0 242
+889553700 0 241 0 242
+889553400 0 242 0 242
+889553100 0 242 0 243
+889552800 0 243 0 245
+889552500 0 244 0 245
+889552200 0 243 0 243
+889551900 0 243 0 247
+889551600 0 246 0 247
+889551300 0 244 0 244
+889551000 0 244 0 245
+889550700 0 245 0 246
+889550400 0 246 0 248
+889550100 0 248 0 248
+889549800 0 248 0 249
+889549500 0 249 0 251
+889549200 0 250 0 251
+889548900 0 248 0 249
+889548600 0 248 0 248
+889548300 0 248 0 249
+889548000 0 248 0 249
+889547700 0 247 0 247
+889547400 0 247 0 247
+889547100 0 247 0 248
+889546800 0 248 0 248
+889546500 0 247 0 248
+889546200 0 247 0 247
+889545900 0 247 0 247
+889545600 0 247 0 248
+889545300 0 248 0 248
+889545000 0 248 0 248
+889544700 0 247 0 248
+889544400 0 246 0 247
+889544100 0 243 0 243
+889543800 0 243 0 246
+889543500 0 246 0 248
+889543200 0 247 0 248
+889542900 0 244 0 245
+889542600 0 242 0 242
+889542300 0 242 0 242
+889542000 0 242 0 242
+889541700 0 242 0 242
+889541400 0 241 0 242
+889541100 0 241 0 241
+889540800 0 241 0 241
+889540500 0 240 0 241
+889540200 0 239 0 240
+889539900 0 238 0 239
+889539600 0 237 0 238
+889539300 0 236 0 237
+889539000 0 233 0 233
+889538700 0 233 0 233
+889538400 0 233 0 233
+889538100 0 233 0 234
+889537800 0 233 0 234
+889537500 0 233 0 234
+889537200 0 233 0 234
+889536900 0 233 0 233
+889536600 0 233 0 233
+889536300 0 233 0 233
+889536000 0 233 0 233
+889535700 0 233 0 239
+889535400 0 239 0 243
+889535100 0 243 0 243
+889534800 0 242 0 243
+889534500 0 240 0 240
+889534200 0 240 0 240
+889533900 0 240 0 241
+889533600 0 241 0 242
+889533300 0 242 0 242
+889533000 0 242 0 243
+889532700 0 243 0 243
+889532400 0 243 0 243
+889532100 0 243 0 243
+889531800 0 243 0 243
+889531500 0 243 0 243
+889531200 0 243 0 243
+889530900 0 243 0 245
+889530600 0 245 0 245
+889530300 0 245 0 245
+889530000 0 245 0 247
+889529700 0 247 0 249
+889529400 0 248 0 249
+889529100 0 248 0 248
+889528800 0 247 0 248
+889528500 0 247 0 247
+889528200 0 247 0 248
+889527900 0 247 0 248
+889527600 0 246 0 247
+889527300 0 245 0 246
+889527000 0 241 0 242
+889526700 0 241 0 241
+889526400 0 241 0 241
+889526100 0 241 0 241
+889525800 0 241 0 241
+889525500 0 241 0 242
+889525200 0 241 0 242
+889524900 0 240 0 241
+889524600 0 241 0 241
+889524300 0 241 0 241
+889524000 0 240 0 241
+889523700 0 238 0 239
+889523400 0 237 0 238
+889523100 0 235 0 236
+889522800 0 232 0 233
+889522500 0 228 0 229
+889522200 0 225 0 226
+889521900 0 222 0 222
+889521600 0 222 0 223
+889521300 0 223 0 223
+889521000 0 223 0 223
+889520700 0 223 0 223
+889520400 0 223 0 223
+889520100 0 223 0 226
+889519800 0 225 0 226
+889519500 0 222 0 222
+889519200 0 221 0 222
+889518900 0 221 0 221
+889518600 0 221 0 221
+889518300 0 221 0 221
+889518000 0 221 0 233
+889517700 0 233 0 235
+889517400 0 235 0 237
+889517100 0 237 0 237
+889516800 0 237 0 237
+889516500 0 237 0 238
+889516200 0 238 0 240
+889515900 0 239 0 240
+889515600 0 234 0 235
+889515300 0 231 0 231
+889515000 0 231 0 231
+889514700 0 231 0 231
+889514400 0 231 0 231
+889514100 0 231 0 231
+889513800 0 231 0 231
+889513500 0 231 0 233
+889513200 0 232 0 233
+889512900 0 231 0 231
+889512600 0 231 0 231
+889512300 0 231 0 231
+889512000 0 231 0 231
+889511700 0 231 0 237
+889511400 0 236 0 237
+889511100 0 232 0 232
+889510800 0 232 0 250
+889510500 0 250 0 250
+889510200 0 250 0 250
+889509900 0 250 0 252
+889509600 0 251 0 252
+889509300 0 250 0 250
+889509000 0 250 0 250
+889508700 0 250 0 250
+889508400 0 250 0 250
+889508100 0 250 0 250
+889507800 0 250 0 250
+889507500 0 249 0 250
+889507200 0 249 0 249
+889506900 0 249 0 251
+889506600 0 250 0 251
+889506300 0 249 0 250
+889506000 0 249 0 250
+889505700 0 249 0 253
+889505400 0 252 0 253
+889505100 0 250 0 252
+889504800 0 251 0 252
+889504500 0 249 0 249
+889504200 0 249 0 249
+889503900 0 249 0 250
+889503600 0 249 0 250
+889503300 0 245 0 245
+889503000 0 244 0 245
+889502700 0 241 0 241
+889502400 0 241 0 241
+889502100 0 241 0 241
+889501800 0 241 0 242
+889501500 0 241 0 242
+889501200 0 241 0 241
+889500900 0 241 0 242
+889500600 0 242 0 244
+889500300 0 244 0 253
+889500000 0 253 0 257
+889499700 0 257 0 260
+889499400 0 260 0 262
+889499100 0 262 0 273
+889498800 0 273 0 274
+889498500 0 274 0 279
+889498200 0 279 0 282
+889497900 0 281 0 282
+889497600 0 278 0 288
+889497300 0 288 0 318
+889497000 0 318 0 318
+889496700 0 317 0 318
+889496400 0 317 0 323
+889496100 0 323 0 325
+889495800 0 325 0 335
+889495500 0 334 0 335
+889495200 0 330 0 340
+889494900 0 340 0 348
+889494600 0 348 0 352
+889494300 0 352 0 353
+889494000 0 353 0 357
+889493700 0 357 0 361
+889493400 0 361 0 363
+889493100 0 363 0 364
+889492800 0 364 0 364
+889492500 0 364 0 369
+889492200 0 369 0 372
+889491900 0 372 0 373
+889491600 0 373 0 373
+889491300 0 373 0 373
+889491000 0 373 0 373
+889490700 0 373 0 373
+889490400 0 373 0 373
+889490100 0 373 0 373
+889489800 0 373 0 376
+889489500 0 375 0 376
+889489200 0 373 0 373
+889488900 0 373 0 374
+889488600 0 374 0 375
+889488300 0 374 0 375
+889488000 0 371 0 374
+889487700 0 374 0 374
+889487400 0 374 0 376
+889487100 0 375 0 376
+889486800 0 373 0 374
+889486500 0 374 0 378
+889486200 0 377 0 378
+889485900 0 375 0 376
+889485600 0 376 0 376
+889485300 0 375 0 376
+889485000 0 373 0 374
+889484700 0 371 0 372
+889484400 0 368 0 369
+889484100 0 365 0 365
+889483800 0 365 0 372
+889483500 0 371 0 372
+889483200 0 366 0 367
+889482900 0 366 0 367
+889482600 0 365 0 366
+889482300 0 364 0 365
+889482000 0 363 0 363
+889481700 0 363 0 369
+889481400 0 368 0 369
+889481100 0 360 0 361
+889480800 0 360 0 361
+889480500 0 358 0 359
+889480200 0 355 0 356
+889479900 0 354 0 355
+889479600 0 350 0 351
+889479300 0 347 0 348
+889479000 0 338 0 340
+889478700 0 339 0 340
+889478400 0 337 0 338
+889478100 0 337 0 338
+889477800 0 332 0 337
+889477500 0 337 0 337
+889477200 0 337 0 339
+889476900 0 339 0 341
+889476600 0 341 0 341
+889476300 0 341 0 341
+889476000 0 341 0 342
+889475700 0 341 0 342
+889475400 0 341 0 341
+889475100 0 341 0 341
+889474800 0 341 0 342
+889474500 0 342 0 342
+889474200 0 342 0 342
+889473900 0 341 0 342
+889473600 0 340 0 341
+889473300 0 339 0 340
+889473000 0 339 0 339
+889472700 0 339 0 339
+889472400 0 339 0 339
+889472100 0 339 0 340
+889471800 0 339 0 340
+889471500 0 339 0 341
+889471200 0 340 0 341
+889470900 0 338 0 339
+889470600 0 337 0 338
+889470300 0 337 0 338
+889470000 0 336 0 337
+889469700 0 334 0 334
+889469400 0 334 0 335
+889469100 0 335 0 335
+889468800 0 335 0 336
+889468500 0 336 0 336
+889468200 0 335 0 336
+889467900 0 335 0 335
+889467600 0 335 0 335
+889467300 0 335 0 337
+889467000 0 337 0 337
+889466700 0 337 0 339
+889466400 0 338 0 339
+889466100 0 338 0 340
+889465800 0 340 0 342
+889465500 0 342 0 343
+889465200 0 343 0 345
+889464900 0 345 0 345
+889464600 0 345 0 345
+889464300 0 345 0 347
+889464000 0 346 0 347
+889463700 0 346 0 347
+889463400 0 346 0 347
+889463100 0 346 0 346
+889462800 0 346 0 348
+889462500 0 347 0 348
+889462200 0 346 0 348
+889461900 0 347 0 348
+889461600 0 342 0 343
+889461300 0 342 0 343
+889461000 0 342 0 345
+889460700 0 344 0 345
+889460400 0 330 0 331
+889460100 0 329 0 331
+889459800 0 331 0 332
+889459500 0 331 0 332
+889459200 0 331 0 332
+889458900 0 331 0 332
+889458600 0 328 0 328
+889458300 0 328 0 328
+889458000 0 328 0 330
+889457700 0 330 0 330
+889457400 0 330 0 331
+889457100 0 330 0 331
+889456800 0 326 0 326
+889456500 0 326 0 329
+889456200 0 328 0 329
+889455900 0 325 0 327
+889455600 0 327 0 330
+889455300 0 329 0 330
+889455000 0 327 0 328
+889454700 0 325 0 326
+889454400 0 323 0 325
+889454100 0 324 0 325
+889453800 0 324 0 325
+889453500 0 324 0 325
+889453200 0 322 0 323
+889452900 0 317 0 318
+889452600 0 317 0 318
+889452300 0 318 0 320
+889452000 0 320 0 320
+889451700 0 319 0 320
+889451400 0 317 0 318
+889451100 0 316 0 317
+889450800 0 315 0 316
+889450500 0 315 0 316
+889450200 0 311 0 312
+889449900 0 308 0 308
+889449600 0 307 0 308
+889449300 0 307 0 307
+889449000 0 307 0 308
+889448700 0 308 0 308
+889448400 0 307 0 308
+889448100 0 296 0 297
+889447800 0 295 0 296
+889447500 0 292 0 292
+889447200 0 292 0 292
+889446900 0 292 0 292
+889446600 0 292 0 293
+889446300 0 293 0 294
+889446000 0 294 0 295
+889445700 0 295 0 295
+889445400 0 294 0 295
+889445100 0 293 0 294
+889444800 0 291 0 292
+889444500 0 290 0 290
+889444200 0 289 0 290
+889443900 0 287 0 289
+889443600 0 225 0 225
+889443300 0 225 0 225
+889443000 0 225 0 225
+889442700 0 225 0 225
+889442400 0 225 0 225
+889442100 0 225 0 225
+889441800 0 225 0 225
+889441500 0 225 0 225
+889441200 0 225 0 225
+889440900 0 225 0 225
+889440600 0 225 0 225
+889440300 0 225 0 225
+889440000 0 225 0 225
+889439700 0 225 0 225
+889439400 0 225 0 225
+889439100 0 225 0 225
+889438800 0 225 0 225
+889438500 0 225 0 225
+889438200 0 225 0 225
+889437900 0 225 0 225
+889437600 0 225 0 225
+889437300 0 225 0 225
+889437000 0 225 0 225
+889436700 0 225 0 225
+889436400 0 225 0 225
+889436100 0 225 0 225
+889435800 0 225 0 225
+889435500 0 225 0 225
+889435200 0 225 0 225
+889434900 0 225 0 225
+889434600 0 225 0 225
+889434300 0 225 0 225
+889434000 0 225 0 225
+889433700 0 225 0 225
+889433400 0 225 0 225
+889433100 0 225 0 225
+889432800 0 225 0 225
+889432500 0 225 0 225
+889432200 0 225 0 225
+889431900 0 225 0 225
+889431600 0 225 0 225
+889431300 0 225 0 225
+889431000 0 225 0 225
+889430700 0 225 0 225
+889430400 0 225 0 225
+889428600 0 225 0 225
+889426800 0 225 0 225
+889425000 0 225 0 225
+889423200 0 225 0 225
+889421400 0 225 0 225
+889419600 0 225 0 225
+889417800 0 225 0 225
+889416000 0 225 0 225
+889414200 0 225 0 225
+889412400 0 225 0 225
+889410600 0 225 0 225
+889408800 0 225 0 225
+889407000 0 225 0 225
+889405200 0 225 0 225
+889403400 0 225 0 225
+889401600 0 225 0 225
+889399800 0 225 0 225
+889398000 0 225 0 225
+889396200 0 225 0 225
+889394400 0 225 0 225
+889392600 0 225 0 225
+889390800 0 225 0 225
+889389000 0 225 0 225
+889387200 0 225 0 225
+889385400 0 225 0 225
+889383600 0 225 0 225
+889381800 0 225 0 225
+889380000 0 225 0 225
+889378200 0 225 0 225
+889376400 0 225 0 225
+889374600 0 225 0 225
+889372800 0 225 0 225
+889371000 0 225 0 225
+889369200 0 225 0 225
+889367400 0 225 0 225
+889365600 0 225 0 225
+889363800 0 225 0 225
+889362000 0 225 0 225
+889360200 0 225 0 225
+889358400 0 225 0 225
+889356600 0 225 0 225
+889354800 0 225 0 225
+889353000 0 225 0 225
+889351200 0 225 0 225
+889349400 0 225 0 225
+889347600 0 225 0 225
+889345800 0 225 0 225
+889344000 0 225 0 225
+889342200 0 225 0 225
+889340400 0 225 0 225
+889338600 0 225 0 225
+889336800 0 225 0 225
+889335000 0 225 0 225
+889333200 0 225 0 225
+889331400 0 225 0 225
+889329600 0 225 0 225
+889327800 0 225 0 225
+889326000 0 225 0 225
+889324200 0 225 0 225
+889322400 0 225 0 225
+889320600 0 225 0 225
+889318800 0 225 0 225
+889317000 0 225 0 225
+889315200 0 225 0 225
+889313400 0 225 0 225
+889311600 0 225 0 225
+889309800 0 225 0 225
+889308000 0 225 0 225
+889306200 0 225 0 225
+889304400 0 225 0 225
+889302600 0 225 0 225
+889300800 0 225 0 225
+889299000 0 225 0 225
+889297200 0 225 0 225
+889295400 0 225 0 225
+889293600 0 225 0 225
+889291800 0 225 0 225
+889290000 0 225 0 225
+889288200 0 225 0 225
+889286400 0 225 0 225
+889284600 0 225 0 225
+889282800 0 225 0 225
+889281000 0 225 0 225
+889279200 0 225 0 225
+889277400 0 225 0 225
+889275600 0 225 0 225
+889273800 0 225 0 225
+889272000 0 225 0 225
+889270200 0 225 0 225
+889268400 0 225 0 225
+889266600 0 225 0 225
+889264800 0 225 0 225
+889263000 0 225 0 225
+889261200 0 225 0 225
+889259400 0 225 0 225
+889257600 0 225 0 225
+889255800 0 225 0 225
+889254000 0 225 0 225
+889252200 0 225 0 225
+889250400 0 225 0 225
+889248600 0 225 0 225
+889246800 0 225 0 225
+889245000 0 225 0 225
+889243200 0 225 0 225
+889241400 0 225 0 225
+889239600 0 225 0 225
+889237800 0 225 0 225
+889236000 0 225 0 225
+889234200 0 225 0 225
+889232400 0 225 0 225
+889230600 0 225 0 225
+889228800 0 225 0 225
+889227000 0 225 0 225
+889225200 0 225 0 225
+889223400 0 225 0 225
+889221600 0 225 0 225
+889219800 0 225 0 225
+889218000 0 225 0 225
+889216200 0 225 0 225
+889214400 0 225 0 225
+889212600 0 225 0 225
+889210800 0 225 0 225
+889209000 0 225 0 225
+889207200 0 225 0 225
+889205400 0 225 0 225
+889203600 0 225 0 225
+889201800 0 225 0 225
+889200000 0 225 0 225
+889198200 0 225 0 225
+889196400 0 225 0 225
+889194600 0 225 0 225
+889192800 0 225 0 225
+889191000 0 225 0 225
+889189200 0 225 0 225
+889187400 0 225 0 225
+889185600 0 225 0 225
+889183800 0 225 0 225
+889182000 0 225 0 225
+889180200 0 225 0 225
+889178400 0 225 0 225
+889176600 0 225 0 225
+889174800 0 225 0 225
+889173000 0 225 0 225
+889171200 0 225 0 225
+889169400 0 225 0 225
+889167600 0 225 0 225
+889165800 0 225 0 225
+889164000 0 225 0 225
+889162200 0 225 0 225
+889160400 0 225 0 225
+889158600 0 225 0 225
+889156800 0 225 0 225
+889155000 0 225 0 225
+889153200 0 225 0 225
+889151400 0 225 0 225
+889149600 0 225 0 225
+889147800 0 225 0 225
+889146000 0 225 0 225
+889144200 0 225 0 225
+889142400 0 225 0 225
+889140600 0 225 0 225
+889138800 0 225 0 225
+889137000 0 225 0 225
+889135200 0 225 0 225
+889133400 0 225 0 225
+889131600 0 225 0 225
+889129800 0 225 0 225
+889128000 0 225 0 225
+889126200 0 225 0 225
+889124400 0 225 0 225
+889122600 0 224 0 225
+889120800 0 223 0 225
+889119000 0 221 0 225
+889117200 0 218 0 220
+889115400 0 213 0 218
+889113600 0 211 0 213
+889111800 0 209 0 210
+889110000 0 209 0 212
+889108200 0 208 0 210
+889106400 0 209 0 209
+889104600 0 209 0 212
+889102800 0 207 0 208
+889101000 0 206 0 208
+889099200 0 207 0 208
+889097400 0 208 0 208
+889095600 0 207 0 208
+889093800 0 207 0 210
+889092000 0 206 0 208
+889090200 0 204 0 205
+889088400 0 200 0 203
+889086600 0 187 0 196
+889084800 0 169 0 174
+889083000 0 166 0 169
+889081200 0 157 0 161
+889079400 0 156 0 159
+889077600 0 154 0 154
+889075800 0 154 0 155
+889074000 0 155 0 156
+889072200 0 154 0 157
+889070400 0 153 0 154
+889068600 0 154 0 156
+889066800 0 154 0 157
+889065000 0 154 0 158
+889063200 0 155 0 158
+889061400 0 154 0 156
+889059600 0 155 0 160
+889057800 0 154 0 159
+889056000 0 156 0 164
+889054200 0 158 0 166
+889052400 0 158 0 166
+889050600 0 154 0 158
+889048800 0 155 0 159
+889047000 0 152 0 154
+889045200 0 152 0 156
+889043400 0 151 0 153
+889041600 0 151 0 155
+889039800 0 150 0 151
+889038000 0 151 0 154
+889036200 0 150 0 152
+889034400 0 151 0 153
+889032600 0 150 0 153
+889030800 0 148 0 149
+889029000 0 148 0 149
+889027200 0 142 0 147
+889025400 0 141 0 141
+889023600 0 141 0 141
+889021800 0 141 0 144
+889020000 0 139 0 144
+889018200 0 134 0 137
+889016400 0 133 0 137
+889014600 0 133 0 134
+889012800 0 133 0 133
+889011000 0 136 0 139
+889009200 0 138 0 140
+889007400 0 139 0 142
+889005600 0 140 0 144
+889003800 0 144 0 144
+889002000 0 143 0 144
+889000200 0 143 0 143
+888998400 0 145 0 146
+888996600 0 144 0 147
+888994800 0 134 0 139
+888993000 0 133 0 138
+888991200 0 134 0 139
+888989400 0 131 0 136
+888987600 0 135 0 137
+888985800 0 135 0 136
+888984000 0 135 0 137
+888982200 0 135 0 135
+888980400 0 135 0 136
+888978600 0 136 0 141
+888976800 0 137 0 141
+888975000 0 133 0 139
+888973200 0 137 0 139
+888971400 0 135 0 138
+888969600 0 137 0 138
+888967800 0 139 0 144
+888966000 0 143 0 152
+888964200 0 156 0 165
+888962400 0 158 0 162
+888960600 0 159 0 164
+888958800 0 165 0 169
+888957000 0 169 0 173
+888955200 0 172 0 173
+888953400 0 176 0 179
+888951600 0 176 0 178
+888949800 0 171 0 177
+888948000 0 176 0 179
+888946200 0 170 0 175
+888944400 0 166 0 168
+888942600 0 159 0 165
+888940800 0 157 0 157
+888939000 0 157 0 160
+888937200 0 160 0 162
+888935400 0 160 0 160
+888933600 0 160 0 160
+888931800 0 160 0 163
+888930000 0 158 0 158
+888928200 0 158 0 158
+888926400 0 158 0 158
+888924600 0 158 0 159
+888922800 0 159 0 160
+888921000 0 160 0 162
+888919200 0 160 0 163
+888917400 0 158 0 161
+888915600 0 160 0 161
+888913800 0 155 0 161
+888912000 0 148 0 154
+888910200 0 145 0 147
+888908400 0 147 0 148
+888906600 0 145 0 149
+888904800 0 138 0 143
+888903000 0 138 0 141
+888901200 0 138 0 140
+888899400 0 138 0 142
+888897600 0 140 0 143
+888895800 0 138 0 141
+888894000 0 134 0 139
+888892200 0 132 0 133
+888890400 0 134 0 141
+888888600 0 141 0 144
+888886800 0 141 0 144
+888885000 0 141 0 149
+888883200 0 143 0 150
+888881400 0 132 0 140
+888879600 0 123 0 131
+888877800 0 116 0 121
+888876000 0 107 0 113
+888874200 0 96 0 104
+888872400 0 83 0 90
+888870600 0 79 0 84
+888868800 0 84 0 85
+888867000 0 84 0 88
+888865200 0 76 0 86
+888863400 0 65 0 69
+888861600 0 62 0 68
+888859800 0 55 0 61
+888858000 0 51 0 71
+888856200 0 74 0 116
+888854400 0 116 0 120
+888852600 0 113 0 117
+888850800 0 107 0 111
+888849000 0 103 0 104
+888847200 0 103 0 103
+888845400 0 103 0 107
+888843600 0 100 0 104
+888841800 0 100 0 102
+888840000 0 101 0 106
+888838200 0 111 0 132
+888836400 0 132 0 133
+888834600 0 132 0 137
+888832800 0 127 0 133
+888831000 0 121 0 125
+888829200 0 123 0 124
+888827400 0 123 0 129
+888825600 0 136 0 148
+888823800 0 143 0 148
+888822000 0 137 0 140
+888820200 0 130 0 134
+888818400 0 130 0 132
+888816600 0 131 0 132
+888814800 0 127 0 132
+888813000 0 114 0 122
+888811200 0 111 0 114
+888809400 0 106 0 110
+888807600 0 102 0 104
+888805800 0 102 0 103
+888804000 0 103 0 104
+888802200 0 99 0 100
+888800400 0 99 0 102
+888798600 0 102 0 106
+888796800 0 98 0 99
+888795000 0 95 0 103
+888793200 0 90 0 92
+888791400 0 90 0 96
+888789600 0 96 0 100
+888787800 0 93 0 95
+888786000 0 93 0 94
+888784200 0 93 0 93
+888782400 0 90 0 93
+888780600 0 87 0 92
+888778800 0 86 0 88
+888777000 0 86 0 87
+888775200 0 86 0 87
+888773400 0 85 0 88
+888771600 0 79 0 82
+888769800 0 79 0 80
+888768000 0 71 0 75
+888766200 0 70 0 71
+888764400 0 69 0 70
+888762600 0 70 0 70
+888760800 0 70 0 72
+888759000 0 70 0 72
+888757200 0 69 0 70
+888755400 0 69 0 70
+888753600 0 69 0 70
+888751800 0 69 0 69
+888750000 0 69 0 69
+888748200 0 69 0 71
+888746400 0 66 0 70
+888744600 0 64 0 65
+888742800 0 63 0 65
+888741000 0 63 0 65
+888739200 0 63 0 64
+888737400 0 62 0 65
+888735600 0 62 0 63
+888733800 0 62 0 63
+888732000 0 63 0 63
+888730200 0 62 0 63
+888728400 0 60 0 62
+888726600 0 60 0 60
+888724800 0 60 0 61
+888723000 0 60 0 61
+888721200 0 60 0 61
+888719400 0 59 0 61
+888717600 0 58 0 59
+888715800 0 59 0 60
+888714000 0 58 0 59
+888712200 0 58 0 59
+888710400 0 57 0 58
+888708600 0 57 0 59
+888706800 0 57 0 58
+888705000 0 57 0 58
+888703200 0 56 0 57
+888701400 0 56 0 57
+888699600 0 57 0 57
+888697800 0 56 0 57
+888696000 0 56 0 57
+888694200 0 57 0 57
+888692400 0 56 0 60
+888690600 0 55 0 56
+888688800 0 55 0 56
+888687000 0 55 0 56
+888685200 0 54 0 56
+888683400 0 54 0 57
+888681600 0 54 0 54
+888679800 0 53 0 54
+888678000 0 53 0 54
+888676200 0 52 0 54
+888674400 0 49 0 52
+888672600 0 48 0 52
+888670800 0 47 0 51
+888669000 0 46 0 47
+888667200 0 45 0 47
+888665400 0 43 0 45
+888663600 0 42 0 42
+888661800 0 42 0 44
+888660000 0 41 0 42
+888658200 0 41 0 41
+888656400 0 41 0 42
+888654600 0 41 0 41
+888652800 0 40 0 41
+888651000 0 40 0 40
+888649200 0 39 0 41
+888647400 0 39 0 40
+888645600 0 38 0 40
+888643800 0 36 0 38
+888642000 0 35 0 37
+888640200 0 34 0 35
+888638400 0 33 0 33
+888636600 0 31 0 33
+888634800 0 29 0 31
+888633000 0 30 0 33
+888631200 0 28 0 31
+888629400 0 28 0 30
+888627600 0 27 0 30
+888625800 0 27 0 30
+888624000 0 27 0 29
+888622200 0 27 0 28
+888620400 0 27 0 35
+888618600 0 28 0 30
+888616800 0 26 0 26
+888615000 0 25 0 27
+888613200 0 24 0 28
+888611400 0 23 0 24
+888609600 0 24 0 26
+888607800 0 26 0 29
+888606000 0 25 0 28
+888604200 0 23 0 26
+888602400 0 23 0 24
+888600600 0 23 0 24
+888598800 0 23 0 23
+888597000 0 23 0 24
+888595200 0 24 0 25
+888593400 0 25 0 25
+888591600 0 24 0 25
+888589800 0 23 0 25
+888588000 0 24 0 28
+888586200 0 27 0 30
+888584400 0 23 0 27
+888582600 0 22 0 23
+888580800 0 23 0 25
+888579000 0 24 0 25
+888577200 0 25 0 27
+888575400 0 24 0 25
+888573600 0 25 0 29
+888571800 0 25 0 27
+888570000 0 24 0 26
+888568200 0 23 0 25
+888566400 0 23 0 28
+888564600 0 28 0 30
+888562800 0 28 0 29
+888561000 0 28 0 29
+888559200 0 28 0 30
+888557400 0 30 0 34
+888555600 0 33 0 36
+888553800 0 32 0 33
+888552000 0 32 0 33
+888550200 0 32 0 33
+888548400 0 32 0 33
+888546600 0 31 0 35
+888544800 0 30 0 34
+888543000 0 28 0 29
+888541200 0 26 0 29
+888539400 0 25 0 30
+888537600 0 21 0 26
+888535800 0 22 0 25
+888534000 0 17 0 22
+888532200 0 21 0 24
+888530400 0 18 0 21
+888528600 0 17 0 20
+888526800 0 16 0 20
+888525000 0 18 0 21
+888523200 0 14 0 16
+888521400 0 14 0 16
+888519600 0 15 0 19
+888517800 0 10 0 12
+888516000 0 11 0 12
+888514200 0 11 0 12
+888512400 0 12 0 15
+888510600 0 13 0 15
+888508800 0 14 0 15
+888507000 0 14 0 15
+888505200 0 14 0 15
+888503400 0 14 0 15
+888501600 0 16 0 20
+888499800 0 19 0 20
+888498000 0 18 0 21
+888496200 0 11 0 14
+888494400 0 9 0 9
+888492600 0 9 0 9
+888490800 0 9 0 9
+888489000 0 9 0 9
+888487200 0 9 0 11
+888485400 0 8 0 10
+888483600 0 9 0 10
+888481800 0 8 0 9
+888480000 0 9 0 11
+888478200 0 10 0 11
+888476400 0 11 0 11
+888474600 0 11 0 12
+888472800 0 11 0 11
+888471000 0 10 0 12
+888469200 0 11 0 12
+888467400 0 10 0 11
+888465600 0 10 0 11
+888463800 0 11 0 13
+888462000 0 10 0 13
+888460200 0 10 0 10
+888458400 0 10 0 11
+888456600 0 10 0 11
+888454800 0 10 0 13
+888453000 0 10 0 11
+888451200 0 10 0 11
+888449400 0 10 0 11
+888447600 0 11 0 14
+888445800 0 9 0 11
+888444000 0 12 0 27
+888442200 0 18 0 22
+888440400 0 12 0 15
+888438600 0 6 0 6
+888436800 0 6 0 8
+888435000 0 6 0 8
+888433200 0 6 0 10
+888431400 0 7 0 9
+888429600 0 7 0 8
+888427800 0 6 0 7
+888426000 0 6 0 7
+888424200 0 7 0 7
+888422400 0 7 0 11
+888420600 0 9 0 10
+888418800 0 10 0 12
+888417000 0 12 0 14
+888415200 0 13 0 15
+888413400 0 10 0 15
+888411600 0 16 0 24
+888409800 0 18 0 21
+888408000 0 15 0 17
+888406200 0 16 0 17
+888404400 0 16 0 18
+888402600 0 17 0 20
+888400800 0 9 0 11
+888399000 0 10 0 11
+888397200 0 10 0 15
+888395400 0 10 0 12
+888393600 0 10 0 13
+888391800 0 5 0 7
+888390000 0 5 0 6
+888388200 0 5 0 6
+888386400 0 5 0 7
+888384600 0 8 0 11
+888382800 0 6 0 7
+888381000 0 6 0 7
+888379200 0 7 0 11
+888377400 0 6 0 6
+888375600 0 6 0 10
+888373800 0 9 0 10
+888372000 0 11 0 27
+888370200 0 26 0 28
+888368400 0 22 0 24
+888366600 0 20 0 21
+888364800 0 20 0 23
+888363000 0 22 0 26
+888361200 0 20 0 25
+888359400 0 21 0 24
+888357600 0 19 0 21
+888355800 0 18 0 18
+888354000 0 18 0 20
+888352200 0 19 0 20
+888350400 0 20 0 26
+888343200 0 18 0 26
+888336000 0 8 0 13
+888328800 0 5 0 9
+888321600 0 10 0 17
+888314400 0 19 0 28
+888307200 0 11 0 25
+888300000 0 2 0 5
+888292800 0 4 0 10
+888285600 0 2 0 8
+888278400 0 1 0 8
+888271200 0 0 0 5
+888264000 0 3 0 8
+888256800 0 55 0 81
+888249600 0 66 0 81
+888242400 0 51 0 64
+888235200 0 39 0 43
+888228000 0 38 0 42
+888220800 0 38 0 42
+888213600 0 35 0 39
+888206400 0 29 0 36
+888199200 0 24 0 29
+888192000 0 20 0 25
+888184800 0 14 0 22
+888177600 0 8 0 11
+888170400 0 10 0 14
+888163200 0 11 0 14
+888156000 0 7 0 13
+888148800 0 5 0 13
+888141600 0 6 0 9
+888134400 0 5 0 8
+888127200 0 5 0 9
+888120000 0 5 0 6
+888112800 0 4 0 7
+888105600 0 5 0 9
+888098400 0 13 0 252
+888091200 0 24 0 106
+888084000 0 1 0 2
+888076800 0 0 0 1
+888069600 0 0 0 5
+888062400 0 0 0 3
+888055200 0 1 0 4
+888048000 0 4 0 7
+888040800 0 5 0 8
+888033600 0 4 0 6
+888026400 0 3 0 8
+888019200 0 2 0 4
+888012000 0 4 0 9
+888004800 0 3 0 9
+887997600 0 5 0 10
+887990400 0 5 0 12
+887983200 0 7 0 14
+887976000 0 6 0 11
+887968800 0 6 0 10
+887961600 0 3 0 10
+887954400 0 2 0 5
+887947200 0 2 0 6
+887940000 0 1 0 4
+887932800 0 2 0 23
+887925600 0 18 0 25
+887918400 0 13 0 16
+887911200 0 14 0 18
+887904000 0 15 0 20
+887896800 0 17 0 21
+887889600 0 21 0 28
+887882400 0 22 0 36
+887875200 0 17 0 25
+887868000 0 17 0 21
+887860800 0 19 0 26
+887853600 0 18 0 24
+887846400 0 19 0 26
+887839200 0 27 0 42
+887832000 0 34 0 40
+887824800 0 29 0 36
+887817600 0 18 0 25
+887810400 0 21 0 27
+887803200 0 19 0 27
+887796000 0 12 0 16
+887788800 0 9 0 11
+887781600 0 8 0 13
+887774400 0 14 0 23
+887767200 0 21 0 26
+887760000 0 25 0 32
+887752800 0 27 0 35
+887745600 0 18 0 24
+887738400 0 17 0 52
+887731200 0 57 0 64
+887724000 0 52 0 60
+887716800 0 49 0 55
+887709600 0 49 0 51
+887702400 0 45 0 50
+887695200 0 43 0 44
+887688000 0 37 0 42
+887680800 0 38 0 45
+887673600 0 35 0 74
+887666400 0 82 0 90
+887659200 0 80 0 113
+887652000 0 146 0 151
+887644800 0 133 0 138
+887637600 0 134 0 138
+887630400 0 125 0 134
+887623200 0 114 0 120
+887616000 0 110 0 113
+887608800 0 103 0 107
+887601600 0 95 0 104
+887594400 0 73 0 82
+887587200 0 60 0 71
+887580000 0 38 0 47
+887572800 0 30 0 33
+887565600 0 27 0 28
+887558400 0 25 0 28
+887551200 0 22 0 26
+887544000 0 16 0 23
+887536800 0 13 0 18
+887529600 0 7 0 19
+887522400 0 3 0 5
+887515200 0 3 0 6
+887508000 0 3 0 3
+887500800 0 3 0 6
+887493600 0 3 0 5
+887486400 0 3 0 6
+887479200 0 5 0 11
+887472000 0 8 0 12
+887464800 0 11 0 13
+887457600 0 11 0 18
+887450400 0 12 0 14
+887443200 0 12 0 13
+887436000 0 12 0 18
+887428800 0 10 0 11
+887421600 0 10 0 13
+887414400 0 10 0 12
+887407200 0 10 0 18
+887400000 0 11 0 16
+887392800 0 9 0 14
+887385600 0 9 0 12
+887378400 0 12 0 14
+887371200 0 12 0 16
+887364000 0 13 0 15
+887356800 0 14 0 18
+887349600 0 12 0 16
+887342400 0 12 0 13
+887335200 0 12 0 16
+887328000 0 12 0 13
+887320800 0 12 0 18
+887313600 0 12 0 18
+887306400 0 12 0 17
+887299200 0 13 0 17
+887292000 0 13 0 18
+887284800 0 13 0 17
+887277600 0 13 0 16
+887270400 0 12 0 15
+887263200 0 13 0 15
+887256000 0 13 0 21
+887248800 0 14 0 19
+887241600 0 19 0 25
+887234400 0 26 0 36
+887227200 0 37 0 45
+887220000 0 38 0 53
+887212800 0 50 0 56
+887205600 0 49 0 57
+887198400 0 33 0 39
+887191200 0 34 0 47
+887184000 0 46 0 51
+887176800 0 49 0 57
+887169600 0 51 0 56
+887162400 0 57 0 79
+887155200 0 66 0 80
+887148000 0 71 0 85
+887140800 0 78 0 86
+887133600 0 64 0 72
+887126400 0 62 0 69
+887119200 0 70 0 78
+887112000 0 79 0 89
+887104800 0 80 0 88
+887097600 0 77 0 85
+887090400 0 83 0 87
+887083200 0 82 0 83
+887076000 0 82 0 83
+887068800 0 82 0 85
+887061600 0 82 0 85
+887054400 0 86 0 96
+887047200 0 109 0 133
+887040000 0 123 0 128
+887032800 0 113 0 118
+887025600 0 112 0 118
+887018400 0 111 0 114
+887011200 0 111 0 112
+887004000 0 111 0 112
+886996800 0 112 0 113
+886989600 0 109 0 112
+886982400 0 106 0 110
+886975200 0 95 0 109
+886968000 0 87 0 89
+886960800 0 88 0 95
+886953600 0 95 0 97
+886946400 0 93 0 99
+886939200 0 97 0 103
+886932000 0 96 0 98
+886924800 0 96 0 101
+886917600 0 100 0 102
+886910400 0 97 0 101
+886903200 0 96 0 98
+886896000 0 96 0 100
+886888800 0 97 0 106
+886881600 0 106 0 110
+886874400 0 111 0 118
+886867200 0 117 0 119
+886860000 0 119 0 122
+886852800 0 122 0 129
+886845600 0 125 0 127
+886838400 0 128 0 131
+886831200 0 132 0 135
+886824000 0 135 0 136
+886816800 0 136 0 139
+886809600 0 133 0 144
+886802400 0 122 0 133
+886795200 0 115 0 129
+886788000 0 122 0 128
+886780800 0 114 0 118
+886773600 0 117 0 123
+886766400 0 122 0 128
+886759200 0 126 0 133
+886752000 0 115 0 128
+886744800 0 107 0 111
+886737600 0 103 0 112
+886730400 0 93 0 98
+886723200 0 96 0 122
+886716000 0 103 0 114
+886708800 0 85 0 90
+886701600 0 86 0 91
+886694400 0 85 0 91
+886687200 0 79 0 86
+886680000 0 78 0 86
+886672800 0 79 0 86
+886665600 0 81 0 87
+886658400 0 75 0 79
+886651200 0 76 0 84
+886644000 0 83 0 87
+886636800 0 83 0 86
+886629600 0 85 0 92
+886622400 0 90 0 98
+886615200 0 91 0 98
+886608000 0 96 0 102
+886600800 0 101 0 102
+886593600 0 101 0 106
+886586400 0 101 0 105
+886579200 0 101 0 110
+886572000 0 104 0 111
+886564800 0 102 0 106
+886557600 0 101 0 103
+886550400 0 103 0 110
+886543200 0 105 0 107
+886536000 0 107 0 121
+886528800 0 148 0 177
+886521600 0 138 0 144
+886514400 0 139 0 146
+886507200 0 126 0 137
+886500000 0 121 0 126
+886492800 0 122 0 128
+886485600 0 115 0 123
+886478400 0 109 0 112
+886471200 0 100 0 107
+886464000 0 89 0 98
+886456800 0 77 0 83
+886449600 0 79 0 89
+886442400 0 78 0 92
+886435200 0 76 0 89
+886428000 0 85 0 91
+886420800 0 79 0 86
+886413600 0 82 0 89
+886406400 0 91 0 96
+886399200 0 93 0 101
+886392000 0 89 0 92
+886384800 0 90 0 94
+886377600 0 93 0 97
+886370400 0 91 0 100
+886363200 0 94 0 103
+886356000 0 101 0 104
+886348800 0 103 0 108
+886341600 0 105 0 108
+886334400 0 104 0 108
+886327200 0 104 0 106
+886320000 0 105 0 109
+886312800 0 109 0 111
+886305600 0 111 0 113
+886298400 0 108 0 115
+886291200 0 102 0 103
+886284000 0 102 0 118
+886276800 0 115 0 118
+886269600 0 116 0 118
+886262400 0 116 0 119
+886255200 0 115 0 116
+886248000 0 112 0 119
+886240800 0 102 0 108
+886233600 0 104 0 104
+886226400 0 104 0 110
+886219200 0 104 0 116
+886212000 0 111 0 120
+886204800 0 120 0 120
+886197600 0 120 0 120
+886190400 0 120 0 120
+886183200 0 120 0 120
+886176000 0 120 0 120
+886168800 0 120 0 120
+886161600 0 120 0 120
+886154400 0 120 0 120
+886147200 0 120 0 120
+886140000 0 120 0 120
+886132800 0 120 0 120
+886125600 0 120 0 120
+886118400 0 120 0 120
+886111200 0 120 0 120
+886104000 0 120 0 120
+886096800 0 120 0 120
+886089600 0 120 0 120
+886082400 0 120 0 120
+886075200 0 120 0 120
+886068000 0 120 0 120
+886060800 0 120 0 120
+886053600 0 121 0 126
+886046400 0 123 0 126
+886039200 0 126 0 136
+886032000 0 130 0 135
+886024800 0 130 0 143
+886017600 0 113 0 121
+886010400 0 101 0 106
+886003200 0 88 0 99
+885996000 0 80 0 83
+885988800 0 81 0 86
+885981600 0 88 0 100
+885974400 0 77 0 88
+885967200 0 75 0 77
+885960000 0 75 0 79
+885952800 0 74 0 79
+885945600 0 71 0 77
+885938400 0 68 0 79
+885931200 0 59 0 67
+885924000 0 53 0 62
+885916800 0 48 0 56
+885909600 0 41 0 48
+885902400 0 44 0 50
+885895200 0 34 0 37
+885888000 0 32 0 40
+885880800 0 21 0 26
+885873600 0 21 0 25
+885866400 0 21 0 25
+885859200 0 21 0 25
+885852000 0 21 0 27
+885844800 0 19 0 32
+885837600 0 13 0 24
+885830400 0 10 0 13
+885823200 0 11 0 12
+885816000 0 10 0 13
+885808800 0 11 0 17
+885801600 0 8 0 9
+885794400 0 10 0 11
+885787200 0 10 0 11
+885780000 0 10 0 10
+885772800 0 10 0 12
+885765600 0 10 0 11
+885758400 0 10 0 10
+885751200 0 10 0 11
+885744000 0 11 0 14
+885736800 0 12 0 17
+885729600 0 10 0 14
+885722400 0 10 0 14
+885715200 0 12 0 14
+885708000 0 12 0 12
+885700800 0 12 0 12
+885693600 0 12 0 13
+885686400 0 12 0 12
+885679200 0 12 0 13
+885672000 0 12 0 14
+885664800 0 12 0 22
+885657600 0 22 0 26
+885650400 0 22 0 30
+885643200 0 13 0 19
+885636000 0 12 0 14
+885628800 0 12 0 14
+885621600 0 14 0 18
+885614400 0 14 0 14
+885607200 0 14 0 15
+885600000 0 16 0 25
+885592800 0 21 0 23
+885585600 0 24 0 29
+885578400 0 26 0 27
+885571200 0 26 0 28
+885564000 0 28 0 30
+885556800 0 27 0 33
+885549600 0 23 0 31
+885542400 0 20 0 21
+885535200 0 20 0 22
+885528000 0 21 0 23
+885520800 0 20 0 21
+885513600 0 20 0 23
+885506400 0 19 0 23
+885499200 0 19 0 21
+885492000 0 20 0 25
+885484800 0 20 0 22
+885477600 0 22 0 35
+885470400 0 20 0 24
+885463200 0 20 0 22
+885456000 0 17 0 20
+885448800 0 16 0 17
+885441600 0 16 0 19
+885434400 0 16 0 21
+885427200 0 16 0 19
+885420000 0 16 0 18
+885412800 0 16 0 17
+885405600 0 16 0 19
+885398400 0 16 0 21
+885391200 0 22 0 25
+885384000 0 25 0 32
+885376800 0 22 0 27
+885369600 0 20 0 23
+885362400 0 20 0 28
+885355200 0 19 0 21
+885348000 0 39 0 116
+885340800 0 113 0 117
+885333600 0 103 0 108
+885326400 0 87 0 101
+885319200 0 64 0 75
+885312000 0 54 0 63
+885304800 0 47 0 50
+885297600 0 41 0 48
+885290400 0 36 0 43
+885283200 0 30 0 33
+885276000 0 22 0 26
+885268800 0 20 0 23
+885261600 0 22 0 23
+885254400 0 22 0 25
+885247200 0 23 0 24
+885240000 0 23 0 26
+885232800 0 28 0 39
+885225600 0 39 0 41
+885218400 0 39 0 43
+885211200 0 42 0 51
+885204000 0 42 0 44
+885196800 0 44 0 47
+885189600 0 40 0 44
+885182400 0 37 0 40
+885175200 0 35 0 37
+885168000 0 34 0 37
+885160800 0 34 0 36
+885153600 0 34 0 35
+885146400 0 33 0 36
+885139200 0 37 0 40
+885132000 0 34 0 39
+885124800 0 37 0 41
+885117600 0 40 0 42
+885110400 0 40 0 42
+885103200 0 43 0 47
+885096000 0 46 0 47
+885088800 0 46 0 49
+885081600 0 46 0 47
+885074400 0 46 0 50
+885067200 0 50 0 54
+885060000 0 52 0 55
+885052800 0 54 0 55
+885045600 0 54 0 59
+885038400 0 54 0 57
+885031200 0 56 0 62
+885024000 0 57 0 66
+885016800 0 59 0 70
+885009600 0 58 0 59
+885002400 0 58 0 64
+884995200 0 60 0 65
+884988000 0 63 0 67
+884980800 0 66 0 69
+884973600 0 68 0 102
+884966400 0 101 0 107
+884959200 0 98 0 106
+884952000 0 96 0 100
+884944800 0 100 0 104
+884937600 0 99 0 107
+884930400 0 95 0 97
+884923200 0 95 0 97
+884916000 0 102 0 110
+884908800 0 107 0 110
+884901600 0 107 0 112
+884894400 0 109 0 114
+884887200 0 108 0 114
+884880000 0 105 0 109
+884872800 0 107 0 111
+884865600 0 107 0 111
+884858400 0 109 0 113
+884851200 0 112 0 114
+884844000 0 111 0 117
+884836800 0 105 0 106
+884829600 0 105 0 108
+884822400 0 105 0 109
+884815200 0 105 0 110
+884808000 0 107 0 110
+884800800 0 104 0 112
+884793600 0 100 0 104
+884786400 0 99 0 104
+884779200 0 90 0 95
+884772000 0 90 0 94
+884764800 0 88 0 95
+884757600 0 87 0 88
+884750400 0 87 0 89
+884743200 0 87 0 90
+884736000 0 88 0 91
+884728800 0 90 0 98
+884721600 0 91 0 96
+884714400 0 85 0 94
+884707200 0 84 0 90
+884700000 0 78 0 87
+884692800 0 65 0 70
+884685600 0 60 0 65
+884678400 0 59 0 62
+884671200 0 54 0 63
+884664000 0 50 0 51
+884656800 0 50 0 52
+884649600 0 50 0 53
+884642400 0 51 0 58
+884635200 0 47 0 53
+884628000 0 42 0 49
+884620800 0 44 0 55
+884613600 0 54 0 56
+884606400 0 52 0 60
+884599200 0 49 0 53
+884592000 0 60 0 63
+884584800 0 59 0 68
+884577600 0 56 0 57
+884570400 0 56 0 63
+884563200 0 55 0 66
+884556000 0 56 0 69
+884548800 0 51 0 54
+884541600 0 55 0 57
+884534400 0 54 0 61
+884527200 0 47 0 56
+884520000 0 45 0 49
+884512800 0 46 0 51
+884505600 0 48 0 50
+884498400 0 42 0 47
+884491200 0 42 0 43
+884484000 0 42 0 43
+884476800 0 43 0 46
+884469600 0 45 0 50
+884462400 0 50 0 55
+884455200 0 46 0 54
+884448000 0 43 0 49
+884440800 0 36 0 38
+884433600 0 35 0 40
+884426400 0 35 0 37
+884419200 0 34 0 35
+884412000 0 34 0 35
+884404800 0 35 0 36
+884397600 0 35 0 40
+884390400 0 35 0 40
+884383200 0 36 0 41
+884376000 0 38 0 39
+884368800 0 37 0 41
+884361600 0 37 0 39
+884354400 0 40 0 72
+884347200 0 37 0 42
+884340000 0 38 0 41
+884332800 0 38 0 39
+884325600 0 38 0 39
+884318400 0 38 0 39
+884311200 0 38 0 43
+884304000 0 36 0 41
+884296800 0 36 0 42
+884289600 0 40 0 45
+884282400 0 41 0 47
+884275200 0 42 0 45
+884268000 0 43 0 51
+884260800 0 53 0 69
+884253600 0 69 0 77
+884246400 0 68 0 76
+884239200 0 65 0 66
+884232000 0 65 0 69
+884224800 0 83 0 121
+884217600 0 116 0 121
+884210400 0 110 0 113
+884203200 0 108 0 114
+884196000 0 104 0 108
+884188800 0 100 0 109
+884181600 0 94 0 97
+884174400 0 93 0 97
+884167200 0 93 0 96
+884160000 0 90 0 93
+884152800 0 89 0 91
+884145600 0 89 0 91
+884138400 0 90 0 92
+884131200 0 93 0 103
+884124000 0 88 0 94
+884116800 0 64 0 73
+884109600 0 56 0 62
+884102400 0 52 0 56
+884095200 0 51 0 69
+884088000 0 70 0 76
+884080800 0 59 0 65
+884073600 0 59 0 103
+884066400 0 111 0 137
+884059200 0 121 0 166
+884052000 0 92 0 97
+884044800 0 78 0 113
+884037600 0 60 0 65
+884030400 0 63 0 77
+883958400 0 48 0 70
+883872000 0 21 0 45
+883785600 0 23 0 32
+883699200 0 16 0 27
+883612800 0 11 0 19
+883526400 0 8 0 25
+883440000 0 10 0 25
+883353600 0 16 0 47
+883267200 0 22 0 24
+883180800 0 20 0 28
+883094400 0 26 0 98
+883008000 0 30 0 38
+882921600 0 27 0 35
+882835200 0 28 0 69
+882748800 0 52 0 271
+882662400 0 36 0 103
+882576000 0 73 0 80
+882489600 0 65 0 73
+882403200 0 45 0 59
+882316800 0 45 0 66
+882230400 0 50 0 64
+882144000 0 52 0 66
+882057600 0 46 0 61
+881971200 0 51 0 66
+881884800 0 58 0 74
+881798400 0 47 0 70
+881712000 0 38 0 63
+881625600 0 45 0 76
+881539200 0 54 0 90
+881452800 0 82 0 101
+881366400 0 74 0 131
+881280000 0 90 0 151
+881193600 0 73 0 98
+881107200 0 79 0 92
+881020800 0 24 0 42
+880934400 0 33 0 49
+880848000 0 45 0 55
+880761600 0 45 0 56
+880675200 0 47 0 84
+880588800 0 55 0 134
+880502400 0 54 0 67
+880416000 0 51 0 67
+880329600 0 48 0 61
+880243200 0 25 0 32
+880156800 0 23 0 33
+880070400 0 34 0 87
+879984000 0 47 0 60
+879897600 0 19 0 36
+879811200 0 28 0 57
+879724800 0 16 0 56
+879638400 0 0 0 0
+879552000 0 0 0 0
+879465600 0 0 0 0
+879379200 0 0 0 0
+879292800 0 0 0 0
+879206400 0 0 0 0
+879120000 0 0 0 0
+879033600 0 0 0 0
+878947200 0 0 0 0
+878860800 0 0 0 0
+878774400 0 0 0 0
+878688000 0 0 0 0
+878601600 0 0 0 0
+878515200 0 0 0 0
+878428800 0 0 0 0
+878342400 0 0 0 0
+878256000 0 0 0 0
+878169600 0 0 0 0
+878083200 0 0 0 0
+877996800 0 0 0 0
+877910400 0 0 0 0
+877824000 0 0 0 0
+877737600 0 0 0 0
+877651200 0 0 0 0
+877564800 0 0 0 0
+877478400 0 0 0 0
+877392000 0 0 0 0
+877305600 0 0 0 0
+877219200 0 0 0 0
+877132800 0 0 0 0
+877046400 0 0 0 0
+876960000 0 0 0 0
+876873600 0 0 0 0
+876787200 0 0 0 0
+876700800 0 0 0 0
+876614400 0 0 0 0
+876528000 0 0 0 0
+876441600 0 0 0 0
+876355200 0 0 0 0
+876268800 0 0 0 0
+876182400 0 0 0 0
+876096000 0 0 0 0
+876009600 0 0 0 0
+875923200 0 0 0 0
+875836800 0 0 0 0
+875750400 0 0 0 0
+875664000 0 0 0 0
+875577600 0 0 0 0
+875491200 0 0 0 0
+875404800 0 0 0 0
+875318400 0 0 0 0
+875232000 0 0 0 0
+875145600 0 0 0 0
+875059200 0 0 0 0
+874972800 0 0 0 0
+874886400 0 0 0 0
+874800000 0 0 0 0
+874713600 0 0 0 0
+874627200 0 0 0 0
+874540800 0 0 0 0
+874454400 0 0 0 0
+874368000 0 0 0 0
+874281600 0 0 0 0
+874195200 0 0 0 0
+874108800 0 0 0 0
+874022400 0 0 0 0
+873936000 0 0 0 0
+873849600 0 0 0 0
+873763200 0 0 0 0
+873676800 0 0 0 0
+873590400 0 0 0 0
+873504000 0 0 0 0
+873417600 0 0 0 0
+873331200 0 0 0 0
+873244800 0 0 0 0
+873158400 0 0 0 0
+873072000 0 0 0 0
+872985600 0 0 0 0
+872899200 0 0 0 0
+872812800 0 0 0 0
+872726400 0 0 0 0
+872640000 0 0 0 0
+872553600 0 0 0 0
+872467200 0 0 0 0
+872380800 0 0 0 0
+872294400 0 0 0 0
+872208000 0 0 0 0
+872121600 0 0 0 0
+872035200 0 0 0 0
+871948800 0 0 0 0
+871862400 0 0 0 0
+871776000 0 0 0 0
+871689600 0 0 0 0
+871603200 0 0 0 0
+871516800 0 0 0 0
+871430400 0 0 0 0
+871344000 0 0 0 0
+871257600 0 0 0 0
+871171200 0 0 0 0
+871084800 0 0 0 0
+870998400 0 0 0 0
+870912000 0 0 0 0
+870825600 0 0 0 0
+870739200 0 0 0 0
+870652800 0 0 0 0
+870566400 0 0 0 0
+870480000 0 0 0 0
+870393600 0 0 0 0
+870307200 0 0 0 0
+870220800 0 0 0 0
+870134400 0 0 0 0
+870048000 0 0 0 0
+869961600 0 0 0 0
+869875200 0 0 0 0
+869788800 0 0 0 0
+869702400 0 0 0 0
+869616000 0 0 0 0
+869529600 0 0 0 0
+869443200 0 0 0 0
+869356800 0 0 0 0
+869270400 0 0 0 0
+869184000 0 0 0 0
+869097600 0 0 0 0
+869011200 0 0 0 0
+868924800 0 0 0 0
+868838400 0 0 0 0
+868752000 0 0 0 0
+868665600 0 0 0 0
+868579200 0 0 0 0
+868492800 0 0 0 0
+868406400 0 0 0 0
+868320000 0 0 0 0
+868233600 0 0 0 0
+868147200 0 0 0 0
+868060800 0 0 0 0
+867974400 0 0 0 0
+867888000 0 0 0 0
+867801600 0 0 0 0
+867715200 0 0 0 0
+867628800 0 0 0 0
+867542400 0 0 0 0
+867456000 0 0 0 0
+867369600 0 0 0 0
+867283200 0 0 0 0
+867196800 0 0 0 0
+867110400 0 0 0 0
+867024000 0 0 0 0
+866937600 0 0 0 0
+866851200 0 0 0 0
+866764800 0 0 0 0
+866678400 0 0 0 0
+866592000 0 0 0 0
+866505600 0 0 0 0
+866419200 0 0 0 0
+866332800 0 0 0 0
+866246400 0 0 0 0
+866160000 0 0 0 0
+866073600 0 0 0 0
+865987200 0 0 0 0
+865900800 0 0 0 0
+865814400 0 0 0 0
+865728000 0 0 0 0
+865641600 0 0 0 0
+865555200 0 0 0 0
+865468800 0 0 0 0
+865382400 0 0 0 0
+865296000 0 0 0 0
+865209600 0 0 0 0
+865123200 0 0 0 0
+865036800 0 0 0 0
+864950400 0 0 0 0
+864864000 0 0 0 0
+864777600 0 0 0 0
+864691200 0 0 0 0
+864604800 0 0 0 0
+864518400 0 0 0 0
+864432000 0 0 0 0
+864345600 0 0 0 0
+864259200 0 0 0 0
+864172800 0 0 0 0
+864086400 0 0 0 0
+864000000 0 0 0 0
+863913600 0 0 0 0
+863827200 0 0 0 0
+863740800 0 0 0 0
+863654400 0 0 0 0
+863568000 0 0 0 0
+863481600 0 0 0 0
+863395200 0 0 0 0
+863308800 0 0 0 0
+863222400 0 0 0 0
+863136000 0 0 0 0
+863049600 0 0 0 0
+862963200 0 0 0 0
+862876800 0 0 0 0
+862790400 0 0 0 0
+862704000 0 0 0 0
+862617600 0 0 0 0
+862531200 0 0 0 0
+862444800 0 0 0 0
+862358400 0 0 0 0
+862272000 0 0 0 0
+862185600 0 0 0 0
+862099200 0 0 0 0
+862012800 0 0 0 0
+861926400 0 0 0 0
+861840000 0 0 0 0
+861753600 0 0 0 0
+861667200 0 0 0 0
+861580800 0 0 0 0
+861494400 0 0 0 0
+861408000 0 0 0 0
+861321600 0 0 0 0
+861235200 0 0 0 0
+861148800 0 0 0 0
+861062400 0 0 0 0
+860976000 0 0 0 0
+860889600 0 0 0 0
+860803200 0 0 0 0
+860716800 0 0 0 0
+860630400 0 0 0 0
+860544000 0 0 0 0
+860457600 0 0 0 0
+860371200 0 0 0 0
+860284800 0 0 0 0
+860198400 0 0 0 0
+860112000 0 0 0 0
+860025600 0 0 0 0
+859939200 0 0 0 0
+859852800 0 0 0 0
+859766400 0 0 0 0
+859680000 0 0 0 0
+859593600 0 0 0 0
+859507200 0 0 0 0
+859420800 0 0 0 0
+859334400 0 0 0 0
+859248000 0 0 0 0
+859161600 0 0 0 0
+859075200 0 0 0 0
+858988800 0 0 0 0
+858902400 0 0 0 0
+858816000 0 0 0 0
+858729600 0 0 0 0
+858643200 0 0 0 0
+858556800 0 0 0 0
+858470400 0 0 0 0
+858384000 0 0 0 0
+858297600 0 0 0 0
+858211200 0 0 0 0
+858124800 0 0 0 0
+858038400 0 0 0 0
+857952000 0 0 0 0
+857865600 0 0 0 0
+857779200 0 0 0 0
+857692800 0 0 0 0
+857606400 0 0 0 0
+857520000 0 0 0 0
+857433600 0 0 0 0
+857347200 0 0 0 0
+857260800 0 0 0 0
+857174400 0 0 0 0
+857088000 0 0 0 0
+857001600 0 0 0 0
+856915200 0 0 0 0
+856828800 0 0 0 0
+856742400 0 0 0 0
+856656000 0 0 0 0
+856569600 0 0 0 0
+856483200 0 0 0 0
+856396800 0 0 0 0
+856310400 0 0 0 0
+856224000 0 0 0 0
+856137600 0 0 0 0
+856051200 0 0 0 0
+855964800 0 0 0 0
+855878400 0 0 0 0
+855792000 0 0 0 0
+855705600 0 0 0 0
+855619200 0 0 0 0
+855532800 0 0 0 0
+855446400 0 0 0 0
+855360000 0 0 0 0
+855273600 0 0 0 0
+855187200 0 0 0 0
+855100800 0 0 0 0
+855014400 0 0 0 0
+854928000 0 0 0 0
+854841600 0 0 0 0
+854755200 0 0 0 0
+854668800 0 0 0 0
+854582400 0 0 0 0
+854496000 0 0 0 0
+854409600 0 0 0 0
+854323200 0 0 0 0
+854236800 0 0 0 0
+854150400 0 0 0 0
+854064000 0 0 0 0
+853977600 0 0 0 0
+853891200 0 0 0 0
+853804800 0 0 0 0
+853718400 0 0 0 0
+853632000 0 0 0 0
+853545600 0 0 0 0
+853459200 0 0 0 0
+853372800 0 0 0 0
+853286400 0 0 0 0
+853200000 0 0 0 0
+853113600 0 0 0 0
+853027200 0 0 0 0
+852940800 0 0 0 0
+852854400 0 0 0 0
+852768000 0 0 0 0
+852681600 0 0 0 0
+852595200 0 0 0 0
+852508800 0 0 0 0
+852422400 0 0 0 0
+852336000 0 0 0 0
+852249600 0 0 0 0
+852163200 0 0 0 0
+852076800 0 0 0 0
+851990400 0 0 0 0
+851904000 0 0 0 0
+851817600 0 0 0 0
+851731200 0 0 0 0
+851644800 0 0 0 0
+851558400 0 0 0 0
+851472000 0 0 0 0
+851385600 0 0 0 0
+851299200 0 0 0 0
+851212800 0 0 0 0
+851126400 0 0 0 0
+851040000 0 0 0 0
+850953600 0 0 0 0
+850867200 0 0 0 0
+850780800 0 0 0 0
+850694400 0 0 0 0
+850608000 0 0 0 0
+850521600 0 0 0 0
+850435200 0 0 0 0
+850348800 0 0 0 0
+850262400 0 0 0 0
+850176000 0 0 0 0
+850089600 0 0 0 0
+850003200 0 0 0 0
+849916800 0 0 0 0
+849830400 0 0 0 0
+849744000 0 0 0 0
+849657600 0 0 0 0
+849571200 0 0 0 0
+849484800 0 0 0 0
+849398400 0 0 0 0
+849312000 0 0 0 0
+849225600 0 0 0 0
+849139200 0 0 0 0
+849052800 0 0 0 0
+848966400 0 0 0 0
+848880000 0 0 0 0
+848793600 0 0 0 0
+848707200 0 0 0 0
+848620800 0 0 0 0
+848534400 0 0 0 0
+848448000 0 0 0 0
+848361600 0 0 0 0
+848275200 0 0 0 0
+848188800 0 0 0 0
+848102400 0 0 0 0
+848016000 0 0 0 0
+847929600 0 0 0 0
+847843200 0 0 0 0
+847756800 0 0 0 0
+847670400 0 0 0 0
+847584000 0 0 0 0
+847497600 0 0 0 0
+847411200 0 0 0 0
+847324800 0 0 0 0
+847238400 0 0 0 0
+847152000 0 0 0 0
+847065600 0 0 0 0
+846979200 0 0 0 0
+846892800 0 0 0 0
+846806400 0 0 0 0
+846720000 0 0 0 0
+846633600 0 0 0 0
+846547200 0 0 0 0
+846460800 0 0 0 0
+846374400 0 0 0 0
+846288000 0 0 0 0
+846201600 0 0 0 0
+846115200 0 0 0 0
+846028800 0 0 0 0
+845942400 0 0 0 0
+845856000 0 0 0 0
+845769600 0 0 0 0
+845683200 0 0 0 0
+845596800 0 0 0 0
+845510400 0 0 0 0
+845424000 0 0 0 0
+845337600 0 0 0 0
+845251200 0 0 0 0
+845164800 0 0 0 0
+845078400 0 0 0 0
+844992000 0 0 0 0
+844905600 0 0 0 0
+844819200 0 0 0 0
+844732800 0 0 0 0
+844646400 0 0 0 0
+844560000 0 0 0 0
+844473600 0 0 0 0
+844387200 0 0 0 0
+844300800 0 0 0 0
+844214400 0 0 0 0
+844128000 0 0 0 0
+844041600 0 0 0 0
+843955200 0 0 0 0
+843868800 0 0 0 0
+843782400 0 0 0 0
+843696000 0 0 0 0
+843609600 0 0 0 0
+843523200 0 0 0 0
+843436800 0 0 0 0
+843350400 0 0 0 0
+843264000 0 0 0 0
+843177600 0 0 0 0
+843091200 0 0 0 0
+843004800 0 0 0 0
+842918400 0 0 0 0
+842832000 0 0 0 0
+842745600 0 0 0 0
+842659200 0 0 0 0
+842572800 0 0 0 0
+842486400 0 0 0 0
+842400000 0 0 0 0
+842313600 0 0 0 0
+842227200 0 0 0 0
+842140800 0 0 0 0
+842054400 0 0 0 0
+841968000 0 0 0 0
+841881600 0 0 0 0
+841795200 0 0 0 0
+841708800 0 0 0 0
+841622400 0 0 0 0
+841536000 0 0 0 0
+841449600 0 0 0 0
+841363200 0 0 0 0
+841276800 0 0 0 0
+841190400 0 0 0 0
+841104000 0 0 0 0
+841017600 0 0 0 0
+840931200 0 0 0 0
+840844800 0 0 0 0
+840758400 0 0 0 0
+840672000 0 0 0 0
+840585600 0 0 0 0
+840499200 0 0 0 0
+840412800 0 0 0 0
+840326400 0 0 0 0
+840240000 0 0 0 0
+840153600 0 0 0 0
+840067200 0 0 0 0
+839980800 0 0 0 0
+839894400 0 0 0 0
+839808000 0 0 0 0
+839721600 0 0 0 0
+839635200 0 0 0 0
+839548800 0 0 0 0
+839462400 0 0 0 0
+839376000 0 0 0 0
+839289600 0 0 0 0
+839203200 0 0 0 0
+839116800 0 0 0 0
+839030400 0 0 0 0
+838944000 0 0 0 0
+838857600 0 0 0 0
+838771200 0 0 0 0
+838684800 0 0 0 0
+838598400 0 0 0 0
+838512000 0 0 0 0
+838425600 0 0 0 0
+838339200 0 0 0 0
+838252800 0 0 0 0
+838166400 0 0 0 0
+838080000 0 0 0 0
+837993600 0 0 0 0
+837907200 0 0 0 0
+837820800 0 0 0 0
+837734400 0 0 0 0
+837648000 0 0 0 0
+837561600 0 0 0 0
+837475200 0 0 0 0
+837388800 0 0 0 0
+837302400 0 0 0 0
+837216000 0 0 0 0
+837129600 0 0 0 0
+837043200 0 0 0 0
+836956800 0 0 0 0
+836870400 0 0 0 0
+836784000 0 0 0 0
+836697600 0 0 0 0
+836611200 0 0 0 0
+836524800 0 0 0 0
+836438400 0 0 0 0
+836352000 0 0 0 0
+836265600 0 0 0 0
+836179200 0 0 0 0
+836092800 0 0 0 0
+836006400 0 0 0 0
+835920000 0 0 0 0
+835833600 0 0 0 0
+835747200 0 0 0 0
+835660800 0 0 0 0
+835574400 0 0 0 0
+835488000 0 0 0 0
+835401600 0 0 0 0
+835315200 0 0 0 0
+835228800 0 0 0 0
+835142400 0 0 0 0
+835056000 0 0 0 0
+834969600 0 0 0 0
+834883200 0 0 0 0
+834796800 0 0 0 0
+834710400 0 0 0 0
+834624000 0 0 0 0
+834537600 0 0 0 0
+834451200 0 0 0 0
+834364800 0 0 0 0
+834278400 0 0 0 0
+834192000 0 0 0 0
+834105600 0 0 0 0
+834019200 0 0 0 0
+833932800 0 0 0 0
+833846400 0 0 0 0
+833760000 0 0 0 0
+833673600 0 0 0 0
+833587200 0 0 0 0
+833500800 0 0 0 0
+833414400 0 0 0 0
+833328000 0 0 0 0
+833241600 0 0 0 0
+833155200 0 0 0 0
+833068800 0 0 0 0
+832982400 0 0 0 0
+832896000 0 0 0 0
+832809600 0 0 0 0
+832723200 0 0 0 0
+832636800 0 0 0 0
+832550400 0 0 0 0
+832464000 0 0 0 0
+832377600 0 0 0 0
+832291200 0 0 0 0
+832204800 0 0 0 0
+832118400 0 0 0 0
+832032000 0 0 0 0
+831945600 0 0 0 0
+831859200 0 0 0 0
+831772800 0 0 0 0
+831686400 0 0 0 0
+831600000 0 0 0 0
+831513600 0 0 0 0
+831427200 0 0 0 0
+831340800 0 0 0 0
+831254400 0 0 0 0
+831168000 0 0 0 0
+831081600 0 0 0 0
+830995200 0 0 0 0
+830908800 0 0 0 0
+830822400 0 0 0 0
+830736000 0 0 0 0
+830649600 0 0 0 0
+830563200 0 0 0 0
+830476800 0 0 0 0
+830390400 0 0 0 0
+830304000 0 0 0 0
+830217600 0 0 0 0
+830131200 0 0 0 0
+830044800 0 0 0 0
+829958400 0 0 0 0
+829872000 0 0 0 0
+829785600 0 0 0 0
+829699200 0 0 0 0
+829612800 0 0 0 0
+829526400 0 0 0 0
+829440000 0 0 0 0
+829353600 0 0 0 0
+829267200 0 0 0 0
+829180800 0 0 0 0
+829094400 0 0 0 0
+829008000 0 0 0 0
+828921600 0 0 0 0
+828835200 0 0 0 0
+828748800 0 0 0 0
+828662400 0 0 0 0
+828576000 0 0 0 0
+828489600 0 0 0 0
+828403200 0 0 0 0
+828316800 0 0 0 0
+828230400 0 0 0 0
+828144000 0 0 0 0
+828057600 0 0 0 0
+827971200 0 0 0 0
+827884800 0 0 0 0
+827798400 0 0 0 0
+827712000 0 0 0 0
+827625600 0 0 0 0
+827539200 0 0 0 0
+827452800 0 0 0 0
+827366400 0 0 0 0
+827280000 0 0 0 0
+827193600 0 0 0 0
+827107200 0 0 0 0
+827020800 0 0 0 0
+826934400 0 0 0 0
+826848000 0 0 0 0
+826761600 0 0 0 0
+826675200 0 0 0 0
+826588800 0 0 0 0
+826502400 0 0 0 0
+826416000 0 0 0 0
+826329600 0 0 0 0
+826243200 0 0 0 0
+826156800 0 0 0 0
+826070400 0 0 0 0
+825984000 0 0 0 0
+825897600 0 0 0 0
+825811200 0 0 0 0
+825724800 0 0 0 0
+825638400 0 0 0 0
+825552000 0 0 0 0
+825465600 0 0 0 0
+825379200 0 0 0 0
+825292800 0 0 0 0
+825206400 0 0 0 0
+825120000 0 0 0 0
+825033600 0 0 0 0
+824947200 0 0 0 0
+824860800 0 0 0 0
+824774400 0 0 0 0
+824688000 0 0 0 0
+824601600 0 0 0 0
+824515200 0 0 0 0
+824428800 0 0 0 0
+824342400 0 0 0 0
+824256000 0 0 0 0
+824169600 0 0 0 0
+824083200 0 0 0 0
+823996800 0 0 0 0
+823910400 0 0 0 0
+823824000 0 0 0 0
+823737600 0 0 0 0
+823651200 0 0 0 0
+823564800 0 0 0 0
+823478400 0 0 0 0
+823392000 0 0 0 0
+823305600 0 0 0 0
+823219200 0 0 0 0
+823132800 0 0 0 0
+823046400 0 0 0 0
+822960000 0 0 0 0
+822873600 0 0 0 0
+822787200 0 0 0 0
+822700800 0 0 0 0
+822614400 0 0 0 0
+822528000 0 0 0 0
+822441600 0 0 0 0
+822355200 0 0 0 0
+822268800 0 0 0 0
+822182400 0 0 0 0
+822096000 0 0 0 0
+822009600 0 0 0 0
+821923200 0 0 0 0
+821836800 0 0 0 0
+821750400 0 0 0 0
+821664000 0 0 0 0
+821577600 0 0 0 0
+821491200 0 0 0 0
+821404800 0 0 0 0
+821318400 0 0 0 0
+821232000 0 0 0 0
+821145600 0 0 0 0
+821059200 0 0 0 0
+820972800 0 0 0 0
+820886400 0 0 0 0
+820800000 0 0 0 0
diff --git a/mrtg/mqueue b/mrtg/mqueue
new file mode 100755 (executable)
index 0000000..0666b16
--- /dev/null
@@ -0,0 +1,15 @@
+#!/usr/local/bin/perl
+# simple mqueue done with find2perl
+
+$hostname = "terror.hungry.com";
+
+require "find.pl";
+# Traverse desired filesystems
+$counter = 0;
+&find('/var/spool/mqueue/');
+sub wanted {
+    /^qf.*$/ &&
+$counter++;
+}
+chomp $counter;
+print "0\n$counter\n1\n$hostname\n"; 
diff --git a/mrtg/mrtg.conf b/mrtg/mrtg.conf
new file mode 100644 (file)
index 0000000..5fc68b1
--- /dev/null
@@ -0,0 +1,37 @@
+#
+# Mail.cfg:  Mailstats plotting with MRTG
+#
+WorkDir: /u/pere/public_html/mrtg
+Interval: 5 
+#---------------------------------------------------------------
+Target[mail]: `/u/pere/public_html/mrtg/mailstats`
+MaxBytes[mail]: 150
+AbsMax[mail]: 1800
+#Unscaled[mail]: dwmy
+Options[mail]: growright,gauge, nopercent
+Title[mail]: terror.hungry.com Sendmail send/receive Statistics
+PageTop[mail]: terror.hungry.com Sendmail Statistics</H1>
+XSize[mail]: 500
+#Supress[mail]: my
+YSize[mail]: 128
+WithPeak[mail]: dwmy
+YLegend[mail]: No. of messages
+ShortLegend[mail]: messages
+LegendI[mail]: &nbsp;Incoming:
+LegendO[mail]: &nbsp;Outgoing:
+# Interval: 5
+#---------------------------------------------------------------
+Target[mq]: `/u/pere/public_html/mrtg/mqueue`
+MaxBytes[mq]: 32000
+AbsMax[mq]: 64000
+Options[mq]: growright,gauge, nopercent
+Title[mq]: terror.hungry.com Sendmail MailQueue Statistics
+PageTop[mq]: <H2>terror.hungry.com Sendmail MailQueue Statistics</H2>
+XSize[mq]: 500
+Supress[mq]: y
+YSize[mq]: 128
+WithPeak[mq]: my
+YLegend[mq]: No. of messages in mailq
+ShortLegend[mq]: Mailq
+LegendO[mq]: &nbsp;Mailq:
+LegendI[mq]: 
diff --git a/mrtg/mrtg.ok b/mrtg/mrtg.ok
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/perl/aliases2html-1.0.tar.gz b/perl/aliases2html-1.0.tar.gz
new file mode 100644 (file)
index 0000000..58c244f
Binary files /dev/null and b/perl/aliases2html-1.0.tar.gz differ
diff --git a/perl/aliases2html-1.1.tar.gz b/perl/aliases2html-1.1.tar.gz
new file mode 100644 (file)
index 0000000..1421bfd
Binary files /dev/null and b/perl/aliases2html-1.1.tar.gz differ
diff --git a/reports/rfc/draft-andrews-dns-ascii-01.txt b/reports/rfc/draft-andrews-dns-ascii-01.txt
new file mode 100644 (file)
index 0000000..700c7e7
--- /dev/null
@@ -0,0 +1,109 @@
+                                                            Mark Andrews
+INTERNET DRAFT                                                     CSIRO
+Expires: September 1996                                         May 1996
+Updates RFC-1035
+
+                    ASCII Encoding for Domain Names
+
+                     draft-andrews-dns-ascii-01.txt
+
+1. Status of This Memo
+
+   This document is an Internet Draft.  Internet Drafts are working
+   documents of the Internet Engineering Task Force (IETF), its Areas,
+   and its Working Groups.  Note that other groups may also distribute
+   working documents as Internet Drafts.
+
+   Internet Drafts are draft documents valid for a maximum of six
+   months.  Internet Drafts may be updated, replaced, or obsoleted by
+   other documents at any time.  It is not appropriate to use Internet
+   Drafts as reference material or to cite them other than as a "working
+   draft" or "work in progress."
+
+   Please check the 1id-abstracts.txt listing contained in the internet-
+   drafts Shadow Directories to learn the current status of any Internet
+   Draft.
+
+2. Abstract
+
+   [RFC 1035 Section 5.1] describes how to encode domain names as
+   character strings. It however allows non printable characters to be
+   used. It also allows for encodings of text files which would not
+   survive intact ftp ASCII mode transfers, different end of line
+   conventions. This document addresses these problems by stating where
+   octal escapes MUST be used.
+
+   While a applications MUST continue to read the full range as
+   expressed by [RFC 1035 5.1]. They MUST emit only this selected
+   subset.
+
+3. Encoding
+
+   Octets within the follow ranges are encoded as backslash followed by
+   three octal digits, 0x00 - 0x20, 0x7f - 0xff.
+
+           e.g.
+                   0x00, \000
+                   0x1f, \177
+                   0xff, \377
+
+
+
+Andrews                                                         [Page 1]
+\f
+Internet Draft       draft-andrews-dns-ascii-01.txt             May 1996
+
+
+   Period (".") when NOT used as a domain separator is encoded as the
+   sequence backslash period, e.g. "\.". Un-escaped periods indicate
+   label separators.
+
+   Backslash ("\") is encoded as two consecutive backslashes, e.g. "\\".
+
+   Double quotes ('"') should always be represented as backslash quote
+   as a common nameserver implementation mis-parses strings containing
+   quotes, e.g. '\"'.
+
+   Semi-colon (";") should always be encoded as backslash semi-colon
+   otherwise it will be interpreted as a comment. e.g. "\;".
+
+   Space may be a literal space when the string is enclosed by double
+   quotes.
+
+   All other characters represent their literal ASCII encoding eighth
+   bit not set.
+
+4. Security
+
+   This draft introduces no known security problems. It may however
+   remove some latent security problems in applications where the
+   encoding is NOT reversible leading to unexpected changes in domain
+   names.
+
+4. References
+
+   [RFC-1035]
+      P. Mockapetris, ``DOMAIN NAMES - IMPLEMENTATION AND
+      SPECIFICATION'', RFC-1035, ISI, November 1987.
+
+6. Author's Address
+
+   Mark Andrews
+   CSIRO
+   Division of Mathematics and Statistics
+   Locked Bag 17
+   North Ryde NSW 2113
+   AUSTRALIA
+
+   Mark.Andrews@dms.csiro.au [MA88]
+
+
+
+
+
+
+
+
+
+Andrews                                                         [Page 2]
+\f
diff --git a/reports/rfc/draft-gulbrandsen-dns-rr-srvcs-03.txt b/reports/rfc/draft-gulbrandsen-dns-rr-srvcs-03.txt
new file mode 100644 (file)
index 0000000..6fe0d69
--- /dev/null
@@ -0,0 +1,559 @@
+
+Applications Area                                       Arnt Gulbrandsen
+INTERNET-DRAFT                                        Troll Technologies
+<draft-gulbrandsen-dns-rr-srvcs-03.txt>                       Paul Vixie
+                                                       Vixie Enterprises
+                                                              March 1996
+
+Category: Experimental
+Updates: RFC 1035, RFC 1183
+
+
+       A DNS RR for specifying the location of services (DNS SRV)
+
+
+Abstract
+
+   This document describes a DNS RR which specifies the location of the
+   server(s) for a specific protocol and domain (like a more general
+   form of MX).
+
+Status of this memo
+
+   This document is an Internet-Draft.  Internet-Drafts are working
+   documents of the Internet Engineering Task Force (IETF), its areas,
+   and its working groups.  Note that other groups may also distribute
+   working documents as Internet-Drafts.
+
+   Internet-Drafts are draft documents valid for a maximum of six months
+   and may be updated, replaced, or obsoleted by other documents at any
+   time.  It is inappropriate to use Internet-Drafts as reference
+   material or to cite them other than as ``work in progress.''
+
+   To learn the current status of any Internet-Draft, please check the
+   ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
+   Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
+   munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
+   ftp.isi.edu (US West Coast).
+
+Overview and rationale
+
+   Currently, one must either know the exact address of a server to
+   contact it, or broadcast a question.  This has led to e.g.
+   ftp.whatever.com aliases, the SMTP-specific MX RR, and using MAC-
+   level broadcasts to locate servers.
+
+   The SRV RR allows administrators to use several servers for a single
+   domain, to move services from host to host with little fuss, and to
+   designate some hosts as primary servers for a service and others as
+   backups.
+
+
+
+Gulbrandsen and Vixie                                           [Page 1]
+\f
+Expires October 1996           DNS SRV RR                     March 1996
+
+
+   Clients ask for a specific service/protocol for a specific domain
+   (the word domain is used here in the strict RFC 1034 sense), and get
+   back the names of any available servers.
+
+
+Introductory example
+
+   When a SRV-cognizant web-browser wants to retrieve
+
+        http://www.asdf.com/
+
+   it does a lookup of
+
+        _http._tcp.www.asdf.com
+
+   and retrieves the document from one of the servers in the reply.  The
+   example zone file near the end of the draft contains answering RRs
+   for this query.
+
+
+The format of the SRV RR
+
+   Here is the format of the SRV RR, whose DNS type code is 33:
+
+        _Service._Proto.Name TTL Class SRV Priority Weight Port Target
+
+        (There is an example near the end of this document.)
+
+   Service
+        The symbolic name of the desired service, as defined in Assigned
+        Numbers or locally.  An underscore (_) is prepended to the
+        service identifier to avoid collisions with DNS labels that
+        occur in nature.
+
+        Some widely used services, notably POP, don't have a single
+        universal name.  If Assigned Numbers names the service
+        indicated, that name is the only name which is legal for SRV
+        lookups.  Only locally defined services may be named locally.
+        The Service is case insensitive.
+
+   Proto
+        The symbolic name of the desired protocol, with an underscore
+        (_) prepended to prevent collisions with DNS labels that occur
+        in nature.  _TCP and _UDP are at present the most useful values
+        for this field, though any name defined by Assigned Numbers or
+        locally may be used (as for Service).  The Proto is case
+        insensitive.
+
+
+
+
+Gulbrandsen and Vixie                                           [Page 2]
+\f
+Expires October 1996           DNS SRV RR                     March 1996
+
+
+   Name
+        The domain this RR refers to.  The SRV RR is unique in that the
+        name one searches for is not this name; the example near the end
+        shows this clearly.
+
+   TTL
+        Standard DNS meaning.
+
+   Class
+        Standard DNS meaning.
+
+   Priority
+        As for MX, the priority of this target host.  A client MUST
+        attempt to contact the target host with the lowest-numbered
+        priority it can reach; target hosts with the same priority
+        SHOULD be tried in pseudorandom order.  The range is 0-65535.
+
+   Weight
+        Load balancing mechanism.  When selecting a target host among
+        the those that have the same priority, the chance of trying this
+        one first SHOULD be proportional to its weight.  The range of
+        this number is 1-65535.  Domain administrators are urged to use
+        Weight 0 when there isn't any load balancing to do, to make the
+        RR easier to read for humans (less noisy).
+
+   Port
+        The port on this target host of this service.  The range is
+        0-65535.  This is often as specified in Assigned Numbers but
+        need not be.
+
+   Target
+        As for MX, the domain name of the target host.  There MUST be
+        one or more A records for this name. Implementors are urged, but
+        not required, to return the A record(s) in the Additional Data
+        section.  Name compression is to be used for this field.
+
+        A Target of ``.'' means that the service is decidedly not
+        available at this domain.
+
+
+Domain administrator advice
+
+   Asking everyone to update their telnet (for example) clients when the
+   first internet site adds a SRV RR for Telnet/TCP is futile (even if
+   desirable).  Therefore SRV will have to coexist with A record lookups
+   for a long time, and DNS administrators should try to provide A
+   records to support old clients:
+
+
+
+
+Gulbrandsen and Vixie                                           [Page 3]
+\f
+Expires October 1996           DNS SRV RR                     March 1996
+
+
+      - Where the services for a single domain are spread over several
+        hosts, it seems advisable to have a list of A RRs at the same
+        DNS node as the SRV RR, listing reasonable (if perhaps
+        suboptimal) fallback hosts for Telnet, NNTP and other protocols
+        likely to be used with this name.  Note that some programs only
+        try the first address they get back from e.g. gethostbyname(),
+        and we don't know how widespread this behaviour is.
+
+      - Where one service is provided by several hosts, one can either
+        provide A records for all the hosts (in which case the round-
+        robin mechanism, where available, will share the load equally)
+        or just for one (presumably the fastest).
+
+      - If a host is intended to provide a service only when the main
+        server(s) is/are down, it probably shouldn't be listed in A
+        records.
+
+      - Hosts that are referenced by backup A records must use the port
+        number specified in Assigned Numbers for the service.
+
+   Currently there's a practical limit of 512 bytes for DNS replies.
+   Until all resolvers can handle larger responses, domain
+   administrators are strongly advised to keep their SRV replies below
+   512 bytes.
+
+   All round numbers, wrote Dr. Johnson, are false, and these numbers
+   are very round: A reply packet has a 30-byte overhead plus the name
+   of the service (``_telnet._tcp.asdf.com'' for instance); each SRV RR
+   adds 20 bytes plus the name of the target host; each NS RR in the NS
+   section is 15 bytes plus the name of the name server host; and
+   finally each A RR in the additional data section is 20 bytes or so,
+   and there are A's for each SRV and NS RR mentioned in the answer.
+   This size estimate is extremely crude, but shouldn't underestimate
+   the actual answer size by much.  If an answer may be close to the
+   limit, using e.g. ``dig'' to look at the actual answer is a good
+   idea.
+
+
+The ``Weight'' field
+
+   Weight, the load balancing field, is not quite satisfactory, but the
+   actual load on typical servers changes much too quickly to be kept
+   around in DNS caches.  It seems to the authors that offering
+   administrators a way to say ``this machine is three times as fast as
+   that one'' is the best that can practically be done.
+
+
+
+
+
+
+Gulbrandsen and Vixie                                           [Page 4]
+\f
+Expires October 1996           DNS SRV RR                     March 1996
+
+
+   The only way the authors can see of getting a ``better'' load figure
+   is asking a separate server when the client selects a server and
+   contacts it.  For short-lived services like SMTP an extra step in the
+   connection establishment seems too expensive, and for long-lived
+   services like telnet, the load figure may well be thrown off a minute
+   after the connection is established when someone else starts or
+   finishes a heavy job.
+
+
+The Port number
+
+   Currently, the translation from service name to port number happens
+   at the client, often using a file such as /etc/services.
+
+   Moving this information to the DNS makes it less necessary to update
+   these files on every single computer of the net every time a new
+   service is added, and makes it possible to move standard services out
+   of the ``root-only'' port range on unix.
+
+
+Usage rules
+
+   A SRV-cognizant client SHOULD use this procedure to locate a list of
+   servers and connect to the preferred one:
+
+        Do a lookup for QNAME=_service._protocol.target, QCLASS=IN,
+        QTYPE=SRV.
+
+        If the reply is NOERROR, ANCOUNT>0 and there is at least one SRV
+        RR which specifies the requested Service and Protocol in the
+        reply:
+
+             If there is precisely one SRV RR, and its Target is ``.''
+             (the root domain), abort.
+
+             Else, for all such RR's, build a list of (Priority, Weight,
+             Target) tuples
+
+             Sort the list by priority (lowest number first)
+
+             Create a new empty list
+
+             For each distinct priority level
+                  While there are still elements left at this priority
+                  level
+                       Select an element randomly, with probability
+                       Weight, and move it to the tail of the new list
+
+
+
+
+Gulbrandsen and Vixie                                           [Page 5]
+\f
+Expires October 1996           DNS SRV RR                     March 1996
+
+
+             For each element in the new list
+
+                  query the DNS for A RR's for the Target or use any
+                  RR's found in the Additional Data secion of the
+                  earlier SRV query.
+
+                  for each A RR found, try to connect to the (protocol,
+                  address, service).
+
+        else if the service desired is SMTP
+
+             skip to RFC 974 (MX).
+
+        else
+
+             Do a lookup for QNAME=target, QCLASS=IN, QTYPE=A
+
+             for each A RR found, try to connect to the (protocol,
+             address, service)
+
+   Notes:
+
+      - Port numbers SHOULD NOT be used in place of the symbolic service
+        or protocol names (for the same reason why variant names cannot
+        be allowed: Applications would have to do two or more lookups).
+
+      - If a truncated response comes back from an SRV query, and the
+        Additional Data section has at least one complete RR in it, the
+        answer MUST be considered complete and the client resolver
+        SHOULD NOT retry the query using TCP, but use normal UDP queries
+        for A RR's missing from the Additional Data section.
+
+      - A client MAY use means other than Weight to choose among target
+        hosts with equal Priority.
+
+      - A client MUST parse all of the RR's in the reply.
+
+      - If the Additional Data section doesn't contain A RR's for all
+        the SRV RR's and the client may want to connect to the target
+        host(s) involved, the client MUST look up the A RR(s).  (This
+        happens quite often when the A RR has shorter TTL than the SRV
+        or NS RR's.)
+
+      - A future standard could specify that a SRV RR whose Protocol was
+        _TCP and whose Service was _SMTP would override RFC 974's rules
+        with regard to the use of an MX RR.  This would allow firewalled
+        organizations with several SMTP relays to control the load
+        distribution using the Weight field.
+
+
+
+Gulbrandsen and Vixie                                           [Page 6]
+\f
+Expires October 1996           DNS SRV RR                     March 1996
+
+
+      - Future protocols could be designed to use SRV RR lookups as the
+        means by which clients locate their servers.
+
+
+Fictional example
+
+   This is (part of) the zone file for asdf.com, a still-unused domain:
+
+        $ORIGIN asdf.com.
+        @               SOA server.asdf.com. root.asdf.com. (
+                            1995032001 3600 3600 604800 86400 )
+                        NS  server.asdf.com.
+                        NS  ns1.ip-provider.net.
+                        NS  ns2.ip-provider.net.
+        _ftp._tcp       SRV 0 0 21 server.asdf.com.
+        _finger._tcp    SRV 0 0 79 server.asdf.com.
+        ; telnet - use old-slow-box or new-fast-box if either is
+        ; available, make three quarters of the logins go to
+        ; new-fast-box.
+        _telnet._tcp    SRV 0 1 23 old-slow-box.asdf.com.
+                        SRV 0 3 23 new-fast-box.asdf.com.
+        ; if neither old-slow-box or new-fast-box is up, switch to
+        ; using the sysdmin's box and the server
+                        SRV 1 0 23 sysadmins-box.asdf.com.
+                        SRV 1 0 23 server.asdf.com.
+        ; HTTP - server is the main server, new-fast-box is the backup
+        ; (On new-fast-box, the HTTP daemon runs on port 8000)
+        _http._tcp      SRV 0 0 80 server.asdf.com.
+                        SRV 10 0 8000 new-fast-box.asdf.com.
+        ; since we want to support both http://asdf.com/ and
+        ; http://www.asdf.com/ we need the next two RRs as well
+        _http._tcp.www  SRV 0 0 80 server.asdf.com.
+                        SRV 10 0 8000 new-fast-box.asdf.com.
+        ; SMTP - mail goes to the server, and to the IP provider if
+        ; the net is down
+        _smtp._tcp      SRV 0 0 25 server.asdf.com.
+                        SRV 1 0 25 mailhost.ip-provider.net.
+        @               MX  0 server.asdf.com.
+                        MX  1 mailhost.ip-provider.net.
+        ; NNTP - use the IP providers's NNTP server
+        _nntp._tcp      SRV 0 0 119 nntphost.ip-provider.net.
+        ; IDB is an locally defined protocol
+        _idb._tcp SRV  0 0 2025 new-fast-box.asdf.com.
+        ; addresses
+        server          A   172.30.79.10
+        old-slow-box    A   172.30.79.11
+        sysadmins-box   A   172.30.79.12
+        new-fast-box    A   172.30.79.13
+
+
+
+Gulbrandsen and Vixie                                           [Page 7]
+\f
+Expires October 1996           DNS SRV RR                     March 1996
+
+
+        ; backup A records - new-fast-box and old-slow-box are
+        ; included, naturally, and server is too, but might go
+        ; if the load got too bad
+        @               A   172.30.79.10
+                        A   172.30.79.11
+                        A   172.30.79.13
+        ; backup A RR for www.asdf.com
+        www             A       172.30.79.10
+        ; NO other services are supported
+        *._tcp         SRV  0 0 0 .
+        *._udp         SRV  0 0 0 .
+
+   In this example, a telnet connection to ``asdf.com.'' needs an SRV
+   lookup of ``_telnet._tcp.asdf.com.'' and possibly A lookups of ``new-
+   fast-box.asdf.com.'' and/or the other hosts named.  The size of the
+   SRV reply is approximately 365 bytes:
+
+      30 bytes general overhead
+      20 bytes for the query string, ``_telnet._tcp.asdf.com.''
+      130 bytes for 4 SRV RR's, 20 bytes each plus the lengths of ``new-
+        fast-box'', ``old-slow-box'', ``server'' and ``sysadmins-box'' -
+        ``asdf.com'' in the query section is quoted here and doesn't
+        need to be counted again.
+      75 bytes for 3 NS RRs, 15 bytes each plus the lengths of
+        ``server'', ``ns1.ip-provider.net.'' and ``ns2'' - again, ``ip-
+        provider.net.'' is quoted and only needs to be counted once.
+      120 bytes for the 6 A RR's mentioned by the SRV and NS RR's.
+
+
+Refererences
+
+   RFC 1918: Y. Rekhter, R. Moskowitz, D. Karrenberg, G. de Groot, E.
+        Lear, ``Address Allocation for Private Internets'', 02/29/1996.
+
+   RFC 1916 H. Berkowitz, P. Ferguson, W. Leland, P. Nesser,
+        ``Enterprise Renumbering: Experience and Information
+        Solicitation'', 02/28/1996.
+
+   RFC 1912 D. Barr, ``Common DNS Operational and Configuration
+        Errors'', 02/28/1996.
+
+   RFC 1900: B. Carpenter, Y. Rekhter, ``Renumbering Needs Work'',
+        02/28/1996.
+
+   RFC 1880: J. Postel, ``INTERNET OFFICIAL PROTOCOL STANDARDS'',
+        11/29/1995.
+
+   RFC 1814: E. Gerich, ``Unique Addresses are Good'', 06/22/1995.
+
+
+
+Gulbrandsen and Vixie                                           [Page 8]
+\f
+Expires October 1996           DNS SRV RR                     March 1996
+
+
+   RFC 1794: T. Brisco, ``DNS Support for Load Balancing'', 04/20/1995.
+
+   RFC 1713: A. Romao, ``Tools for DNS debugging'', 11/03/1994.
+
+   RFC 1712: C. Farrell, M. Schulze, S. Pleitner, D. Baldoni, ``DNS
+        Encoding of Geographical Location'', 11/01/1994.
+
+   RFC 1706: B. Manning, R. Colella, ``DNS NSAP Resource Records'',
+        10/26/1994.
+
+   RFC 1700: J. Reynolds, J. Postel, ``ASSIGNED NUMBERS'', 10/20/1994.
+
+   RFC 1183: R. Ullmann, P. Mockapetris, L. Mamakos, C. Everhart, ``New
+        DNS RR Definitions'', 10/08/1990.
+
+   RFC 1101: P. Mockapetris, ``DNS encoding of network names and other
+        types'', 04/01/1989.
+
+   RFC 1035: P. Mockapetris, ``Domain names - implementation and
+        specification'', 11/01/1987.
+
+   RFC 1034: P. Mockapetris, ``Domain names - concepts and facilities'',
+        11/01/1987.
+
+   RFC 1033: M. Lottor, ``Domain administrators operations guide'',
+        11/01/1987.
+
+   RFC 1032: M. Stahl, ``Domain administrators guide'', 11/01/1987.
+
+   RFC 974: C. Partridge, ``Mail routing and the domain system'',
+        01/01/1986.
+
+
+Security Considerations
+
+   The authors believes this RR to not cause any new security problems.
+   Some problems become more visible, though.
+
+      - The ability to specify ports on a fine-grained basis obviously
+        changes how a router can filter packets.  It becomes impossible
+        to block internal clients from accessing specific external
+        services, slightly harder to block internal users from running
+        unautorised services, and more important for the router
+        operations and DNS operations personnel to cooperate.
+
+      - There is no way a site can keep its hosts from being referenced
+        as servers (as, indeed, some sites become unwilling secondary
+        MXes today).  This could lead to denial of service.
+
+
+
+Gulbrandsen and Vixie                                           [Page 9]
+\f
+Expires October 1996           DNS SRV RR                     March 1996
+
+
+      - With SRV, DNS spoofers can supply false port numbers, as well as
+        host names and addresses.  The authors do not see any practical
+        effect of this.
+
+   We assume that as the DNS-security people invent new features, DNS
+   servers will return the relevant RRs in the Additional Data section
+   when answering an SRV query.
+
+
+Authors' Addresses
+
+   Arnt Gulbrandsen
+   Troll Tech
+   Postboks 6133 Etterstad
+   N-0602 Oslo
+   Norway
+
+   Phone: +47 22646966
+
+   Mail: agulbra@troll.no
+
+   Paul Vixie
+   Vixie Enterprises
+   Star Route 159A
+   Woodside, CA  94062
+
+   Phone: (415) 747-0204
+
+   Mail: paul@vix.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Gulbrandsen and Vixie                                          [Page 10]
+\f
+
diff --git a/reports/rfc/draft-ietf-dnsind-clarify-01.txt b/reports/rfc/draft-ietf-dnsind-clarify-01.txt
new file mode 100644 (file)
index 0000000..a8b652e
--- /dev/null
@@ -0,0 +1,334 @@
+
+
+Network Working Group                                         Robert Elz
+Internet Draft                                   University of Melbourne
+Expiration Date: November 1996
+                                                              Randy Bush
+                                                             RGnet, Inc.
+
+                                                                May 1996
+
+
+                Clarifications to the DNS Specification
+
+
+                    draft-ietf-dnsind-clarify-01.txt
+
+Status of this Memo
+
+   This document is an Internet-Draft.  Internet-Drafts are working
+   documents of the Internet Engineering Task Force (IETF), its areas,
+   and its working groups.  Note that other groups may also distribute
+   working documents as Internet-Drafts.
+
+   Internet-Drafts are draft documents valid for a maximum of six months
+   and may be updated, replaced, or obsoleted by other documents at any
+   time.  It is inappropriate to use Internet-Drafts as reference
+   material or to cite them other than as "work in progress."
+
+   To learn the current status of any Internet-Draft, please check the
+   "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
+   Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
+   munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
+   ftp.isi.edu (US West Coast).
+
+1. Abstract
+
+   This draft considers some areas that have been identified as problems
+   with the specification of the Domain Name System, and proposes
+   remedies for the defects identified.  Two separate issues are
+   considered, IP packet header address usage from multi-homed servers,
+   and TTLs in sets of records with the same name, class, and type.
+
+
+
+
+
+
+
+
+
+
+
+
+kre/randy                                                       [Page 1]
+\f
+Internet Draft      draft-ietf-dnsind-clarify-01.txt            May 1996
+
+
+2. Introduction
+
+   Several problem areas in the Domain Name System specification
+   [RFC1034, RFC1035] have been noted through the years [RFC1123].  This
+   draft addresses two additional problem areas.  The two issues here
+   are independent.  Those issues are the question of which source
+   address a multi-homed DNS server should use when replying to a query,
+   and the issue of differing TTLs for DNS records with the same label,
+   class and type.
+
+   Suggestions for clarifications to the DNS specification to avoid
+   these problems are made in this memo.  The solutions proposed herein
+   are intended to stimulate discussion.  It is possible that the sense
+   of either may be reversed before the next iteration of this draft,
+   but less likely now than it was before the previous version.
+
+3. Server Reply Source Address Selection
+
+   Most, if not all, DNS clients, whether servers acting as clients for
+   the purposes of recursive query resolution, or resolvers, expect the
+   address from which a reply is received to be the same address as that
+   to which the query eliciting the reply was sent.  This, along with
+   the identifier (ID) in the reply is used for disambiguating replies,
+   and filtering spurious responses.  This may, or may not, have been
+   intended when the DNS was designed, but is now a fact of life.
+
+   Some multi-homed hosts running DNS servers fail to anticipate this
+   usage, and consequently send replies from the "wrong" source address,
+   causing the reply to be discarded by the client.
+
+3.1. UDP Source Address Selection
+
+   To avoid these problems, servers when responding to queries using UDP
+   must cause the reply to be sent with the source address field in the
+   IP header set to the address that was in the destination address
+   field of the IP header of the packet containing the query causing the
+   response.  If this would cause the response to be sent from an IP
+   address which is not permitted for this purpose, then the response
+   may be sent from any legal IP address allocated to the server.  That
+   address should be chosen to maximise the possibility that the client
+   will be able to use it for further queries.  Servers configured in
+   such a way that not all their addresses are equally reachable from
+   all potential clients need take particular care when responding to
+   queries sent to anycast, multicast, or similar, addresses.
+
+
+
+
+
+
+
+kre/randy                                                       [Page 2]
+\f
+Internet Draft      draft-ietf-dnsind-clarify-01.txt            May 1996
+
+
+3.2. Port Number Selection
+
+   Replies to all queries must be directed to the port from which they
+   were sent.  With queries received via TCP this is an inherent part of
+   the transport protocol, for queries received by UDP the server must
+   take note of the source port and use that as the destination port in
+   the response.  Replies should always be sent from the port to which
+   they were directed.  Except in extraordinary circumstances, this will
+   be the well known port assigned for DNS queries [RFC1700].
+
+4. Resource Record Sets
+
+   Each DNS Resource Record (RR) each has a label, class, type, and
+   data.  While it is meaningless for two records to ever have label,
+   class, type and data all equal (servers should suppress such
+   duplicates if encountered), it is possible for many record types to
+   exist with the same label class and type, but with different data.
+   Such a group of records is hereby defined to be a Resource Record Set
+   (RRSet).
+
+4.1. Sending RRs from an RRSet
+
+   A query for a specific (or non-specific) label, class, and type, will
+   always return all records in the associated RRSet - whether that be
+   one or more RRs, or the response shall be marked as "truncated" if
+   the entire RRSet will not fit in the response.
+
+4.2. TTLs of RRs in an RRSet
+
+   Resource Records also have a time to live (TTL).  It is possible for
+   the RRs in an RRSet to have different TTLs, however no uses for this
+   have been found which cannot be better accomplished in other ways.
+   This can, however, cause partial replies (not marked "truncated")
+   from a caching server, where the TTLs for some but not all of the RRs
+   in the RRSet have expired.
+
+   Consequently the use of differing TTLs in an RRSet is hereby
+   deprecated, the TTLs of all RRs in an RRSet must be the same.
+
+   Should a client receive a response containing RRs from an RRSet with
+   differing TTLs, it should treat the RRs for all purposes as if all
+   TTLs in the RRSet had been set to the value of the lowest TTL in the
+   RRSet.
+
+
+
+
+
+
+
+
+kre/randy                                                       [Page 3]
+\f
+Internet Draft      draft-ietf-dnsind-clarify-01.txt            May 1996
+
+
+4.3. Receiving RRSets
+
+   Servers never merge RRs from a response with RRs in their cache to
+   form an RRSet.  If a response contains data which would form an RRSet
+   with data in a server's cache the server must either ignore the RRs
+   in the response, or use those to replace the existing RRSet in the
+   cache, as appropriate.  Consequently the issue of TTLs varying
+   between the cache and a response does not cause concern, one will be
+   ignored.
+
+4.3.1. Ranking data
+
+   When considering whether to accept an RRSet in a reply, or retain an
+   RRSet already in its cache instead, a server should consider the
+   relative likely trustworthiness of the various data.  That is, an
+   authoritative answer from a reply should replace cached data that had
+   been obtained from additional information in an earlier reply, but
+   additional information from a reply will be ignored if the cache
+   contains data from an authoritative answer or a zone file.
+
+   The accuracy of data available is assumed from its source.
+   Trustworthiness shall be, in order from most to least:
+
+    + Data from a primary zone file, other than glue data,
+    + Data from a zone transfer, other than glue,
+    + That from the answer section of an authoritative reply,
+    + Glue from a primary zone, or glue from a zone transfer,
+    + Data from the authority section of an authoritative answer,
+    + Data from the answer section of a non-authoritative answer,
+    + Additional information from an authoritative answer,
+    + Data from the authority section of a non-authoritative answer,
+    + Additional information from non-authoritative answers.
+
+   Where authenticated data has been received it shall be considered
+   more trustworthy than unauthenticated data of the same type.
+
+   "Glue" above includes any record in a zone file that is not properly
+   part of that zone, including nameserver records of delegated sub-
+   zones (NS records), address records that accompany those NS records
+   (A, AAAA, etc), and any other stray data that might appear.
+
+4.4. Sending RRSets (reprise)
+
+   A Resource Record Set should only be included once in any DNS reply.
+   It may occur in any of the Answer, Authority, or Additional
+   Information sections, as required, however should not be repeated in
+   the same, or any other, section, except where explicitly required by
+   a specification.  For example, an AXFR response requires the SOA
+
+
+
+kre/randy                                                       [Page 4]
+\f
+Internet Draft      draft-ietf-dnsind-clarify-01.txt            May 1996
+
+
+   record (always an RRSet containing a single RR) be both the first and
+   last record of the reply.  Where duplicates are required this way,
+   the TTL transmitted in each case must be the same.
+
+5. Security Considerations
+
+   This document does not consider security.
+
+   In particular, nothing in section 3 is any way related to, or useful
+   for, any security related purposes.
+
+   Section 4.3.1 is also not related to security.  Security of DNS data
+   will be obtained by the Secure DNS [DNSSEC], which is orthogonal to
+   this memo.
+
+   It is not believed that anything in this document adds to any
+   security issues that may exist with the DNS, nor does it do anything
+   to lessen them.
+
+6. References
+
+   [RFC1034]   Domain Names - Concepts and Facilities,  (STD 13)
+               P. Mockapetris, ISI, November 1987.
+
+   [RFC1035]   Domain Names - Implementation and Specification  (STD 13)
+               P. Mockapetris, ISI, November 1987
+
+   [RFC1123]   Requirements for Internet hosts - application and support,
+               (STD 3) R. Braden, January 1989
+
+   [RFC1700]   Assigned Numbers (STD 2)
+               J. Reynolds, J. Postel, October 1994.
+
+   [DNSSEC]    Domain Name System Security Extensions,
+               D. E. Eastlake, 3rd, C. W. Kaufman,
+               Work in Progress (Internet Draft), January 1996.
+
+7. Acknowledgements
+
+   This memo arose from discussions in the DNSIND working group of the
+   IETF in 1995 and 1996, the members of that working group are largely
+   responsible for the ideas captured herein.
+
+
+
+
+
+
+
+
+
+kre/randy                                                       [Page 5]
+\f
+Internet Draft      draft-ietf-dnsind-clarify-01.txt            May 1996
+
+
+8. Authors' addresses
+
+   Robert Elz
+   Computer Science
+   University of Melbourne
+   Parkville, Victoria, 3052
+   Australia.
+
+   EMail: kre@munnari.OZ.AU
+
+
+   Randy Bush
+   RGnet, Inc.
+   9501 SW Westhaven
+   Portland, Oregon, 97225
+   United States.
+
+   EMail: randy@psg.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+kre/randy                                                       [Page 6]
diff --git a/reports/rfc/draft-ietf-dnsind-serial-03.txt b/reports/rfc/draft-ietf-dnsind-serial-03.txt
new file mode 100644 (file)
index 0000000..7f2e652
--- /dev/null
@@ -0,0 +1,445 @@
+
+Network Working Group                                         Robert Elz
+Internet Draft                                   University of Melbourne
+Expiration Date: October 1996
+                                                              Randy Bush
+                                                             RGnet, Inc.
+
+                                                              April 1996
+
+
+                        Serial Number Arithmetic
+
+                    draft-ietf-dnsind-serial-03.txt
+
+
+1. Status of this Memo
+
+   This document is an Internet-Draft.  Internet-Drafts are working
+   documents of the Internet Engineering Task Force (IETF), its areas,
+   and its working groups.  Note that other groups may also distribute
+   working documents as Internet-Drafts.
+
+   Internet-Drafts are draft documents valid for a maximum of six months
+   and may be updated, replaced, or obsoleted by other documents at any
+   time.  It is inappropriate to use Internet-Drafts as reference
+   material or to cite them other than as "work in progress."
+
+   To learn the current status of any Internet-Draft, please check the
+   "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
+   Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
+   munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
+   ftp.isi.edu (US West Coast).
+
+2. Abstract
+
+   This draft defines serial number arithmetic, as used in the Domain
+   Name System.  The DNS has long relied upon serial number arithmetic,
+   a concept which has never really been defined, certainly not in an
+   IETF document, though which has been widely understood.  This draft
+   supplies the missing definition.  It is intended to update RFC1034
+   and RFC1035.
+
+
+
+
+
+
+
+
+
+
+
+kre/randy                                                       [Page 1]
+\f
+Internet Draft      draft-ietf-dnsind-serial-03.txt           April 1996
+
+
+3. Introduction
+
+   The serial number field of the SOA resource record is defined in
+   RFC1035 as
+
+   SERIAL    The unsigned 32 bit version number of the original copy of
+             the zone.  Zone transfers preserve this value.  This value
+             wraps and should be compared using sequence space
+             arithmetic.
+
+   RFC1034 uses the same terminology when defining secondary server zone
+   consistency procedures.
+
+   Unfortunately the term "sequence space arithmetic" is not defined in
+   either RFC1034 or RFC1035, nor do any of their references provide
+   further information.
+
+   This phrase seems to have been intending to specify arithmetic as
+   used in TCP sequence numbers [RFC793], and defined in [IEN-74].
+
+   Unfortunately, the arithmetic defined in [IEN-74] is not adequate for
+   the purposes of the DNS, as no general comparison operator is
+   defined.
+
+   To avoid further problems with this simple field, this document
+   defines the field and the operations available upon it.  This
+   definition is intended merely to clarify the intent of RFC1034 and
+   RFC1035, and is believed to generally agree with current
+   implementations.  However, older, superseded, implementations are
+   known to have treated the serial number as a simple unsigned integer,
+   with no attempt to implement any kind of "sequence space arithmetic",
+   however that may have been interpreted, and further, ignoring the
+   requirement that the value wraps.  Nothing can be done with these
+   implementations, beyond extermination.
+
+4. Serial Number Arithmetic
+
+   Serial numbers are formed from non-negative integers from a finite
+   subset of the range of all integer values.  The lowest integer in
+   every subset used for this purpose is zero, the maximum is always one
+   less than a power of two.
+
+   When considered as serial numbers however no value has any particular
+   significance, there is no minimum or maximum serial number, every
+   value has a successor and predecessor.
+
+   To define a serial number to be used in this way, the size of the
+   serial number space must be given.  This value, called "SERIAL_BITS",
+
+
+
+kre/randy                                                       [Page 2]
+\f
+Internet Draft      draft-ietf-dnsind-serial-03.txt           April 1996
+
+
+   gives the power of two which results in one larger than the largest
+   integer corresponding to a serial number value.  This also specifies
+   the number of bits required to hold every possible value of a serial
+   number of the defined type.  The operations permitted upon serial
+   numbers are defined in the following section.
+
+5. Operations upon the serial number
+
+   Only two operations are defined upon serial numbers, addition of a
+   positive integer of limited range, and comparison with another serial
+   number.
+
+5.1. Addition
+
+   Serial numbers may be incremented by the addition of a positive
+   integer n, where n is taken from the range of integers
+   [0 .. (2^(SERIAL_BITS - 1) - 1)].  For a sequence number s, the
+   result of such an addition, s', is defined as
+
+                   s' = (s + n) modulo (2 ^ SERIAL_BITS)
+
+   where the addition and modulus operations here act upon values that
+   are non-negative values of unbounded size in the usual ways of
+   integer arithmetic.
+
+   Addition of a value outside the range
+   [0 .. (2^(SERIAL_BITS - 1) - 1)] is undefined.
+
+5.2. Comparison
+
+   Any two serial numbers, s1 and s2, may be compared.  The definition
+   of the result of this comparison is as follows.
+
+   For the purposes of this definition, consider two integers, i1 and
+   i2, from the unbounded set of non-negative integers, such that i1 and
+   s1 have the same numeric value, as do i2 and s2.  Arithmetic and
+   comparisons applied to i1 and i2 use ordinary unbounded integer
+   arithmetic.
+
+   Then, s1 is said to be equal to s2 if and only if i1 is equal to i2,
+   in all other cases, s1 is not equal to s2.
+
+   s1 is said to be less than s2 if, and only if, s1 is not equal to s2,
+   and
+
+        (i1 < i2 and i2 - i1 < 2^(SERIAL_BITS - 1)) or
+        (i1 > i2 and i1 - i2 > 2^(SERIAL_BITS - 1))
+
+
+
+
+kre/randy                                                       [Page 3]
+\f
+Internet Draft      draft-ietf-dnsind-serial-03.txt           April 1996
+
+
+   s1 is said to be greater than s2 if, and only if, s1 is not equal to
+   s2, and
+
+        (i1 < i2 and i2 - i1 > 2^(SERIAL_BITS - 1)) or
+        (i1 > i2 and i1 - i2 < 2^(SERIAL_BITS - 1))
+
+   Note that there are some pairs of values s1 and s2 for which s1 is
+   not equal to s2, but for which s1 is neither greater than, nor less
+   than, s2.  An attempt to use these ordering operators on such pairs
+   of values produces an undefined result.
+
+   The reason for this is that those pairs of values are such that any
+   simple definition that were to define s1 to be less than s2 where
+   (s1, s2) is such a pair, would also usually cause s2 to be less than
+   s1, when the pair is (s2, s1).  This would mean that the particular
+   order selected for a test could cause the result to differ, leading
+   to unpredictable implementations.
+
+   While it would be possible to define the test in such a way that the
+   inequality would not have this surprising property, while being
+   defined for all pairs of values, such a definition would be
+   unnecessarily burdensome to implement, and difficult to understand,
+   and would still allow cases where
+
+        s1 < s2 and (s1 + 1) > (s2 + 1)
+
+   which is just as non-intuitive.
+
+   Thus the problem case is left undefined, implementations are free to
+   return either result, or to flag an error, and users must take care
+   not to depend on any particular outcome.  Usually this will mean
+   avoiding allowing those particular pairs of numbers to co-exist.
+
+   The relationships greater than or equal to, and less than or equal
+   to, follow in the natural way from the above definitions.
+
+6. Corollaries
+
+   These definitions give rise to some results of note
+
+6.1. Corollary 1
+
+   For any sequence number s and any integer n such that addition of n
+   to s is well defined, (s + n) >= s.  Further (s + n) == s only when
+   n == 0, in all other defined cases, (s + n) > s.
+
+
+
+
+
+
+kre/randy                                                       [Page 4]
+\f
+Internet Draft      draft-ietf-dnsind-serial-03.txt           April 1996
+
+
+6.2. Corollary 2
+
+   If s' is the result of adding the integer n to the sequence number s,
+   and m is another integer from the range defined as able to be added
+   to a sequence number, and s" is the result of adding m to s', then it
+   is undefined whether s" is greater than, or less than s, though it is
+   known that s" is not equal to s.
+
+6.3. Corollary 3
+
+   If s" from the previous corollary is further incremented, then there
+   is no longer any known relationship between the result and s.
+
+6.4. Corollary 4
+
+   If in corollary 2 the value (n + m) is such that addition of the sum
+   to sequence number s would produce a defined result, then corollary 1
+   applies, and s" is known to be greater than s.
+
+7. Examples
+
+7.1. A trivial example
+
+   The simplest meaningful serial number space has SERIAL_BITS == 2.  In
+   this space, the integers that make up the serial number space are 0,
+   1, 2, and 3.  That is, 3 == 2^SERIAL_BITS - 1.
+
+   In this space, the largest integer that it is meaningful to add to a
+   sequence number is 2^(SERIAL_BITS - 1) - 1, or 1.
+
+   Then, as defined 0+1 == 1, 1+1 == 2, 2+1 == 3, and 3+1 == 0.
+   Further, 1 > 0, 2 > 1, 3 > 2, and 0 > 3.  It is undefined whether
+   2 > 0 or 0 > 2, and whether 1 > 3 or 3 > 1.
+
+7.2. A slightly larger example
+
+   Consider the case where SERIAL_BITS == 8.  In this space the integers
+   that make up the serial number space are 0, 1, 2, ... 254, 255.
+   255 == 2^SERIAL_BITS - 1.
+
+   In this space, the largest integer that it is meaningful to add to a
+   sequence number is 2^(SERIAL_BITS - 1) - 1, or 127.
+
+   Addition is as expected in this space, for example: 255+1 == 0,
+   100+100 == 200, and 200+100 == 44.
+
+   Comparison is more interesting, 1 > 0, 44 > 0, 100 > 0, 100 > 44,
+   200 > 100, 255 > 200, 0 > 255, 100 > 255, 0 > 200, and 44 > 200.
+
+
+
+kre/randy                                                       [Page 5]
+\f
+Internet Draft      draft-ietf-dnsind-serial-03.txt           April 1996
+
+
+   Note that 100+100 > 100, but that (100+100)+100 < 100.  Incrementing
+   a serial number can cause it to become "smaller".  Of course,
+   incrementing by a smaller number will allow many more increments to
+   be made before this occurs.  However this is always something to be
+   aware of, it can cause surprising errors, or be useful as it is the
+   only defined way to actually cause a serial number to decrease.
+
+   The pairs of values 0 and 128, 1 and 129, 2 and 130, etc, to 127 and
+   255 are not equal, but in each pair, neither number is defined as
+   being greater than, or less than, the other.
+
+   It could be defined (arbitrarily) that 128 > 0, 129 > 1,
+   130 > 2, ..., 255 > 127, by changing the comparison operator
+   definitions, as mentioned above.  However note that that would cause
+   255 > 127, while (255 + 1) < (127 + 1), as 0 < 128.  Such a
+   definition, apart from being arbitrary, would also be more costly to
+   implement.
+
+8. Citation
+
+   As this defined arithmetic may be useful for purposes other than for
+   the DNS serial number, it may be referenced as Serial Number
+   Arithmetic from RFCXXXX.  Any such reference shall be taken as
+   implying that the rules of sections 4 to 7 of this document apply to
+   the stated values.
+
+9. The DNS SOA serial number
+
+   The serial number in the DNS SOA Resource Record is a Serial Number
+   as defined above, with SERIAL_BITS being 32.  That is, the serial
+   number is a non negative integer with values taken from the range
+   [0 .. 4294967295].  That is, a 32 bit unsigned integer.
+
+   The maximum defined increment is 2147483647 (2^31 - 1).
+
+   Care should be taken that the serial number not be incremented, in
+   one or more steps, by more than this maximum within the period given
+   by the value of SOA.expire.  Doing so may leave some secondary
+   servers with out of date copies of the zone, but with a serial number
+   "greater" than that of the primary server.  Of course, special
+   circumstances may require this rule be set aside, for example, when
+   the serial number needs to be set lower for some reason.  If this
+   must be done, then take special care to verify that ALL servers have
+   correctly succeeded in following the primary server's serial number
+   changes, at each step.
+
+   Note that each, and every, increment to the serial number must be
+   treated as the start of a new sequence of increments for this
+
+
+
+kre/randy                                                       [Page 6]
+\f
+Internet Draft      draft-ietf-dnsind-serial-03.txt           April 1996
+
+
+   purpose, as well as being the continuation of all previous sequences
+   started within the period specified by SOA.expire.
+
+   Caution should also be exercised before causing the serial number to
+   be set to the value zero.  While this value is not in any way special
+   in serial number arithmetic, or to the DNS SOA serial number, many
+   DNS implementations have incorrectly treated zero as a special case,
+   with special properties, and unusual behaviour may be expected if
+   zero is used as a DNS SOA serial number.
+
+10. Document Updates
+
+   RFC1034 and RFC1035 are to be treated as if the references to
+   "sequence space arithmetic" therein are replaced by references to
+   serial number arithmetic, as defined in this document.
+
+11. Security Considerations
+
+   This document does not consider security.
+
+   It is not believed that anything in this document adds to any
+   security issues that may exist with the DNS, nor does it do anything
+   to lessen them.
+
+12. References
+
+[RFC1034]   Domain Names - Concepts and Facilities,
+            P. Mockapetris, ISI, November 1987.
+
+[RFC1035]   Domain Names - Implementation and Specification
+            P. Mockapetris, ISI, November 1987
+
+[RFC793]    Transmission Control protocol
+            Information Sciences Institute, USC, September 1981
+
+[IEN-74]    Sequence Number Arithmetic
+            William W. Plummer, BB&N Inc, September 1978
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+kre/randy                                                       [Page 7]
+\f
+Internet Draft      draft-ietf-dnsind-serial-03.txt           April 1996
+
+
+13. Acknowledgements
+
+   Thanks to Rob Austein for suggesting clarification of the undefined
+   comparison operators, and to Michael Patton for attempting to locate
+   another reference for this procedure.  Thanks also to members of the
+   IETF DNSIND working group of 1995-6, in particular, Paul Mockapetris.
+
+14. Authors' Addresses
+
+   Robert Elz
+   Computer Science
+   University of Melbourne
+   Parkville, Vic,  3052
+   Australia.
+
+   Randy Bush
+   RGnet, Inc.
+   9501 SW Westhaven
+   Portland, Oregon,  97225
+   United States.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+kre/randy                                                       [Page 8]
diff --git a/reports/rfc/draft-ietf-drums-smtpupd-02.txt b/reports/rfc/draft-ietf-drums-smtpupd-02.txt
new file mode 100644 (file)
index 0000000..7ef9df5
--- /dev/null
@@ -0,0 +1,3403 @@
+
+INTERNET-DRAFT                                     John Klensin, Editor
+Expires in six months                                               MCI
+                                                           May 21, 1996
+
+                  Simple Mail Transfer Protocol 
+
+                 draft-ietf-drums-smtpupd-02.txt
+
+                     Status of this Memo
+
+This document is an Internet-Draft.  Internet-Drafts are working
+documents of the Internet Engineering Task Force (IETF), its areas, and
+its working groups. Note that other groups may also distribute working
+documents as Internet-Drafts.
+
+Internet-Drafts are draft documents valid for a maximum of six months.
+Internet-Drafts may be updated, replaced, or obsoleted by other
+documents at any time.  It is not appropriate to use Internet-Drafts as
+reference material or to cite them other than as a "working draft" or
+"work in progress".
+
+To learn the current status of any Internet-Draft, please check the
+1id-abstracts.txt listing contained in the Internet-Drafts Shadow
+Directories on ds.internic.net (US East Coast), nic.nordu.net (Europe),
+ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
+
+If consensus is reached on this document, it will be forwarded to the
+IESG with the recommendation that it be processed as a Proposed
+Standard for mail transport.
+
+[[Sections marked with doubled brackets (e.g., "<<") are explicit
+placeholders or known major loose ends.  The marking ## is a note in
+the draft to recheck a section number and should be ignored.]]
+
+
+
+                           TABLE OF CONTENTS
+   0.  ABSTRACT
+
+   1.  INTRODUCTION
+
+   2.  THE SMTP MODEL
+
+      2.1 Basic structure
+      2.2 The extension model
+      2.3 Other terminology
+      2.4 Syntax Principles
+
+
+   3.  THE SMTP PROCEDURES: AN OVERVIEW
+      
+      3.1  Session initiation
+      3.2  Client initiation
+      3.3  Mail transactions
+      3.4  Forwarding for Address Correction or Updating
+      3.5  Verifying and Expanding
+      3.6  Domains 
+      3.7  Relaying
+      3.8  Terminating sessions and connections
+
+   4.  THE SMTP SPECIFICATIONS
+
+      4.1.  SMTP Commands
+      4.1.1.  Command Semantics and Syntax
+      4.1.2.  Lower-level Syntax 
+      4.1.3   Order of commands
+      4.1.4   Private-use commands
+      4.2.  SMTP Replies
+      4.2.1.  Reply Codes by Function Group
+      4.2.2.  Reply Codes in Numeric Order 
+      4.2.3.  Reply code 502
+      4.2.4  Reply codes after DATA and the subsequent CRLF.CRLF.
+      4.3.  Sequencing of Commands and Replies
+      4.4   Trace information
+      4.5.  State Diagrams
+      4.6.  Details
+      4.6.1.  Minimum Implementation
+      4.6.2.  Transparency
+      4.6.3.  Sizes and Timeouts
+      4.6.4   Queuing Strategies
+
+   5. Address resolution and mail handling
+
+   6. Problem detection and handling
+      6.1 Replies by email
+      6.2 Loop detection
+
+   7. Security Considerations
+
+   8. References
+
+   9. Editor's addresses
+
+   10. Acknowledgements
+
+   APPENDIX A:  TCP
+   APPENDIX B:  Generating SMTP commands from RFC 822 headers
+   APPENDIX E:  Theory of Reply Codes
+   APPENDIX F:  Scenarios
+   APPENDIX G:  Other gateway issues.
+   APPENDIX H:  Glossary
+   APPENDIX I:  Deprecated features of RFC 821
+   APPENDIX X:  Change summary and Loose ends (temporary)
+
+\f
+
+
+0.  Abstract
+
+This document is a self-contained specification of the basic protocol
+for the Internet electronic mail transport, consolodating and
+updating 
+
+ * the original SMTP specification of RFC 821 [RFC-821],
+ * Domain name system requirements and implications for mail
+   transport from RFC 1035 [RFC-DNS] and RFC 974 [RFC974],
+ * the clarifications and applicability statements in 
+     RFC 1123 [RFC-1123], and
+ * material drawn from the SMTP Extension mechanisms [SMTPEXT].
+
+It is intended to replace RFC 821, RFC 974, and the mail transport
+materials of RFC 1123.  However, RFC 821 specifies some features that
+are not in significant use in the Internet of the mid-1990s and, in
+appendices, some additional transport models.  Those sections are
+omitted in this document in the interest of clarity and brevity;
+readers needing them should refer to RFC 821. 
+
+It also includes some additional material from RFC 1123 that appeared
+to need amplification.  These have been identified in multiple ways,
+mostly by tracking flaming on the header-people list [HEADER-PEOPLE]
+and problems of unusual readings or interpretations that have turned
+up as the SMTP extensions have been deployed.  It is important to
+note that everything here is in response to some identified confusion
+or bad behavior, not just paranoia. 
+
+Where this specification moves beyond consolodation and actually
+differs from earlier documents, it supersedes them technically as
+well as textually.
+
+Although SMTP was designed as a mail transport and delivery protocol,
+this specification also contains information that is important to its
+use as a "mail posting" protocol, as recommended for POP [RFC-POP2,
+RFC-POP3] and IMAP [RFC-IMAP4].
+
+Except when the historical terminology is necessary for clarity, this
+document uses the current "client" and "server" terminology to
+identify the sending and receiving SMTP processes, respectively. 
+
+A companion document discusses mail bodies and formats: RFC 822,
+MIME, and their relationship. 
+
+1.  INTRODUCTION
+
+The objective of the Simple Mail Transfer Protocol (SMTP) is to
+transfer mail reliably and efficiently.
+
+SMTP is independent of the particular transmission subsystem and
+requires only a reliable ordered data stream channel.  While this
+document specifically discusses transport over TCP, other
+transports are possible.  Appendices to RFC 821 describe some of
+them. A Glossary provides the definitions of terms as used in this
+document.
+
+An important feature of SMTP is its capability to transport mail
+across transport service environments, usually referred to as "mail
+gatewaying".  A transport service environment might consist of the
+mutually-TCP-accessible hosts on the public internet, a
+firewall-isolated private TCP/IP LAN, or a LAN or WAN environment
+utilizing an entirely different transport-level protocol.  It is
+important to realize that transport systems are not one-to-one with
+usual definitions of "networks".  A process can communicate directly
+with another process, and mail communicated, through any mutually
+known transport layer.  Conversely, mail can be relayed (actually
+gatewayed) between hosts on different transport systems by a host on
+both transport systems.  The Mail eXchanger mechanisms of the domain
+name system [RFC-DNS, RFC974] usually permit relaying and gatewaying
+to occur invisibly to the user.
+
+
+2.  THE SMTP MODEL
+
+2.1 Basic structure
+
+The SMTP design is based on the following model of communication: as
+the result of a user mail request (or transfer from a mail user agent
+(see section ##2.3)), the SMTP client establishes a two-way
+transmission channel to an SMTP server.  Fully-capable client SMTPs
+determine the host address supporting the server SMTP function by
+resolving the domain name in the user request to it into either an
+intermediate mail exchanger host or a final target host.  In other
+cases, common with clients associated with implementations of the POP
+[RFC-POP2, RFC-POP3] or IMAP [RFC-IMAP4] protocols, or when the
+client is inside an isolated transport service enviroment, the SMTP
+client may send all of its traffic to a single SMTP server which, in
+turn, relays the mail to final (or other intermediate) destinations.
+Those destinations in turn support all of the queuing, retrying, and
+alternate address functions discussed in this specification. The SMTP
+server may be either the ultimate destination or an intermediate
+(i.e., may assume the role of an SMTP client after receiving the
+message).  SMTP commands are generated by the SMTP client and sent to
+the SMTP server.  SMTP replies are sent from the SMTP server to the
+SMTP client in response to the commands. 
+
+Once the transmission channel is established and initial handshaking
+completed, the SMTP-client normally initiates a mail transaction.
+Such a transaction consists of a series of commands to specify the
+originator and destination of the mail and transmission of the
+message body (including any headers or other structure) itself.  When
+the same message is sent to multiple recipients the SMTP encourages
+the transmission of only one copy of the data for all the recipients
+at the same destination (or intermediate relay) host.  
+
+The server responds to each command with a reply; replies may
+indicate that the command was accepted, that additional commands are
+expected, or that a temporary or permanent error condition exists.
+Commands that specify the sender or recipients may include
+server-permitted SMTP service extension requests as discussed in
+section ##2.2.  The dialog is purposely lock-step, one-at-a-time
+although this can be modified by mutually-agreed extension requests.
+
+Once a given mail message has been transmitted, the client may either
+request that the connection be shut down or may initiate other mail
+transactions. 
+
+     -------------------------------------------------------------
+
+   
+               +----------+                +----------+
+   +------+    |          |                |          |
+   | User |<-->|          |      SMTP      |          |
+   +------+    |  Sender- |Commands/Replies| Receiver-|
+   +------+    |   SMTP   |<-------------->|    SMTP  |    +------+
+   | File |<-->|          |    and Mail    |          |<-->| File |
+   |System|    |          |                |          |    |System|
+   +------+    +----------+                +----------+    +------+
+   
+
+                SMTP client                SMTP server
+
+                           Model for SMTP Use
+
+                                Figure 1
+
+     -------------------------------------------------------------
+
+Less commonly, the SMTP protocol and connection may be used by the
+client to request ancillary services of the server such as
+verification of addresses or exhibiting the contents of mailing
+lists.
+
+As suggested above, the SMTP provides mechanisms for the transmission
+of mail.  This transmission occurs directly from the sending user's
+host to the receiving user's host when the two hosts are connected to
+the same transport service.  When they are not connected to the same
+transport service, transmission occurs via one or more relay
+SMTP-servers.  An intermediate host that will act as either an SMTP
+relay or as a gateway into some other transmission environment may
+also be selected through the use of the domain name service (DNS)
+Mail eXchanger mechanism.
+
+To be able to provide the relay capability the server SMTP is
+supplied with the name of the ultimate destination host as well as
+the destination mailbox name.  Usually, intermediate hosts are
+determined via the DNS MX record, not by explicit "source" routing
+(see Appendix I).
+
+
+
+2.2 The Extension Model
+
+2.2.1 Background
+
+In an effort that started in 1990, approximately a decade after RFC
+821 was completed, the protocol was modified with a "service
+extensions" model that permits the client and server to agree to
+utilize shared functionality that goes beyond the original basic SMTP
+requirements.  Contemporary SMTP implementations MUST support the
+basic extension mechanisms (see below for details), i.e., servers
+MUST support the EHLO command even if they do not implement any
+specific extensions and clients MUST preferentially utilize EHLO
+rather than HELO.  However, for compatibility with older
+implementations (which are expected to persist for some years), SMTP
+clients and servers MUST support the original HELO mechanisms as a
+fallback.
+
+Although SMTP is widely and robustly deployed, some parts of the
+Internet community might wish to extend the SMTP service.  The SMTP
+extension mechanism defines a means whereby an extended SMTP client
+and server may recognize each other as such and the server can inform
+the client as to the service extensions that it supports.
+
+It must be emphasized that any extension to the SMTP service should
+not be considered lightly. SMTP's strength comes primarily from its
+simplicity.  Experience with many protocols has shown that:
+
+     protocols with few options tend towards ubiquity, whilst
+     protocols with many options tend towards obscurity.
+
+This means that each and every extension, regardless of its benefits,
+must be carefully scrutinized with respect to its implementation,
+deployment, and interoperability costs. In many cases, the cost of
+extending the SMTP service will likely outweigh the benefit.
+
+Given this environment, the extension framework consists of:
+
+ (1)   The SMTP command EHLO, superseding the earlier HELO,
+
+ (2)   a registry of SMTP service extensions, and
+
+ (3)   additional parameters to the SMTP MAIL FROM and RCPT TO
+       commands.
+
+
+2.2.2 Definition and Registration of Extensions
+
+The IANA maintains a registry of SMTP service extensions.
+Associated with each such extension is a corresponding EHLO
+keyword value. Each service extension registered with the IANA
+must be defined in an RFC. Such RFCs must either be on the
+standards-track or must define an IESG-approved experimental
+protocol.  The definition must include:
+
+ (1)   the textual name of the SMTP service extension;
+
+ (2)   the EHLO keyword value associated with the extension;
+
+ (3)   the syntax and possible values of parameters associated
+       with the EHLO keyword value;
+
+ (4)   any additional SMTP verbs associated with the extension
+       (additional verbs will usually be, but are not required
+       to be, the same as the EHLO keyword value);
+
+ (5)   any new parameters the extension associates with the
+       MAIL FROM or RCPT TO verbs;
+
+ (6)   how support for the extension affects the behavior of a
+       server and client SMTP; and,
+
+ (7)   the increment by which the extension is increasing the
+       maximum length of the commands MAIL FROM, RCPT TO, or
+       both, over that specified in RFC 821.
+
+In addition, any EHLO keyword value that starts with an upper
+or lower case "X" refers to a local SMTP service extension,
+which is used through bilateral, rather than standardized,
+agreement. Keywords beginning with "X" may not be used in a
+registered service extension.
+
+Any keyword values presented in the EHLO response that do not begin
+with "X" must correspond to a standard, standards-track, or
+IESG-approved experimental SMTP service extension registered with
+IANA.  A conforming server must not offer non-"X"-prefixed keyword
+values that are not described in a registered extension.
+
+Additional verbs are bound by the same rules as EHLO keywords;
+specifically, verbs begining with "X" are local extensions
+that may not be registered or standardized and verbs not
+beginning with "X" must always be registered.
+
+
+2.3 Terminology
+
+A glossary of terms appears at the end of this document.  However,
+the following terms and concepts are used in special ways here, or
+represent differences in terminology between RFC 821 and this
+document, and should be understood before reading further.
+
+2.3.1 Mail objects
+
+SMTP relays a mail object containing an envelope and a content.
+
+ (1)   The SMTP envelope is straightforward, and is sent as a
+       series of SMTP protocol units (described in section ##3): it
+       consists of an originator address (to which error reports
+       should be directed); a delivery mode (e.g., deliver to
+       recipient mailboxes); and, one or more recipient addresses.
+
+ (2)   The SMTP content is sent in the SMTP DATA protocol unit
+       and has two parts: the headers and the body. The
+       headers form a collection of field/value pairs
+       structured according to RFC 822 [RFC822], whilst the body,
+       if structured, is defined according to MIME [3]. The
+       content is textual in nature, expressed using the US
+       ASCII repertoire (ANSI X3.4-1986). Although extensions
+       (such as MIME) may relax this restriction for the
+       content body, the content headers are always encoded
+       using the US ASCII repertoire. The algorithm defined in
+       [4] is used to represent header values outside the US
+       ASCII repertoire, whilst still encoding them using the
+       US ASCII repertoire.
+
+2.3.2. Sender and receivers
+
+In RFC 821, the two hosts participating in an SMTP transaction were
+described as the "SMTP-sender" and "SMTP-receiver".  This document
+has been changed to reflect current industry terminology and hence
+refers to them as the "SMTP client" (or sometimes just "the client")
+and "SMTP server" (or just "the server") respectively.  Since a given
+host may act both as server and client in a relay situation,
+"receiver" and "sender" terminology is still used where needed for
+clarity. 
+
+2.3.3. Mail agents
+
+Other mail system terminology became common after RFC 821 was
+published and, where convenient, is used in this specification.  In
+particular, SMTP servers and clients provide a mail transport service
+and therefore act as Mail Transfer Agents (MTAs).  Mail User Agents
+(MUAs or UAs) are normally thought of as the sources and targets of
+mail.  At the source, an MUA might collect mail to be transmitted
+from a user and hand it off to an MTA; the final ("delivery") MTA
+would be thought of as handing the mail off to an MUA (or at least
+transferring responsibility to it).  However, while these terms are
+used with at least the appearance of great precision in other
+environments, the implied boundaries between MUAs and MTAs often do
+not accurately match common, and conforming, practices with Internet
+mail.  Hence, the reader should be cautious about inferring the strong
+relationships and responsibilities that might be implied if these
+terms were used elsewhere.
+
+2.3.4 host
+
+<<placeholder>>
+
+2.3.5 domain
+
+<<placeholder>>
+
+2.3.6 buffer
+
+2.3.7 state table  
+
+<<placeholder -- see "outstanding issues" list>>
+
+
+2.4 Syntax Principles
+
+
+2.4.1 General syntax and transaction model
+
+The mail commands and replies have a rigid syntax.  Replies also have
+a numeric code.  In the following, examples appear which use actual
+commands and replies.  The complete lists of commands and replies
+appears in Section ##4 on specifications.
+
+Commands and replies are not case sensitive.  That is, a command or
+reply word MAY be upper case, lower case, or any mixture of upper and
+lower case.  Note that this is not true of mailbox user names.  For
+some hosts the user name is case sensitive (this practice impedes
+interoperability and is discouraged), and SMTP implementations
+MUST take care to preserve the case of user names as they appear in
+mailbox arguments.  Domain names are not case sensitive.
+
+Commands and replies are composed of characters from the ASCII
+character set [1].  When the transport service provides an 8-bit byte
+(octet) transmission channel, each 7-bit character is transmitted
+right justified in an octet with the high order bit cleared to zero.
+More specifically, the unextended SMTP service provides seven bit
+transport only.  SMTP clients MUST NOT transmit messages with
+information in the high-order bit of octets.  If such messages are
+transmitted in violation of this rule, receiving SMTP servers MAY
+clear the high-order bit or reject the message as invalid.  Eight-bit
+transmission MAY be requested of the server by the client using
+extended SMTP facilities. 
+
+The metalinguistic notation used in this document corresponds to the
+"Augmented BNF" used in other Internet mail system documents. The
+reader who is not familiar with that syntax should consult [ABNF].
+
+
+2.4.2 Command and reply syntax
+
+The commands consist of a command code followed by an argument field.
+Command codes are four alphabetic characters.  Upper and lower case
+alphabetic characters are to be treated identically.  Thus, any of
+the following may represent the mail command:
+
+   MAIL    Mail    mail    MaIl    mAIl
+
+This also applies to any symbols representing parameter values, such
+as "TO" or "to" for the forward-path.  Command codes and the argument
+fields are separated by one or more spaces.  However, within the
+reverse-path and forward-path arguments case is important.  In
+particular, in some hosts the user "smith" is different from the user
+"Smith".
+
+The argument field consists of a variable length character string
+ending with the character sequence <CRLF>.  The receiver is to take
+no action until this sequence is received.
+
+The syntax for each command is shown with the discussion of that
+command.  Common elements and parameters are shown in section
+##4.1.2.
+
+
+
+3.  THE SMTP PROCEDURES: AN OVERVIEW
+
+This section presents the procedures used in SMTP in several parts.
+After a review of session initiation by the server and client, there
+is the basic mail procedure defined as a mail transaction.  Following
+this are descriptions of forwarding mail, verifying mailbox names and
+expanding mailing lists, and the opening and closing exchanges.  At
+the end of this section are comments on relaying, a note on mail
+domains, and a discussion of changing roles.  Throughout this section
+are examples of partial command and reply sequences, several complete
+scenarios are presented in Appendix F.
+
+
+3.1 Session initiation
+
+An SMTP session is initiated by the client opening a connection to
+the server and the server responding with an opening message.
+
+SMTP server implementations SHOULD include identification of their
+software and version information in the connection greeting reply
+after the 220 code. This practice permits much more efficient
+isolation and repair of any problems.  While some systems also
+identify their contact point for mail problems, this is not a
+substitute for maintaining the required Postmaster address (see
+[RFC822]).  Implementations MAY make provision for SMTP servers to be
+configured to disable the software and version announcement where it
+causes security concerns.
+
+3.2 Client initiation: EHLO
+
+The client then sends the EHLO command to the server, indicating its
+identity.  In addition to opening the session, use of EHLO indicates
+that the client is able to process service extensions and requests
+that the server provide a list of the extensions it supports.  Older
+SMTP systems, unable to support service extensions, MAY use HELO
+instead of EHLO but EHLO SHOULD be used by all current clients and
+accepted by all current systems.
+
+In the EHLO, or the older HELO, command the host sending the command
+identifies itself; the command may be interpreted as saying "Hello, I
+am <domain>" (and, in the case of EHLO, "and I support service
+extension requests").
+
+   -------------------------------------------------------------
+   |
+   |              Example of Connection Opening
+   |
+   |  R: 220 BBN-UNIX.ARPA Simple Mail Transfer Service Ready
+   |  S: HELO USC-ISIF.ARPA
+   |  R: 250 BBN-UNIX.ARPA
+   |
+   |                        Example 5
+   |
+   -------------------------------------------------------------
+
+   -------------------------------------------------------------
+   |
+   |              Example of Connection Closing
+   |
+   |  S: QUIT
+   |  R: 221 BBN-UNIX.ARPA Service closing transmission channel
+   |
+   |                        Example 6
+   |
+   -------------------------------------------------------------
+
+
+3.3.  Mail Transactions
+
+There are three steps to SMTP mail transactions.  The transaction
+is started with a MAIL command which gives the sender
+identification.  A series of one or more RCPT commands follows
+giving the receiver information.  Then a DATA command gives the
+mail data.  And finally, the end of mail data indicator confirms
+the transaction.
+
+   The first step in the procedure is the MAIL command.  The
+   <reverse-path> contains the source mailbox.
+
+      MAIL <SP> FROM:<reverse-path> [<SP> <mail-parameters>] <CRLF>
+
+   This command tells the SMTP-receiver that a new mail
+   transaction is starting and to reset all its state tables and
+   buffers, including any recipients or mail data.  It gives the
+   reverse-path which can be used to report errors (see section
+   ##4.2 for a discussion of error reporting).  If accepted, the
+   SMTP server returns a 250 OK reply. 
+
+   The <reverse-path> can contain more than just a mailbox.  The
+   <reverse-path> is a reverse source routing list of hosts and
+   source mailbox.  The first host in the <reverse-path> should be
+   the host sending this command.
+
+   The optional <mail-parameters> are associated with negotiated SMTP
+   service extensions (see section ##2.2).
+
+   The second step in the procedure is the RCPT command.
+
+      RCPT <SP> TO:<forward-path> [<SP> <rcpt-parameters>] <CRLF>
+
+   This command gives a forward-path (normally a mailbox and domain)
+   identifying one recipient.  If accepted, the SMTP server returns a
+   250 OK reply, and stores the forward-path.  If the recipient is
+   unknown the SMTP server returns a 550 Failure reply (other
+   circumstances and reply codes are possible).  This second step of
+   the procedure can be repeated any number of times.  The
+   <forward-path> can contain more than just a mailbox.  The
+   <forward-path> may be a source routing list of hosts and the
+   destination mailbox.  However, in general, the <forward-path>
+   should contain only a mailbox and domain name, relying on the
+   domain name system to supply routing information if required.
+   Servers MUST be prepared to encounter a list of source routes in
+   the forward path, but MAY ignore the routes or decline to support
+   the relaying they imply.  Similarly, servers MAY decline to accept
+   mail that is destined for other hosts or systems.  Of course, such
+   a restrictions would make a server useless as a relay for clients
+   that do not support full SMTP functionality, but such clients MUST
+   NOT assume that any SMTP server on the Internet can be used as
+   their mail processing site.   
+
+   Clients SHOULD NOT utilize explicit source routing except as
+   discussed in Appendix I.
+
+   The optional <mail-parameters> are associated with negotiated SMTP
+   service extensions (see section ##2.2).
+
+   The third step in the procedure is the DATA command.
+
+      DATA <CRLF>
+
+   If accepted, the SMTP server returns a 354 Intermediate reply
+   and considers all succeeding lines to be the message text.
+   When the end of text is received and stored the SMTP-receiver
+   sends a 250 OK reply.
+
+   Since the mail data is sent on the transmission channel, the end
+   of the mail data must be indicated so that the command and
+   reply dialog can be resumed.  SMTP indicates the end of the
+   mail data by sending a line containing only "." (period or
+   full stop).  A transparency procedure is used to prevent
+   this from interfering with the user's text (see Section ##4.5.2).
+
+   The end of mail data indicator also confirms the mail transaction
+   and tells the SMTP server to now process the stored recipients and
+   mail data.  If accepted, the SMTP server returns a 250 OK reply.
+   The DATA command should fail only if the mail transaction was
+   incomplete (for example, no recipients), or if resources are not
+   available.  However, some servers in practice do not perform
+   recipient verification until after the message text is received.
+   These servers SHOULD treat a failure for one or more recipients as
+   a "subsequent failure" and return a mail message as discussed in
+   section ##<<>>.   Using a "recipient not found" or equivalent
+   reply code after the data are accepted makes it difficult or
+   impossible for the client to determine which recipients failed.
+
+   Please note that, when RFC 822 format is being used, the mail data
+   includes the memo header items such as Date, Subject, To, Cc, From
+   [RFC822].  Server SMTP systems SHOULD NOT reject messages based on
+   perceived defects in the RFC 822 or MIME [MIME] message header or
+   message body.  In particular, they MUST NOT reject messages on the
+   basis of trying to match numbers of Resent- fields.  In
+   particular, messages MUST NOT be rejected because Resent-to
+   appears without Resent-from, Resent-date, or both. 
+
+
+The above procedure is an example of a mail transaction.  These
+commands must be used only in the order discussed above.
+Example 1 (below) illustrates the use of these commands in a mail
+transaction.
+
+
+      -------------------------------------------------------------
+      |
+      |              Example of the SMTP Procedure
+      |
+      |  This SMTP example shows mail sent by Smith at host Alpha.ARPA,
+      |  to Jones, Green, and Brown at host Beta.ARPA.  Here we assume
+      |  that host Alpha contacts host Beta directly.
+      |
+      |     S: MAIL FROM:<Smith@Alpha.ARPA>
+      |     R: 250 OK
+      |
+      |     S: RCPT TO:<Jones@Beta.ARPA>
+      |     R: 250 OK
+      |
+      |     S: RCPT TO:<Green@Beta.ARPA>
+      |     R: 550 No such user here
+      |
+      |     S: RCPT TO:<Brown@Beta.ARPA>
+      |     R: 250 OK
+      |
+      |     S: DATA
+      |     R: 354 Start mail input; end with <CRLF>.<CRLF>
+      |     S: Blah blah blah...
+      |     S: ...etc. etc. etc.
+      |     S: <CRLF>.<CRLF>
+      |     R: 250 OK
+      |
+      |  The mail has now been accepted for Jones and Brown.  Green did
+      |  not have a mailbox at domain Beta.ARPA.
+      |
+      |                        Example 1
+      |
+      -------------------------------------------------------------
+
+
+
+3.4.  Forwarding for Address Correction or Updating
+
+The "forwarding" mechanisms described in section 3.2 of RFC 821, and
+especially the 251 reply code from RCPT that indicates a corrected
+destination, are no longer in active use.  Forwarding support is most
+often required to consolodate and simplify addresses within, or
+relative to, some enterprise.  In most of those cases, information
+hiding (and sometimes security) considerations argue against exposure
+of the "final" address through the SMTP protocol as a consequence of
+the forwarding activity and, in some cases, that final address may
+not even be reachable by the sender.
+
+Silent forwarding of messages (without server notification to the
+sender) is common in the contemporary Internet.
+
+If the forwarding and address correction mechanisms described in
+RFC 821 are used, the addresses given should be stable enough that
+it would be reasonable for the client to update local records with
+them.
+
+
+3.5.  Verifying and Expanding
+
+3.5.1 Overview
+
+SMTP provides, as additional features, commands to verify a user
+name or expand a mailing list.  This is done with the VRFY and
+EXPN commands, which have character string arguments.  For the
+VRFY command, the string is a user name (see below) and the
+response may include the full name of the user and must include
+the mailbox of the user,  e.g., it MUST BE in either 
+  User Name <mailbox@domain>
+or
+  mailbox@domain
+form.
+
+Paths (explicit source routes) MUST NOT be returned by VRFY or
+EXPN. 
+
+When a name that is the argument to VRFY could identify more
+than one mailbox, the server MAY either note the ambiguity or
+identify the alternatives.   In other words, either of the
+following are legitimate response to VRFY:
+
+        553 User ambiguous
+   or
+        553- Ambiguous;  Possibilities are
+        553-Joe Smith <jsmith@somedomain>
+        553-Harry Smith <hsmith@somedomain>
+        553 Melvin Smith <dweep@somedomain>
+
+Under normal circumstances a client receiving a 553 reply
+would be expected to expose the result to the user.  Use
+of exactly the forms given, and the "user ambiguous" or
+"ambiguous" keywords, will facilitate automated
+translation into other languages as needed.
+
+For the EXPN command, the string identifies a mailing
+list, and the multiline response may include the full name of the
+users and must give the mailboxes on the mailing list.
+
+"User name" is a fuzzy term and used purposely.  An 
+implementation of the VRFY or EXPN commands MUST include at
+least recognition of local mailboxes as "user names".  If a
+host chooses to recognize other strings as "user names" that is
+allowed. 
+
+In some hosts the distinction between a mailing list and an alias
+for a single mailbox is a bit fuzzy, since a common data structure
+may hold both types of entries, and it is possible to have mailing
+lists of one mailbox.  If a request is made to verify a mailing
+list a positive response can be given if on receipt of a message
+so addressed it will be delivered to everyone on the list,
+otherwise an error should be reported (e.g., "550 That is a
+mailing list, not a user").  If a request is made to expand a user
+name a positive response can be formed by returning a list
+containing one name, or an error can be reported (e.g., "550 That
+is a user name, not a mailing list").
+
+In the case of a multiline reply (normal for EXPN) exactly one
+mailbox is to be specified on each line of the reply.  The case
+of an ambiguous request is discussed above.
+
+The case of verifying a user name is straightforward as shown in
+example 3.
+
+
+  -----------------------------------------------------------------
+  |
+  |           Example of Verifying a User Name
+  |
+  | Either
+  |
+  |   S: VRFY Smith
+  |   R: 250 Fred Smith <Smith@USC-ISIF.ARPA>
+  |
+  | Or
+  |
+  |   S: VRFY Smith
+  |   R: 251 User not local; will forward to <Smith@USC-ISIQ.ARPA>
+  |
+  | Or
+  |
+  |   S: VRFY Jones
+  |   R: 550 String does not match anything.
+  |
+  | Or
+  |
+  |   S: VRFY Jones
+  |   R: 551 User not local; please try <Jones@USC-ISIQ.ARPA>
+  |
+  | Or
+  |
+  |   S: VRFY Gourzenkyinplatz
+  |   R: 553 User ambiguous.
+  |
+  |                      Example 3
+  |
+  -----------------------------------------------------------------
+
+      The case of expanding a mailbox list requires a multiline reply as
+      shown in example 4.
+
+      -------------------------------------------------------------
+      |
+      |           Example of Expanding a Mailing List
+      |
+      |  Either
+      |
+      |     S: EXPN Example-People
+      |     R: 250-Jon Postel <Postel@USC-ISIF.ARPA>
+      |     R: 250-Fred Fonebone <Fonebone@USC-ISIQ.ARPA>
+      |     R: 250-Sam Q. Smith <SQSmith@USC-ISIQ.ARPA>
+      |     R: 250-Quincy Smith <@USC-ISIF.ARPA:Q-Smith@ISI-VAXA.ARPA>
+      |     R: 250-<joe@foo-unix.ARPA>
+      |     R: 250 <xyz@bar-unix.ARPA>
+      |
+      |  Or
+      |
+      |     S: EXPN Executive-Washroom-List
+      |     R: 550 Access Denied to You.
+      |
+      |                        Example 4
+      |
+      -------------------------------------------------------------
+
+      The character string arguments of the VRFY and EXPN commands
+      cannot be further restricted due to the variety of implementations
+      of the user name and mailbox list concepts.  On some systems it
+      may be appropriate for the argument of the EXPN command to be a
+      file name for a file containing a mailing list, but again there is
+      a variety of file naming conventions in the Internet.
+
+
+3.5.2  VRFY normal response.
+
+When normal (2yz or 551) responses are returned from a VRFY or EXPN
+request, the reply MUST include the mailbox name, e.g., "<foo@bar>"
+(where "bar" is a fully qualified domain name) must appear in the
+syntax.  EXPN and VRFY MUST return only valid domain addresses that
+are usable in SMTP RCPT commands.  Consequently, if an address
+implies delivery to a program or other system, the mailbox name used
+to reach that target should be given.
+
+Server implementations MUST support VRFY and SHOULD support EXPN.  For
+security reasons, implementations MAY provide local installations a
+way to disable either or both of these commands through configuration
+options or the equivalent.  When these commands are supported, they
+are not required to work across relays when relaying is supported.
+Since they were both optional in RFC 821, they MUST, if supported, be
+listed in the response to EHLO if service extensions are supported.
+
+
+3.5.3 Meaning of VRFY or EXPN success response.
+
+A server MUST NOT return a 220 code in response to a VRFY or EXPN
+command unless it has actually verified the address.  In particular,
+a server MUST NOT return 220 if all it has done is to verify that the
+syntax given is valid.  In that case 502 (Command not implemented) or
+500 (Syntax error, command unrecognized) SHOULD be returned (note
+that implementation of VRFY is required by RFC 1123 and EXPN is
+strongly recommended; this specification does not change that
+requirement and, hence, except as provided in section ##3.5.5,
+implementations that return 500 or 502 for VRFY are not in compliance
+with the specification).
+
+Especially when a server is acting as a mail exchanger for another,
+there may be circumstances where an address appears to be correct but
+cannot reasonably be verified in real time.  In that situation, reply
+code 252 SHOULD BE returned.  These cases parallel the discussion of
+RCPT verification discussed in section ##2.1 although implementations
+generally SHOULD be more aggressive about address verification in the
+case of VRFY than in the case of RCPT even if a little more time is
+required to do so.
+
+
+3.5.4. Semantics and applications of EXPN.
+
+While EXPN is often very useful in debugging and understanding
+problems with mailing lists and multiple-target-address aliases,
+some systems have attempted to use source expansion of mailing
+lists as a means of eliminating duplicates.  The propagation of
+aliasing systems with mail on the Internet--both for hosts
+(typically with MX and CNAME DNS records) and for mailboxes
+(various types of local host aliases) has made it nearly
+impossible for these strategies to work, and mail systems SHOULD
+NOT attempt them.
+
+
+3.5.5 VRFY, EXPN, and security.
+
+As discussed above, individual sites may want to disable one or both
+of VRFY or EXPN for security reasons.  As a corollary to the above,
+implementations that permit this MUST NOT appear to have verified
+addresses that are not, in fact, verified.  If a site disables these
+commands for security reasons, the SMTP server SHOULD return a 252
+response, rather than a code that could be confused with successful
+or unsuccessful verification.
+
+Returning a 250 reply code with the address listed in the VRFY
+command after having checked it for syntax only violates this
+rule.  Of course, an implementation that "supports" VRFY by
+always returning 550 whether or not the address is valid is
+equally not in conformance.
+
+
+
+3.6.  Domains
+
+Domains have become a key concept in the Internet mail system.  The
+use of domains changes the address space from a flat global space of
+simple character string host names to a hierarchically structured
+rooted tree of global addresses.  The host name is replaced by a
+domain and host designator which is a sequence of domain element
+strings separated by periods with the understanding that the domain
+elements are ordered from the most specific to the most general.
+
+For example, "ISIF.ISI.EDU", "Fred.Cambridge.UK", and
+"PC7.LCS.MIT.EDU" might be domain identifiers.
+
+Whenever domain names are used in SMTP, only resolvable,
+fully-qualified, domain names (FQDNs) are permitted.  In other words,
+names that can be resolved to MX RRs or A RRs (as discussed in
+section ##5.??.??) are permitted, as are CNAME RRs whose targets can
+be resolved, in turn, to MX or A RRs.  Local nicknames or unqualified
+names MUST NOT be used.  There is one exception to this rule: the
+domain name given in the EHLO (or HELO) command MUST BE either a
+primary host name (a domain name that resolves to an A RR) or, if the
+host has no name, a domain literal in dotted-decimal notation.
+
+
+
+3.7.  RELAYING
+
+The forward-path may be a source route of the form
+"@ONE,@TWO:JOE@THREE", where ONE, TWO, and THREE MUST BE
+fully-qualified domain names.  This form is used to emphasize the
+distinction between an address and a route.  The mailbox is an
+absolute address, and the route is information about how to get
+there.  The two concepts should not be confused.
+
+In general, the availability of Mail eXchanger records in the
+domain name system [RFC-DNS] makes the use of explicit source
+routes in the Internet mail system unnecessary.  Many historical
+problems with their interpretation have made their use
+undesirable.  SMTP clients SHOULD NOT generate explicit source
+routes except under unusual circumstances.  SMTP servers MAY
+decline to act as mail relays or to accept addresses that
+specify source routes.  They are also permitted to ignore the route
+information and simply send to the final destination as specified in
+the route and the DNS.  However, there has been a practice, albeit
+invalid, of using names that do not appear in the DNS as destination
+names, with the senders counting on the intermediate hosts specified
+in source routing to resolve any problems.  If source routes are
+stripped, this practice will cause failures -- one of several reasons
+why SMTP clients MUST NOT generate invalid source routes or depend on
+serial resolution of names.
+
+If source routes are not used, the process described in RFC 821 for
+constructing a reverse-path from the forward-path is not applicable
+and the reverse-path at the time of delivery will simply be the
+address that appeared in the MAIL command.  If source routes are
+used, RFC 821 should be consulted for the mechanisms for constructing
+and updating the forward- and reverse-paths.
+
+Using source routing the SMTP server receives mail to be relayed to
+another SMTP server.  The SMTP server may accept or reject the task
+of relaying the mail in the same way it accepts or rejects mail for a
+local user.  The SMTP server transforms the command arguments by
+moving its own identifier (its domain name or that of any domain for
+which it is acting as a mail exchanger), if it appears, from the
+forward-path to the beginning of the reverse-path.  The SMTP server
+then becomes an SMTP client, establishes a transmission channel to
+the next SMTP server in the forward-path, and sends it the mail.
+
+Notice that the forward-path and reverse-path appear in the SMTP
+commands and replies, but not necessarily in the message.  That is,
+there is no need for these paths and especially this syntax to appear
+in the "To:" , "From:", "CC:", etc. fields of the message header.
+Conversely, SMTP servers MUST NOT derive final message delivery
+information from message header fields.
+
+If an SMTP server has accepted the task of relaying the mail and
+later finds that the forward-path is incorrect or that the mail
+cannot be delivered for some other reason, then it MUST construct an
+"undeliverable mail" notification message and send it to the
+originator of the undeliverable mail (as indicated by the
+reverse-path).  Formats specified for non-delivery reports by other
+standards SHOULD be used if possible.
+
+This notification message must be from the SMTP server at the relay
+host or the host that first determines that delivery cannot be
+accomplished.  Of course, SMTP servers should not send notification
+messages about problems with notification messages.  One way to
+prevent loops in error reporting is to specify a null reverse-path in
+the MAIL command of a notification message.  When such a message is
+transmitted the reverse-path SHOULD BE set to null.  A MAIL command
+with a null reverse-path appears as follows:
+
+   MAIL FROM:<>
+
+An undeliverable mail notification message is shown in example 7.
+This notification is in response to a message originated by JOE at
+HOSTW and sent via HOSTX to HOSTY with instructions to relay it on
+to HOSTZ.  What we see in the example is the transaction between
+HOSTY and HOSTX, which is the first step in the return of the
+notification message.
+
+      -------------------------------------------------------------
+      |
+      |     Example Undeliverable Mail Notification Message
+      |
+      |  S: MAIL FROM:<>
+      |  R: 250 ok
+      |  S: RCPT TO:<@HOSTX.ARPA:JOE@HOSTW.ARPA>
+      |  R: 250 ok
+      |  S: DATA
+      |  R: 354 send the mail data, end with .
+      |  S: Date: 23 Oct 81 11:22:33
+      |  S: From: SMTP@HOSTY.ARPA
+      |  S: To: JOE@HOSTW.ARPA
+      |  S: Subject: Mail System Problem
+      |  S:
+<<>>replace with NOTARY format <<>>
+      |  S: .
+      |  R: 250 ok
+      |
+      |                        Example 7
+      |
+      -------------------------------------------------------------
+
+
+
+
+
+3.8.  Terminating Sessions and Connections
+
+An SMTP connection is terminated by the client's sending a QUIT
+command.  The server then responds with a positive reply code, after
+which it closes the connection.
+
+   An SMTP server MUST NOT intentionally close the connection
+   except: 
+      o After receiving a QUIT connand and responding with a 221 reply.
+      o After detecting the need to shutdown the SMTP service and
+        returning a 451 reply to any command.
+
+   In particular, a server that closes connections in response
+   to commands that are not understood is in violation of this
+   specification.  Instead, servers are expected to be tolerant of
+   unknown commands, issuing a 500 reply and awaiting further
+   instructions from the client.
+
+   An SMTP server which is forcibly shut down via external
+   means SHOULD attempt to send a line containing 451 response
+   code to the SMTP client before exiting.  The SMTP client will
+   normally read the 451 response code after sending its next
+   command.   
+
+
+
+
+4.  THE SMTP SPECIFICATIONS
+
+4.1.  SMTP COMMANDS
+
+4.1.1.  COMMAND SEMANTICS AND SYNTAX
+
+The SMTP commands define the mail transfer or the mail system
+function requested by the user.  SMTP commands are character strings
+terminated by <CRLF>.  The command codes themselves are alphabetic
+characters terminated by <SP> if parameters follow and <CRLF>
+otherwise.  The syntax of mailboxes must conform to receiver site
+conventions.  The SMTP commands are discussed below.  The SMTP
+replies are discussed in Section ##4.2.
+
+A mail transaction involves several data objects which are
+communicated as arguments to different commands.  The reverse-path is
+the argument of the MAIL command, the forward-path is the argument of
+the RCPT command, and the mail data is the argument of the DATA
+command.  These arguments or data objects must be transmitted and
+held pending the confirmation communicated by the end of mail data
+indication which finalizes the transaction.  The model for this is
+that distinct buffers are provided to hold the types of data objects,
+that is, there is a reverse-path buffer, a forward-path buffer, and a
+mail data buffer.  Specific commands cause information to be appended
+to a specific buffer, or cause one or more buffers to be cleared.
+
+
+4.1.1.1  Extended HELLO (EHLO) or HELLO (HELO)
+
+These commands are used to identify the SMTP client to the SMTP
+server.  The argument field contains the host name of the SMTP
+client.
+
+The SMTP server identifies itself to the SMTP client in the
+connection greeting reply, and in the response to this command.
+
+A client SMTP SHOULD start an SMTP session by issuing the EHLO
+command. If the SMTP server supports the SMTP service extensions it
+will give a successful response, a failure response, or an error
+response. If the SMTP server does not support any SMTP service
+extensions it will generate an error response.  Older client SMTP
+systems MAY, as discussed above, use HELO (as specified in RFC 821)
+instead of EHLO.
+
+These commands and an OK reply to one of them confirm that both the
+SMTP client and the SMTP server are in the initial state, that is,
+there is no transaction in progress and all state tables and buffers
+are cleared.
+
+If the server SMTP implements and is able to perform the EHLO
+command, it will return code 250.  This indicates that both the
+server and client SMTP are in the initial state, that is, there is no
+transaction in progress and all state tables and buffers are cleared.
+
+Normally, this response will be a multiline reply. Each line of the
+response contains a keyword and, optionally, one or more parameters.
+The syntax for a positive response, using the ABNF notation of
+[RFC822], is:
+
+     ehlo-ok-rsp  ::=      "250"    domain [ SP greeting ] CR LF
+                    / (    "250-"   domain [ SP greeting ] CR LF
+                        *( "250-"      ehlo-line           CR LF )
+                           "250"    SP ehlo-line           CR LF   )
+
+                  ; the usual HELO chit-chat
+     greeting     ::= 1*<any character other than CR or LF>
+
+     ehlo-line    ::= ehlo-keyword *( SP ehlo-param )
+
+     ehlo-keyword ::= (ALPHA / DIGIT) *(ALPHA / DIGIT / "-")
+
+                  ; syntax and values depend on ehlo-keyword
+     ehlo-param   ::= 1*<any CHAR excluding SP and all
+                         control characters (US ASCII 0-31
+                         inclusive)>
+
+     ALPHA        ::= <any one of the 52 alphabetic characters
+                       (A through Z in upper case, and,
+                        a through z in lower case)>
+     DIGIT        ::= <any one of the 10 numeric characters
+                       (0 through 9)>
+
+     CR           ::= <the carriage-return character
+                       (ASCII decimal code 13)>
+     LF           ::= <the line-feed character
+                       (ASCII decimal code 10)>
+     SP           ::= <the space character
+                       (ASCII decimal code 32)>
+
+Although EHLO keywords may be specified in upper, lower, or mixed
+case, they must always be recognized and processed in a
+case-insensitive manner. This is simply an extension of practices
+specified in RFC 821.
+
+
+4.1.1.2 MAIL (MAIL)
+
+This command is used to initiate a mail transaction in which the mail
+data is delivered to one or more mailboxes.  The argument field
+contains a reverse-path.
+
+The reverse-path consists of an optional list of hosts and the sender
+mailbox.  When the list of hosts is present, it is a "reverse" source
+route and indicates that the mail was relayed through each host on
+the list (the first host in the list was the most recent relay).
+This list is used as a source route to return non-delivery notices to
+the sender.  As each relay host adds itself to the beginning of the
+list, it must use its name as known in the transport environment to
+which it is relaying the mail rather than that of the transport
+environment from which the mail came (if they are different).  In
+some types of error reporting messages (for example, undeliverable
+mail notifications) the reverse-path may be null (see Example 7).
+
+This command clears the reverse-path buffer, the forward-path buffer,
+and the mail data buffer; and inserts the reverse-path information
+from this command into the reverse-path buffer.
+
+If service extensions were negotiated, the MAIL command may also
+carry parameters associated with a particular service extension. 
+
+Syntax: "MAIL FROM:" Reverse-path  [ Mail-parameters ]
+                             or
+        "MAIL FROM:<>"
+
+
+4.1.1.3 RECIPIENT (RCPT)
+
+This command is used to identify an individual recipient of
+the mail data; multiple recipients are specified by multiple
+use of this command.
+
+The forward-path consists of an optional list of hosts and a
+required destination mailbox.  When the list of hosts is
+present, it is a source route and indicates that the mail
+must be relayed to the next host on the list.  If the
+SMTP server does not implement the relay function it may
+user the same reply it would for an unknown local user
+(550).
+
+When mail is relayed, the relay host must remove itself from
+the beginning forward-path and put itself at the beginning
+of the reverse-path.  When mail reaches its ultimate
+destination (the forward-path contains only a destination
+mailbox), the SMTP server inserts it into the destination
+mailbox in accordance with its host mail conventions.
+
+
+   For example, mail received at relay host A with arguments
+
+      FROM:<USERX@HOSTY.ARPA>
+      TO:<@HOSTA.ARPA,@HOSTB.ARPA:USERC@HOSTD.ARPA>
+
+   will be relayed on to host B with arguments
+
+      FROM:<@HOSTA.ARPA:USERX@HOSTY.ARPA>
+      TO:<@HOSTB.ARPA:USERC@HOSTD.ARPA>.
+
+This command causes its forward-path argument to be appended
+to the forward-path buffer.
+
+If service extensions were negotiated, the MAIL command may also
+carry parameters associated with a particular service extension. 
+
+Syntax: "RCPT TO:" Forward-path  [ Rcpt-parameters ]
+
+
+4.1.1.4 DATA (DATA)
+
+The receiver treats the lines (strings ending in CRLF sequences)
+following the command as mail data from the sender.  This command
+causes the mail data from this command to be appended to the mail
+data buffer.  The mail data may contain any of the 128 ASCII
+character codes.
+
+SMTP is defined in terms of sending messages consisting of lines of
+text.  Lines are strictly defined as ending in ASCII CR LF sequences.
+Systems that use other line delimiting mechanisms internally MUST
+convert to CR LF sequences before transmitting mail with unextended
+SMTP or with any SMTP service extension on the standards track as of
+the time of this writing.
+
+The mail data is terminated by a line containing only a period, that
+is the character sequence "<CRLF>.<CRLF>" (see Section ##4.6.2 on
+Transparency).  This is the end of mail data indication.
+
+The custom of accepting lines ending only in LF, as a concession to
+non-conforming behavior on the part of some UNIX systems, has proven
+to cause more interoperability problems than it solves and SMTP
+server systems MUST NOT do this, even in the name of improved
+robustness.  In particular, the sequence "LF.LF" (bare line feeds,
+without carriage returns) MUST NOT be treated as equivalent to
+CRLF.CRLF as the end of mail data indication.
+
+
+Receipt of the end of mail data indication requires that the server
+process the stored mail transaction information.  This processing
+consumes the information in the reverse-path buffer, the forward-path
+buffer, and the mail data buffer, and on the completion of this
+command these buffers are cleared.  If the processing is successful
+the receiver must send an OK reply.  If the processing fails
+completely the receiver must send a failure reply.
+
+When the SMTP server accepts a message either for relaying or for
+final delivery it inserts a trace record (also referred to
+interchangabily as a "time stamp line" or "Received" line) at the top
+of the mail data.  This trace record indicates the identity of the
+host that sent the message, and the identity of the host that
+received the message (and that is inserting this time stamp), and the
+date and time the message was received.  Relayed messages will have
+multiple time stamp lines.  Details for formation of these lines,
+including their syntax, is specified in section ##4.4.
+
+
+4.1.1.5 RESET (RSET)
+
+This command specifies that the current mail transaction is to be
+aborted.  Any stored sender, recipients, and mail data must be
+discarded, and all buffers and state tables cleared.  The receiver
+must send an OK reply.  A reset command may be issued by the client
+at any time.   It is effectively equivalent to a NOOP if issued
+immediately after EHLO or HELO, or before either of those commands
+have been issued.  In other situations, it restores the state to
+that immediately after the most recent EHLO or HELO.  An SMTP server
+MUST NOT close the connection as the result of receiving a RSET; that
+action is reserved for QUIT (see section ##4.1.1.10, below).
+
+4.1.1.6  VERIFY (VRFY)
+
+This command asks the receiver to confirm that the argument
+identifies a user.  If it is a user name, the full name of
+the user (if known) and the fully specified mailbox are
+returned.
+
+This command has no effect on any of the reverse-path
+buffer, the forward-path buffer, or the mail data buffer.
+
+Syntax:  "VRFY" SP String
+
+4.1.1.7 EXPAND (EXPN)
+
+This command asks the receiver to confirm that the argument
+identifies a mailing list, and if so, to return the
+membership of that list.  The full name of the users (if
+known) and the fully specified mailboxes are returned in a
+multiline reply.
+
+This command has no effect on any of the reverse-path
+buffer, the forward-path buffer, or the mail data buffer.
+
+Syntax: "EXPN" SP String
+
+4.1.1.8 HELP (HELP)
+
+This command causes the receiver to send helpful information
+to the sender of the HELP command.  The command MAY take an
+argument (e.g., any command name) and return more specific
+information as a response.
+
+This command has no effect on any of the reverse-path
+buffer, the forward-path buffer, or the mail data buffer.
+
+SMTP servers SHOULD support HELP even if the form with an argument
+is not supported.
+
+Syntax: "HELP" [ SP String ]
+
+
+4.1.1.9 NOOP (NOOP)
+
+This command does not affect any parameters or previously
+entered commands.  It specifies no action other than that
+the receiver send an OK reply.
+
+This command has no effect on any of the reverse-path
+buffer, the forward-path buffer, or the mail data buffer.
+
+Syntax: "NOOP" [SP String]
+
+4.1.1.10 QUIT (QUIT)
+
+This command specifies that the receiver must send an OK
+reply, and then close the transmission channel.
+
+The receiver MUST NOT intentionally close the transmission channel
+until it receives and replies to a QUIT command (even if there was
+an error).  The sender MUST NOT intentionally close the
+transmission channel until it send a QUIT command and receives the
+reply (even if there was an error response to a previous command).
+If the connection is closed prematurely due to violations of the
+above or system or network failure the server MUST act as if a
+RSET command had been received (cancelling any pending
+transaction, but not undoing any previously completed transaction)
+and the client MUST act as if the command or transaction in
+progress had received a temporary error (4xx).
+
+Syntax:  "QUIT"
+
+
+4.1.2.  LOWER-LEVEL SYNTAX
+
+The syntax of the argument fields of the above commands (using the
+syntax specified in [ABNF] where applicable) is given below.
+
+   Reverse-path ::= Path
+
+   Forward-path ::= Path
+
+   Path ::= "<" [ A-d-l ":" ] <mailbox> ">"
+
+   A-d-l ::= At-domain *( "," A-d-l )
+
+   At-domain ::= "@" Domain
+
+   Mail-parameters ::= *( SP Keyword "=" Argument )
+
+   Rcpt-parameters ::=  *( SP Keyword "=" Argument )
+
+   Keyword  ::= String <<>>???
+   Argument ::= String <<>>???
+
+   Domain ::= sub-domain 1*("." sub-domain) | domain-literal
+
+   sub-domain ::= let-dig *(ldh-str)
+   domain-literal = "[" IP-address-literal "]"
+   IP-address-literal = snum 3*("." snum)
+   snum = one, two, or three digits representing a decimal
+     integer value in the range 0 through 255
+   let-dig = Alpha / Digit
+   ldh-str = *( Alpha / Digit / "-" ) 1*(let-dig)
+
+   Alpha = ASCII character in the range A-Z or a-z.  As specified in
+     the domain name system definition [RFC-DNS], case is not
+     significant in domain strings.  
+   Digit = 0 - 9
+
+
+   Mailbox ::= Local-part "@" Domain
+
+   Local-part ::= Dot-string | Quoted-string
+
+       While the definition for Local-part above is relatively
+permissive, for maximum interoperability, a host that expects to
+receive mail SHOULD avoid defining mailboxes where the Local-part
+requires (or uses) the Quoted-string form or where the Local-part
+is case-sensitive.
+
+Systems MUST NOT define mailboxes in such a way as to require the use
+of non-ASCII characters (octets with the high order bit set to one)
+or ASCII "control characters" (decimal value 0-31 and 127).  These
+characters MUST NOT be used in MAIL FROM or RCPT TO commands or other
+commands that require mailbox names.
+
+
+<<?>>   <string> ::= <char> | <char> <string>
+
+<<?>>   <quoted-string> ::=  """ <qtext> """
+
+<<?>>   <qtext> ::=  "\" <x> | "\" <x> <qtext> | <q> | <q> <qtext>
+
+   <char> ::= <c> | "\" <x>
+
+   <number> ::= <d> | <d> <number>
+
+   <CRLF> ::= <CR> <LF>
+
+   <CR> ::= the carriage return character (ASCII code 13)
+
+   <LF> ::= the line feed character (ASCII code 10)
+
+   <SP> ::= the space character (ASCII code 32)
+
+   <snum> ::= one, two, or three digits representing a decimal
+             integer value in the range 0 through 255
+
+   <a> ::= any one of the 52 alphabetic characters A through Z
+             in upper case and a through z in lower case
+
+   <c> ::= any one of the 128 ASCII characters, but not any
+             <special> or <SP>
+
+   <d> ::= any one of the ten digits 0 through 9
+
+   <q> ::= any one of the 128 ASCII characters except <CR>,
+             <LF>, quote ("), or backslash (\)
+
+   <x> ::= any one of the 128 ASCII characters (no exceptions)
+
+   <special> ::= "<" | ">" | "(" | ")" | "[" | "]" | "\" | "."
+             | "," | ";" | ":" | "@"  """ | the control
+             characters (ASCII codes 0 through 31 inclusive and
+             127)
+
+Note that the backslash, "\", is a quote character, which is
+used to indicate that the next character is to be used
+literally (instead of its normal interpretation).  For example,
+"Joe\,Smith" could be used to indicate a single nine character
+user field with comma being the fourth character of the field.
+
+Characters outside the set of specials, alphas, digits, and hyphen
+are prohibited by the domain name system definition and MUST NOT
+appear in domain names.  In particular, the underscore character is
+not permitted.
+
+Sometimes a host is not known to the translation function and
+communication is blocked.  To bypass this barrier a numeric form is
+also allowed for host "names". This form uses four or more small
+decimal integers separated by dots and enclosed by brackets, e.g.,
+"[123.255.37.2]", which indicates an Internet Address in
+sequence-of-octets form.
+
+The time stamp line and the return path line are formally defined as
+follows:
+
+<return-path-line> ::= "Return-Path:" <SP><reverse-path><CRLF>
+
+<time-stamp-line> ::= "Received:" <SP> <stamp> <CRLF>
+
+<stamp> ::= <from-domain> <by-domain> <opt-info> ";"
+          <daytime>
+
+<from-domain> ::= "FROM" <SP> <domain> <SP>
+
+<by-domain> ::= "BY" <SP> <domain> <SP>
+
+<opt-info> ::= [<via>] [<with>] [<id>] [<for>]
+
+<via> ::= "VIA" <SP> <link> <SP>
+
+<with> ::= "WITH" <SP> <protocol> <SP>
+
+<id> ::= "ID" <SP> <string> <SP>
+
+<for> ::= "FOR" <SP> <path> <SP>
+
+<<>>FOR and <link> need to be nailed down.
+
+   <link> ::= The standard names for links are registered with
+             the Internet Assigned Numbers Authority (IANA).
+
+   <protocol> ::= The standard names for protocols are
+             registered with the Internet Assigned Numbers Authority
+             (IANA). 
+
+   <daytime> ::= <SP> <date> <SP> <time>
+
+   <date> ::= <dd> <SP> <mon> <SP> <yyyy>
+
+       Note that the earlier form, which permits
+       two-digit years, is deprecated.  SMTP systems
+       SHOULD use four-digit years.
+
+   <time> ::= <hh> ":" <mm> ":" <ss> <SP> <zone>
+
+   <dd> ::= the one or two decimal integer day of the month in
+             the range 1 to 31.
+
+   <mon> ::= "JAN" | "FEB" | "MAR" | "APR" | "MAY" | "JUN" |
+             "JUL" | "AUG" | "SEP" | "OCT" | "NOV" | "DEC"
+
+   <yyyy> ::= the four decimal integer year in the range 0000 to
+             9999. 
+
+   <hh> ::= the two decimal integer hour of the day in the
+             range 00 to 24.
+
+   <mm> ::= the two decimal integer minute of the hour in the
+             range 00 to 59.
+
+   <ss> ::= the two decimal integer second of the minute in the
+             range 00 to 59.
+
+   <zone> ::= A four-digit time zone offset, such as -0600 for US
+             Eastern Standard Time.  This may be supplemented by a
+             time zone name in parentheses, e.g., "-0800 (PDT)".  See
+             ??? for additional discussion.
+
+          Note that there is no default; time zone information
+          is required and MUST be supplied.
+
+            
+
+     -------------------------------------------------------------
+     |
+     |                    Return Path Example
+     |
+     |   Return-Path: <@CHARLIE.ARPA,@BAKER.ARPA:JOE@ABLE.ARPA>
+     |
+     |                         Example 9
+     |
+     -------------------------------------------------------------
+
+     -------------------------------------------------------------
+     |
+     |                  Time Stamp Line Example
+     |
+     |   Received: FROM ABC.ARPA BY XYZ.ARPA ; 22 OCT 81
+     |             09:23:59 PDT
+     |
+     |   Received: from ABC.ARPA by XYZ.ARPA via TELENET with X25
+     |             id M12345 for Smith@PDQ.ARPA ; 22 OCT 81 09:23:59 PDT
+     |
+     |                          Example 10
+     |
+     --------------------------------------------------------------
+
+
+4.1.3.  Order of commands
+
+There are restrictions on the order in which these commands may
+be used.
+
+A session that is to contain mail transactions MUST first be
+initialized by the use of the HELO or EHLO command.  An SMTP server
+SHOULD accept commands for non-mail transactions (e.g., VRFY or EXPN)
+without this initialization.  
+
+HELO or EHLO commands MAY be issued by a client later in the session.
+If either is issued after the session begins, the SMTP server MUST
+clear all buffers and state as if an RSET command had been issued.
+In other words, the sequence of RSET followed immediately by HELO is
+redundant, but not harmful other than in the performance cost of
+executing unnecessary commands. 
+
+If the HELO or EHLO commands are not acceptable to the SMTP server,
+501, 500, or 502 failure replies MUST be returned as appropriate.
+The SMTP server must stay in the same state after transmitting these
+replies as it was in before the HELO or EHLO were received.
+
+RFC 1123 contains a discussion of arguments to HELO and conditions
+under which the HELO command can be rejected.  In particular, HELO
+(or EHLO) MUST NOT be rejected because the client's putative name
+does not match some criteria established by the server (e.g.,
+verification of reverse DNS mapping).
+
+The NOOP, HELP, EXPN, VRFY, and RSET commands can be used at any time
+during a session, or without previously initializing a session.  SMTP
+servers SHOULD process these normally (i.e., not return a 503 code)
+even if no HELO or EHLO command has yet been received; clients SHOULD
+open a session with HELO or EHLO before sending these commands. 
+
+If the above rules are followed, the example in RFC 821 that shows
+"550 access denied to you" in response to an EXPN command is
+essentially meaningless unless a HELO or EHLO command preceeds the
+EXPN or the denial of access is based on the client's IP address. 
+
+The MAIL, SEND, SOML, or SAML commands begin a mail transaction.
+Once started a mail transaction consists of one of the transaction
+beginning commands, one or more RCPT commands, and a DATA command, in
+that order.  A mail transaction may be aborted by the RSET command.
+There may be zero or more transactions in a session.
+
+If the transaction beginning command argument is not acceptable a 501
+failure reply MUST be returned and the SMTP server must stay in the
+same state.  If the commands in a transaction are out of order to the
+degree that they cannot be processed by the server a 503 failure
+reply MUST be returned and the SMTP server must stay in the same
+state.
+
+The last command in a session must be the QUIT command.  The QUIT
+command can not be used at any other time in a session, but may be
+used by the client SMTP to request connection-closing even if no
+session-opening command has been sent and accepted. 
+
+
+
+4.1.4 Private-use commands
+
+ Commands starting in "X" may be used by bilateral agreement
+ between the client (sending) and server (receiving) SMTPs.
+ An SMTP server that does not recognize such a command is
+ expected to reply with "500 Command not recognized".   An
+ extended SMTP server MAY list the feature names associated
+ with these private commands in the response to the EHLO
+ command. 
+
+ Commands sent or accepted by SMTP systems that do not start
+ with "X" MUST be documented in published RFCs and be at
+ least candidates for standardization. 
+
+
+
+4.2.  SMTP REPLIES
+
+Replies to SMTP commands are devised to ensure the synchronization of
+requests and actions in the process of mail transfer, and to
+guarantee that the SMTP client always knows the state of the SMTP
+server.  Every command must generate exactly one reply.
+
+The details of the command-reply sequence are made explicit in
+Section ##4.3 on Sequencing and Section ##4.5 containing State
+Diagrams.
+
+An SMTP reply consists of a three digit number (transmitted as three
+alphanumeric characters) followed by some text.  The number is
+intended for use by automata to determine what state to enter next;
+the text is meant for the human user.  It is intended that the three
+digits contain enough encoded information that the SMTP client need
+not examine the text and may either discard it or pass it on to the
+user, as appropriate.  In particular, the text may be
+receiver-dependent and context dependent, so there are likely to be
+varying texts for each reply code.  A discussion of the theory of
+reply codes is given in Appendix E.  Formally, a reply is defined to
+be the sequence: a three-digit code, SP, one line of text, and
+CRLF, or a multiline reply (as defined in Appendix E).  Only the
+EXPN and HELP commands are expected to result in multiline replies in
+normal circumstances, however multiline replies are allowed for any
+command.
+
+An SMTP server SHOULD send only the reply codes listed in this
+document.  An SMTP server SHOULD use the text shown in the examples
+whenever appropriate.
+
+A client SMTP MUST determine its actions only by the reply
+code, not by the text (except for 251 and 551 replies); any
+text, including no text at all, must be acceptable.  The space
+(blank) following the reply code is considered part of the
+text.  Whenever possible, a sender-SMTP SHOULD test only the
+first digit of the reply code.
+
+
+
+      4.2.1.  REPLY CODES BY FUNCTION GROUPS
+
+         500 Syntax error, command unrecognized
+            [This may include errors such as command line too long]
+         501 Syntax error in parameters or arguments
+         502 Command not implemented  (see section ##4.2.3)
+         503 Bad sequence of commands
+         504 Command parameter not implemented
+          
+         211 System status, or system help reply
+         214 Help message
+            [Information on how to use the receiver or the meaning of a
+            particular non-standard command; this reply is useful only
+            to the human user]
+          
+         220 <domain> Service ready
+         221 <domain> Service closing transmission channel
+         421 <domain> Service not available,
+             closing transmission channel
+            [This may be a reply to any command if the service knows it
+            must shut down]
+          
+         250 Requested mail action okay, completed
+         251 User not local; will forward to <forward-path>
+         252 Cannot VRFY user, but will accept message and attempt 
+             delivery
+         450 Requested mail action not taken: mailbox unavailable
+            [E.g., mailbox busy]
+         550 Requested action not taken: mailbox unavailable
+            [E.g., mailbox not found, no access]
+         451 Requested action aborted: error in processing
+         551 User not local; please try <forward-path>
+         452 Requested action not taken: insufficient system storage
+         552 Requested mail action aborted: exceeded storage allocation
+         553 Requested action not taken: mailbox name not allowed
+            [E.g., mailbox syntax incorrect]
+         354 Start mail input; end with <CRLF>.<CRLF>
+         554 Transaction failed
+         
+
+      4.2.2.  NUMERIC ORDER LIST OF REPLY CODES
+
+         211 System status, or system help reply
+         214 Help message
+            [Information on how to use the receiver or the meaning of a
+            particular non-standard command; this reply is useful only
+            to the human user]
+         220 <domain> Service ready
+         221 <domain> Service closing transmission channel
+         250 Requested mail action okay, completed
+         251 User not local; will forward to <forward-path>
+         252 Cannot VRFY user, but will accept message and attempt 
+            delivery
+          
+         354 Start mail input; end with <CRLF>.<CRLF>
+          
+         421 <domain> Service not available,
+             closing transmission channel
+            [This may be a reply to any command if the service knows it
+            must shut down]
+         450 Requested mail action not taken: mailbox unavailable
+            [E.g., mailbox busy]
+         451 Requested action aborted: local error in processing
+         452 Requested action not taken: insufficient system storage
+          
+         500 Syntax error, command unrecognized
+            [This may include errors such as command line too long]
+         501 Syntax error in parameters or arguments
+         502 Command not implemented
+         503 Bad sequence of commands
+         504 Command parameter not implemented
+         550 Requested action not taken: mailbox unavailable
+            [E.g., mailbox not found, no access]
+         551 User not local; please try <forward-path>
+         552 Requested mail action aborted: exceeded storage allocation
+         553 Requested action not taken: mailbox name not allowed
+            [E.g., mailbox syntax incorrect]
+         554 Transaction failed
+         
+
+4.2.3.  Reply code 502
+
+Questions have been raised as to when reply code 502 (Command
+not implemented) should be returned in preference to other
+codes.  502 SHOULD be used when the command is actually
+recognized by the SMTP server, but not implemented.   If the
+command is not recognized, code 500 SHOULD be returned.
+Extended SMTP systems MUST NOT list capabilities in response to
+EHLO for which they will return 502 (or 500) replies.
+
+
+4.2.4  Reply codes after DATA and the subsequent CRLF.CRLF.
+
+When an SMTP server returns a positive completion status (2yz
+code) after the DATA command is completed with CRLF.CRLF, it
+accepts responsibity for:
+
++ delivering the message (if the recipient mailbox exists), or 
+
++ if attempts to deliver the message fail due to transient
+  conditions, retrying delivery some reasonable number of times
+  at intervals as specified in RFC 1123, or
+
++ if attempts to deliver the message fail due to permanent
+  conditions, or if repeated attempts to deliver the message
+  fail due to transient conditions, returning appropriate
+  notification to the sender of the original message (using the
+  address in the SMTP MAIL FROM command). 
+
+
+When an SMTP server returns a transient error completion status
+(4yz) code after the DATA command is completed with CRLF.CRLF,
+it MUST NOT make any further attempt to deliver that message.
+The SMTP client retains responsibility for delivery of that
+message.  The sending user should be able to interpret the
+return of a transient or permanent failure status as a
+non-delivery indication.
+
+
+
+
+4.3.  SEQUENCING OF COMMANDS AND REPLIES
+
+4.3.1 Sequencing overview
+
+The communication between the sender and receiver is intended to be
+an alternating dialogue, controlled by the sender.  As such, the
+sender issues a command and the receiver responds with a reply.
+Unless other arrangements are negotiated through service extensions,
+the sender must wait for this response before sending further
+commands.
+
+One important reply is the connection greeting.  Normally, a receiver
+will send a 220 "Service ready" reply when the connection is
+completed.  The sender should wait for this greeting message before
+sending any commands.
+
+Note: all the greeting type replies have the official name (i.e., the
+fully-qualified primary domain name) of the server host as the first
+word following the reply code.  When the host has no name, the IP
+address should be used, in bracketed dotted-octet format, e.g.,
+[10.0.0.6].
+
+      For example,
+
+         220 <SP> USC-ISIF.ARPA <SP> Service ready <CRLF>
+
+
+The table below lists alternative success and failure replies for
+each command.  These must be strictly adhered to; a receiver may
+substitute text in the replies, but the meaning and action implied
+by the code numbers and by the specific command reply sequence
+cannot be altered.
+
+COMMAND-REPLY SEQUENCES
+
+Each command is listed with its usual possible replies.  The prefixes
+used before the possible replies are "P" for preliminary (not used in
+SMTP), "I" for intermediate, "S" for success, "F" for failure, and
+"E" for error.  The 421 reply (service not available, closing
+transmission channel) may be given to any command if the
+SMTP-receiver knows it must shut down.  Since some servers may
+generate other replies under special circumstances, and to allow for
+future extension, SMTP clients SHOULD, when possible, interpret only
+the first digit of the reply and MUST be prepared to deal with
+unrecognized reply codes by interpreting the first digit only.  SMTP
+servers MUST NOT transmit reply codes to an SMTP client that are
+other than three digits or that do not start in a digit between 2 and
+5 inclusive.  This listing forms the basis for the State Diagrams in
+Section ##4.5.
+
+      CONNECTION ESTABLISHMENT
+         S: 220
+         F: 421
+      HELO
+         S: 250
+         E: 500, 501, 504, 421
+      MAIL
+         S: 250
+         F: 552, 451, 452
+         E: 500, 501, 421
+      RCPT
+         S: 250, 251 (but see section ##<<<>>> for discussion of 251)
+         F: 550, 551, 552, 553, 450, 451, 452
+         E: 500, 501, 503, 421
+      DATA
+         I: 354 -> data -> S: 250
+                           F: 552, 554, 451, 452
+         F: 451, 554
+         E: 500, 501, 503, 421
+      RSET
+         S: 250
+         E: 500, 501, 504, 421
+      SEND
+         S: 250
+         F: 552, 451, 452
+         E: 500, 501, 502, 421
+      SOML
+         S: 250
+         F: 552, 451, 452
+         E: 500, 501, 502, 421
+      SAML
+         S: 250
+         F: 552, 451, 452
+         E: 500, 501, 502, 421
+      VRFY
+         S: 250, 251
+         F: 550, 551, 553
+         E: 500, 501, 502, 504, 421
+      EXPN
+         S: 250
+         F: 550
+         E: 500, 501, 502, 504, 421
+      HELP
+         S: 211, 214
+         E: 500, 501, 502, 504, 421
+      NOOP
+         S: 250
+         E: 500, 421
+      QUIT
+         S: 221
+         E: 500
+      TURN
+         S: 250
+         F: 502
+         E: 500, 503
+
+
+
+4.4 Trace information
+
+When an SMTP server receives a message for delivery or further
+processing, it MUST insert trace ("time stamp" or "Received"
+information at the beginning of the message body, as discussed under
+the DATA command in section ##4.1.1.4.
+
+This line must be structured as follows:
+
+   *    The FROM field SHOULD contain both (1) the name of the
+        source host as presented in the EHLO or HELO command and (2) a
+        domain literal containing the IP address of the source,
+        determined from the TCP connection.
+
+   *    The ID field MAY contain an "@" as suggested in RFC-822,
+        but this is not required.
+
+   *    The FOR field MAY contain a list of <path> entries when
+        multiple RCPT commands have been given.
+
+An Internet mail program MUST NOT change a Received: line that was
+previously added to the message header.
+
+
+As the Internet grows, comparability of Received fields is important
+for detecting problems, especially slow relays.  SMTP servers that
+create Received fields SHOULD use explicit offsets in the dates
+(e.g., -0800), rather than time zone names of any type.  If it is
+desired to also use a time zone name, it should be included in a
+commment.
+
+
+When the SMTP server makes the "final delivery" of a message it
+inserts a return-path line at the beginning of the mail data.  This
+use of return-path is required; mail systems MUST support it.  The
+return path line preserves the information in the <reverse-path> from
+the MAIL command.  Here, final delivery means the message leaves the
+SMTP world.  Normally, this would mean it has been delivered to the
+destination user, but in some cases it may be further processed and
+transmitted by another mail system.
+
+It is possible for the mailbox in the return path be different from
+the actual sender's mailbox, for example, if error responses are to
+be delivered a special error handling mailbox rather than to that of
+the message sender.  When mailing lists are involved, this
+arrangement is common and useful as a means of directing errors to
+the list maintainer rather than the message originator.
+
+The preceding two paragraphs imply that the final mail data will
+begin with a return path line, followed by one or more time stamp
+lines.  These lines will be followed by the mail data header and body
+[RFC822].  See Example 8.
+
+It is sometimes difficult for an SMTP server to determine whether or
+not it is making final delivery since forwarding or other operations
+may occur after the message is accepted for delivery.  However any
+further (forwarding, gateway, or relay) systems MAY remove the return
+path and rebuild the MAIL FROM command as needed to ensure that
+exactly one such line appears in a delivered message.  
+
+A message-originating SMTP system SHOULD NOT send a message that
+already contains a Return-path header.  If a message that contains
+more than one Return-path header is received, only the first
+Return-path header line in the message header is valid.  A message
+header processor SHOULD discard or, if necessary just ignore, any
+Return-path headers following the first one.
+
+The primary intent of the Return-path is that it designates the
+address to which messages indicating non-delivery or other mail
+system failures at to be sent.  For this to be unambigious, exactly
+one return path should be present when the message is delivered.
+Systems using RFC 822 syntax with non-SMTP transports SHOULD preserve
+the intent of having an unambiguous address, associated with the
+transport envelope, to which to send error reports (e.g.,
+non-delivery messages).
+
+   Historical note: Text in RFC 822 that appears to contradict the
+   use of Return-path (or the envelope MAIL FROM address) as the
+   destination of error messages is not applicable on the Internet.
+   The MAIL FROM address (as copied into the Return-path) MUST be
+   used as the target of any mail containing delivery error messages.
+
+In particular,
+
+(i)  a gateway from SMTP->elsewhere SHOULD insert a return-path
+header, unless it is known that the "elsewhere" transport
+also uses Internet domain addresses and maintains the
+envelope sender address separately.
+
+(ii)  a gateway from elsewhere->SMTP SHOULD delete any
+return-path header present in the message, and either copy
+that information to the SMTP envelope or combine it with
+information present in the envelope of the other transport
+system to construct the MAIL FROM part of the SMTP envelope.
+
+
+Special mention is needed of the response and further action required
+when the processing following the end of mail data indication is
+partially successful.  This could arise if after accepting several
+recipients and the mail data, the SMTP server finds that the mail
+data can be successfully delivered to some of the recipients, but it
+cannot be to others (for example, due to mailbox space allocation
+problems).  In such a situation, the response to the DATA command
+must be an OK reply.  But, the SMTP server must compose and send an
+"undeliverable mail" notification message to the originator of the
+message.  Either a single notification which lists all of the
+recipients that failed to get the message, or separate notification
+messages must be sent for each failed recipient (see Example 7).  All
+undeliverable mail notification messages are sent using the MAIL
+command (even if they result from processing a SEND, SOML, or SAML
+command).
+
+
+
+
+-------------------------------------------------------------
+|
+|  Example of Return Path and Received Time Stamps
+|
+| Return-Path: <@GHI.ARPA,@DEF.ARPA,@ABC.ARPA:JOE@ABC.ARPA>   
+| Received: from GHI.ARPA by JKL.ARPA ; 27 Oct 81 15:27:39 -0800
+| Received: from DEF.ARPA by GHI.ARPA ; 27 Oct 81 15:15:13 -0800
+| Received: from ABC.ARPA by DEF.ARPA ; 27 Oct 81 15:01:59 -0800
+| Date: 27 Oct 81 15:01:01 -0800 (PST)
+| From: JOE@ABC.ARPA                                          
+| Subject: Improved Mailing System Installed                  
+| To: SAM@JKL.ARPA                                            
+|
+| This is to inform you that ...                              
+|
+|                      Example 8
+|
+-------------------------------------------------------------
+
+
+
+
+
+
+4.5.  STATE DIAGRAMS
+
+Following are state diagrams for a simple-minded SMTP
+implementation.  Only the first digit of the reply codes is used.
+There is one state diagram for each group of SMTP commands.  The
+command groupings were determined by constructing a model for each
+command and then collecting together the commands with
+structurally identical models.
+
+For each command there are three possible outcomes:  "success"
+(S), "failure" (F), and "error" (E). In the state diagrams below
+we use the symbol B for "begin", and the symbol W for "wait for
+reply".
+
+First, the diagram that represents most of the SMTP commands:
+
+         
+                                  1,3    +---+
+                             ----------->| E |
+                            |            +---+
+                            |
+         +---+    cmd    +---+    2      +---+
+         | B |---------->| W |---------->| S |
+         +---+           +---+           +---+
+                            |
+                            |     4,5    +---+
+                             ----------->| F |
+                                         +---+
+         
+
+   This diagram models the commands:
+
+      HELO, EHLO, MAIL, RCPT, RSET, SEND, SOML, SAML, VRFY, EXPN, 
+      HELP, NOOP, QUIT, TURN.
+
+
+
+
+      A more complex diagram models the DATA command:
+
+         
+         +---+   DATA    +---+ 1,2                 +---+
+         | B |---------->| W |-------------------->| E |
+         +---+           +---+        ------------>+---+
+                         3| |4,5     |
+                          | |        |
+            --------------   -----   |
+           |                      |  |             +---+
+           |               ----------     -------->| S |
+           |              |       |      |         +---+
+           |              |  ------------
+           |              | |     |
+           V           1,3| |2    |
+         +---+   data    +---+     --------------->+---+
+         |   |---------->| W |                     | F |
+         +---+           +---+-------------------->+---+
+                              4,5
+
+
+         Note that the "data" here are a series of lines sent from the
+         sender to the receiver with no response expected until the last
+         line is sent.
+
+
+4.6.  DETAILS
+
+4.6.1.  MINIMUM IMPLEMENTATION
+
+   In order to make SMTP workable, the following minimum
+   implementation is required for all receivers:
+
+      COMMANDS -- HELO
+                  VRFY
+                  MAIL
+                  RCPT
+                  DATA
+                  RSET
+                  NOOP
+                  QUIT
+
+Any system that includes an SMTP server that supports RCPT MUST
+support the reserved mailbox "Postmaster" as a case-insensitive
+mailbox name.  EHLO SHOULD be supported if possible.
+
+
+
+4.6.2.  TRANSPARENCY
+
+   Without some provision for data transparency the character
+   sequence "<CRLF>.<CRLF>" ends the mail text and cannot be sent
+   by the user.  In general, users are not aware of such
+   "forbidden" sequences.  To allow all user composed text to be
+   transmitted transparently the following procedures are used.
+
+      1. Before sending a line of mail text the SMTP client checks
+      the first character of the line.  If it is a period, one
+      additional period is inserted at the beginning of the line.
+
+      2. When a line of mail text is received by the SMTP server
+      it checks the line.  If the line is composed of a single
+      period it is the end of mail.  If the first character is a
+      period and there are other characters on the line, the first
+      character is deleted.
+
+   The mail data may contain any of the 128 ASCII characters.  All
+   characters are to be delivered to the recipient's mailbox
+   including format effectors and other control characters.  If
+   the transmission channel provides an 8-bit byte (octets) data
+   stream, the 7-bit ASCII codes are transmitted right justified
+   in the octets with the high order bits cleared to zero.
+
+      In some systems it may be necessary to transform the data as
+      it is received and stored.  This may be necessary for hosts
+      that use a different character set than ASCII as their local
+      character set, or that store data in records rather than
+      strings.  If such transforms are necessary, they must be
+      reversible -- especially if such transforms are applied to
+      mail being relayed.
+
+
+4.6.3.  SIZES AND TIMEOUTS
+
+There are several objects that have required minimum maximum
+sizes.  That is, every implementation must be able to receive
+objects of at least these sizes, but must not send objects
+larger than these sizes.
+
+
+****************************************************
+*                                                  *
+*  TO THE MAXIMUM EXTENT POSSIBLE, IMPLEMENTATION  *
+*  TECHNIQUES WHICH IMPOSE NO LIMITS ON THE LENGTH *
+*  OF THESE OBJECTS SHOULD BE USED.                *
+*                                                  *
+****************************************************
+
+user
+
+   The maximum total length of a user name is 64 characters.
+
+domain
+
+   The maximum total length of a domain name or number is 64
+   characters.
+
+path
+
+   The maximum total length of a reverse-path or
+   forward-path is 256 characters (including the punctuation
+   and element separators).
+
+command line
+
+   The maximum total length of a command line including the
+   command word and the <CRLF> is 512 characters.
+
+reply line
+
+   The maximum total length of a reply line including the
+   reply code and the <CRLF> is 512 characters.
+
+
+text line
+
+   The maximum total length of a text line including the
+   <CRLF> is 1000 characters (but not counting the leading
+   dot duplicated for transparency).  This number may be increased by
+   the use of SMTP Service Extensions.
+
+message body
+
+   The maximum total length of a message body (including any message
+   headers) MUST BE at least 64K octets.  Especially since the
+   introduction of multimedia mail [RFC-MIME], message lengths on the
+   Internet have grown dramatically, and message size restrictions
+   should be avoided if at all possible.  SMTP server systems that must
+   impose restrictions SHOULD implement the "SIZE" service extension
+   ([RFC-SIZE]) and SMTP client systems that will send large messages
+   SHOULD utilize it when possible.
+
+recipients buffer
+
+   The maximum total number of recipients that must be
+   buffered is 100 recipients.
+
+
+****************************************************
+*                                                  *
+*  TO THE MAXIMUM EXTENT POSSIBLE, IMPLEMENTATION  *
+*  TECHNIQUES WHICH IMPOSE NO LIMITS ON THE LENGTH *
+*  OF THESE OBJECTS SHOULD BE USED.                *
+*                                                  *
+****************************************************
+
+Errors due to exceeding these limits may be reported by using
+the reply codes, for example:
+
+500 Line too long.
+
+501 Path too long
+
+552 Too many recipients.
+
+552 Too much mail data.
+
+
+An SMTP client should provide timeouts for all commands.  Minimum
+values SHOULD be as follows:
+
+o    Initial 220 Message: 5 minutes
+
+     An SMTP client process needs to distinguish between a
+     failed TCP connection and a delay in receiving the initial
+     220 greeting message.  Many SMTP servers will accept a
+     TCP connection but delay delivery of the 220 message until
+     their system load will permit more mail to be processed.
+
+o    MAIL Command: 5 minutes
+
+
+o    RCPT Command: 5 minutes
+
+     A longer timeout would be required if processing of
+     mailing lists and aliases were not deferred until after
+     the message was accepted.
+
+o    DATA Initiation: 2 minutes
+
+     This is while awaiting the "354 Start Input" reply to a
+     DATA command.
+
+o    Data Block: 3 minutes
+
+     This is while awaiting the completion of each TCP SEND
+     call transmitting a chunk of data.
+
+o    DATA Termination: 10 minutes.
+
+     This is while awaiting the "250 OK" reply. When the
+     receiver gets the final period terminating the message
+     data, it typically performs processing to deliver the
+     message to a user mailbox.  A spurious timeout at this
+     point would be very wasteful, since the message has been
+     successfully sent.
+
+An SMTP server SHOULD have a timeout of at least 5 minutes
+while it is awaiting the next command from the sender.
+
+
+4.6.4   Queuing Strategies
+
+The common structure of a host SMTP implementation includes
+user mailboxes, one or more areas for queueing messages in
+transit, and one or more daemon processes for sending and
+receiving mail.  The exact structure will vary depending on the
+needs of the users on the host and the number and size of
+mailing lists supported by the host.  We describe several
+optimizations that have proved helpful, particularly for
+mailers supporting high traffic levels.
+
+Any queueing strategy MUST include:
+
+o    Timeouts on all activities on a per-command basis
+
+o    Never sending error messages in response to error messages.
+
+
+4.6.4.1 Sending Strategy
+
+   The general model of an SMTP client is one or more processes
+   that periodically attempt to transmit outgoing mail.  In a
+   typical system, the program that composes a message has some
+   method for requesting immediate attention for a new piece of
+   outgoing mail, while mail that cannot be transmitted
+   immediately MUST be queued and periodically retried by the
+   sender.  A mail queue entry will include not only the
+   message itself but also the envelope information.
+
+   The sender MUST delay retrying a particular destination
+   after one attempt has failed.  In general, the retry
+   interval SHOULD be at least 30 minutes; however, more
+   sophisticated and variable strategies will be beneficial
+   when the SMTP client can determine the reason for non-
+   delivery.
+
+   Retries continue until the message is transmitted or the
+   sender gives up; the give-up time generally needs to be at
+   least 4-5 days.  The parameters to the retry algorithm MUST
+   be configurable.
+
+   A sender SHOULD keep a list of hosts it cannot reach and
+   corresponding connection timeouts, rather than just retrying queued 
+   mail items.
+
+   DISCUSSION:
+        Experience suggests that failures are typically
+        transient (the target system has crashed), favoring a
+        policy of two connection attempts in the first hour the
+        message is in the queue, and then backing off to once
+        every two or three hours.
+
+        The SMTP client can shorten the queueing delay by
+        cooperation with the SMTP server.  In particular, if
+        mail is received from a particular address, it is good
+        evidence that any mail queued for that host can now be
+        sent.
+
+        The strategy may be further modified as a result of
+        multiple addresses per host (see Section ##5.??.??), to
+        optimize delivery time vs. resource usage.
+
+        an SMTP client may have a large queue of messages for
+        each unavailable destination host, and if it retried
+        all these messages in every retry cycle, there would be
+        excessive Internet overhead and the daemon would be
+        blocked for a long period.  Note that an SMTP can
+        generally determine that a delivery attempt has failed
+        only after a timeout of a minute or more; a one minute
+        timeout per connection will result in a very large
+        delay if it is repeated for dozens or even hundreds of
+        queued messages.
+
+   When the same message is to be delivered to several users on
+   the same host, only one copy of the message SHOULD be
+   transmitted.  That is, the SMTP client should use the
+   command sequence: RCPT, RCPT,... RCPT, DATA instead of the
+   sequence: RCPT, DATA, RCPT, DATA,... RCPT, DATA.
+   Implementation of this efficiency feature is strongly urged.
+
+   Similarly, the SMTP client MAY support multiple concurrent
+   outgoing mail transactions to achieve timely delivery.
+   However, some limit SHOULD be imposed to protect the host
+   from devoting all its resources to mail.
+
+4.6.4.2  Receiving strategy
+
+   The SMTP server SHOULD attempt to keep a pending listen on
+   the SMTP port at all times.  This will require the support
+   of multiple incoming TCP connections for SMTP.  Some limit
+   MAY be imposed.
+
+   IMPLEMENTATION:
+        When the SMTP server receives mail from a particular
+        host address, it could notify the SMTP client to retry
+        any mail pending for that host address.
+
+
+5. Address resolution and mail handling
+
+Once an SMTP client lexically identifies a domain to which mail is to
+be delivered for processing (as described in sections ##3.6 and
+##3.7), a DNS lookup is performed to resolve that domain name (see
+[RFC-DNS]).  The lookup first attempts to locate an MX record
+associated with that name.  If a CNAME record is found instead, the
+resulting name is processed as if it were the initial name.
+
+When the lookup succeeds, the mapping can result in a list of
+alternative delivery addresses rather than a single address, because
+of (a) multiple MX records, (b) multihoming, or both.  To provide
+reliable mail transmission, the SMTP client MUST be able to try (and
+retry) each of the addresses in this list in order, until a delivery
+attempt succeeds.  However, there MAY also be a configurable limit on
+the number of alternate addresses that can be tried.  In any case, a
+host SHOULD try at least two addresses.
+
+   The following information is to be used to rank the host
+   addresses:
+
+   (1)  Multiple MX Records -- these contain a preference
+       indication that should be used in sorting.  If there are
+       multiple destinations with the same preference and there
+       is no clear reason to favor one (e.g., by address
+       preference), then the sender-SMTP SHOULD pick one at
+       random to spread the load across multiple mail exchanges
+       for a specific organization; note that this is a
+       refinement of the procedure in [DNS:3].
+
+   (2)  Multihomed host -- The destination host (perhaps taken
+       from the preferred MX record) may be multihomed, in which
+       case the domain name resolver will return a list of
+       alternative IP addresses.  It is the responsibility of the
+       domain name resolver interface to have ordered this list by
+       decreasing preference, and SMTP MUST try them in the order
+       presented.
+
+   DISCUSSION:
+       Although the capability to try multiple alternative
+       addresses is required, there may be circumstances where
+       specific installations want to limit or disable the use of
+       alternative addresses.  The question of whether a sender
+       should attempt retries using the different addresses of a
+       multihomed host has been controversial.  The main argument
+       for using the multiple addresses is that it maximizes the
+       probability of timely delivery, and indeed sometimes the
+       probability of any delivery; the counter argument is that
+       it may result in unnecessary resource use.
+
+       Note that resource use is also strongly determined by the
+       sending strategy discussed in Section #??.??.??
+
+
+
+6. Problem detection and handling
+
+6.1 Replies by email
+
+  <<>>
+
+6.2 Loop detection
+
+Simple counting of the number of Received lines in a message has not
+proven to be a desirable method of detecting loops in mail systems,
+and SMTP servers SHOULD NOT use that technique.  Loop detection by
+examination of Received fields for the domain name or other signature
+of the SMTP server making the check is effective and MAY be used by
+SMTP servers.
+
+
+
+7.  Security Considerations
+
+7.1 Mail security and spoofing
+
+SMTP mail is inherently insecure in that it is feasible for even
+fairly casual users to negotiate directly with receiving and
+relaying SMTP servers and create messages that will trick a
+naive recipient into believing that they came from somewhere
+else.   Constructing such a message so that the "spoofed"
+behavior cannot be detected by an expert is somewhat more
+difficult, but not sufficiently so as to be a deterrent to
+someone who is determined and knowledgeable.
+
+Consequently, as knowledge of Internet mail increases, so does the
+knowledge that SMTP mail inherently cannot be authenticated, or
+integrity checks provided, at the transport level.  Real security
+lies only in end-to-end methods involving the message bodies, e.g.,
+those that can be provided in the MOSS framework [RFC-MOSS].
+
+A corollary to this is that efforts to make it more difficult
+for users to set envelope MAIL FROM and header "From" fields
+to point to valid addresses other than their own are largely
+misguided: they do not prevent any would-be mail spoofer from
+doing so, and do frustrate legitimate applications in which
+mail is sent by one user on behalf of another or in which
+error (or normal) replies should be directed to a special
+address.  On the other hand, systems that provide convenient
+ways for users to alter these fields on a per-message basis
+should attempt to establish a primary and permanent mailbox
+address for the user so that Sender fields can be generated
+correctly.
+
+This specification does not further address the security issues
+associated with SMTP other than to advocate that useful
+functionality not be disabled in the hope of providing some
+small margin of protection against an ignorant user who is
+trying to fake mail.
+
+
+
+7.2 "Blind" copies.
+
+Addresses may appear in the RCPT TO commands to an SMTP server
+that do not appear in the message headers for a number of
+reasons.  The two most common of these involve the use of a
+mailing address as a "list exploder" -- a single address that
+resolves into multiple addresses -- and the appearance of "blind
+copies".  In order to avoid defeating some of the purpose of
+these mechanisms, SMTP clients and servers SHOULD NOT copy the
+RCPT TO command arguments into the headers, even as
+informational or private-extension headers.  Since this rule is 
+often violated in practice, and cannot be enforced, sending SMTP
+systems that are aware of "bcc" use MAY find it helpful to send
+each blind copy as a separate message transaction containing
+only a single RCPT TO command.
+
+More generally, while there are often similarities, there is no
+inherent relationship between either "reverse" (MAIL FROM, SAML FROM,
+etc.) or "forward" (RCPT TO) addresses in the SMTP transaction
+("envelope") and the addresses in the headers.  Receiving systems
+SHOULD NOT attempt to deduce such relationships and use them to alter
+the headers of the message for delivery.  The popular "Apparently-to"
+header is a violation of this principle and SHOULD NOT be used.
+
+See also section ##2.2.4.
+
+\f
+8.  REFERENCES
+
+[1]  ASCII
+
+   ASCII, "USA Code for Information Interchange", United States of
+   America Standards Institute, X3.4, 1968.
+
+[RFC822]
+   Crocker, D., "Standard for the Format of ARPA Internet Text
+   Messages", RFC 822, Department of Electrical Engineering,
+   University of Delaware, August 1982.
+
+[3]  TCP
+   Postel, J., ed., "Transmission Control Protocol - DARPA Internet
+   Program Protocol Specification", RFC 793, USC/Information Sciences
+   Institute, NTIS AD Number A111091, September 1981.  Also in:
+   Feinler, E. and J. Postel, eds., "Internet Protocol Transition
+   Workbook", SRI International, Menlo Park, California, March 1982.
+
+[HEADER-PEOPLE]
+
+[RFC-DNS] P. Mockapetris, "Domain names - implementation and
+      specification", RFC 1035 and P. Mockapetris, "Domain names -
+      concepts and facilities", RFC 1034.  (STD 13)
+
+[RFC 974] C. Partridge, "Mail routing and the domain system",  
+      01/01/1986
+
+[SMTPEX]  J. Klensin, N. Freed, M. Rose, E. Stefferud, D.
+      Crocker, "SMTP Service Extensions", RFC-1869, 11/06/1995.
+
+[RFC-1123] R. Braden, "Requirements for Internet hosts -
+   application and support", 10/01/1989 
+
+[RFC-MOSS]  S. Crocker, N. Freed, J. Galvin, S. Murphy, "MIME Object
+   Security Services", RFC 1848, 10/03/1995.
+
+[RFC-POP2] M. Butler, D. Chase, J. Goldberger, J. Postel, J.
+     Reynolds, "Post Office Protocol - version 2", RFC 937,
+     02/01/1985
+
+[RFC-POP3]  J. Myers, M. Rose, "Post Office Protocol - Version 3",
+   RFC 1725, 11/23/1994. 
+
+[RFC-IMAP4] M. Crispin, "Internet Message Access Protocol
+   - Version 4", RFC 1730, 12/20/1994.
+
+[ABNF] Crocker, D., "Augmented BNF for Syntax Specifictions" (sic),
+   (in progress -- draft-ietf-drums-abnf-00.txt)
+
+
+9. Editor's Addresses
+
+ John C. Klensin
+ MCI Data Services
+ 800 Boylston St, 7th floor
+ Boston, MA 02199
+ USA
+   Email: Klensin@mci.net
+   Phone: +1 617 859 1011
+   Fax:   +1 617 859 1011
+
+
+10. Acknowledgements
+
+<<to be supplied>> 
+
+\f
+APPENDIX A
+
+TCP Transport service
+
+The Transmission Control Protocol [3] is used in the Internet, and in
+any network following the Internet standards for internetwork protocols.
+
+Connection Establishment
+
+   The SMTP transmission channel is a TCP connection established
+   between the sender process port U and the receiver process port
+   L.  This single full duplex connection is used as the
+   transmission channel.  This protocol is assigned the service
+   port 25 (31 octal), that is L=25.
+
+Data Transfer
+
+   The TCP connection supports the transmission of 8-bit bytes.
+   The SMTP data is 7-bit ASCII characters.  Each character is
+   transmitted as an 8-bit byte with the high-order bit cleared to
+   zero.
+
+\f
+APPENDIX B
+
+Generating SMTP commands from RFC 822 headers
+Some systems use RFC 822 headers (only) in a mail submission
+protocol, or otherwise generate SMTP commands from RFC 822 headers
+when such a message is handed to an MTA from a UA.  While the MTA-UA
+protocol is a private matter, not covered by any Internet Standard,
+there are problems with this approach.  For example, there have been
+repeated problems with proper handling of "bcc" copies and
+redistribution lists when information that conceptually belongs to a
+mail envelopes is not separated early in processing from header
+information (and kept separate).  
+
+It is recommended that the UA provide its initial MTA with an
+envelope separate from the message itself.  However, if the envelope
+is not supplied, SMTP commands should be generated as follows:
+
+(i) each recipient addresses from a TO, CC, or BCC header field
+should be copied to a RCPT command (generating multiple message
+copies if that is required for queuing or delivery).  This includes
+any addresses listed in a RFC 822 "group".  Any BCC fields should
+then be removed from the headers.  Once this process is completed,
+the remaining headers should be checked to verify that at least one
+To:, Cc:, or Bcc: header remains.  If none do, then a bcc: header
+with no additional information SHOULD be inserted (see section ##2.15
+above).
+
+(ii) the return address in the MAIL command should be derived from
+the system's identity for the submitting (local) user.  That return
+address should also be copied to the Sender header field if it is
+different from the address in the From header field.  (Any Sender
+field that was already there should be removed.)  Systems may provide
+a way for submitters to override the envelope return address, but may
+want to restrict its use to privileged users.  (This will not prevent
+mail forgery, but may lessen its incidence.)
+
+A submission protocol based on Standard RFC 822 information alone
+MUST NOT be used to gateway a message from a foreign (non-SMTP) mail
+system into an SMTP environment.  Additional information to construct
+an envelope must come from some source in the other environment,
+whether supplemental headers or the foreign system's envelope.
+
+Attempts to gateway messages using only their header "to" and "cc"
+fields, have repeatedly caused mail loops and other behavior adverse
+to the proper functioning of the Internet mail environment.  These
+problems have been especially common when the message originates from
+an Internet mailing list and is distributed into the foreign
+environment using envelope information.  When these messages are then
+processed by a header-only remailer, loops back to the Internet
+environment (and the mailing list) are almost inevitable.
+
+\f
+APPENDIX E
+
+Theory of Reply Codes
+
+The three digits of the reply each have a special significance.
+The first digit denotes whether the response is good, bad or
+incomplete.  An unsophisticated SMTP client will be able to
+determine its next action (proceed as planned, redo, retrench,
+etc.) by simply examining this first digit.  An SMTP client that
+wants to know approximately what kind of error occurred (e.g.,
+mail system error, command syntax error) may examine the second
+digit, reserving the third digit for the finest gradation of
+information.
+
+There are five values for the first digit of the reply code:
+
+  1yz   Positive Preliminary reply
+
+     The command has been accepted, but the requested action
+     is being held in abeyance, pending confirmation of the
+     information in this reply.  The SMTP client should send
+     another command specifying whether to continue or abort
+     the action.
+
+        [Note: SMTP does not have any commands that allow this
+        type of reply, and so does not have the continue or
+        abort commands.]
+
+  2yz   Positive Completion reply
+
+     The requested action has been successfully completed.  A
+     new request may be initiated.
+
+  3yz   Positive Intermediate reply
+
+     The command has been accepted, but the requested action
+     is being held in abeyance, pending receipt of further
+     information.  The SMTP client should send another command
+     specifying this information.  This reply is used in
+     command sequence groups.
+
+  4yz   Transient Negative Completion reply
+
+     The command was not accepted and the requested action did
+     not occur.  However, the error condition is temporary and
+     the action may be requested again.  The sender should
+     return to the beginning of the command sequence (if any).
+     It is difficult to assign a meaning to "transient" when
+     two different sites (receiver- and sender- SMTPs) must
+     agree on the interpretation.  Each reply in this category
+     might have a different time value, but the SMTP client is
+     encouraged to try again.  A rule of thumb to determine if
+     a reply fits into the 4yz or the 5yz category (see below)
+     is that replies are 4yz if they can be repeated without
+     any change in command form or in properties of the sender
+     or receiver.  (E.g., the command is repeated identically
+     and the receiver does not put up a new implementation.)
+
+  5yz   Permanent Negative Completion reply
+
+     The command was not accepted and the requested action did
+     not occur.  The SMTP client is discouraged from repeating
+     the exact request (in the same sequence).  Even some
+     "permanent" error conditions can be corrected, so the
+     human user may want to direct the SMTP client to
+     reinitiate the command sequence by direct action at some
+     point in the future (e.g., after the spelling has been
+     changed, or the user has altered the account status).
+
+The second digit encodes responses in specific categories:
+
+  x0z   Syntax -- These replies refer to syntax errors,
+        syntactically correct commands that don't fit any
+        functional category, and unimplemented or superfluous
+        commands.
+
+  x1z   Information --  These are replies to requests for
+        information, such as status or help.
+
+  x2z   Connections -- These are replies referring to the
+        transmission channel.
+
+  x3z   Unspecified as yet.
+
+  x4z   Unspecified as yet.
+
+  x5z   Mail system -- These replies indicate the status of
+        the receiver mail system vis-a-vis the requested
+        transfer or other mail system action.
+
+The third digit gives a finer gradation of meaning in each
+category specified by the second digit.  The list of replies
+illustrates this.  Each reply text is recommended rather than
+mandatory, and may even change according to the command with
+which it is associated.  On the other hand, the reply codes
+must strictly follow the specifications in this section.
+Receiver implementations should not invent new codes for
+slightly different situations from the ones described here, but
+rather adapt codes already defined.
+
+For example, a command such as NOOP whose successful execution
+does not offer the SMTP client any new information will return
+a 250 reply.  The response is 502 when the command requests an
+unimplemented non-site-specific action.  A refinement of that
+is the 504 reply for a command that is implemented, but that
+requests an unimplemented parameter.
+
+The reply text may be longer than a single line; in these cases
+the complete text must be marked so the SMTP client knows when it
+can stop reading the reply.  This requires a special format to
+indicate a multiple line reply.
+
+The format for multiline replies requires that every line,
+except the last, begin with the reply code, followed
+immediately by a hyphen, "-" (also known as minus), followed by
+text.  The last line will begin with the reply code, followed
+immediately by <SP>, optionally some text, and <CRLF>.
+
+  For example:
+                      123-First line
+                      123-Second line
+                      123-234 text beginning with numbers
+                      123 The last line
+
+In many cases the SMTP client then simply needs to search for
+the reply code followed by <SP> at the beginning of a line, and
+ignore all preceding lines.  In a few cases, there is important
+data for the sender in the reply "text".  The sender will know
+these cases from the current context.
+
+\f
+APPENDIX F
+
+Scenarios
+
+This section presents complete scenarios of several types of SMTP
+sessions.
+
+A Typical SMTP Transaction Scenario
+
+This SMTP example shows mail sent by Smith at host USC-ISIF, to
+Jones, Green, and Brown at host BBN-UNIX.  Here we assume that
+host USC-ISIF contacts host BBN-UNIX directly.  The mail is
+accepted for Jones and Brown.  Green does not have a mailbox at
+host BBN-UNIX.
+
+-------------------------------------------------------------
+
+   R: 220 BBN-UNIX.ARPA Simple Mail Transfer Service Ready
+   S: HELO USC-ISIF.ARPA
+   R: 250 BBN-UNIX.ARPA
+
+   S: MAIL FROM:<Smith@USC-ISIF.ARPA>
+   R: 250 OK
+
+   S: RCPT TO:<Jones@BBN-UNIX.ARPA>
+   R: 250 OK
+
+   S: RCPT TO:<Green@BBN-UNIX.ARPA>
+   R: 550 No such user here
+
+   S: RCPT TO:<Brown@BBN-UNIX.ARPA>
+   R: 250 OK
+
+   S: DATA
+   R: 354 Start mail input; end with <CRLF>.<CRLF>
+   S: Blah blah blah...
+   S: ...etc. etc. etc.
+   S: .
+   R: 250 OK
+
+   S: QUIT
+   R: 221 BBN-UNIX.ARPA Service closing transmission channel
+
+                         Scenario 1
+
+-------------------------------------------------------------
+
+
+
+
+
+Aborted SMTP Transaction Scenario
+
+-------------------------------------------------------------
+
+   R: 220 MIT-Multics.ARPA Simple Mail Transfer Service Ready
+   S: HELO ISI-VAXA.ARPA
+   R: 250 MIT-Multics.ARPA
+
+   S: MAIL FROM:<Smith@ISI-VAXA.ARPA>
+   R: 250 OK
+
+   S: RCPT TO:<Jones@MIT-Multics.ARPA>
+   R: 250 OK
+
+   S: RCPT TO:<Green@MIT-Multics.ARPA>
+   R: 550 No such user here
+
+   S: RSET
+   R: 250 OK
+
+   S: QUIT
+   R: 221 MIT-Multics.ARPA Service closing transmission channel
+
+                         Scenario 2
+
+-------------------------------------------------------------
+
+
+
+Relayed Mail Scenario
+
+-------------------------------------------------------------
+
+   Step 1  --  Source Host to Relay Host
+
+      R: 220 USC-ISIE.ARPA Simple Mail Transfer Service Ready
+      S: HELO MIT-AI.ARPA
+      R: 250 USC-ISIE.ARPA
+
+      S: MAIL FROM:<JQP@MIT-AI.ARPA>
+      R: 250 OK
+
+      S: RCPT TO:<@USC-ISIE.ARPA:Jones@BBN-VAX.ARPA>
+      R: 250 OK
+
+      S: DATA
+      R: 354 Start mail input; end with <CRLF>.<CRLF>
+      S: Date: 2 Nov 81 22:33:44
+      S: From: John Q. Public <JQP@MIT-AI.ARPA>
+      S: Subject:  The Next Meeting of the Board
+      S: To: Jones@BBN-Vax.ARPA
+      S:
+      S: Bill:
+      S: The next meeting of the board of directors will be
+      S: on Tuesday.
+      S:                                              John.
+      S: .
+      R: 250 OK
+
+      S: QUIT
+      R: 221 USC-ISIE.ARPA Service closing transmission channel
+
+
+   Step 2  --  Relay Host to Destination Host
+
+      R: 220 BBN-VAX.ARPA Simple Mail Transfer Service Ready
+      S: HELO USC-ISIE.ARPA
+      R: 250 BBN-VAX.ARPA
+
+      S: MAIL FROM:<@USC-ISIE.ARPA:JQP@MIT-AI.ARPA>
+      R: 250 OK
+
+      S: RCPT TO:<Jones@BBN-VAX.ARPA>
+      R: 250 OK
+
+      S: DATA
+      R: 354 Start mail input; end with <CRLF>.<CRLF>
+      S: Received: from MIT-AI.ARPA by USC-ISIE.ARPA ;
+         2 Nov 81 22:40:10 UT
+      S: Date: 2 Nov 81 22:33:44
+      S: From: John Q. Public <JQP@MIT-AI.ARPA>
+      S: Subject:  The Next Meeting of the Board
+      S: To: Jones@BBN-Vax.ARPA
+      S:
+      S: Bill:
+      S: The next meeting of the board of directors will be
+      S: on Tuesday.
+      S:                                              John.
+      S: .
+      R: 250 OK
+
+      S: QUIT
+      R: 221 USC-ISIE.ARPA Service closing transmission channel
+
+                         Scenario 3
+
+-------------------------------------------------------------
+
+
+
+
+Verifying and Sending Scenario
+
+-------------------------------------------------------------
+
+   R: 220 SU-SCORE.ARPA Simple Mail Transfer Service Ready
+   S: HELO MIT-MC.ARPA
+   R: 250 SU-SCORE.ARPA
+
+   S: VRFY Crispin
+   R: 250 Mark Crispin <Admin.MRC@SU-SCORE.ARPA>
+
+   S: SEND FROM:<EAK@MIT-MC.ARPA>
+   R: 250 OK
+
+   S: RCPT TO:<Admin.MRC@SU-SCORE.ARPA>
+   R: 250 OK
+
+   S: DATA
+   R: 354 Start mail input; end with <CRLF>.<CRLF>
+   S: Blah blah blah...
+   S: ...etc. etc. etc.
+   S: .
+   R: 250 OK
+
+   S: QUIT
+   R: 221 SU-SCORE.ARPA Service closing transmission channel
+
+                         Scenario 4
+
+-------------------------------------------------------------
+
+
+
+
+Mailing List Scenario
+
+First each of two mailing lists are expanded in separate sessions
+with different hosts.  Then the message is sent to everyone that
+appeared on either list (but no duplicates) via a relay host.
+
+-------------------------------------------------------------
+
+   Step 1  --  Expanding the First List
+
+      R: 220 MIT-AI.ARPA Simple Mail Transfer Service Ready
+      S: HELO SU-SCORE.ARPA
+      R: 250 MIT-AI.ARPA
+
+      S: EXPN Example-People
+      R: 250-<ABC@MIT-MC.ARPA>
+      R: 250-Fred Fonebone <Fonebone@USC-ISIQ.ARPA>
+      R: 250-Xenon Y. Zither <XYZ@MIT-AI.ARPA>
+      R: 250-Quincy Smith <@USC-ISIF.ARPA:Q-Smith@ISI-VAXA.ARPA>
+      R: 250-<joe@foo-unix.ARPA>
+      R: 250 <xyz@bar-unix.ARPA>
+
+      S: QUIT
+      R: 221 MIT-AI.ARPA Service closing transmission channel
+
+
+   Step 2  --  Expanding the Second List
+
+      R: 220 MIT-MC.ARPA Simple Mail Transfer Service Ready
+      S: HELO SU-SCORE.ARPA
+      R: 250 MIT-MC.ARPA
+
+      S: EXPN Interested-Parties
+      R: 250-Al Calico <ABC@MIT-MC.ARPA>
+      R: 250-<XYZ@MIT-AI.ARPA>
+      R: 250-Quincy Smith <@USC-ISIF.ARPA:Q-Smith@ISI-VAXA.ARPA>
+      R: 250-<fred@BBN-UNIX.ARPA>
+      R: 250 <xyz@bar-unix.ARPA>
+
+      S: QUIT
+      R: 221 MIT-MC.ARPA Service closing transmission channel
+
+
+   Step 3  --  Mailing to All via a Relay Host
+
+      R: 220 USC-ISIE.ARPA Simple Mail Transfer Service Ready
+      S: HELO SU-SCORE.ARPA
+      R: 250 USC-ISIE.ARPA
+
+      S: MAIL FROM:<Account.Person@SU-SCORE.ARPA>
+      R: 250 OK
+      S: RCPT TO:<@USC-ISIE.ARPA:ABC@MIT-MC.ARPA>
+      R: 250 OK
+      S: RCPT TO:<@USC-ISIE.ARPA:Fonebone@USC-ISIQA.ARPA>
+      R: 250 OK
+      S: RCPT TO:<@USC-ISIE.ARPA:XYZ@MIT-AI.ARPA>
+      R: 250 OK
+      S: RCPT
+          TO:<@USC-ISIE.ARPA,@USC-ISIF.ARPA:Q-Smith@ISI-VAXA.ARPA>
+      R: 250 OK
+      S: RCPT TO:<@USC-ISIE.ARPA:joe@FOO-UNIX.ARPA>
+      R: 250 OK
+      S: RCPT TO:<@USC-ISIE.ARPA:xyz@BAR-UNIX.ARPA>
+      R: 250 OK
+      S: RCPT TO:<@USC-ISIE.ARPA:fred@BBN-UNIX.ARPA>
+      R: 250 OK
+
+      S: DATA
+      R: 354 Start mail input; end with <CRLF>.<CRLF>
+      S: Blah blah blah...
+      S: ...etc. etc. etc.
+      S: .
+      R: 250 OK
+
+      S: QUIT
+      R: 221 USC-ISIE.ARPA Service closing transmission channel
+
+                         Scenario 7
+
+-------------------------------------------------------------
+
+
+
+Too Many Recipients Scenario
+
+-------------------------------------------------------------
+
+   R: 220 BERKELEY.ARPA Simple Mail Transfer Service Ready
+   S: HELO USC-ISIF.ARPA
+   R: 250 BERKELEY.ARPA
+
+   S: MAIL FROM:<Postel@USC-ISIF.ARPA>
+   R: 250 OK
+
+   S: RCPT TO:<fabry@BERKELEY.ARPA>
+   R: 250 OK
+
+   S: RCPT TO:<eric@BERKELEY.ARPA>
+   R: 552 Recipient storage full, try again in another transaction
+
+   S: DATA
+   R: 354 Start mail input; end with <CRLF>.<CRLF>
+   S: Blah blah blah...
+   S: ...etc. etc. etc.
+   S: .
+   R: 250 OK
+
+   S: MAIL FROM:<Postel@USC-ISIF.ARPA>
+   R: 250 OK
+
+   S: RCPT TO:<eric@BERKELEY.ARPA>
+   R: 250 OK
+
+   S: DATA
+   R: 354 Start mail input; end with <CRLF>.<CRLF>
+   S: Blah blah blah...
+   S: ...etc. etc. etc.
+   S: .
+   R: 250 OK
+
+   S: QUIT
+   R: 221 BERKELEY.ARPA Service closing transmission channel
+
+                        Scenario 10
+
+-------------------------------------------------------------
+
+Note that a real implementation must handle many recipients as
+specified in Section ##4.5.3.
+
+\f
+APPENDIX G  Other gateway issues.
+
+In general, gateways between the Internet and other mail systems
+SHOULD attempt to preserve any layering semantics across the
+boundaries between the two mail systems involved.  Gateway-
+translation approaches that attempt to take shortcuts by
+mapping, e.g., envelope information from one system to the
+message headers or body of another have generally proven to be
+inadequate in important ways.   Systems translating between
+environments that do not support both envelopes and headers and
+Internet mail must be written with the understanding that some
+information loss is almost inevitable.
+
+
+
+\f
+APPENDIX H  GLOSSARY
+
+ASCII
+
+American Standard Code for Information Interchange [1].
+
+command
+
+A request for a mail service action sent by the SMTP client to the
+SMTP server.
+
+domain
+
+The hierarchially structured global character string address of a
+host computer in the mail system.
+
+end of mail data indication
+
+A special sequence of characters that indicates the end of the
+mail data.  In particular, the five characters carriage return,
+line feed, period, carriage return, line feed, in that order.
+
+host
+
+A computer in the internetwork environment on which mailboxes or
+SMTP processes reside.
+
+line
+
+A a sequence of ASCII characters ending with a <CRLF>.
+
+mail data
+
+A sequence of ASCII characters of arbitrary length, which conforms
+to the standard set in the Standard for the Format of ARPA
+Internet Text Messages (RFC 822 [RFC822]).
+
+mailbox
+
+A character string (address) which identifies a user to whom mail
+is to be sent.  Mailbox normally consists of the host and user
+specifications.  The standard mailbox naming convention is defined
+to be "user@domain".  Additionally, the "container" in which mail
+is stored.
+
+
+SMTP server process
+
+A process which transfers mail in cooperation with an SMTP client
+process.  It waits for a connection to be established via the
+transport service.  It receives SMTP commands from the
+SMTP client, sends replies, and performs the specified operations.
+
+reply
+
+A reply is an acknowledgment (positive or negative) sent from
+receiver to sender via the transmission channel in response to a
+command.  The general form of a reply is a completion code
+(including error codes) followed by a text string.  The codes are
+for use by programs and the text is usually intended for human
+users.
+
+SMTP client process
+
+A process which transfers mail in cooperation with an SMTP server
+process.  A local language may be used in the user interface
+command/reply dialogue.  The SMTP client initiates the transport
+service connection.  It initiates SMTP commands, receives replies,
+and governs the transfer of mail.
+
+session
+
+The set of exchanges that occur while the transmission channel is
+open.
+
+transaction
+
+The set of exchanges required for one message to be transmitted
+for one or more recipients.
+
+transmission channel
+
+A full-duplex communication path between an SMTP client and a
+SMTP server for the exchange of commands, replies, and mail
+text.
+
+transport service
+
+Any reliable stream-oriented data communication services.  For
+example, NCP, TCP, NITS.
+
+
+user
+
+A human being (or a process on behalf of a human being) wishing to
+obtain mail transfer service.  In addition, a recipient of
+computer mail.
+
+word
+
+A sequence of printing characters.
+
+<CRLF>
+
+The characters carriage return and line feed (in that order).
+
+<SP>
+
+The space character.
+\f
+APPENDIX I: Deprecated features of RFC 821
+
+A few features of RFC 821 have proven to be problematic and should
+not be used in Internet mail.  These are:
+
+(1) TURN
+
+This command, described in RFC 821, raises important security
+issues (described in RFC 1123).  Its use is deprecated; SMTP
+systems SHOULD NOT use it unless the server can authenticate the
+client. 
+
+(2) Source routing
+
+RFC 821 utilized the concept of explicit source routing to get mail
+from one host to another via a series of relays.  The requirement to
+utilize source routes in regular mail traffic was eliminated by the
+introduction of the domain name system "MX" record and the last
+significant justification for them was eliminated by the
+introduction, in RFC 1123, of a clear requirement that addresses
+following an "@" must all be fully-qualified domain names.
+Consequently, the only remaining justifications for the use of source
+routes are support for very old SMTP clients or MUAs and in mail system
+debugging.  They can, however, still be useful in the latter
+circumstance and for routing mail around serious, but temporary,
+problems such as problems with the relevant DNS records.
+
+SMTP servers MUST continue to accept source route syntax as specified
+in the main body of this document and in RFC 1123.  They MAY, if
+necessary, ignore the routes and utilize only the target domain in
+the address.  If they do utilize the source route, the message MUST
+be sent to the first domain shown in the address.  In particular, a
+server MUST NOT guess at shortcuts within the source route.
+
+Clients SHOULD NOT utilize explicit source routing except under
+unusual circumstances, such as debugging or potentially relaying
+around firewall or mail system configuration errors.  
+
+(3) HELO
+
+As discussed in sections ##3.1 and ##4.1.1, EHLO is strongly
+preferred to HELO when the server will accept the former.  Servers
+must continue to accept HELO in order to support older clients.
+
+
+(4) #-literals
+
+RFC 821 provided for specifying an Internet address as a decimal
+integer host number prefixed by a pound sign, "#".  In practice, that
+form has been obsolete since the introduction of TCP/IP.  It is
+deprecated and MUST NOT be used.
+
+(5) Dates and years
+
+When dates are inserted into messages by SMTP clients or servers
+(e.g., in trace fields), four-digit years MUST BE used.  Two-digit
+years are deprecated; three-digit years were never permitted in the
+Internet mail system.
+
+(6) Sending versus mailing
+
+In addition to specifying a mechanism for delivering messages to
+user's mailboxes, RFC 821 provided additional, optional, commands to
+deliver messages directly to the user's terminal screen.
+These commands (SEND, SAML, SOML) were rarely implemented, and
+changes in workstation technology and the introduction of other
+protocols may have rendered them obsolete even where they are
+implemented. 
+
+Clients SHOULD NOT provide SEND, SAML, or SOML as services.  Servers
+MAY implement them.  If they are implemented by servers, the
+implementation model specified in RFC 821 MUST be used and the
+command names MUST be published in the response to the EHLO command.
+
+\f
+APPENDIX X: Change summary and Loose ends (temporary)
+
+X.1 Change summary
+
+X.1.1 Substantive changes between draft-ietf-drums-smtpupd-00.txt and
+draft-ietf-drums-smtpupd-01.txt 
+
+(i) Slightly clarified the discussions of rejection and failure of
+VRFY requests and the associated response codes.
+
+(ii) Slightly clarified the discussion of deferred address
+validation. 
+
+(iii) Removed the IPCE terminology and modified the text in section
+##4.1.1.2 to explicitly introduce the "mail gateway" terminology and
+to begin to distinguish a mail gateway from a conventional relay.
+**Please Review This Text**.
+
+(iv) Explicitly noted that SMTP clients for things like POP and IMAP
+may send everything to a single relay for further processing, rather
+than resolving final domain names.
+
+(v) Tightened the RSET discussion.
+
+(vi) Deprecation of 251 only for RCPT (still ok for VRFY)
+
+
+
+X.1.2.  Substantive changes between draft-ietf-drums-smtpupd-01.txt
+and draft-ietf-drums-smtpupd-02.txt.
+
+Incorporated additional RFC 1123 material; reorganized several
+sections for clarity.  Added definitions and other previous "loose
+end" material.
+
+
+X.2 Loose ends
+
+(i) Material in RFC1123, section 5.2.6, not yet fully incorporated.
+
+(ii) Are 5.3.3 and 5.3.4 of RFC1123 adequately incorporated?
+
+(iii) What needs to be done about RFC1123 5.3.6 and 5.3.7 and where
+should it/they go?
+
+(iv) The 822 BNF -> ABNF transition is not yet complete, and most of
+what has been done needs checking.
+
diff --git a/reports/rfc/draft-ietf-html-i18n-04.txt b/reports/rfc/draft-ietf-html-i18n-04.txt
new file mode 100644 (file)
index 0000000..0ba8309
--- /dev/null
@@ -0,0 +1,2296 @@
+
+
+
+Network Working Group                                       F. Yergeau
+Internet Draft                                                G. Nicol
+<draft-ietf-html-i18n-04.txt>                                 G. Adams
+Expires 2 December 1996                                      M. Duerst
+                                                           27 May 1996
+
+
+         Internationalization of the Hypertext Markup Language
+
+
+Status of this Memo
+
+   This document is an Internet-Draft.  Internet-Drafts are working doc-
+   uments of the Internet Engineering Task Force (IETF), its areas, and
+   its working groups. Note that other groups may also distribute work-
+   ing documents as Internet-Drafts.
+
+   Internet-Drafts are draft documents valid for a maximum of six
+   months. Internet-Drafts may be updated, replaced, or obsoleted by
+   other documents at any time.  It is not appropriate to use Internet-
+   Drafts as reference material or to cite them other than as a "working
+   draft" or "work in progress".
+
+   To learn the current status of any Internet-Draft, please check the
+   1id-abstracts.txt listing contained in the Internet-Drafts Shadow
+   Directories on ds.internic.net (US East Coast), nic.nordu.net
+   (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific
+   Rim).
+
+   Distribution of this document is unlimited.  Please send comments to
+   the HTML working group (HTML-WG) of the Internet Engineering Task
+   Force (IETF) at <html-wg@w3.org>. Subscription address is <html-wg-
+   request@w3.org>. Discussions of the group are archived at
+   <URL:http://www.acl.lanl.gov/HTML_WG/archives.html>.
+
+
+Abstract
+
+   The Hypertext Markup Language (HTML) is a simple markup language used
+   to create hypertext documents that are platform independent.  Ini-
+   tially, the application of HTML on the World Wide Web was seriously
+   restricted by its reliance on the ISO-8859-1 coded character set,
+   which is appropriate only for Western European languages.  Despite
+   this restriction, HTML has been widely used with other languages,
+   using other coded character sets or character encodings, at the
+   expense of interoperability.
+
+   This document is meant to address the issue of the
+
+
+
+                         Expires 2 December 1996        [Page 1]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   internationalization (i18n, i followed by 18 letters followed by n)
+   of HTML by extending the specification of HTML and giving additional
+   recommendations for proper internationalization support.  A foremost
+   consideration is to make sure that HTML remains a valid application
+   of SGML, while enabling its use in all languages of the world.
+
+
+Table of contents
+
+   1.  Introduction .................................................. 2
+     1.1. Scope ...................................................... 3
+     1.2. Conformance ................................................ 3
+   2. The document character set ..................................... 4
+     2.1. Reference processing model ................................. 4
+     2.2. The document character set ................................. 6
+     2.3. Undisplayable characters ................................... 8
+   3. The LANG attribute.............................................. 8
+   4. Additional entities, attributes and elements ................... 9
+     4.1. Full Latin-1 entity set .................................... 9
+     4.2. Markup for language-dependent presentation ................. 9
+   5. Forms ..........................................................15
+     5.1. DTD additions ..............................................15
+     5.2. Form submission ............................................15
+   6. Miscellaneous ..................................................17
+   7. HTML public text ...............................................18
+     7.1. HTML DTD ...................................................18
+     7.2. SGML declaration for HTML ..................................34
+     7.3. ISO Latin 1 character entity set ...........................35
+   Bibliography ......................................................38
+   Authors' Addresses ................................................40
+
+
+1.  Introduction
+
+   The Hypertext Markup Language (HTML) is a simple markup language used
+   to create hypertext documents that are platform independent.  Ini-
+   tially, the application of HTML on the World Wide Web was seriously
+   restricted by its reliance on the ISO-8859-1 coded character set,
+   which is appropriate only for Western European languages.  Despite
+   this restriction, HTML has been widely used with other languages,
+   using other coded character sets or character encodings, through var-
+   ious ad hoc extensions to the language [TAKADA].
+
+   This document is meant to address the issue of the internationaliza-
+   tion of HTML by extending the specification of HTML and giving addi-
+   tional recommendations for proper internationalization support.  It
+   is in good part based on a paper by one of the authors on multilin-
+   gualism on the WWW [NICOL].  A foremost consideration is to make sure
+
+
+
+                         Expires 2 December 1996        [Page 2]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   that HTML remains a valid application of SGML, while enabling its use
+   in all languages of the world.
+
+   The specific issues addressed are the SGML document character set to
+   be used for HTML, the proper treatment of the charset parameter asso-
+   ciated with the "text/html" content type and the specification of
+   some additional elements and entities.
+
+
+1.1 Scope
+
+   HTML has been in use by the World-Wide Web (WWW) global information
+   initiative since 1990.  This specification extends the capabilities
+   of HTML 2.0 (RFC 1866), primarily by removing the restriction to the
+   ISO-8859-1 coded character set [ISO-8859-1].
+
+   HTML is an application of ISO Standard 8879:1986, Information Pro-
+   cessing Text and Office Systems -- Standard Generalized Markup Lan-
+   guage (SGML) [ISO-8879]. The HTML Document Type Definition (DTD) is a
+   formal definition of the HTML syntax in terms of SGML.  This specifi-
+   cation amends the DTD of HTML in order to make it applicable to docu-
+   ments encompassing a character repertoire much larger than that of
+   ISO-8859-1, while still remaining SGML conformant.
+
+   Both formal and actual development of HTML are advancing very fast.
+   The features described in this document are designed so that they can
+   (and should) be added to other forms of HTML besides that described
+   in RFC 1866. Where indicated, attributes introduced here should be
+   extended to the appropriate elements.
+
+
+1.2 Conformance
+
+   This specification changes slightly the conformance requirements of
+   HTML documents and HTML user agents.
+
+1.2.1 Documents
+
+   All HTML 2.0 conforming documents remain conforming with this speci-
+   fication.  However, the extensions introduced here make valid cer-
+   tains documents that would not be HTML 2.0 conforming, in particular
+   those containing characters or character references outside of the
+   repertoire of ISO 8859-1, and those containing markup introduced
+   herein.
+
+
+
+
+
+
+
+                         Expires 2 December 1996        [Page 3]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+1.2.2. User agents
+
+   In addition to the requirements of RFC 1866, the following require-
+   ments are placed on HTML user agents.
+
+      To ensure interoperability and proper support for at least
+      ISO-8859-1 in an environment where character encoding schemes
+      other than ISO-8859-1 are present, user agents must correctly
+      interpret the charset parameter accompanying an HTML document
+      received from the network.
+
+      Furthermore, conforming user-agents are required to at least parse
+      correctly all numeric character references within the range of ISO
+      10646-1 [ISO-10646].
+
+      Conforming user-agents are required to apply the BIDI presentation
+      algorithm if they display right-to-left characters.  If there is
+      no displayable right-to-left character in a document, there is no
+      need to apply BIDI processing.
+
+2. The document character set
+
+2.1. Reference processing model
+
+   This overview explains a reference processing model used for HTML,
+   and in particular the SGML concept of a document character set. An
+   actual implementation may widely differ in its internal workings from
+   the model given below, but should behave as described to an outside
+   observer.
+
+   Because there are various widely differing encodings of text, SGML
+   does not directly address the question of how characters are encoded
+   e.g. in a file. SGML views the characters as a single set (called a
+   "character repertoire"), and a "code set" that assigns an integer
+   number (known as "character number") to each character in the reper-
+   toire.  The document character set declaration defines what each of
+   the character numbers represents [GOLD90, p. 451].  In most cases, an
+   SGML DTD and all documents that refer to it have a single document
+   character set, and all markup and data characters are part of this
+   set.
+
+   HTML, as an application of SGML, does not directly address the ques-
+   tion of how characters are encoded as octets in external representa-
+   tions such as files. This is deferred to mechanisms external to HTML,
+   such as MIME as used by the HTTP protocol or by electronic mail.
+
+   For the HTTP protocol [RFC1945], the way characters are encoded is
+
+
+
+
+                         Expires 2 December 1996        [Page 4]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   defined by the "charset" parameter[1] of the "Content-Type" field of
+   the header of an HTTP response. For example, to indicate that the
+   transmitted document is encoded in the "JIS" encoding of Japanese
+   [RFC1468], the header will contain the following line:
+
+   Content-Type: text/html; charset=ISO-2022-JP
+
+   The HTTP protocol also defines a mechanism for the client to specify
+   the character encodings it can accept. Clients and servers are
+   strongly requested to use these mechanisms to assure correct trans-
+   mission and interpretation of any document. Provisions that can be
+   taken to help correct interpretation, even in cases where a server or
+   client do not yet use these mechanisms, are described in section 6.
+
+   Similarly, if HTML documents are transferred by electronic mail, the
+   character encoding is defined by the "charset" parameter of the "Con-
+   tent-Type" MIME header line [RFC1521], and defaults to US-ASCII in
+   its absence.
+
+   In the case any other way of transferring and storing HTML documents
+   are defined or become popular, it is advised that similar provisions
+   be made to clearly identify the character encoding used and/or to use
+   a single/default encoding capable of representing the widest range of
+   characters used in an international context.
+
+   Whatever the external character encoding may be, the reference pro-
+   cessing model translates it to a representation of the document char-
+   acter set specified in Section 2.2 before processing specific to
+   SGML/HTML.  The reference processing model can be depicted as fol-
+   lows:
+
+     [resource]->[decoder]->[entity ]->[ SGML ]->[application]->[display]
+                            [manager]  [parser]
+                                ^          |
+                                |          |
+                                +----------+
+
+   The decoder is responsible for decoding the external representation
+   of the resource to a representation using the document character set.
+   The entity manager, the parser, and the application deal only with
+   characters of the document character set.  A display-oriented part of
+   the application or the display machinery itself may again convert
+-----------
+  1 The term "charset" in MIME is used to designate a char-
+acter encoding, rather than a coded character set as the
+term may suggest.  A character encoding is a mapping (possi-
+bly many-to-one) of a sequence of octets to a sequence of
+characters taken from one or more character repertoires.
+
+
+
+                         Expires 2 December 1996        [Page 5]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   characters represented in the document character set to some other
+   representation more suitable for their purpose. In any case, the
+   entity manager, the parser, and the application, as far as character
+   semantics are concerned, are using the HTML document character set
+   only.
+
+   An actual implementation may choose, or not, to translate the docu-
+   ment into some encoding of the document character set as described
+   above; the behaviour described by this reference processing model can
+   be achieved otherwise.  This subject is well out of the scope of this
+   specification, however, and the reader is invited to consult the SGML
+   standard [ISO-8879] or an SGML handbook [BRYAN88] [GOLD90] [VANH90]
+   [SQ91] for further information.
+
+   The most important consequence of this reference processing model is
+   that numeric character references are always resolved with respect to
+   the fixed document character set, and thus to the same characters,
+   whatever the external encoding actually used. For an example, see
+   Section 2.2.
+
+2.2. The document character set
+
+   The document character set, in the SGML sense, is the Universal Char-
+   acter Set (UCS) of ISO 10646:1993 [ISO-10646], as amended.  Cur-
+   rently, this is code-by-code identical with the Unicode standard,
+   version 1.1 [UNICODE].
+
+        NOTE -- implementers should be aware that ISO 10646 is
+        amended from time to time; 4 amendments have been adopted
+        since the initial 1993 publication, none of which signifi-
+        cantly affects this specification.  A fifth amendment, now
+        under consideration, will introduce incompatible changes to
+        the standard: 6556 Korean Hangul syllables allocated
+        between code positions 3400 and 4DFF (hexadecimal) will be
+        moved to new positions (and 4516 new syllables added), thus
+        making references to the old positions invalid.  Since the
+        Unicode consortium has already adopted a corresponding
+        amendment for inclusion in the forthcoming Unicode 2.0,
+        adoption of DAM 5 is considered likely and implementers
+        should probably consider the old code positions as already
+        invalid.  Despite this one-time change, the relevant stan-
+        dard bodies appear to remain committed not to change any
+        allocated code position in the future.  To encode Korean
+        Hangul irrespective of these changes, the combining Hangul
+        Jamo in the range 1110-11F9 can be used.
+
+   The adoption of this document character set implies a change in the
+   SGML declaration specified in the HTML 2.0 specification (section 9.5
+
+
+
+                         Expires 2 December 1996        [Page 6]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   of [RFC1866]).  The change amounts to removing the first BASESET
+   specification and its accompanying DESCSET declaration, replacing
+   them with the following declaration:
+
+     BASESET "ISO Registration Number 177//CHARSET
+              ISO/IEC 10646-1:1993 UCS-4 with implementation level 3
+              //ESC 2/5 2/15 4/6"
+     DESCSET  0   9     UNUSED
+              9   2     9
+              11  2     UNUSED
+              13  1     13
+              14  18    UNUSED
+              32  95    32
+              127 1     UNUSED
+              128 32    UNUSED
+              160 2147483486 160
+
+   Making the UCS the document character set does not create non-
+   conformance of any expression, construct or document that is conform-
+   ing to HTML 2.0.  It does make conforming certain constructs that are
+   not admissible in HTML 2.0.  One consequence is that data characters
+   outside the repertoire of ISO-8859-1, but within that of UCS-4 become
+   valid SGML characters.  Another is that the upper limit of the range
+   of numeric character references is extended from 255 to 2147483645;
+   thus, &#1048; is a valid reference to a "CYRILLIC CAPITAL LETTER I".
+   [ERCS] is a good source of information on Unicode and SGML, although
+   its scope and technical content differ greatly from this specifica-
+   tion.
+
+        NOTE -- the above SGML declaration, like that of HTML 2.0,
+        specifies the character numbers 128 to 159 (80 to 9F hex)
+        as UNUSED.  This means that numeric character references
+        within that range (e.g.  &#146;) are illegal in HTML.  Nei-
+        ther ISO 8859-1 nor ISO 10646 contain characters in that
+        range, which is reserved for control characters.
+
+   ISO 10646-1:1993 is the most encompassing character set currently
+   existing, and there is no other character set that could take its
+   place as the document character set for HTML. If nevertheless for a
+   specific application there is a need to use characters outside this
+   standard, this should be done by avoiding any conflicts with present
+   or future versions of ISO 10646, i.e. by assigning these characters
+   to a private zone. Also, it should be borne in mind that such a use
+   will be highly unportable; in many cases, it may be better to use
+   inline bitmaps.
+
+
+
+
+
+
+                         Expires 2 December 1996        [Page 7]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+2.3. Undisplayable characters
+
+   With the document character set being the full ISO 10646, the possi-
+   bility that a character cannot be displayed due to lack of appropri-
+   ate resources (fonts) cannot be avoided. Because there are many dif-
+   ferent things that can be done in such a case, this document does not
+   prescribe any specific behaviour. Depending on the implementation,
+   this may also be handled by the underlaying display system and not
+   the application itself.  The following considerations, however, may
+   be of help:
+
+   -  A clearly visible, but unobtrusive behaviour should be preferred.
+      Some documents may contain many characters that cannot be renden-
+      dered, and so showing an alert for each of them is not the right
+      thing to do.
+
+   -  In case a numeric representation of the missing character is
+      given, its hexadecimal (not decimal) form is to be preferred,
+      because this form is used in character set standards [ERCS].
+
+3. The LANG attribute
+
+   Language tags can be used to control rendering of a marked up docu-
+   ment in various ways: glyph disambiguation, in cases where the char-
+   acter encoding is not sufficient to resolve to a specific glyph; quo-
+   tation marks; hyphenation; ligatures; spacing; voice synthesis; etc.
+   Independently of rendering issues, language markup is useful as con-
+   tent markup for purposes such as classification and searching.
+
+   Since any text can logically be assigned a language, almost all HTML
+   elements admit the LANG attribute.  The DTD reflects this.  It is
+   also intended that any new element introduced in later versions of
+   HTML will admit the LANG attribute, unless there is a good reason not
+   to do so.
+
+   The language attribute, LANG, takes as its value a language tag that
+   identifies a natural language spoken, written, or otherwise conveyed
+   by human beings for communication of information to other human
+   beings. Computer languages are explicitly excluded.
+
+   The syntax and registry of HTML language tags is the same as that
+   defined by RFC 1766 [RFC1766]. In summary, a language tag is composed
+   of one or more parts: A primary language tag and a possibly empty
+   series of subtags:
+
+        language-tag  = primary-tag *( "-" subtag )
+        primary-tag   = 1*8ALPHA
+        subtag        = 1*8ALPHA
+
+
+
+                         Expires 2 December 1996        [Page 8]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   Whitespace is not allowed within the tag and all tags are case-
+   insensitive. The namespace of language tags is administered by the
+   IANA. Example tags include:
+
+       en, en-US, en-cockney, i-cherokee, x-pig-latin
+
+   In the context of HTML, a language tag is not to be interpreted as a
+   single token, as per RFC 1766, but as a hierarchy. For example, a
+   user agent that adjusts rendering according to language should con-
+   sider that it has a match when a language tag in a style sheet entry
+   matches the initial portion of the language tag of an element. An
+   exact match should be preferred. This interpretation allows an ele-
+   ment marked up as, for instance, "en-US" to trigger styles corre-
+   sponding to, in order of preference, US-English ("en-US") or 'plain'
+   or 'international' English ("en").
+
+        NOTE -- using the language tag as a hierarchy does not
+        imply that all languages with a common prefix will be
+        understood by those fluent in one or more of those lan-
+        guages; it simply allows the user to request this commonal-
+        ity when it is true for that user.
+
+   The rendering of elements may be affected by the LANG attribute.  For
+   any element, the value of the LANG attribute overrides the value
+   specified by the LANG attribute of any enclosing element and the
+   value (if any) of the HTTP Content-Language header. If none of these
+   are set, a suitable default, perhaps controlled by user preferences,
+   by automatic context analysis or by the user's locale, should be used
+   to control rendering.
+
+4. Additional entities, attributes and elements
+
+4.1. Full Latin-1 entity set
+
+   According to the suggestion of section 14 of [RFC1866], the set of
+   Latin-1 entities is extended to cover the whole right part of
+   ISO-8859-1 (all code positions with the high-order bit set), includ-
+   ing the already commonly used &nbsp;, &copy; and &reg;.  The names of
+   the entities are taken from the appendices of SGML [ISO-8879].  A
+   list is provided in section 7.3 of this specification.
+
+4.2. Markup for language-dependent presentation
+
+
+4.2.1. Overview
+
+   For the correct presentation of text in certain languages (irrespec-
+   tive of formatting issues), some support in the form of additional
+
+
+
+                         Expires 2 December 1996        [Page 9]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   entities and elements is needed.
+
+   In particular, the following features are dealt with:
+
+   -  Markup of bidirectional text, i.e. text where left-to-right and
+      right-to-left scripts are mixed.
+
+   -  Control of cursive joining behaviour in contexts where the default
+      behaviour is not appropriate.
+
+   -  Language-dependent rendering of short (in-line) quotations.
+
+   -  Better justification control for languages where this is impor-
+      tant.
+
+   -  Superscripts and subscripts for languages where they appear as
+      part of general text.
+
+   Some of the above features need very little additional support; oth-
+   ers need more. The additional features are introduced below with
+   brief comments only. Explanations on cursive joining behaviour and
+   bidirectional text follow later.  For cursive joining behaviour and
+   bidirectional text, this document follows [UNICODE] in that: i) char-
+   acter semantics, where applicable, are identical to [UNICODE], and
+   ii) where functionality is moved to HTML as a higher level protocol,
+   this is done in a way that allows straightforward conversion to the
+   lower-level mechanisms defined in [UNICODE].
+
+
+4.2.2. List of entities, elements, and attributes
+
+   First, a generic container is needed to carry the LANG and DIR (see
+   below) attributes in cases where no other element is appropriate; the
+   SPAN element is introduced for that purpose.
+
+   A set of named character entities is added for use with bidirectional
+   rendering and cursive joining control:
+
+   <!ENTITY zwnj CDATA "&#8204;"--=zero width non-joiner-->
+   <!ENTITY zwj  CDATA "&#8205;"--=zero width joiner-->
+   <!ENTITY lrm  CDATA "&#8206;"--=left-to-right mark-->
+   <!ENTITY rlm  CDATA "&#8207;"--=right-to-left mark-->
+
+   These entities can be used in place of the corresponding formatting
+   characters whenever convenient, for example to ease keyboard entry or
+   when a formatting character is not available in the character encod-
+   ing of the document.
+
+
+
+
+                         Expires 2 December 1996       [Page 10]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   Next, an attribute called DIR is introduced, restricted to the values
+   LTR (left-to-right) and RTL (right-to-left) and admitted by most ele-
+   ments, for the indication of directionality in the context of bidi-
+   rectional text (see 4.2.4 below for details).  Since any text and
+   many other elements (e.g. tables) can logically be assigned a direc-
+   tionality, almost all HTML elements admit the DIR attribute.  The DTD
+   reflects this.  It is also intended that any new element introduced
+   in later versions of HTML will admit the DIR attribute, unless there
+   is a good reason not to do so.
+
+   A new element called BDO (BIDI Override) is introduced, which
+   requires the DIR attribute to specify whether the override is left-
+   to-right or right-to-left.  This element is required for bidirec-
+   tional text control; for detailed explanations, see section 4.2.4.
+
+   The <Q> element is introduced to allow language-dependent rendering
+   of short quotations depending on language and platform capability.
+   As the following examples show, in particular the quotation marks
+   surrounding the quotation are affected: "a quotation in English",
+   `another, slightly better one', ,,a quotation in German'', << a quo-
+   tation in French >>.  The contents of the <Q> element does not
+   include quotation marks, they have to be added by the rendering pro-
+   cess.
+
+        NOTE -- <Q> elements can be nested. Many languages use dif-
+        ferent quotation styles for outer and inner quotations, and
+        this should be respected by user-agents implementing this
+        element.
+
+   Many languages require superscripts for proper rendering: as an exam-
+   ple, the French "Mlle Dupont" should have "lle" in superscript.  The
+   <SUP> element, and its sibling <SUB>, are introduced to allow proper
+   markup of such text.  <SUP> and <SUB> contents are restricted to
+   PCDATA to avoid nesting problems.
+
+   Finally, in many languages text justification is much more important
+   than it is in Western languages, and justifies markup.  The ALIGN
+   attribute, admitting values of LEFT, RIGHT, CENTER and JUSTIFY, is
+   added to a selection of elements where it makes sense (block-like).
+   If a user-agent chooses to have LEFT as a default for blocks of left-
+   to-right directionality, it should use RIGHT for blocks of right-to-
+   left directionality.
+
+   In the DTD, the LANG and DIR attributes are grouped together in a
+   parameter entity called attrs.  In addition, the ID and CLASS
+   attributes from RFC 1942 [RFC1942] were added to attrs, as was done
+   in the latter. The ID, and CLASS attributes are required for use with
+   style sheets, and RFC 1942 defines them as follows:
+
+
+
+                         Expires 2 December 1996       [Page 11]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   ID      Used to define a document-wide identifier. This can be used
+           for naming positions within documents as the destination of a
+           hypertext link. It may also be used by style sheets for ren-
+           dering an element in a unique style. An ID attribute value is
+           an SGML NAME token. NAME tokens are formed by an initial let-
+           ter followed by letters, digits, "-" and "." characters. The
+           letters are restricted to A-Z and a-z.
+
+   CLASS   A space separated list of SGML NAME tokens. CLASS names spec-
+           ify that the element belongs to the corresponding named
+           classes. It allows authors to distinguish different roles
+           played by the same tag. The classes may be used by style
+           sheets to provide different renderings as appropriate to
+           these roles.
+
+4.2.3. Cursive joining behaviour
+
+   Markup is needed in some cases to force cursive joining behavior in
+   contexts in which it would not normally occur, or to block it when it
+   would normally occur.
+
+   The zero-width joiner and non-joiner (&zwj; and &zwnj;) are used to
+   control cursive joining behaviour.  For example, ARABIC LETTER HEH is
+   used in isolation to abbreviate "Hijri" (the Islamic calendrical sys-
+   tem); however, the initial form of the letter is desired, because the
+   isolated form of HEH looks like the digit five as employed in Arabic
+   script.  This is obtained by following the HEH with a zero-width
+   joiner whose only effect is to provide context.  In Persian texts,
+   there are cases where a letter that normally would join a subsequent
+   letter in a cursive connection does not.  Here a zero-width non-
+   joiner is used.
+
+4.2.4. Bidirectional text
+
+   Many languages are written in horizontal lines from left to right,
+   while others are written from right to left.  When both writing
+   directions are present, one talks of bidirectional text (BIDI for
+   short). BIDI text requires markup in special circumstances where
+   ambiguities as to the directionality of some characters have to be
+   resolved.  This markup affects the ability to render BIDI text in a
+   semantically legible fashion.  That is, without this special BIDI
+   markup, cases arise which would prevent *any* rendering whatsoever
+   that reflected the basic meaning of the text. Plain text may contain
+   this markup (joining or BIDI) in the form of special-purpose charac-
+   ters; in HTML, these are supplemented by SGML markup.
+
+   BIDI is a complex issue, and implementers are advised to consult
+   appropriate documentation such as [UNICODE]. Here, explanations are
+
+
+
+                         Expires 2 December 1996       [Page 12]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   given only as far as they are needed to understand the necessity of
+   the features introduced and to define their exact semantics.
+
+   The Unicode BIDI algorithm is based on a logical sequence of text
+   characters and works mainly by reference to the implicit directional-
+   ity of characters (e.g. Hebrew and Arabic characters are specified to
+   be rendered from right to left, etc.).
+
+   The left-to-right and right-to-left marks (&lrm; and &rlm;) are used
+   to disambiguate directionality of neutral characters. For example,
+   when a double quote sits between an Arabic and a Latin letter, its
+   direction is ambiguous; if a directional mark is added on one side
+   such that the quotation mark is surrounded by characters of only one
+   directionality, the ambiguity is removed. These characters are like
+   zero width spaces which have a directional property (but no word/line
+   break property).
+
+   Nested embeddings of contra-directional text runs, due to nested quo-
+   tations or to the pasting of text from one BIDI context to another,
+   is also a case where the implicit directionality of characters is not
+   sufficient, requiring markup.  Also, it is frequently desirable to
+   specify the basic directionality of a block of text. For these pur-
+   poses, the DIR attribute is used.
+
+   On block-type elements, the DIR attribute indicates the base direc-
+   tionality of the text in the block; if omitted it is inherited from
+   the parent element.   The default directionality of the overall HTML
+   document is left-to-right.
+
+   On inline elements, it makes the element start a new embedding level
+   (to be explained below); if omitted the inline element does not start
+   a new embedding level.
+
+        NOTE -- the PRE, XMP and LISTING elements admit the DIR
+        attribute, indicating that the contents should not be con-
+        sidered as preformatted with respect to bidirectional lay-
+        out. The BIDI algorithm still needs to be applied to each
+        line of text.
+
+   Following is an example of a case where embedding is needed, showing
+   its effect:
+
+        Given the following latin (upper case) and arabic (lower
+        case) letters in backing store with the specified embed-
+        dings:
+
+        <SPAN DIR=LTR> AB <SPAN DIR=RTL> xy <SPAN DIR=LTR> CD
+        </SPAN> zw </SPAN> EF </SPAN>
+
+
+
+                         Expires 2 December 1996       [Page 13]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+        One gets the following rendering (with [] showing the
+        directional transitions):
+
+        [ AB [ wz [ CD ] yx ] EF ]
+
+        On the other hand, without this markup and with a base
+        direction of LTR one gets the following rendering:
+
+        [ AB [ yx ] CD [ wz ] EF ]
+
+        Notice that yx is on the left and wz on the right unlike
+        the above case where the embedding levels are used.  With-
+        out the embedding markup one has at most two levels: a base
+        directional level and a single counterflow directional
+        level.
+
+   The DIR attribute on inline elements is equivalent to the formatting
+   characters  LEFT-TO-RIGHT EMBEDDING (202A) and RIGHT-TO-LEFT EMBED-
+   DING (202B) of ISO 10646.  The end tag of the element is equivalent
+   to the POP DIRECTIONAL FORMATTING (202C) character.
+
+   Directional override, as provided by the <BDO> element, is needed to
+   deal with unusual short pieces of text in which directionality cannot
+   be resolved from context in an unambiguous fashion. For example, it
+   can be used to force left-to-right (or right-to-left) display of part
+   numbers composed of Latin letters, digits and Hebrew letters.
+
+   The effect of <BDO> is to force the directionality of all characters
+   within it to the value of DIR, irrespective of their intrinsic direc-
+   tional properties.  It is equivalent to using the LEFT-TO-RIGHT OVER-
+   RIDE (202D) or RIGHT-TO-LEFT OVERRIDE (202E) characters of ISO 10646,
+   the end tag again being equivalent to the POP DIRECTIONAL FORMATTING
+   (202C) character.
+
+        NOTE -- authors and authoring software writers should be
+        aware that conflicts can arise if the DIR attribute is used
+        on inline elements (including <BDO>) concurrently with the
+        use of the corresponding ISO 10646 formatting characters.
+        Preferably one or the other should be used exclusively; the
+        markup method is better able to guarantee document struc-
+        tural integrity, and alleviates some problems when editing
+        bidirectional HTML text with a simple text editor, but some
+        software may be more apt at using the 10646 characters.  If
+        both methods are used, great care should be exercised to
+        insure proper nesting of markup and directional embedding
+        or override; otherwise, rendering results are undefined.
+
+
+
+
+
+                         Expires 2 December 1996       [Page 14]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+5. Forms
+
+
+5.1. DTD additions
+
+   It is natural to expect input in any language in forms, as they pro-
+   vide one of the only ways of obtaining user input. While this is pri-
+   marily a UI issue, there are some things that should be specified at
+   the HTML level to guide behavior and promote interoperability.
+
+   To ensure full interoperability, it is necessary for the user agent
+   (and the user) to have an indication of the character encoding(s)
+   that the server providing a form will be able to handle upon submis-
+   sion of the filled-in form.  Such an indication is provided by the
+   ACCEPT-CHARSET attribute of the INPUT and TEXTAREA elements, modeled
+   on the HTTP Accept-Charset header (see [HTTP-1.1]), which contains a
+   space and/or comma delimited list of character sets acceptable to the
+   server.  A user agent may want to somehow advise the user of the con-
+   tents of this attribute, or to restrict his possibility to enter
+   characters outside the repertoires of the listed character sets.
+
+        NOTE -- The list of character sets is to be interpreted as
+        an EXCLUSIVE-OR list; the server announces that it is ready
+        to accept any ONE of these character encoding schemes for
+        each part of a multipart entity.  The client may perform
+        character encoding translation to satisfy the server if
+        necessary.
+
+        NOTE -- The default value for the ACCEPT-CHARSET attribute
+        of an INPUT or TEXTAREA element is the reserved value
+        "UNKNOWN".  A user agent may interpret that value as the
+        character encoding scheme that was used to transmit the
+        document containing that element.
+
+
+5.2. Form submission
+
+   The HTML 2.0 form submission mechanism, based on the "application/x-
+   www-form-urlencoded" media type, is ill-equipped with regard to
+   internationalization.  In fact, since URLs are restricted to ASCII
+   characters, the mechanism is akward even for ISO-8859-1 text.  Sec-
+   tion 2.2 of [RFC1738] specifies that octets may be encoded using the
+   "%HH" notation, but text submitted from a form is composed of charac-
+   ters, not octets.  Lacking a specification of a character encoding
+   scheme, the "%HH" notation has no well-defined meaning.
+
+   The best solution is to use the "multipart/form-data" media type
+   described in [RFC1867] with the POST method of form submission.  This
+
+
+
+                         Expires 2 December 1996       [Page 15]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   mechanism encapsulates the value part of each name-value pair in a
+   body-part of a multipart MIME body that is sent as the HTTP entity;
+   each body part can be labeled with an appropriate Content-Type,
+   including if necessary a charset parameter that specifies the charac-
+   ter encoding scheme.  The changes to the DTD necessary to support
+   this method of form submission have been incorporated in the DTD
+   included in this specification.
+
+   A less satisfactory solution is to add a MIME charset parameter to
+   the "application/x-www-form-urlencoded" media type specifier sent
+   along with a POST method form submission, with the understanding that
+   the URL encoding of [RFC1738] is applied on top of the specified
+   character encoding, as a kind of implicit Content-Transfer-Encoding.
+
+   One problem with both solutions above is that current browsers do not
+   generally allow for bookmarks to specify the POST method; this should
+   be improved.  Conversely, the GET method could be used with the form
+   data transmitted in the body instead of in the URL.  Nothing in the
+   protocol seems to prevent it, but no implementations appear to exist
+   at present.
+
+   How the user agent determines the encoding of the text entered by the
+   user is outside the scope of this specification.
+
+        NOTE -- Designers of forms and their handling scripts
+        should be aware of an important caveat: when the default
+        value of a field (the VALUE attribute) is returned upon
+        form submission (i.e. the user did not modify this value),
+        it cannot be guaranteed to be transmitted as a sequence of
+        octets identical to that in the source document -- only as
+        a possibly different but valid encoding of the same
+        sequence of text elements.  This may be true even if the
+        encoding of the document containing the form and that used
+        for submission are the same.
+
+        Differences can occur when a sequence of characters can be
+        represented by various sequences of octets, and also when a
+        composite sequence (a base character plus one or more com-
+        bining diacritics) can be represented by either a different
+        but equivalent composite sequence or by a fully precomposed
+        character. For instance, the UCS-2 sequence 00EA+0232
+        (LATIN SMALL LETTER E WITH CIRCUMFLEX ACCENT + COMBINING
+        DOT BELOW) may be transformed into 1EC7 (LATIN SMALL LETTER
+        E WITH CIRCUMFLEX ACCENT AND DOT BELOW), into
+        0065+0302+0323 (LATIN SMALL LETTER E + COMBINING CIRCUMFLEX
+        ACCENT + COMBINING DOT BELOW), as well as into other equiv-
+        alent composite sequences.
+
+
+
+
+                         Expires 2 December 1996       [Page 16]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+6. Miscellaneous
+
+   Proper interpretation of a text document requires that the character
+   encoding scheme be known.  Current HTTP servers, however, do not gen-
+   erally include an appropriate charset parameter with the Content-Type
+   header.  This is bad behaviour[2], and as such strongly discouraged,
+   but some preventive measures can be taken to minimize the detrimental
+   effects.
+
+   In the case where a document is accessed from a hyperlink in an ori-
+   gin HTML document, a CHARSET attribute is added to the attribute list
+   of elements with link semantics (A and LINK), specifically by adding
+   it to the linkExtraAttributes entity.  The value of that attribute is
+   to be considered a hint to the User Agent as to the character encod-
+   ing scheme used by the ressource pointed to by the hyperlink; it
+   should be the appropriate value of the MIME charset parameter for
+   that ressource.
+
+   In any document, it is possible to include an indication of the
+   encoding scheme like the following, as early as possible within the
+   HEAD of the document:
+
+    <META HTTP-EQUIV="Content-Type"
+     CONTENT="text/html; charset=ISO-2022-JP">
+
+   This is not foolproof, but will work if the encoding scheme is such
+   that ASCII characters stand for themselves at least until the META
+   element is parsed.  Note that there are better ways for a server to
+   obtain character encoding information, instead of the unreliable
+   <META> above; see [NICOL2] for some details and a proposal.
+
+   For definiteness, the "charset" parameter received from the source of
+   the document should be considered the most authoritative, followed in
+   order of preference by the contents of a META element such as the
+   above, and finally the CHARSET parameter of the anchor that was fol-
+   lowed (if any).
+
+   When HTML text is transmitted directly in UCS-2 or UCS-4 form, the
+   question of byte order arises: does the high-order byte of each
+   multi-byte character come first or last?  For definiteness, this
+   specification recommends that UCS-2 and UCS-4 be transmitted in big-
+-----------
+  2 This bad behaviour is even encouraged by the continued
+existence of browsers that declare an unrecognized media
+type when they receive a charset parameter.  User agent
+implementators are strongly encouraged to make their soft-
+ware tolerant of this parameter, even if they cannot take
+advantage of it.
+
+
+
+                         Expires 2 December 1996       [Page 17]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   endian byte order (high order byte first), which corresponds to the
+   established network byte order for two- and four-byte quantities, to
+   the Unicode recommendation for serialized text data and to RFC 1641.
+   Furthermore, to maximize chances of proper interpretation, it is rec-
+   ommended that documents transmitted as UCS-2 or UCS-4 always begin
+   with a ZERO-WIDTH NON-BREAKING SPACE character (hexadecimal FEFF or
+   0000FEFF) which, when byte-reversed becomes number FFFE or FFFE0000,
+   a character guaranteed to be never assigned.  Thus, a user-agent
+   receiving an FFFE as the first octets of a text would know that bytes
+   have to be reversed for the remainder of the text.
+
+   There exist so-called UCS Transformation Formats than can be used to
+   transmit UCS data, in addition to UCS-2 and UCS-4.  UTF-7 [RFC1642]
+   and UTF-8 [UTF-8] have favorable properties (no byte-ordering prob-
+   lem, different flavours of ASCII compatibility) that make them worthy
+   of consideration, especially for transmission of multilingual text.
+   Another encoding scheme, MNEM [RFC1345], also has interesting proper-
+   ties and the capability to transmit the full UCS.  The UTF-1 trans-
+   formation format of ISO 10646:1993 (registered by IANA as
+   ISO-10646-UTF-1), has been removed from ISO 10646 by amendment 4, and
+   should not be used.
+
+   The SOFT HYPHEN character (U+00AD) needs a little attention from
+   user-agent implementers.  It is present in many character sets
+   (including the whole ISO 8859 series and, of course, ISO 10646), and
+   has semantics different from the plain HYPHEN.  If not used for
+   hyphenation, the soft hyphen must be completely ignored.  For exam-
+   ple, "rec&shy;ord" should display as "record", should match a search
+   for "record", and should sort as "record".  Non-observance of these
+   semantics effectively discourages its use on the World Wide Web, even
+   with software that does support it.
+
+7. HTML Public Text
+
+7.1. HTML DTD
+
+   This section contains a DTD for HTML based on the HTML 2.0 DTD of RFC
+   1866, incorporating the changes for file upload as specified in RFC
+   1867, and the changes deriving from this document.
+
+   <!--    html.dtd
+
+           Document Type Definition for the HyperText Markup Language,
+           extended for internationalisation (HTML DTD)
+
+           Last revised: 96/05/27
+
+        Authors: Daniel W. Connolly <connolly@w3.org>
+
+
+
+                         Expires 2 December 1996       [Page 18]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+                    Francois Yergeau <yergeau@alis.com>
+        See Also: html.decl, html-1.dtd
+          http://www.w3.org/hypertext/WWW/MarkUp/MarkUp.html
+   -->
+
+   <!ENTITY % HTML.Version
+           "-//IETF//DTD HTML//EN"
+
+           -- Typical usage:
+
+               <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+               <html>
+               ...
+               </html>
+           --
+           >
+
+
+   <!--============ Feature Test Entities ========================-->
+
+   <!ENTITY % HTML.Recommended "IGNORE"
+        -- Certain features of the language are necessary for
+           compatibility with widespread usage, but they may
+           compromise the structural integrity of a document.
+           This feature test entity enables a more prescriptive
+           document type definition that eliminates
+           those features.
+        -->
+
+   <![ %HTML.Recommended [
+           <!ENTITY % HTML.Deprecated "IGNORE">
+   ]]>
+
+   <!ENTITY % HTML.Deprecated "INCLUDE"
+        -- Certain features of the language are necessary for
+           compatibility with earlier versions of the specification,
+           but they tend to be used and implemented inconsistently,
+           and their use is deprecated. This feature test entity
+           enables a document type definition that eliminates
+           these features.
+        -->
+
+   <!ENTITY % HTML.Highlighting "INCLUDE"
+        -- Use this feature test entity to validate that a
+           document uses no highlighting tags, which may be
+           ignored on minimal implementations.
+        -->
+
+
+
+
+                         Expires 2 December 1996       [Page 19]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   <!ENTITY % HTML.Forms "INCLUDE"
+           -- Use this feature test entity to validate that a document
+              contains no forms, which may not be supported in minimal
+              implementations
+           -->
+
+   <!--============== Imported Names ==============================-->
+
+   <!ENTITY % Content-Type "CDATA"
+           -- meaning an internet media type
+              (aka MIME content type, as per RFC1521)
+           -->
+
+   <!ENTITY % HTTP-Method "GET | POST"
+           -- as per HTTP specification, RFC1945
+           -->
+
+   <!--========= DTD "Macros" =====================-->
+
+   <!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+   <!ENTITY % list " UL | OL | DIR | MENU " >
+
+   <!ENTITY % attrs -- common attributes for elements --
+            "LANG  NAME      #IMPLIED  -- RFC 1766 language tag --
+             DIR  (ltr|rtl)  #IMPLIED  -- text directionnality --
+             ID      ID      #IMPLIED  -- element identifier (from RFC1942) --
+             CLASS   NAMES   #IMPLIED  -- for subclassing elements (from RFC1942) --">
+
+   <!ENTITY % just -- an attribute for text justification --
+            "ALIGN  (left|right|center|justify)  #IMPLIED"
+            -- default is left for ltr paragraphs, right for rtl -- >
+
+   <!--======= Character mnemonic entities =================-->
+
+   <!ENTITY % ISOlat1 PUBLIC
+     "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">
+   %ISOlat1;
+
+   <!ENTITY amp CDATA "&#38;"     -- ampersand          -->
+   <!ENTITY gt CDATA "&#62;"      -- greater than       -->
+   <!ENTITY lt CDATA "&#60;"      -- less than          -->
+   <!ENTITY quot CDATA "&#34;"    -- double quote       -->
+
+   <!--Entities for language-dependent presentation (BIDI and contextual analysis) -->
+   <!ENTITY zwnj CDATA "&#8204;"-- zero width non-joiner-->
+   <!ENTITY zwj  CDATA "&#8205;"-- zero width joiner-->
+   <!ENTITY lrm  CDATA "&#8206;"-- left-to-right mark-->
+
+
+
+                         Expires 2 December 1996       [Page 20]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   <!ENTITY rlm  CDATA "&#8207;"-- right-to-left mark-->
+
+
+   <!--========= SGML Document Access (SDA) Parameter Entities =====-->
+
+   <!-- HTML contains SGML Document Access (SDA) fixed attributes
+   in support of easy transformation to the International Committee
+   for Accessible Document Design (ICADD) DTD
+         "-//EC-USA-CDA/ICADD//DTD ICADD22//EN".
+   ICADD applications are designed to support usable access to
+   structured information by print-impaired individuals through
+   Braille, large print and voice synthesis.  For more information on
+   SDA & ICADD:
+           - ISO 12083:1993, Annex A.8, Facilities for Braille,
+          large print and computer voice
+           - ICADD ListServ
+          <ICADD%ASUACAD.BITNET@ARIZVM1.ccit.arizona.edu>
+           - Usenet news group bit.listserv.easi
+           - Recording for the Blind, +1 800 221 4792
+   -->
+
+   <!ENTITY % SDAFORM  "SDAFORM  CDATA  #FIXED"
+          -- one to one mapping        -->
+   <!ENTITY % SDARULE  "SDARULE  CDATA  #FIXED"
+          -- context-sensitive mapping -->
+   <!ENTITY % SDAPREF  "SDAPREF  CDATA  #FIXED"
+          -- generated text prefix     -->
+   <!ENTITY % SDASUFF  "SDASUFF  CDATA  #FIXED"
+          -- generated text suffix     -->
+   <!ENTITY % SDASUSP  "SDASUSP  NAME   #FIXED"
+          -- suspend transform process -->
+
+
+   <!--========== Text Markup =====================-->
+
+   <![ %HTML.Highlighting [
+
+   <!ENTITY % font " TT | B | I ">
+
+   <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE ">
+
+   <!ENTITY % text "#PCDATA|A|IMG|BR|%phrase|%font|SPAN|Q|BDO|SUP|SUB">
+
+   <!ELEMENT (%font;|%phrase) - - (%text)*>
+   <!ATTLIST ( TT | CODE | SAMP | KBD | VAR )
+           %attrs;
+           %SDAFORM; "Lit"
+           >
+
+
+
+                         Expires 2 December 1996       [Page 21]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   <!ATTLIST ( B | STRONG )
+           %attrs;
+           %SDAFORM; "B"
+           >
+   <!ATTLIST ( I | EM | CITE )
+           %attrs;
+           %SDAFORM; "It"
+           >
+
+   <!-- <TT>       Typewriter text                         -->
+   <!-- <B>        Bold text                               -->
+   <!-- <I>        Italic text                             -->
+
+   <!-- <EM>       Emphasized phrase                       -->
+   <!-- <STRONG>   Strong emphasis                         -->
+   <!-- <CODE>     Source code phrase                      -->
+   <!-- <SAMP>     Sample text or characters               -->
+   <!-- <KBD>      Keyboard phrase, e.g. user input        -->
+   <!-- <VAR>      Variable phrase or substitutable        -->
+   <!-- <CITE>     Name or title of cited work             -->
+
+   <!ENTITY % pre.content "#PCDATA|A|HR|BR|%font|%phrase|SPAN|BDO">
+
+   ]]>
+
+   <!ENTITY % text "#PCDATA|A|IMG|BR|SPAN|Q|BDO|SUP|SUB">
+
+   <!ELEMENT BR    - O EMPTY>
+   <!ATTLIST BR
+           %SDAPREF; "&#RE;"
+           >
+
+   <!-- <BR>       Line break      -->
+
+   <!ELEMENT SPAN - - (%text)*>
+   <!ATTLIST SPAN
+           %attrs;
+           %SDAFORM; "other #Attlist"
+   >
+
+   <!-- <SPAN>             Generic inline container  -->
+   <!-- <SPAN DIR=...>     New counterflow embedding -->
+   <!-- <SPAN LANG="...">  Language of contents      -->
+
+   <!ELEMENT Q - - (%text)*>
+   <!ATTLIST Q
+           %attrs;
+           %SDAPREF; '"'
+
+
+
+                         Expires 2 December 1996       [Page 22]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+           %SDASUFF; '"'
+           >
+
+   <!-- <Q>         Short quotation              -->
+   <!-- <Q LANG=xx> Language of quotation is xx  -->
+   <!-- <Q DIR=...> New conterflow embedding     -->
+
+   <!ELEMENT BDO - - (%text)+>
+   <!ATTLIST BDO
+           LANG   NAME      #IMPLIED
+           DIR    (ltr|rtl) #REQUIRED
+           %SDAPREF "Bidi Override #Attval(DIR): "
+           %SDASUFF "End Bidi"
+           >
+
+   <!-- <BDO DIR=...>   Override directionality of text to value of DIR -->
+   <!-- <BDO LANG=...>  Language of contents                            -->
+
+   <!ELEMENT (SUP|SUB) - - (#PCDATA)>
+   <!ATTLIST (SUP)
+           %attrs;
+           %SDAPREF "Superscript(#content)"
+           >
+   <!ATTLIST (SUB)
+           %attrs;
+           %SDAPREF "Subscript(#content)"
+           >
+
+   <!-- <SUP>      Superscript              -->
+   <!-- <SUB>      Subscript                -->
+
+   <!--========= Link Markup ======================-->
+
+   <!ENTITY % linkType "NAMES">
+
+   <!ENTITY % linkExtraAttributes
+           "REL %linkType #IMPLIED
+           REV %linkType #IMPLIED
+           URN CDATA #IMPLIED
+           TITLE CDATA #IMPLIED
+           METHODS NAMES #IMPLIED
+           CHARSET NAME #IMPLIED
+           ">
+
+   <![ %HTML.Recommended [
+           <!ENTITY % A.content   "(%text)*"
+           -- <H1><a name="xxx">Heading</a></H1>
+                   is preferred to
+
+
+
+                         Expires 2 December 1996       [Page 23]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+              <a name="xxx"><H1>Heading</H1></a>
+           -->
+   ]]>
+
+   <!ENTITY % A.content   "(%heading|%text)*">
+
+   <!ELEMENT A     - - %A.content -(A)>
+   <!ATTLIST A
+           %attrs;
+           HREF CDATA #IMPLIED
+           NAME CDATA #IMPLIED
+           %linkExtraAttributes;
+           %SDAPREF; "<Anchor: #AttList>"
+           >
+   <!-- <A>       Anchor; source/destination of link -->
+   <!-- <A NAME="..."> Name of this anchor           -->
+   <!-- <A HREF="..."> Address of link destination        -->
+   <!-- <A URN="...">  Permanent address of destination   -->
+   <!-- <A REL=...>    Relationship to destination        -->
+   <!-- <A REV=...>    Relationship of destination to this     -->
+   <!-- <A TITLE="...">     Title of destination (advisory)         -->
+   <!-- <A METHODS="...">   Operations on destination (advisory)    -->
+   <!-- <A CHARSET="...">   Charset of destination (advisory)  -->
+   <!-- <A LANG="...">     Language of contents btw <A> and </A>   -->
+   <!-- <A DIR=...>        Contents is a new counterflow embedding -->
+
+   <!--========== Images ==========================-->
+
+   <!ELEMENT IMG    - O EMPTY>
+   <!ATTLIST IMG
+           %attrs;
+           SRC CDATA  #REQUIRED
+           ALT CDATA #IMPLIED
+           ALIGN (top|middle|bottom) #IMPLIED
+           ISMAP (ISMAP) #IMPLIED
+           %SDAPREF; "<Fig><?SDATrans Img: #AttList>#AttVal(Alt)</Fig>"
+           >
+
+   <!-- <IMG>              Image; icon, glyph or illustration      -->
+   <!-- <IMG SRC="...">    Address of image object                 -->
+   <!-- <IMG ALT="...">    Textual alternative                     -->
+   <!-- <IMG ALIGN=...>    Position relative to text               -->
+   <!-- <IMG LANG=...>     Image contains "text" in that language  -->
+   <!-- <IMG DIR=rtl>      Inline image acts as a right-to-left
+                           embedding w/r to BIDI algorithm         -->
+   <!-- <IMG ISMAP>        Each pixel can be a link                -->
+
+   <!--========== Paragraphs=======================-->
+
+
+
+                         Expires 2 December 1996       [Page 24]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   <!ELEMENT P     - O (%text)*>
+   <!ATTLIST P
+           %attrs;
+           %just;
+           %SDAFORM; "Para"
+           >
+
+   <!-- <P>             Paragraph                           -->
+   <!-- <P LANG="...">  Language of paragraph text          -->
+   <!-- <P DIR=...>     Base directionality of paragraph    -->
+   <!-- <P ALIGN=...>   Paragraph alignment (justification) -->
+
+   <!--========== Headings, Titles, Sections ===============-->
+
+   <!ELEMENT HR    - O EMPTY>
+   <!ATTLIST HR
+           %just;
+           %SDAPREF; "&#RE;&#RE;"
+           >
+
+   <!-- <HR>       Horizontal rule -->
+
+   <!ELEMENT ( %heading )  - -  (%text;)*>
+   <!ATTLIST H1
+           %attrs;
+           %just;
+           %SDAFORM; "H1"
+           >
+   <!ATTLIST H2
+           %attrs;
+           %just;
+           %SDAFORM; "H2"
+           >
+   <!ATTLIST H3
+           %attrs;
+           %just;
+           %SDAFORM; "H3"
+           >
+   <!ATTLIST H4
+           %attrs;
+           %just;
+           %SDAFORM; "H4"
+           >
+   <!ATTLIST H5
+           %attrs;
+           %just;
+           %SDAFORM; "H5"
+           >
+
+
+
+                         Expires 2 December 1996       [Page 25]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   <!ATTLIST H6
+           %attrs;
+           %just;
+           %SDAFORM; "H6"
+           >
+
+   <!-- <H1>       Heading, level 1 -->
+   <!-- <H2>       Heading, level 2 -->
+   <!-- <H3>       Heading, level 3 -->
+   <!-- <H4>       Heading, level 4 -->
+   <!-- <H5>       Heading, level 5 -->
+   <!-- <H6>       Heading, level 6 -->
+
+
+   <!--========== Text Flows ======================-->
+
+   <![ %HTML.Forms [
+           <!ENTITY % block.forms "BLOCKQUOTE | FORM | ISINDEX">
+   ]]>
+
+   <!ENTITY % block.forms "BLOCKQUOTE">
+
+   <![ %HTML.Deprecated [
+           <!ENTITY % preformatted "PRE | XMP | LISTING">
+   ]]>
+
+   <!ENTITY % preformatted "PRE">
+
+   <!ENTITY % block "P | %list | DL
+           | %preformatted
+           | %block.forms">
+
+   <!ENTITY % flow "(%text|%block)*">
+
+   <!ENTITY % pre.content "#PCDATA | A | HR | BR | SPAN | BDO">
+   <!ELEMENT PRE - - (%pre.content)*>
+   <!ATTLIST PRE
+           %attrs;
+           WIDTH NUMBER #implied
+           %SDAFORM; "Lit"
+           >
+
+   <!-- <PRE>              Preformatted text                    -->
+   <!-- <PRE WIDTH=...>    Maximum characters per line          -->
+   <!-- <PRE DIR=...>      Base direction of preformatted block -->
+   <!-- <PRE LANG=...>     Language of contents                 -->
+
+   <![ %HTML.Deprecated [
+
+
+
+                         Expires 2 December 1996       [Page 26]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   <!ENTITY % literal "CDATA"
+           -- historical, non-conforming parsing mode where
+              the only markup signal is the end tag
+              in full
+           -->
+
+   <!ELEMENT (XMP|LISTING) - -  %literal>
+   <!ATTLIST XMP
+           %attrs;
+           %SDAFORM; "Lit"
+           %SDAPREF; "Example:&#RE;"
+           >
+   <!ATTLIST LISTING
+           %attrs;
+           %SDAFORM; "Lit"
+           %SDAPREF; "Listing:&#RE;"
+           >
+
+   <!-- <XMP>              Example section         -->
+   <!-- <LISTING>          Computer listing        -->
+
+   <!ELEMENT PLAINTEXT - O %literal>
+   <!-- <PLAINTEXT>        Plain text passage      -->
+
+   <!ATTLIST PLAINTEXT
+           %attrs;
+           %SDAFORM; "Lit"
+           >
+   ]]>
+
+
+   <!--========== Lists ==================-->
+
+   <!ELEMENT DL    - -  (DT | DD)+>
+   <!ATTLIST DL
+           %attrs;
+           COMPACT (COMPACT) #IMPLIED
+           %SDAFORM; "List"
+           %SDAPREF; "Definition List:"
+           >
+
+   <!ELEMENT DT    - O (%text)*>
+   <!ATTLIST DT
+           %attrs;
+           %SDAFORM; "Term"
+           >
+
+   <!ELEMENT DD    - O %flow>
+
+
+
+                         Expires 2 December 1996       [Page 27]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   <!ATTLIST DD
+           %attrs;
+           %SDAFORM; "LItem"
+           >
+
+   <!-- <DL>               Definition list, or glossary    -->
+   <!-- <DL COMPACT>       Compact style list              -->
+   <!-- <DT>               Term in definition list         -->
+   <!-- <DD>               Definition of term              -->
+
+   <!ELEMENT (OL|UL) - -  (LI)+>
+   <!ATTLIST OL
+           %attrs;
+           %just;
+           COMPACT (COMPACT) #IMPLIED
+           %SDAFORM; "List"
+           >
+   <!ATTLIST UL
+           %attrs;
+           %just;
+           COMPACT (COMPACT) #IMPLIED
+           %SDAFORM; "List"
+           >
+   <!-- <UL>               Unordered list                  -->
+   <!-- <UL COMPACT>       Compact list style              -->
+   <!-- <OL>               Ordered, or numbered list       -->
+   <!-- <OL COMPACT>       Compact list style              -->
+
+
+   <!ELEMENT (DIR|MENU) - -  (LI)+ -(%block)>
+   <!ATTLIST DIR
+           %attrs;
+           %just;
+           COMPACT (COMPACT) #IMPLIED
+           %SDAFORM; "List"
+           %SDAPREF; "<LHead>Directory</LHead>"
+           >
+   <!ATTLIST MENU
+           %attrs;
+           %just;
+           COMPACT (COMPACT) #IMPLIED
+           %SDAFORM; "List"
+           %SDAPREF; "<LHead>Menu</LHead>"
+           >
+
+   <!-- <DIR>              Directory list                  -->
+   <!-- <DIR COMPACT>      Compact list style              -->
+   <!-- <MENU>             Menu list                       -->
+
+
+
+                         Expires 2 December 1996       [Page 28]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   <!-- <MENU COMPACT>     Compact list style              -->
+
+   <!ELEMENT LI    - O %flow>
+   <!ATTLIST LI
+           %attrs;
+           %just;
+           %SDAFORM; "LItem"
+           >
+
+   <!-- <LI>               List item                       -->
+
+   <!--========== Document Body ===================-->
+
+   <![ %HTML.Recommended [
+        <!ENTITY % body.content "(%heading|%block|HR|ADDRESS|IMG)*"
+        -- <h1>Heading</h1>
+           <p>Text ...
+             is preferred to
+           <h1>Heading</h1>
+           Text ...
+        -->
+   ]]>
+
+   <!ENTITY % body.content "(%heading | %text | %block |
+                        HR | ADDRESS)*">
+
+   <!ELEMENT BODY O O  %body.content>
+   <!ATTLIST BODY
+           %attrs;
+           >
+
+   <!-- <BODY>          Document body                -->
+   <!-- <BODY DIR=...>  Base direction of whole body -->
+   <!-- <BODY LANG=...> Language of contents         -->
+
+   <!ELEMENT BLOCKQUOTE - - %body.content>
+   <!ATTLIST BLOCKQUOTE
+           %attrs;
+           %just;
+           %SDAFORM; "BQ"
+           >
+
+   <!-- <BLOCKQUOTE>       Quoted passage  -->
+
+   <!ELEMENT ADDRESS - - (%text|P)*>
+   <!ATTLIST  ADDRESS
+           %attrs;
+           %just;
+
+
+
+                         Expires 2 December 1996       [Page 29]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+           %SDAFORM; "Lit"
+           %SDAPREF; "Address:&#RE;"
+           >
+
+   <!-- <ADDRESS> Address, signature, or byline -->
+
+
+   <!--======= Forms ====================-->
+
+   <![ %HTML.Forms [
+
+   <!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)>
+   <!ATTLIST FORM
+           %attrs;
+           ACTION CDATA #IMPLIED
+           METHOD (%HTTP-Method) GET
+           ENCTYPE %Content-Type; "application/x-www-form-urlencoded"
+           %SDAPREF; "<Para>Form:</Para>"
+           %SDASUFF; "<Para>Form End.</Para>"
+           >
+
+   <!-- <FORM>                     Fill-out or data-entry form     -->
+   <!-- <FORM ACTION="...">        Address for completed form      -->
+   <!-- <FORM METHOD=...>          Method of submitting form       -->
+   <!-- <FORM ENCTYPE="...">       Representation of form data     -->
+   <!-- <FORM DIR=...>             Base direction of form          -->
+   <!-- <FORM LANG=...>            Language of contents            -->
+
+   <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX |
+                           RADIO | SUBMIT | RESET |
+                           IMAGE | HIDDEN | FILE )">
+   <!ELEMENT INPUT - O EMPTY>
+   <!ATTLIST INPUT
+           %attrs;
+        TYPE %InputType TEXT
+        NAME CDATA #IMPLIED
+        VALUE CDATA #IMPLIED
+        SRC CDATA #IMPLIED
+        CHECKED (CHECKED) #IMPLIED
+        SIZE CDATA #IMPLIED
+        MAXLENGTH NUMBER #IMPLIED
+        ALIGN (top|middle|bottom) #IMPLIED
+           ACCEPT CDATA #IMPLIED --list of content types --
+           ACCEPT-CHARSET CDATA #IMPLIED --list of charsets accepted by server --
+           %SDAPREF; "Input: "
+        >
+
+   <!-- <INPUT>               Form input datum        -->
+
+
+
+                         Expires 2 December 1996       [Page 30]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   <!-- <INPUT TYPE=...>           Type of input interaction    -->
+   <!-- <INPUT NAME=...>           Name of form datum           -->
+   <!-- <INPUT VALUE="...">   Default/initial/selected value -->
+   <!-- <INPUT SRC="...">          Address of image        -->
+   <!-- <INPUT CHECKED>            Initial state is "on"        -->
+   <!-- <INPUT SIZE=...>           Field size hint         -->
+   <!-- <INPUT MAXLENGTH=...>      Data length maximum          -->
+   <!-- <INPUT ALIGN=...>          Image alignment         -->
+   <!-- <INPUT ACCEPT="...">         List of desired media types    -->
+   <!-- <INPUT ACCEPT-CHARSET="..."> List of acceptable charsets    -->
+
+   <!ELEMENT SELECT - - (OPTION+) -(INPUT|SELECT|TEXTAREA)>
+   <!ATTLIST SELECT
+           %attrs;
+           NAME CDATA #REQUIRED
+           SIZE NUMBER #IMPLIED
+           MULTIPLE (MULTIPLE) #IMPLIED
+           %SDAFORM; "List"
+           %SDAPREF;
+           "<LHead>Select #AttVal(Multiple)</LHead>"
+        >
+
+   <!-- <SELECT>            Selection of option(s)        -->
+   <!-- <SELECT NAME=...>        Name of form datum       -->
+   <!-- <SELECT SIZE=...>        Options displayed at a time   -->
+   <!-- <SELECT MULTIPLE>        Multiple selections allowed   -->
+
+   <!ELEMENT OPTION - O (#PCDATA)*>
+   <!ATTLIST OPTION
+           %attrs;
+           SELECTED (SELECTED) #IMPLIED
+           VALUE CDATA #IMPLIED
+           %SDAFORM; "LItem"
+           %SDAPREF;
+           "Option: #AttVal(Value) #AttVal(Selected)"
+        >
+
+   <!-- <OPTION>            A selection option       -->
+   <!-- <OPTION SELECTED>        Initial state            -->
+   <!-- <OPTION VALUE="...">     Form datum value for this option-->
+
+   <!ELEMENT TEXTAREA - - (#PCDATA)* -(INPUT|SELECT|TEXTAREA)>
+   <!ATTLIST TEXTAREA
+           %attrs;
+           NAME CDATA #REQUIRED
+           ROWS NUMBER #REQUIRED
+           COLS NUMBER #REQUIRED
+           ACCEPT-CHARSET CDATA #IMPLIED -- list of charsets accepted by server --
+
+
+
+                         Expires 2 December 1996       [Page 31]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+           %SDAFORM; "Para"
+           %SDAPREF; "Input Text -- #AttVal(Name): "
+           >
+
+   <!-- <TEXTAREA>               An area for text input        -->
+   <!-- <TEXTAREA NAME=...> Name of form datum       -->
+   <!-- <TEXTAREA ROWS=...> Height of area           -->
+   <!-- <TEXTAREA COLS=...> Width of area            -->
+
+   ]]>
+
+
+   <!--======= Document Head ======================-->
+
+   <![ %HTML.Recommended [
+        <!ENTITY % head.extra "">
+   ]]>
+   <!ENTITY % head.extra "& NEXTID?">
+
+   <!ENTITY % head.content "TITLE & ISINDEX? & BASE? %head.extra">
+
+   <!ELEMENT HEAD O O  (%head.content) +(META|LINK)>
+   <!ATTLIST HEAD
+           %attrs;           >
+
+   <!-- <HEAD>     Document head   -->
+
+   <!ELEMENT TITLE - -  (#PCDATA)*  -(META|LINK)>
+   <!ATTLIST TITLE
+           %attrs;
+           %SDAFORM; "Ti"    >
+
+   <!-- <TITLE>    Title of document -->
+
+   <!ELEMENT LINK - O EMPTY>
+   <!ATTLIST LINK
+           %attrs;
+           HREF CDATA #REQUIRED
+           %linkExtraAttributes;
+           %SDAPREF; "Linked to : #AttVal (TITLE) (URN) (HREF)>"    >
+
+   <!-- <LINK>         Link from this document            -->
+   <!-- <LINK HREF="...">   Address of link destination        -->
+   <!-- <LINK URN="...">    Lasting name of destination        -->
+   <!-- <LINK REL=...> Relationship to destination        -->
+   <!-- <LINK REV=...> Relationship of destination to this     -->
+   <!-- <LINK TITLE="...">  Title of destination (advisory)         -->
+   <!-- <LINK CHARSET="..."> Charset of destination (advisory)      -->
+
+
+
+                         Expires 2 December 1996       [Page 32]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   <!-- <LINK METHODS="..."> Operations allowed (advisory)          -->
+
+   <!ELEMENT ISINDEX - O EMPTY>
+   <!ATTLIST ISINDEX
+           %attrs;
+           %SDAPREF;
+      "<Para>[Document is indexed/searchable.]</Para>">
+
+   <!-- <ISINDEX>          Document is a searchable index          -->
+
+   <!ELEMENT BASE - O EMPTY>
+   <!ATTLIST BASE
+           HREF CDATA #REQUIRED     >
+
+   <!-- <BASE>             Base context document                   -->
+   <!-- <BASE HREF="...">  Address for this document               -->
+
+   <!ELEMENT NEXTID - O EMPTY>
+   <!ATTLIST NEXTID
+           N CDATA #REQUIRED     >
+
+   <!-- <NEXTID>       Next ID to use for link name       -->
+   <!-- <NEXTID N=...> Next ID to use for link name       -->
+
+   <!ELEMENT META - O EMPTY>
+   <!ATTLIST META
+           HTTP-EQUIV  NAME    #IMPLIED
+           NAME        NAME    #IMPLIED
+           CONTENT     CDATA   #REQUIRED    >
+
+   <!-- <META>                     Generic Meta-information        -->
+   <!-- <META HTTP-EQUIV=...>      HTTP response header name       -->
+   <!-- <META NAME=...>          Meta-information name           -->
+   <!-- <META CONTENT="...">       Associated information          -->
+
+   <!--======= Document Structure =================-->
+
+   <![ %HTML.Deprecated [
+           <!ENTITY % html.content "HEAD, BODY, PLAINTEXT?">
+   ]]>
+   <!ENTITY % html.content "HEAD, BODY">
+
+   <!ELEMENT HTML O O  (%html.content)>
+   <!ENTITY % version.attr "VERSION CDATA #FIXED '%HTML.Version;'">
+
+   <!ATTLIST HTML
+           %attrs;
+           %version.attr;
+
+
+
+                         Expires 2 December 1996       [Page 33]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+           %SDAFORM; "Book"
+           >
+
+   <!-- <HTML>              HTML Document  -->
+
+
+7.2. SGML Declaration for HTML
+
+   <!SGML  "ISO 8879:1986"
+   --
+        SGML Declaration for HyperText Markup Language version 2.x
+           (HTML 2.x = HTML 2.0 + i18n).
+
+   --
+
+   CHARSET
+            BASESET  "ISO Registration Number 177//CHARSET
+                      ISO/IEC 10646-1:1993 UCS-4 with
+                      implementation level 3//ESC 2/5 2/15 4/6"
+            DESCSET  0   9     UNUSED
+                     9   2     9
+                     11  2     UNUSED
+                     13  1     13
+                     14  18    UNUSED
+                     32  95    32
+                     127 1     UNUSED
+                     128 32    UNUSED
+                     160 2147483486 160
+
+   CAPACITY        SGMLREF
+                   TOTALCAP        150000
+                   GRPCAP          150000
+             ENTCAP         150000
+
+   SCOPE    DOCUMENT
+   SYNTAX
+            SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+              17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127
+            BASESET  "ISO 646:1983//CHARSET
+                      International Reference Version
+                      (IRV)//ESC 2/5 4/0"
+            DESCSET  0 128 0
+
+            FUNCTION
+                     RE            13
+                     RS            10
+                     SPACE         32
+                     TAB SEPCHAR    9
+
+
+
+                         Expires 2 December 1996       [Page 34]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+            NAMING   LCNMSTRT ""
+                     UCNMSTRT ""
+                     LCNMCHAR ".-"
+                     UCNMCHAR ".-"
+                     NAMECASE GENERAL YES
+                              ENTITY  NO
+            DELIM    GENERAL  SGMLREF
+                     SHORTREF SGMLREF
+            NAMES    SGMLREF
+            QUANTITY SGMLREF
+                     ATTSPLEN 2100
+                     LITLEN   1024
+                     NAMELEN  72    -- somewhat arbitrary; taken from
+                                   internet line length conventions --
+                     PILEN    1024
+                     TAGLVL   100
+                     TAGLEN   2100
+                     GRPGTCNT 150
+                     GRPCNT   64
+
+   FEATURES
+     MINIMIZE
+       DATATAG  NO
+       OMITTAG  YES
+       RANK     NO
+       SHORTTAG YES
+     LINK
+       SIMPLE   NO
+       IMPLICIT NO
+       EXPLICIT NO
+     OTHER
+       CONCUR   NO
+       SUBDOC   NO
+       FORMAL   YES
+     APPINFO    "SDA"  -- conforming SGML Document Access application
+                 --
+   >
+
+
+7.3. ISO Latin 1 entity set
+
+   The following public text lists each of the characters specified in
+   the Added Latin 1 entity set, along with its name, syntax for use,
+   and description. This list is derived from ISO Standard
+   8879:1986//ENTITIES Added Latin 1//EN. HTML includes the entire
+   entity set, and adds entities for all missing characters in the right
+   part of ISO-8859-1.
+
+
+
+
+                         Expires 2 December 1996       [Page 35]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+    <!-- (C) International Organization for Standardization 1986
+         Permission to copy in any form is granted for use with
+         conforming SGML systems and applications as defined in
+         ISO 8879, provided this notice is included in all copies.
+      -->
+    <!-- Character entity set. Typical invocation:
+         <!ENTITY % ISOlat1 PUBLIC
+           "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">
+         %ISOlat1;
+      -->
+    <!ENTITY nbsp   CDATA "&#160;" -- no-break space -->
+    <!ENTITY iexcl  CDATA "&#161;" -- inverted exclamation mark -->
+    <!ENTITY cent   CDATA "&#162;" -- cent sign -->
+    <!ENTITY pound  CDATA "&#163;" -- pound sterling sign -->
+    <!ENTITY curren CDATA "&#164;" -- general currency sign -->
+    <!ENTITY yen    CDATA "&#165;" -- yen sign -->
+    <!ENTITY brvbar CDATA "&#166;" -- broken (vertical) bar -->
+    <!ENTITY sect   CDATA "&#167;" -- section sign -->
+    <!ENTITY uml    CDATA "&#168;" -- umlaut (dieresis) -->
+    <!ENTITY copy   CDATA "&#169;" -- copyright sign -->
+    <!ENTITY ordf   CDATA "&#170;" -- ordinal indicator, feminine -->
+    <!ENTITY laquo  CDATA "&#171;" -- angle quotation mark, left -->
+    <!ENTITY not    CDATA "&#172;" -- not sign -->
+    <!ENTITY shy    CDATA "&#173;" -- soft hyphen -->
+    <!ENTITY reg    CDATA "&#174;" -- registered sign -->
+    <!ENTITY macr   CDATA "&#175;" -- macron -->
+    <!ENTITY deg    CDATA "&#176;" -- degree sign -->
+    <!ENTITY plusmn CDATA "&#177;" -- plus-or-minus sign -->
+    <!ENTITY sup2   CDATA "&#178;" -- superscript two -->
+    <!ENTITY sup3   CDATA "&#179;" -- superscript three -->
+    <!ENTITY acute  CDATA "&#180;" -- acute accent -->
+    <!ENTITY micro  CDATA "&#181;" -- micro sign -->
+    <!ENTITY para   CDATA "&#182;" -- pilcrow (paragraph sign) -->
+    <!ENTITY middot CDATA "&#183;" -- middle dot -->
+    <!ENTITY cedil  CDATA "&#184;" -- cedilla -->
+    <!ENTITY sup1   CDATA "&#185;" -- superscript one -->
+    <!ENTITY ordm   CDATA "&#186;" -- ordinal indicator, masculine -->
+    <!ENTITY raquo  CDATA "&#187;" -- angle quotation mark, right -->
+    <!ENTITY frac14 CDATA "&#188;" -- fraction one-quarter -->
+    <!ENTITY frac12 CDATA "&#189;" -- fraction one-half -->
+    <!ENTITY frac34 CDATA "&#190;" -- fraction three-quarters -->
+    <!ENTITY iquest CDATA "&#191;" -- inverted question mark -->
+    <!ENTITY Agrave CDATA "&#192;" -- capital A, grave accent -->
+    <!ENTITY Aacute CDATA "&#193;" -- capital A, acute accent -->
+    <!ENTITY Acirc  CDATA "&#194;" -- capital A, circumflex accent -->
+    <!ENTITY Atilde CDATA "&#195;" -- capital A, tilde -->
+    <!ENTITY Auml   CDATA "&#196;" -- capital A, dieresis or umlaut mark -->
+    <!ENTITY Aring  CDATA "&#197;" -- capital A, ring -->
+
+
+
+                         Expires 2 December 1996       [Page 36]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+    <!ENTITY AElig  CDATA "&#198;" -- capital AE diphthong (ligature) -->
+    <!ENTITY Ccedil CDATA "&#199;" -- capital C, cedilla -->
+    <!ENTITY Egrave CDATA "&#200;" -- capital E, grave accent -->
+    <!ENTITY Eacute CDATA "&#201;" -- capital E, acute accent -->
+    <!ENTITY Ecirc  CDATA "&#202;" -- capital E, circumflex accent -->
+    <!ENTITY Euml   CDATA "&#203;" -- capital E, dieresis or umlaut mark -->
+    <!ENTITY Igrave CDATA "&#204;" -- capital I, grave accent -->
+    <!ENTITY Iacute CDATA "&#205;" -- capital I, acute accent -->
+    <!ENTITY Icirc  CDATA "&#206;" -- capital I, circumflex accent -->
+    <!ENTITY Iuml   CDATA "&#207;" -- capital I, dieresis or umlaut mark -->
+    <!ENTITY ETH    CDATA "&#208;" -- capital Eth, Icelandic -->
+    <!ENTITY Ntilde CDATA "&#209;" -- capital N, tilde -->
+    <!ENTITY Ograve CDATA "&#210;" -- capital O, grave accent -->
+    <!ENTITY Oacute CDATA "&#211;" -- capital O, acute accent -->
+    <!ENTITY Ocirc  CDATA "&#212;" -- capital O, circumflex accent -->
+    <!ENTITY Otilde CDATA "&#213;" -- capital O, tilde -->
+    <!ENTITY Ouml   CDATA "&#214;" -- capital O, dieresis or umlaut mark -->
+    <!ENTITY times  CDATA "&#215;" -- multiply sign -->
+    <!ENTITY Oslash CDATA "&#216;" -- capital O, slash -->
+    <!ENTITY Ugrave CDATA "&#217;" -- capital U, grave accent -->
+    <!ENTITY Uacute CDATA "&#218;" -- capital U, acute accent -->
+    <!ENTITY Ucirc  CDATA "&#219;" -- capital U, circumflex accent -->
+    <!ENTITY Uuml   CDATA "&#220;" -- capital U, dieresis or umlaut mark -->
+    <!ENTITY Yacute CDATA "&#221;" -- capital Y, acute accent -->
+    <!ENTITY THORN  CDATA "&#222;" -- capital Thorn, Icelandic -->
+    <!ENTITY szlig  CDATA "&#223;" -- small sharp s, German (sz ligature) -->
+    <!ENTITY agrave CDATA "&#224;" -- small a, grave accent -->
+    <!ENTITY aacute CDATA "&#225;" -- small a, acute accent -->
+    <!ENTITY acirc  CDATA "&#226;" -- small a, circumflex accent -->
+    <!ENTITY atilde CDATA "&#227;" -- small a, tilde -->
+    <!ENTITY auml   CDATA "&#228;" -- small a, dieresis or umlaut mark -->
+    <!ENTITY aring  CDATA "&#229;" -- small a, ring -->
+    <!ENTITY aelig  CDATA "&#230;" -- small ae diphthong (ligature) -->
+    <!ENTITY ccedil CDATA "&#231;" -- small c, cedilla -->
+    <!ENTITY egrave CDATA "&#232;" -- small e, grave accent -->
+    <!ENTITY eacute CDATA "&#233;" -- small e, acute accent -->
+    <!ENTITY ecirc  CDATA "&#234;" -- small e, circumflex accent -->
+    <!ENTITY euml   CDATA "&#235;" -- small e, dieresis or umlaut mark -->
+    <!ENTITY igrave CDATA "&#236;" -- small i, grave accent -->
+    <!ENTITY iacute CDATA "&#237;" -- small i, acute accent -->
+    <!ENTITY icirc  CDATA "&#238;" -- small i, circumflex accent -->
+    <!ENTITY iuml   CDATA "&#239;" -- small i, dieresis or umlaut mark -->
+    <!ENTITY eth    CDATA "&#240;" -- small eth, Icelandic -->
+    <!ENTITY ntilde CDATA "&#241;" -- small n, tilde -->
+    <!ENTITY ograve CDATA "&#242;" -- small o, grave accent -->
+    <!ENTITY oacute CDATA "&#243;" -- small o, acute accent -->
+    <!ENTITY ocirc  CDATA "&#244;" -- small o, circumflex accent -->
+    <!ENTITY otilde CDATA "&#245;" -- small o, tilde -->
+
+
+
+                         Expires 2 December 1996       [Page 37]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+    <!ENTITY ouml   CDATA "&#246;" -- small o, dieresis or umlaut mark -->
+    <!ENTITY divide CDATA "&#247;" -- divide sign -->
+    <!ENTITY oslash CDATA "&#248;" -- small o, slash -->
+    <!ENTITY ugrave CDATA "&#249;" -- small u, grave accent -->
+    <!ENTITY uacute CDATA "&#250;" -- small u, acute accent -->
+    <!ENTITY ucirc  CDATA "&#251;" -- small u, circumflex accent -->
+    <!ENTITY uuml   CDATA "&#252;" -- small u, dieresis or umlaut mark -->
+    <!ENTITY yacute CDATA "&#253;" -- small y, acute accent -->
+    <!ENTITY thorn  CDATA "&#254;" -- small thorn, Icelandic -->
+    <!ENTITY yuml   CDATA "&#255;" -- small y, dieresis or umlaut mark -->
+
+
+Bibliography
+
+   [BRYAN88]      M. Bryan, "SGML -- An Author's Guide to the Standard
+                  Generalized Markup Language", Addison-Wesley, Reading,
+                  1988.
+
+   [ERCS]         Extended Reference Concrete Syntax for SGML.
+                  <http://www.sgmlopen.org/sgml/docs/ercs/ercs-
+                  home.html>
+
+   [GOLD90]       C. F. Goldfarb, "The SGML Handbook", Y. Rubinsky, Ed.,
+                  Oxford University Press, 1990.
+
+   [HTTP-1.1]     R.T. Fielding, H. Frystyk Nielsen, and T. Berners-Lee,
+                  "Hypertext Transfer Protocol -- HTTP/1.1", Work in
+                  progress (draft-ietf-http-v11-spec-03.txt), MIT/LCS,
+                  May 1996.
+
+   [ISO-639]      ISO 639:1988. Codes pour la représentation des noms de
+                  langue.  Technical content in
+                  <http://www.sil.org/sgml/iso639a.html>
+
+   [ISO-3166]     ISO 3166:1993. Codes pour la représentation des noms
+                  de pays.
+
+   [ISO-8601]     ISO 8601:1988.  Éléments de données et formats
+                  d'échange -- Échange d'information -- Représentation
+                  de la date et de l'heure.
+
+   [ISO-8859-1]   ISO 8859-1:1987.  International Standard -- Informa-
+                  tion Processing -- 8-bit Single-Byte Coded Graphic
+                  Character Sets -- Part 1: Latin Alphabet No. 1.
+
+   [ISO-8879]     ISO 8879:1986. International Standard -- Information
+                  Processing -- Text and Office Systems -- Standard Gen-
+                  eralized Markup Language (SGML).
+
+
+
+                         Expires 2 December 1996       [Page 38]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   [ISO-10646]    ISO/IEC 10646-1:1993. International Standard -- Infor-
+                  mation technology -- Universal Multiple-Octet Coded
+                  Character Set (UCS) -- Part 1: Architecture and Basic
+                  Multilingual Plane.
+
+   [NICOL]        G.T. Nicol, "The Multilingual World Wide Web", Elec-
+                  tronic Book Technologies, 1995,
+                  <http://www.ebt.com/docs/multling.html>
+
+   [NICOL2]       G.T. Nicol, "MIME Header Supplemented File Type", Work
+                  in progress, <draft-nicol-mime-header-type-00.txt>,
+                  EBT, October 1995.
+
+   [RFC1345]      K. Simonsen, "Character Mnemonics & Character Sets",
+                  RFC 1345, Rationel Almen Planlaegning, June 1992.
+
+   [RFC1468]      J. Murai, M. Crispin and E. van der Poel, "Japanese
+                  Character Encoding for Internet Messages", RFC 1468,
+                  Keio University, Panda Programming, June 1993.
+
+   [RFC1521]      N. Borenstein and N. Freed, "MIME (Multipurpose Inter-
+                  net Mail Extensions) Part One: Mechanisms for Specify-
+                  ing and Describing the Format of Internet Message Bod-
+                  ies", RFC 1521, Bellcore, Innosoft, September 1993.
+
+   [RFC1641]      D. Goldsmith, M.Davis, "Using Unicode with MIME", RFC
+                  1641, Taligent inc., July 1994.
+
+   [RFC1642]      D. Goldsmith, M. Davis, "UTF-7: A Mail-safe Transfor-
+                  mation Format of Unicode", RFC 1642, Taligent inc.,
+                  July 1994.
+
+   [RFC1738]      T. Berners-Lee, L. Masinter, and M. McCahill, "Uniform
+                  Resource Locators (URL)", RFC 1738, CERN, Xerox PARC,
+                  University of Minnesota, October 1994.
+
+   [RFC1766]      H. Alverstrand, "Tags for the Identification of Lan-
+                  guages", RFC 1766, UNINETT, March 1995.
+
+   [RFC1866]      T. Berners-Lee and D. Connolly, "Hypertext Markup Lan-
+                  guage - 2.0", RFC 1866, MIT/W3C, November 1995.
+
+   [RFC1867]      E. Nebel and L. Masinter, "Form-based File Upload in
+                  HTML", RFC 1867, Xerox Corporation, November 1995.
+
+   [RFC1942]      D. Raggett, "HTML Tables", RFC 1942, W3C, May 1996.
+
+
+
+
+
+                         Expires 2 December 1996       [Page 39]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   [RFC1945]      T. Berners-Lee, R.T. Fielding, and H. Frystyk Nielsen,
+                  "Hypertext Transfer Protocol -- HTTP/1.0", RFC 1945,
+                  MIT/LCS, UC Irvine, May 1996.
+
+   [SQ91]         SoftQuad, "The SGML Primer", 3rd ed., SoftQuad Inc.,
+                  1991.
+
+   [TAKADA]       Toshihiro Takada, "Multilingual Information Exchange
+                  through the World-Wide Web", Computer Networks and
+                  ISDN Systems, Vol. 27, No. 2, Nov. 1994 , p. 235-241.
+
+   [TEI]          TEI Guidelines for Electronic Text Encoding and Inter-
+                  change.  <http://etext.virgina.edu/TEI.html>
+
+   [UNICODE]      The Unicode Consortium, "The Unicode Standard --
+                  Worldwide Character Encoding -- Version 1.0", Addison-
+                  Wesley, Volume 1, 1991, Volume 2, 1992, and Technical
+                  Report #4, 1993.  The BIDI algorithm is in appendix A
+                  of volume 1, with corrections in appendix D of volume
+                  2.
+
+   [UTF-8]        ISO/IEC 10646-1:1993 AMENDMENT 2 (1996). UCS Transfor-
+                  mation Format 8 (UTF-8).
+
+   [VANH90]       E. van Hervijnen, "Practical SGML", Kluwer Academicq
+                  Publishers Group, Norwell and Dordrecht, 1990.
+
+Authors' Addresses
+
+   François Yergeau
+   Alis Technologies
+   100, boul. Alexis-Nihon, bureau 600
+   Montréal  QC  H4M 2P2
+   Canada
+
+   Tel: +1 (514) 747-2547
+   Fax: +1 (514) 747-2561
+   EMail: fyergeau@alis.com
+
+
+   Gavin Thomas Nicol
+   Electronic Book Technologies, Japan
+   1-29-9 Tsurumaki,
+   Setagaya-ku,
+   Tokyo
+   Japan
+
+   Tel: +81-3-3230-8161
+
+
+
+                         Expires 2 December 1996       [Page 40]
+\f
+Internet Draft          HTML internationalization            27 May 1996
+
+
+   Fax: +81-3-3230-8163
+   EMail: gtn@ebt.com, gtn@twics.co.jp
+
+
+   Glenn Adams
+   Spyglass
+   118 Magazine Street
+   Cambridge, MA 02139
+   U.S.A.
+
+   Tel: +1 (617) 864-5524
+   Fax: +1 (617) 864-4965
+   EMail: glenn@spyglass.com
+
+
+   Martin J. Duerst
+   Multimedia-Laboratory
+   Department of Computer Science
+   University of Zurich
+   Winterthurerstrasse 190
+   CH-8057 Zurich
+   Switzerland
+
+   Tel: +41 1 257 43 16
+   Fax: +41 1 363 00 35
+   E-mail: mduerst@ifi.unizh.ch
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                         Expires 2 December 1996       [Page 41]
+\f
diff --git a/reports/rfc/draft-ietf-http-v11-spec-03.txt b/reports/rfc/draft-ietf-http-v11-spec-03.txt
new file mode 100644 (file)
index 0000000..ff63034
--- /dev/null
@@ -0,0 +1,8893 @@
+
+
+HTTP Working Group                               R. Fielding, UC Irvine
+INTERNET-DRAFT                                      H. Frystyk, MIT/LCS
+<draft-ietf-http-v11-spec-03.html>              T. Berners-Lee, MIT/LCS
+                                                         J. Gettys, DEC
+                                                       J. C. Mogul, DEC
+Expires        October 2, 1996                                      May 2, 1996
+
+               Hypertext Transfer Protocol -- HTTP/1.1
+
+
+1 Status of this Memo
+This document is an Internet-Draft. Internet-Drafts are        working
+documents of the Internet Engineering Task Force (IETF), its areas, and
+its working groups. Note that other groups may also distribute working
+documents as Internet-Drafts.
+
+Internet-Drafts        are draft documents valid for a maximum of six months
+and may        be updated, replaced, or made obsolete by other documents at any
+time. It is inappropriate to use Internet-Drafts as reference material
+or to cite them        other than as "work in progress".
+
+To learn the current status of any Internet-Draft, please check        the
+"1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
+Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
+munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
+ftp.isi.edu (US        West Coast).
+
+Distribution of        this document is unlimited. Please send comments to the
+HTTP working group at <http-wg@cuckoo.hpl.hp.com>. Discussions of the
+working        group are archived at
+<URL:http://www.ics.uci.edu/pub/ietf/http/>. General discussions about
+HTTP and the applications which        use HTTP should take place on the <www-
+talk@w3.org> mailing list.
+
+  NOTE:        This specification is for discussion purposes only. It is not
+  claimed to represent the consensus of        the HTTP working group, and
+  contains a number of proposals that either have not been discussed
+  or are controversial.        The working group is discussing significant
+  changes in many areas, including - support for caching, persistent
+  connections, range retrieval,        content negotiation, MIME
+  compatibility, authentication, timing        of the PUT operation.
+
+
+2 Abstract
+The Hypertext Transfer Protocol        (HTTP) is an application-level protocol
+for distributed, collaborative,        hypermedia information systems. It is a
+generic, stateless, object-oriented protocol which can be used for many
+tasks, such as name servers and        distributed object management systems,
+through        extension of its request methods (commands). A feature of HTTP
+is the typing and negotiation of data representation, allowing systems
+to be built independently of the data being transferred.
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys and Mogul    [Page 1]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+HTTP has been in use by        the World-Wide Web global information initiative
+since 1990. This specification defines the protocol referred to        as
+"HTTP/1.1".
+
+3 Note to Readers of This Document
+
+
+We believe this        draft to be very close to consensus of the working group
+in terms of functionality for HTTP/1.1,        and the text substantially
+correct.  One final technical change NOT reflected in this draft is to
+make persistent        connections the default behavior for HTTP/1.1; editorial
+changes        to reflect this in the next, and we hope final draft, are being
+circulated in the working group        mailing list.
+
+This draft has undergone extensive reorganization to improve
+presentation.  Let us know if there are        remaining problems.
+
+The terminology        used in this draft has changed to reduce confusion.
+While we are converging        on a shared set of terminology and definitions,
+it is possible there will be a final set of terminology        adopted in the
+next draft.  Despite any terminology changes that may occur to improve
+the presentation of the        specification, we do not expect to change the
+name of        any header field or parameter name.
+
+There are a very few remaining issues indicated        by Editor's Note: in
+bold font.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul   [Page 2]
+
+
+
+
+
+
+
+
+4 Table        of Contents
+
+
+HYPERTEXT TRANSFER PROTOCOL -- HTTP/1.1
+
+1 Status of this Memo
+
+2 Abstract
+
+3 Note to Readers of This Document
+
+4 Table        of Contents
+
+5 Introduction
+ 5.1 Purpose
+ 5.2 Requirements
+ 5.3 Terminology
+ 5.4 Overall Operation
+ 5.5 HTTP and MIME
+
+6 Notational Conventions and Generic Grammar
+ 6.1 Augmented BNF
+ 6.2 Basic Rules
+
+7 Protocol Parameters
+ 7.1 HTTP Version
+ 7.2 Uniform Resource Identifiers
+ 7.3 Date/Time Formats
+ 7.4 Character Sets
+ 7.5 Content Codings
+ 7.6 Transfer Codings
+ 7.7 Media Types
+ 7.8 Product Tokens
+ 7.9 Quality Values
+ 7.10 Language Tags
+ 7.11 Entity Tags
+ 7.12 Variant IDs
+ 7.13 Variant Sets
+ 7.14 Range Protocol Parameters
+
+8 HTTP Message
+ 8.1 Message Types
+ 8.2 Message Headers
+ 8.3 General Header Fields
+
+9 Request
+ 9.1 Request-Line
+ 9.2 The Resource Identified by        a Request
+ 9.3 Request Header Fields
+
+10 Response
+ 10.1 Status-Line
+ 10.2 Response Header Fields
+
+Fielding, Frystyk, Berners-Lee,        Gettys and Mogul    [Page 3]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+11 Entity
+ 11.1 Entity Header Fields
+ 11.2 Entity Body
+
+12 Status Code Definitions
+ 12.1 Informational 1xx
+ 12.2 Successful 2xx
+ 12.3 Redirection 3xx
+ 12.4 Client Error 4xx
+ 12.5 Server Error 5xx
+
+13 Method Definitions
+ 13.1 OPTIONS
+ 13.2 GET
+ 13.3 HEAD
+ 13.4 POST
+ 13.5 PUT
+ 13.6 DELETE
+ 13.7 TRACE
+
+14 Access Authentication
+ 14.1 Basic Authentication Scheme
+ 14.2 Digest Authentication Scheme
+
+15 Content Negotiation
+ 15.1 Negotiation Facilities Defined in        this Specification
+
+16 Caching in HTTP
+ 16.1 Semantic Transparency
+ 16.2 Expiration Model
+ 16.3 Validation Model
+ 16.4 Constructing Responses From Caches
+ 16.5 Caching and Generic Resources
+ 16.6 Shared and Non-Shared Caches
+ 16.7 Selecting        a Cached Response
+ 16.8 Errors or        Incomplete Response Cache Behavior
+ 16.9 Side Effects of GET and HEAD
+ 16.10 Invalidation After Updates or Deletions
+ 16.11 Write-Through Mandatory
+ 16.12 Generic Resources and HTTP/1.0 Proxy Caches
+ 16.13 Cache Replacement
+ 16.14 Caching of Negative Responses
+ 16.15 History Lists
+
+17 Persistent Connections
+ 17.1 Purpose
+ 17.2 Overall Operation
+ 17.3 Proxy Servers
+ 17.4 Interaction with Security        Protocols
+ 17.5 Practical        Considerations
+
+18 Header Field        Definitions
+ 18.1 Accept
+ 18.2 Accept-Charset
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul   [Page 4]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+ 18.3 Accept-Encoding
+ 18.4 Accept-Language
+ 18.5 Accept-Ranges
+ 18.6 Age
+ 18.7 Allow
+ 18.8 Alternates
+ 18.9 Authorization
+ 18.10 Cache-Control
+ 18.11 Connection
+ 18.12 Content-Base
+ 18.13 Content-Encoding
+ 18.14 Content-Language
+ 18.15 Content-Length
+ 18.16 Content-Location
+ 18.17 Content-MD5
+ 18.18 Content-Range
+ 18.19 Content-Type
+ 18.20 Date
+ 18.21 ETag
+ 18.22 Expires
+ 18.23 From
+ 18.24 Host
+ 18.25 If-Modified-Since
+ 18.26 If-Match
+ 18.27 If-NoneMatch
+ 18.28 If-Range
+ 18.29 If-Unmodified-Since
+ 18.30 Last-Modified
+ 18.31 Location
+ 18.32 Max-Forwards
+ 18.33 Persist
+ 18.34 Pragma
+ 18.35 Proxy-Authenticate
+ 18.36 Proxy-Authorization
+ 18.37 Public
+ 18.38 Range
+ 18.39 Referer
+ 18.40 Retry-After
+ 18.41 Server
+ 18.42 Title
+ 18.43 Transfer        Encoding
+ 18.44 Upgrade
+ 18.45 User-Agent
+ 18.46 Vary
+ 18.47 Via
+ 18.48 Warning
+ 18.49 WWW-Authenticate
+
+19 Security Considerations
+ 19.1 Authentication of        Clients
+ 19.2 Safe Methods
+ 19.3 Abuse of Server Log Information
+ 19.4 Transfer of Sensitive Information
+ 19.5 Attacks Based On File and        Path Names
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul   [Page 5]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+ 19.6 Personal Information
+ 19.7 Privacy Issues Connected to Accept headers
+ 19.8 DNS Spoofing
+ 19.9 Location Headers and Spoofing
+
+20 Acknowledgments
+
+21 References
+
+22 Authors' Addresses
+
+23 Appendices
+ 23.1 Internet Media Type message/http
+ 23.2 Tolerant Applications
+ 23.3 Differences Between  HTTP        Bodies and RFC 1521 Internet Message
+ Bodies
+ 23.4 Changes from HTTP/1.0
+ 23.5 Additional Features
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul   [Page 6]
+
+
+
+
+
+
+
+5 Introduction
+5.1 Purpose
+The Hypertext Transfer Protocol        (HTTP) is an application-level protocol
+for distributed, collaborative,        hypermedia information systems. HTTP has
+been in        use by the World-Wide Web global information initiative since
+1990. The first        version of HTTP, referred to as HTTP/0.9, was a simple
+protocol for raw data transfer across the Internet. HTTP/1.0, as defined
+by RFC xxxx , improved the protocol by allowing        messages to be in the
+format of MIME-like entities, containing metainformation about the data
+transferred and        modifiers on the request/response semantics. However,
+HTTP/1.0 does not sufficiently take into consideration the effect of
+hierarchical proxies , caching,        the need for persistent connections and
+virtual        hosts.. In addition, the proliferation of incompletely-
+implemented applications calling themselves "HTTP/1.0" has necessitated
+a protocol version change in order for two communicating applications to
+determine each other's true capabilities.
+
+This specification defines the protocol        referred to as "HTTP/1.1". This
+protocol is backwards-compatible with HTTP/1.0,        but includes more
+stringent requirements in order        to ensure reliable implementation of its
+features.
+
+Practical information systems require more functionality than simple
+retrieval, including search, front-end update, and annotation. HTTP
+allows an open-ended set of methods that indicate the purpose of a
+request. It builds on the discipline of        reference provided by the
+Uniform        Resource Identifier (URI) , as a location (URL)  or name (URN)
+,
+for indicating the resource to which a method is to be applied.        Messages
+are passed in a        format similar to that used by Internet Mail  and the
+Multipurpose Internet Mail Extensions (MIME) .
+
+HTTP is        also used as a generic protocol for communication between user
+agents and proxies/gateways to other Internet protocols, such as SMTP ,
+NNTP , FTP , Gopher , and WAIS , allowing basic        hypermedia access to
+resources available from diverse applications and simplifying the
+implementation of user agents.
+
+
+5.2 Requirements
+This specification uses        the same words as RFC 1123  for defining the
+significance of        each particular requirement. These words are:
+
+
+MUST
+     This word or the adjective        "required" means that the item is an
+     absolute requirement of the specification.
+
+SHOULD
+     This word or the adjective        "recommended" means that there may
+exist
+     valid reasons in particular circumstances to ignore this item, but
+     the full implications should be understood        and the case carefully
+     weighed before choosing a different course.
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys and Mogul    [Page 7]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+MAY
+     This word or the adjective        "optional" means that this item is
+truly
+     optional. One vendor may choose to        include the item because a
+     particular        marketplace requires it or because it enhances the
+     product, for example; another vendor may omit the same item.
+An implementation is not compliant if it fails to satisfy one or more of
+the MUST requirements for the protocols        it implements. An implementation
+that satisfies all the MUST and        all the SHOULD requirements for its
+protocols is said to be        "unconditionally compliant"; one that satisfies
+all the        MUST requirements but not all the SHOULD requirements for its
+protocols is said to be        "conditionally compliant".
+
+
+5.3 Terminology
+This specification uses        a number of terms to refer to the roles played
+by participants        in, and objects of, the HTTP communication.
+
+
+connection
+  A transport layer virtual circuit established        between two programs
+  for the purpose of communication.
+
+message
+  The basic unit of HTTP communication,        consisting of a structured
+  sequence of octets matching the syntax defined in section 8 and
+  transmitted via the connection.
+
+request
+  An HTTP request message as defined in        section 9.
+
+response
+  An HTTP response message as defined in section 10.
+
+resource
+  A network data object        or service that can be identified by a URI
+  (section 7.2).  At any point in time,        a resource may be either a
+  plain        resource, which corresponds to only one possible
+  representation, or a generic resource.
+
+generic        resource
+  A resource that is a set of closely related representations of the
+  same document, form, applet, etc. A generic resource is always
+  identified by        a URI. The individual representations may each be
+  identified by        a unique URI, or by the combination of the generic
+  resource's URI and a variant-ID, or by the combination of the        generic
+  resource's URI and some "content-negotiation"        mechanism.  In this
+  case,        other URIs may exist which identify a resource more
+  specifically.
+
+plain resource
+  A resource that is not a generic resource.  A        plain resource is
+  always identified by a URI.
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul   [Page 8]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+entity
+  The set of information transferred as        the payload of a request or
+  response  An entity consists of metainformation in the form of
+  Entity-Header        fields and content in the form of an Entity-Body, as
+  described in section 11.
+
+resource entity
+  A specific representation, rendition,        encoding, or presentation of a
+  network data object or service, either a plain resource or a specific
+  member of a generic resource.         A resource entity might be identified
+  by a URI, or by the combination of a URI and a variant-ID, or        by the
+  combination of a URI and some        other mechanism. An plain resource MUST
+  be bound to a        single resource entity at any instant in time.
+
+variant
+  A resource entity that is a member of        at least one generic resource.
+  Sometimes called a resource variant. Note that the set of variants
+  of a generic resource        may change over time as well.
+
+content        negotiation
+  The mechanism        for selecting the appropriate variant of a generic
+  resource when        servicing a request, as described in section 15.
+
+entity tag
+  An opaque string associated with an entity and used to distinguish it
+  from other entities of the requested resource        .  A "strong entity
+  tag" is one that may be shared by two        entities of a resource only if
+  they are equivalent by octet equality.  A "weak entity tag" is one
+  that may be shared by        two entities of a resource if they are
+  equivalent and could be substituted for each other with no
+  significant change in        semantics.  A given entity tag value may be
+  used for entities obtained by        requests on different URIs without
+  implying anything about the equivalence of these entities.
+
+client
+  An application program that establishes connections for the purpose
+  of sending requests.
+
+user agent
+  The client which initiates a request.        These are often browsers,
+  editors, spiders (web-traversing robots), or other end user tools.
+
+server
+  An application program that accepts connections in order to service
+  requests by sending back responses. Any given        program MAY be capable
+  of being both        a client and a server; our use of these terms refers
+  only to the role being performed by the program for a        particular
+  connection, rather than to the program's capabilities        in general.
+  Likewise, any        server MAY act as an origin server, proxy, gateway, or
+  tunnel, switching behavior based on the nature of each request.
+
+origin server
+  The server on        which a given resource resides or is to be created.
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul   [Page 9]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+proxy
+  An intermediary program which        acts as both a server and a client for
+  the purpose of making        requests on behalf of other clients. Requests
+  are serviced internally or by        passing them on, with possible
+  translation, to other        servers. A proxy MUST interpret and, if
+  necessary, rewrite a request message before forwarding it. Proxies
+  are often used as client-side        portals through network firewalls and
+  as helper applications for handling requests via protocols not
+  implemented by the user agent.
+
+gateway
+  A server which acts as an intermediary for some other        server. Unlike
+  a proxy, a gateway receives requests as if it        were the origin server
+  for the requested resource; the requesting client may        not be aware
+  that it is communicating with        a gateway. Gateways are often used as
+  server-side portals through network firewalls        and as protocol
+  translators for access to resources stored on        non-HTTP systems.
+
+tunnel
+  An intermediary program which        is acting as a blind relay between two
+  connections. Once active, a tunnel is        not considered a party to the
+  HTTP communication, though the tunnel        may have been initiated by an
+  HTTP request.        The tunnel ceases to exist when both ends of the
+  relayed connections are closed. Tunnels are used when        a portal is
+  necessary and        the intermediary cannot, or should not, interpret the
+  relayed communication.
+
+cache
+  A program's local store of response messages and the subsystem that
+  controls its message storage,        retrieval, and deletion. A cache stores
+  cachable responses in        order to reduce the response time and network
+  bandwidth consumption        on future, equivalent requests. Any client or
+  server MAY include a cache, though a cache cannot be used by a server
+  that acts acting as a        tunnel.
+
+cachable
+  A response is        cachable if a cache is allowed to store a copy of the
+  response message for use in answering        subsequent requests. The rules
+  for determining the cachability of HTTP responses are        defined in
+  Section 16.  Even if a resource is cachable, there may be additional
+  constraints on when and if a cache can use the cached        copy for a
+  particular request.
+
+firsthand
+  A response is        firsthand if it comes directly and without unnecessary
+  delay        from the origin server, perhaps via one or more proxies.  A
+  response is also firsthand if        its validity has just been checked
+  directly with        the origin server.
+
+explicit expiration time
+  The time at which the        origin server intends that an entity should no
+  longer be returned by        a cache without further validation.
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 10]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+heuristic expiration time
+  An expiration        time assigned by a cache when no explicit expiration
+  time is available.
+
+age
+  The age of a response        is the time since it was generated by, or
+  successfully validated with, the origin server.
+
+freshness lifetime
+  The length of        time between the generation of a response and its
+  expiration time.
+
+fresh
+  A response is        fresh if its age has not yet exceeded its freshness
+  lifetime.
+
+stale
+  A response is        stale if its age has passed its freshness lifetime. A
+  cache        may use a fresh response without validating it,  but "normally"
+  may not use a        stale response without first validating it.
+  ("Normally" means "unless configured to provide better performance at
+  the expense of transparency.")
+  Therefore, what expires is the cache's authority to use a cached
+  response, without validation,        in its reply to a subsequent request.
+
+semantically transparent
+  Ideally, an HTTP/1.1 cache would be "semantically transparent." That
+  is, use of the cache would not affect        either the clients or the
+  servers in any way except to improve performance. When a client makes
+  a request via        a semantically transparent cache, it receives exactly
+  the same entity headers and entity body it would have        received if it
+  had made the same request to the origin server, at the same time.
+
+validator
+  An entity tag, or a Last-Modified time, which        is used to find out
+  whether a cache entry        is a semantically transparent copy of a
+  resource entity.  A cache entry is semantically transparent if its
+  validator exactly matches the        validator that the server would provide
+  for current instance of that resource        entity.
+
+5.4 Overall Operation
+The HTTP protocol is a request/response        protocol. A client sends a
+request        to the server in the form of a request method, URI, and protocol
+version, followed by a MIME-like message containing request modifiers,
+client information, and        possible body content over a connection with a
+server.        The server responds with a status line, including the message's
+protocol version and a success or error        code, followed by a MIME-like
+message        containing server information, entity metainformation, and
+possible entity        body content.
+
+Most HTTP communication        is initiated by a user agent and consists of a
+request        to be applied to a resource on some origin server. In the
+simplest case, this may        be accomplished via a single connection (v)
+between        the user agent (UA) and the origin server (O).
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 11]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+         request chain ------------------------>
+       UA -------------------v------------------- O
+         <----------------------- response chain
+
+A more complicated situation occurs when one or        more intermediaries are
+present        in the request/response chain. There are three common forms of
+intermediary: proxy, gateway, and tunnel. A proxy is a forwarding
+agent,
+receiving requests for a URI in        its absolute form, rewriting all or part
+of the message,        and forwarding the reformatted request toward the server
+identified by the URI. A gateway is a receiving        agent, acting as a layer
+above some other server(s) and,        if necessary, translating the requests
+to the underlying server's protocol. A tunnel acts as a        relay point
+between        two connections without changing the messages; tunnels are used
+when the communication needs to        pass through an intermediary (such as a
+firewall) even when the        intermediary cannot understand the contents of
+the messages.
+
+         request chain -------------------------------------->
+       UA -----v----- A        -----v----- B -----v----- C -----v----- O
+         <------------------------------------- response chain
+
+The figure above shows three intermediaries (A,        B, and C) between the
+user agent and origin server. A        request or response message that travels
+the whole chain        MUST pass through four separate connections. This
+distinction is important because some HTTP communication options may
+apply only to the connection with the nearest, non-tunnel neighbor, only
+to the end-points of the chain,        or to all connections along the chain.
+Although the diagram is        linear, each participant may be engaged in
+multiple, simultaneous communications. For example, B may be receiving
+requests from many clients other than A, and/or        forwarding requests to
+servers        other than C, at the same time that it is handling A's request.
+
+Any party to the communication which is        not acting as a tunnel may
+employ an internal cache for handling requests.        The effect of a cache is
+that the request/response chain        is shortened if one of the participants
+along the chain        has a cached response applicable to that request. The
+following illustrates the resulting chain if B has a cached copy of an
+earlier        response from O (via C) for a request which has not been cached
+by UA or A.
+
+         request chain ---------->
+       UA -----v----- A        -----v----- B - - - - - - C - - - - - - O
+         <--------- response chain
+
+Not all        responses are cachable, and some requests may contain modifiers
+which place special requirements on cache behavior. HTTP requirements
+for cache behavior and cachable        responses are defined in section 16.
+
+HTTP communication usually takes place over TCP/IP connections.        The
+default        port is TCP 80 , but other ports can be used. This does not
+preclude HTTP from being implemented on        top of any other protocol on the
+Internet, or on        other networks. HTTP only presumes a reliable
+transport;
+any protocol that provides such        guarantees can be used; the mapping of
+the HTTP/1.1 request and response structures onto the transport        data
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 12]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+units of the protocol in question is outside the scope of this
+specification.
+
+However, HTTP/1.1 implementations SHOULD implement persistent
+connections (See section 17). Both clients and servers MUST be capable
+of handling cases where        either party closes the connection prematurely,
+due to user action, automated time-out,        or program failure. In any
+case,
+the closing of the connection by either        or both parties always
+terminates the current request,        regardless of its status.
+
+
+5.5 HTTP and MIME
+HTTP/1.1 uses many of the constructs defined for MIME, as defined in RFC
+1521 . Appendix        23.3 describes the ways in which the context of HTTP
+allows for different use of Internet Media Types than is typically found
+in Internet mail, and gives the        rationale for those differences.
+
+
+6 Notational Conventions and Generic Grammar
+
+6.1 Augmented BNF
+All of the mechanisms specified        in this document are described in both
+prose and an augmented Backus-Naur Form        (BNF) similar to that used by
+RFC 822        . Implementers will need to be familiar with the notation in
+order to understand this specification.        The augmented BNF includes the
+following constructs:
+
+
+name = definition
+     The name of a rule        is simply the name itself (without any enclosing
+     "<" and ">") and is separated from        its definition by the equal
+     character "=". Whitespace is only significant in that indentation
+     of        continuation lines is used to indicate a rule definition that
+     spans more        than one line. Certain basic rules are in uppercase,
+     such as SP, LWS, HT, CRLF,        DIGIT, ALPHA, etc. Angle brackets are
+     used within definitions whenever their presence will facilitate
+     discerning        the use of rule names.
+
+"literal"
+     Quotation marks surround literal text. Unless stated otherwise, the
+     text is case-insensitive.
+
+rule1 |        rule2
+     Elements separated        by a bar ("I") are alternatives, e.g., "yes |
+     no" will accept yes or no.
+
+(rule1 rule2)
+     Elements enclosed in parentheses are treated as a single element.
+     Thus, "(elem (foo | bar) elem)" allows the        token sequences "elem
+     foo elem" and "elem bar elem".
+
+*rule
+     The character "*" preceding an element indicates repetition. The
+     full form is "<n>*<m>element" indicating at least <n> and at most
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 13]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+     <m> occurrences of        element. Default values are 0 and infinity so
+     that "*(element)" allows any number, including zero; "1*element"
+     requires at least one; and        "1*2element" allows one or two.
+
+[rule]
+     Square brackets enclose optional elements;        "[foo bar]" is
+     equivalent        to "*1(foo bar)".
+
+N rule
+     Specific repetition: "<n>(element)" is equivalent to
+     "<n>*<n>(element)"; that is, exactly <n> occurrences of (element).
+     Thus 2DIGIT is a 2-digit number, and 3ALPHA is a string of        three
+     alphabetic        characters.
+
+#rule
+     A construct "#" is        defined, similar to "*", for defining lists of
+     elements. The full        form is "<n>#<m>element " indicating at least
+     <n> and at        most <m> elements, each separated by one or more commas
+     (",") and optional        linear whitespace (LWS). This makes the usual
+     form of lists very        easy; a rule such as "( *LWS element *( *LWS
+","
+     *LWS element )) " can be shown as "1#element". Wherever this
+     construct is used,        null elements are allowed, but do not contribute
+     to        the count of elements present. That is, "(element), , (element)
+     " is permitted, but counts        as only two elements. Therefore, where
+     at        least one element is required, at least one non-null element
+     MUST be present. Default values are 0 and infinity        so that
+     "#(element) " allows any number, including        zero; "1#element"
+     requires at least one; and        "1#2element" allows one or two.
+
+; comment
+     A semi-colon, set off some        distance to the right of rule text,
+     starts a comment that continues to        the end of line. This is a
+     simple way        of including useful notes in parallel with the
+     specifications.
+
+implied        *LWS
+     The grammar described by this specification is word-based.        Except
+     where noted otherwise, linear whitespace (LWS) can        be included
+     between any two adjacent words (token or quoted-string), and
+     between adjacent tokens and delimiters (tspecials), without
+     changing the interpretation of a field. At        least one delimiter
+     (tspecials) MUST exist between any        two tokens, since they would
+     otherwise be interpreted as a single token. However, applications
+     SHOULD attempt to follow "common form" when generating HTTP
+     constructs, since there exist some        implementations that fail to
+     accept anything beyond the        common forms.
+
+6.2 Basic Rules
+The following rules are        used throughout this specification to describe
+basic parsing constructs. The US-ASCII coded character set is defined by.
+
+       OCTET         = <any 8-bit sequence of data>
+       CHAR          = <any US-ASCII character (octets 0 - 127)>
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 14]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+       UPALPHA       = <any US-ASCII uppercase letter "A".."Z">
+       LOALPHA       = <any US-ASCII lowercase letter "a".."z">
+       ALPHA         = UPALPHA | LOALPHA
+       DIGIT         = <any US-ASCII digit "0".."9">
+       CTL           = <any US-ASCII control character
+                       (octets 0 - 31) and DEL (127)>
+       CR            = <US-ASCII CR, carriage return (13)>
+       LF            = <US-ASCII LF, linefeed (10)>
+       SP            = <US-ASCII SP, space (32)>
+       HT            = <US-ASCII HT, horizontal-tab (9)>
+       <">           = <US-ASCII double-quote mark (34)>
+
+HTTP/1.1 defines the octet sequence CR LF as the end-of-line marker for
+all protocol elements except the Entity-Body (see appendix 23.2        for
+tolerant applications).        The end-of-line marker within an Entity-Body is
+defined        by its associated media type, as described in section 7.7.
+
+       CRLF          = CR LF
+
+HTTP/1.1 headers can be        folded onto multiple lines if the continuation
+line begins with a space or horizontal tab. All        linear whitespace,
+including folding, has the same        semantics as SP.
+
+       LWS           = [CRLF] 1*( SP | HT )
+
+The TEXT rule is only used for descriptive field contents and values
+that are not intended to be interpreted        by the message parser. Words of
+*TEXT MAY contain octets from character        sets other than US-ASCII only
+when encoded according to the rules of RFC 1522        .
+
+       TEXT          = <any OCTET except CTLs,
+                       but including LWS>
+
+Recipients of header field TEXT        containing octets outside the US-ASCII
+character set range MAY        assume that they represent ISO-8859-1 characters
+if there is no other encoding indicated        by an RFC 1522 mechanism.
+
+Hexadecimal numeric characters are used        in several protocol elements.
+
+       HEX           = "A" | "B" | "C" | "D" | "E" | "F"
+                     | "a" | "b" | "c" | "d" | "e" | "f" | DIGIT
+
+Many HTTP/1.1 header field values consist of words separated by        LWS or
+special        characters. These special characters MUST be in a quoted string
+to be used within a parameter value.
+
+       word          = token | quoted-string
+
+       token         = 1*<any CHAR except CTLs or tspecials>
+
+       tspecials      =        "(" | ")" | "<" | ">" | "@"
+                     | "," | ";" | ":" | "\" | <">
+                     | "/" | "[" | "]" | "?" | "="
+                     | "{" | "}" | SP | HT
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 15]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+Comments can be        included in some HTTP header fields by surrounding the
+comment        text with parentheses. Comments are only allowed in fields
+containing "comment" as        part of their field value definition. In all
+other fields, parentheses are considered part of the field value.
+
+       comment       = "(" *( ctext | comment ) ")"
+       ctext         = <any TEXT excluding "(" and ")">
+
+A string of text is parsed as a        single word if it is quoted using
+double-quote marks.
+
+       quoted-string  =        ( <"> *(qdtext) <"> )
+
+
+       qdtext        = <any CHAR except <"> and CTLs,
+                       but including LWS>
+
+The backslash character        ("\") may be used as a single-character quoting
+mechanism only within quoted-string and        comment constructs.
+
+       quoted-pair    =        "\" CHAR
+
+
+7 Protocol Parameters
+
+7.1 HTTP Version
+HTTP uses a "<major>.<minor>" numbering        scheme to indicate versions of
+the protocol. The protocol versioning policy is        intended to allow the
+sender to indicate the format of a message and its capacity for
+understanding further HTTP communication, rather than the features
+obtained via that communication. No change is made to the version number
+for the        addition of message components which do not affect communication
+behavior or which only add to extensible field values. The <minor>
+number is incremented when the changes made to the protocol add        features
+which do not change the        general message parsing algorithm, but which may
+add to the message semantics and imply additional capabilities of the
+sender.        The <major> number is incremented when the format of a message
+within the protocol is changed.
+
+The version of an HTTP message is indicated by an HTTP-Version field in
+the first line of the message. If the protocol version is not specified,
+the recipient MUST assume that the message is in the simple HTTP/0.9
+format .
+
+       HTTP-Version   =        "HTTP" "/" 1*DIGIT "." 1*DIGIT
+
+Note that the major and        minor numbers SHOULD be treated as separate
+integers and that each MAY be incremented higher than a        single digit.
+Thus, HTTP/2.4 is a lower version than HTTP/2.13, which        in turn is lower
+than HTTP/12.3.        Leading zeros SHOULD be ignored by recipients and never
+generated by senders.
+
+Applications sending Full-Request or Full-Response messages, as        defined
+by this        specification, MUST include an HTTP-Version of "HTTP/1.1". Use
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 16]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+of this        version number indicates that the sending application is at
+least conditionally compliant with this        specification.
+
+Proxy and gateway applications MUST be careful in forwarding requests
+that are received in a format different        from that of the application's
+native HTTP version. Since the protocol        version indicates the protocol
+capability of the sender, a proxy/gateway MUST never send a message with
+a version indicator which is greater than its native version; if a
+higher version request is received, the        proxy/gateway MUST either
+downgrade the request version, respond with an error, or switch        to
+tunnel behavior. Requests with a version lower than that of the
+application's native format MAY        be upgraded before being forwarded; the
+proxy/gateway's        response to that request MUST follow the server
+requirements listed above.
+
+  Note:        Converting between versions of HTTP may involve addition or
+  deletion of headers required or forbidden by the version involved.
+  It is        likely more involved than just changing the version
+  indicator.
+
+
+7.2 Uniform Resource Identifiers
+URIs have been known by        many names: WWW addresses, Universal Document
+Identifiers, Universal Resource        Identifiers , and finally the
+combination of Uniform Resource        Locators (URL)  and Names (URN) . As far
+as HTTP        is concerned, Uniform Resource Identifiers are simply formatted
+strings        which identify--via name, location, or any other characteristic--
+a network resource.
+
+
+7.2.1 General Syntax
+URIs in        HTTP can be represented in absolute form or relative to some
+known base URI , depending upon        the context of their use. The two forms
+are differentiated by the fact that absolute URIs always begin with a
+scheme name followed by        a colon.
+
+       URI           = ( absoluteURI | relativeURI ) [ "#" fragment ]
+
+       absoluteURI    =        scheme ":" *( uchar | reserved )
+
+       relativeURI    =        net_path | abs_path | rel_path
+
+       net_path              = "//" net_loc [ abs_path ]       abs_path
+                     = "/" rel_path
+       rel_path              = [ path ] [ ";" params ] [ "?" query ]
+
+       path          = fsegment *( "/" segment )
+       fsegment              = 1*pchar
+       segment       = *pchar
+
+       params        = param *( ";" param )
+       param         = *( pchar | "/" )
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 17]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+       scheme        = 1*( ALPHA | DIGIT | "+" | "-" | "." )
+       net_loc       = *( pchar | ";" | "?" )
+       query         = *( uchar | reserved )
+       fragment              = *( uchar | reserved )
+
+       pchar         = uchar | ":" | "@" | "&amp;" | "=" | "+"
+       uchar         = unreserved | escape
+       unreserved     =        ALPHA | DIGIT | safe | extra | national
+
+       escape        = "%" HEX HEX
+       reserved              = ";" | "/" | "?" | ":" | "@" | "&amp;" | "=" | "+"
+       extra         = "!" | "*" | "'" | "(" | ")" | ","
+       safe          = "$" | "-" | "_" | "."
+       unsafe        = CTL | SP | <"> | "#" | "%" | "<" | ">"
+       national              = <any OCTET excluding ALPHA, DIGIT,
+                       reserved, extra, safe, and unsafe>
+
+For definitive information on URL syntax and semantics,        see RFC 1738
+and RFC        1808 . The BNF above includes national characters not allowed in
+valid URLs as specified        by RFC 1738, since HTTP servers are not
+restricted in the set of unreserved characters allowed to represent the
+rel_path part of addresses, and        HTTP proxies may receive requests for
+URIs not defined by RFC        1738.
+
+The HTTP protocol does not place any a priori limit on the length of a
+URI.   Servers MUST be able to handle the URI of any resource they
+serve, and SHOULD be able to handle URIs of unbounded length if they
+provide        GET-based forms that could generate such URIs. A server SHOULD
+return a status        code of
+
+      414 Request-URI Too Large
+
+ if a URI is longer than the server can        handle.  See section 12.4.1.15.
+
+  Note:        Servers should be cautious about depending on URI lengths
+  above        255 bytes, because some older client or proxy implementations
+  may not properly support these.
+
+ All client and        proxy implementations MUST be able to handle a URI of
+any finite length.
+
+
+7.2.2 http URL
+The "http" scheme is used to locate network resources via the HTTP
+protocol. This section defines the scheme-specific syntax and semantics
+for http URLs.
+
+       http_URL              = "http:" "//" host [ ":" port ] [ abs_path ]
+
+       host          = <A legal Internet host domain name
+                        or IP address (in dotted-decimal form),
+                        as defined by Section 2.1 of RFC 1123>
+
+       port          = *DIGIT
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 18]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+If the port is empty or        not given, port 80 is assumed. The semantics are
+that the identified resource is        located at the server listening for TCP
+connections on that port of that host, and the Request-URI for the
+resource is abs_path.  The use of IP addresses in URL's        SHOULD be
+avoided        whenever possible.  See RFC 1900.  If the abs_path is not
+present        in the URL, it MUST be given as "/" when used as a Request-URI
+for a resource (section        9.1.2).
+
+  Note:        Although the HTTP protocol is independent of the transport
+  layer        protocol, the http URL only identifies resources by their TCP
+  location, and        thus non-TCP resources MUST be identified by some
+  other        URI scheme.
+
+The canonical form for "http" URLs is obtained by converting any UPALPHA
+characters in host to their LOALPHA equivalent (hostnames are case-
+insensitive), eliding the [ ":"        port ] if the port is 80, and replacing
+an empty abs_path with "/".
+
+
+7.2.3 URI Canonicalization
+A cache, when comparing        two URIs to decide if they match or not, a cache
+MUST use a case-sensitive octet-by-octet comparison of the entire URIs,
+with these exceptions:
+
+Following the rules from section 7.2.2:
+
+  .  A port that is empty or not given is equivalent to        port 80.
+  .  Comparisons of host names MUST be case-insensitive.
+  .  Comparisons of scheme names MUST be case-insensitive.
+  .  An        empty abs_path is equivalent to an abs_path of "/"
+Characters except those        in the reserved set and the unsafe set (see
+section        7.2) are equivalent to their ""%" HEX HEX" encodings.
+
+For example, the following three URIs are equivalent:
+
+      http://abc.com:80/~smith/home.html
+      http://ABC.com/%7Esmith/home.html
+      http://ABC.com:/%7esmith/home.html
+
+
+
+
+7.3 Date/Time Formats
+
+7.3.1 Full Date
+HTTP applications have historically allowed three different formats for
+the representation of date/time        stamps:
+
+       Sun, 06 Nov 1994        08:49:37 GMT   ; RFC 822, updated by RFC 1123
+       Sunday, 06-Nov-94 08:49:37 GMT  ; RFC 850, obsoleted by RFC 1036
+       Sun Nov 6 08:49:37 1994        ; ANSI C's asctime() format
+
+The first format is preferred as an Internet standard and represents a
+fixed-length subset of that defined by RFC 1123         (an update to RFC 822).
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 19]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+The second format is in        common use, but is based on the obsolete RFC
+850  date format and lacks a four-digit        year. HTTP/1.1 clients and
+servers        that parse the date value MUST accept all three formats, though
+they MUST generate only        the RFC 1123 format for representing date/time
+stamps in HTTP message fields.
+
+  Note:        Recipients of date values are encouraged to be robust in
+  accepting date values        that may have been generated by non-HTTP
+  applications,        as is sometimes the case when retrieving or posting
+  messages via proxies/gateways        to SMTP or NNTP.
+
+All HTTP date/time stamps MUST be represented in Universal Time        (UT),
+also known as Greenwich        Mean Time (GMT), without exception. This is
+indicated in the first two formats by the inclusion of "GMT" as        the
+three-letter abbreviation for time zone, and SHOULD be assumed when
+reading        the asctime format.
+
+       HTTP-date      =        rfc1123-date | rfc850-date | asctime-date
+
+       rfc1123-date   =        wkday "," SP date1 SP time SP "GMT"
+       rfc850-date    =        weekday "," SP date2 SP time SP "GMT"
+       asctime-date   =        wkday SP date3 SP time SP 4DIGIT
+
+       date1         = 2DIGIT SP month SP 4DIGIT
+                       ; day month year (e.g., 02 Jun 1982)
+       date2         = 2DIGIT "-" month "-" 2DIGIT
+                       ; day-month-year (e.g., 02-Jun-82)
+       date3         = month SP ( 2DIGIT | ( SP 1DIGIT ))
+                       ; month day (e.g., Jun  2)
+
+       time          = 2DIGIT ":" 2DIGIT ":" 2DIGIT
+                       ; 00:00:00 - 23:59:59
+
+       wkday         = "Mon" | "Tue" | "Wed"
+                     | "Thu" | "Fri" | "Sat" | "Sun"
+
+       weekday       = "Monday" | "Tuesday" | "Wednesday"
+                     | "Thursday" | "Friday" | "Saturday" | "Sunday"
+
+       month         = "Jan" | "Feb" | "Mar" | "Apr"
+                     | "May" | "Jun" | "Jul" | "Aug"
+                     | "Sep" | "Oct" | "Nov" | "Dec"
+
+  Note:        HTTP requirements for the date/time stamp format apply only
+  to their usage within        the protocol stream. Clients and servers are
+  not required to use these formats for        user presentation, request
+  logging, etc.
+
+Additional rules for requirements on parsing and representation        of dates
+and other potential problems with date representations include:
+
+  .  HTTP/1.1 clients and caches should        assume that an RFC-850 date
+     which appears to be more than 50 years in the future is in        fact in
+     the past (this helps solve        the "year 2000" problem).
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 20]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+  .  An        HTTP/1.1 implementation may internally represent a parsed
+     Expires date as earlier than the proper value, but        MUST NOT
+     internally        represent a parsed Expires date as later than the proper
+     value.
+  .  All expiration-related calculations must be done in Universal Time
+     (GMT).  The local time zone MUST NOT influence the        calculation or
+     comparison        of an age or expiration time.
+  .  If        an HTTP header incorrectly carries a date value with a time zone
+     other than        GMT, it must be converted into GMT using the most
+     conservative possible conversion.
+
+
+
+
+7.3.2 Delta Seconds
+Some HTTP header fields        allow a time value to be specified as an integer
+number of seconds, represented in decimal, after the time that the
+message        was received. This format SHOULD only be used to represent short
+time periods or        periods that cannot start until receipt of the message.
+
+       delta-seconds  =        1*DIGIT
+
+
+7.4 Character Sets
+HTTP uses the same definition of the term "character set" as that
+described for MIME:
+
+  The term "character set" is used in this document to refer to        a
+  method used with one or more tables to convert a sequence of octets
+  into a sequence of characters. Note that unconditional conversion
+  in the other direction is not        required, in that not all characters
+  may be available in a        given character set and a character set may
+  provide more than one        sequence of octets to represent a particular
+  character. This definition is        intended to allow various kinds of
+  character encodings, from simple single-table        mappings such as US-
+  ASCII        to complex table switching methods such as those that use ISO
+  2022's techniques. However, the definition associated        with a MIME
+  character set        name MUST fully specify the mapping to be performed
+  from octets to characters. In        particular, use of external profiling
+  information to determine the exact mapping is        not permitted.
+
+  Note:        This use of the term "character set" is more commonly
+  referred to as a "character encoding." However, since        HTTP and MIME
+  share        the same registry, it is important that the terminology also
+  be shared.
+
+HTTP character sets are        identified by case-insensitive tokens. The
+complete set of        tokens is defined by the IANA Character Set registry .
+However, because that registry does not        define a single, consistent
+token for each character set, we define        here the preferred names for
+those character        sets most likely to be used with HTTP entities. These
+character sets include those registered        by RFC 1521  -- the US-ASCII
+and ISO-8859  character        sets -- and other names specifically recommended
+for use        within MIME charset parameters.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 21]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+       charset = "US-ASCII"
+              | "ISO-8859-1" | "ISO-8859-2" | "ISO-8859-3"
+              | "ISO-8859-4" | "ISO-8859-5" | "ISO-8859-6"
+              | "ISO-8859-7" | "ISO-8859-8" | "ISO-8859-9"
+              | "ISO-2022-JP" | "ISO-2022-JP-2" | "ISO-2022-KR"
+              | "UNICODE-1-1" | "UNICODE-1-1-UTF-7"
+              | "UNICODE-1-1-UTF-8" | token
+
+Although HTTP allows an        arbitrary token to be used as a charset value,
+any token that has a predefined        value within the IANA Character Set
+registry  MUST represent the character set defined by that registry.
+Applications SHOULD limit their        use of character sets to those defined
+by the IANA registry.
+
+The character set of an        entity body SHOULD be labeled as the lowest
+common denominator of the character codes used within that body, with
+the exception that no label is preferred over the labels US-ASCII or
+ISO-8859-1.
+
+
+7.5 Content Codings
+Content        coding values indicate an encoding transformation that has been
+or can be applied to a resource        entity. Content codings are primarily
+used to        allow a document to be compressed or encrypted without losing
+the identity of        its underlying media type. Typically, the resource
+entity is stored in this encoding and only decoded before rendering or
+analogous usage.
+
+       content-coding  = "gzip" | "x-gzip"
+                       | "compress" | "x-compress" | token
+
+  Note:        For historical reasons, HTTP applications SHOULD consider "x-
+  gzip"        and "x-compress" to be equivalent to "gzip" and "compress",
+  respectively.
+
+All content-coding values are case-insensitive.        HTTP/1.1 uses content-
+coding values in the Accept-Encoding (section 18.3) and
+Content-Encoding
+(section 18.13)        header fields. Although the value describes the
+content-
+coding,        what is more important is that it indicates what decoding
+mechanism will be required to remove the encoding. Note        that a single
+program        MAY be capable of decoding multiple content-coding formats. Two
+values are defined by this specification:
+
+
+gzip
+     An        encoding format produced by the file compression program "gzip"
+     (GNU zip) developed by Jean-loup Gailly. This format is typically a
+     Lempel-Ziv        coding (LZ77) with a 32 bit CRC.
+
+compress
+     The encoding format produced by the file compression program
+     "compress". This format is        an adaptive Lempel-Ziv-Welch coding
+     (LZW).
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 22]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+  Note:        Use of program names for the identification of encoding
+  formats is not desirable and should be discouraged for future
+  encodings. Their use here is representative of historical practice,
+  not good design.
+
+HTTP defines a registration process which uses the Internet Assigned
+Numbers        Authority (IANA) as a central registry for content-coding value
+tokens.         Additional content-coding value tokens beyond the four defined
+in this        document (gzip x-gzip compress x-compress)  SHOULD be registered
+with the IANA. To allow        interoperability between clients and servers,
+specifications of the content coding algorithms        used to implement a new
+value SHOULD be        publicly available and adequate for independent
+implementation,        and MUST conform to the purpose of content coding
+defined        in this section.
+
+
+7.6 Transfer Codings
+Transfer coding        values are used to indicate an encoding transformation
+that has been, can be, or may need to be applied to an Entity-Body in
+order to ensure        safe transport through the network. This differs from a
+content        coding in that the transfer coding is a property of the
+message,
+not of the original resource entity.
+
+       transfer-coding        = "chunked" | transfer-extension
+
+       transfer-extension      = token
+
+All transfer-coding values are case-insensitive. HTTP/1.1 uses transfer
+coding values in the Transfer-Encoding header field (section 18.43).
+
+Transfer codings are analogous to the Content-Transfer-Encoding        values
+of MIME        , which were designed to enable safe transport of binary data
+over a 7-bit transport service.        However, "safe transport" has a
+different focus        for an 8bit-clean transfer protocol. In HTTP, the only
+unsafe characteristic of message bodies        is the difficulty in determining
+the exact body length (section 11.2.2),        or the desire to encrypt data
+over a shared transport.
+
+All HTTP/1.1 applications MUST be able to receive and decode the
+"chunked" transfer coding , and        MUST ignore transfer coding extensions
+they do        not understand. A server which receives a an entity-body with a
+transfer-coding        it does not understand SHOULD return
+501(Unimplemented),
+and close the connection. A server MUST        NOT send transfer-codings to a
+client that were not defined in        the version of HTTP used in the client's
+request. Clients sending entity-bodies with transfer-codings SHOULD must
+be prepared for        the connection to be closed if the server doesn't
+understand the transfer-coding.         The chunked encoding modifies the body
+of a message in        order to transfer it as a series of chunks, each with
+its own        size indicator, followed by an optional footer containing
+entity-header fields. This allows dynamically-produced content to be
+transferred along with the information necessary for the recipient to
+verify that it has received the        full message.
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 23]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+       Chunked-Body   =        *chunk
+                       "0" CRLF
+                       footer
+                       CRLF
+
+       chunk         = chunk-size [ chunk-ext ] CRLF
+                       chunk-data CRLF
+
+       chunk-size     =        hex-no-zero *HEX
+       chunk-ext      =        *( ";" chunk-ext-name [ "=" chunk-ext-value ] )
+       chunk-ext-name =        token
+       chunk-ext-val  =        token | quoted-string
+       chunk-data     =        chunk-size(OCTET)
+
+       footer        = *<<Content-MD5 and future headers that specify
+                        they are allowed in footer>>
+
+       hex-no-zero    =        <HEX excluding "0">
+
+Note that the chunks are ended by a zero-sized chunk, followed by the
+footer and terminated by an empty line.        An example process for decoding
+a Chunked-Body is presented in appendix        23.3.6.
+
+
+7.7 Media Types
+HTTP uses Internet Media Types in the Content-Type (section 18.19) and
+Accept (section        18.1) header fields in order to provide open and
+extensible data        typing and type negotiation.
+
+       media-type     =        type "/" subtype *( ";" parameter )
+       type          = token
+       subtype       = token
+
+Parameters may follow the type/subtype in the form of attribute/value
+pairs.
+
+       parameter      =        attribute "=" value
+       attribute      =        token
+       value         = token | quoted-string
+
+The type, subtype, and parameter attribute names are case-insensitive.
+Parameter values may or        may not be case-sensitive, depending on the
+semantics of the parameter name. LWS MUST NOT be generated between the
+type and subtype, nor between an attribute and its value. Upon receipt
+of a media type        with an unrecognized parameter, a user agent SHOULD
+treat the media        type as if the unrecognized parameter and its value were
+not present.
+
+Some older HTTP        applications do not recognize media type parameters.
+HTTP/1.1 applications SHOULD only use media type parameters when they
+are necessary to define        the content of a message.
+
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 24]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+Media-type values are registered with the Internet Assigned Number
+Authority (IANA        ). The media type registration process is outlined in
+RFC 1590 . Use of non-registered media types is        discouraged.
+
+
+7.7.1 Canonicalization and Text        Defaults
+Internet media types are registered with a canonical form. In general,
+an Entity-Body transferred via HTTP MUST be represented        in the
+appropriate canonical form prior to its        transmission; the exception is
+"text" types, as defined in the        next paragraph..
+
+when in        canonical form , media subtypes of the "text" type use CRLF as
+the text line break. However, HTTP allows the transport        of text media
+with plain CR or LF alone representing a line break when if it is done
+consistently for an entire Entity-Body.. HTTP applications MUST        accept
+CRLF, bare CR, and bare        LF as being representative of a line break in
+text media received via        HTTP.In addition, if the text media is
+represented in a character set that does not use octets        13 and 10 for CR
+and LF respectively, as        is the case for some multi-byte character sets,
+HTTP allows the        use of whatever octet sequences are defined by that
+character set to represent the equivalent of CR        and LF for line breaks.
+This flexibility regarding line        breaks applies only to text media in the
+Entity-Body; a bare CR or LF MUST NOT be substituted for CRLF within any
+of the HTTP control structures (such as        header fields and multipart
+boundaries).
+
+If an Entity-Body is encoded with a Content-Encoding, the underlying
+data MUST be in        a form defined above prior to being encoded.
+
+The "charset" parameter        is used with some media types to define the
+character set (section 7.4) of the data. When no explicit charset
+parameter is provided by the sender, media subtypes of the "text" type
+are defined to have a default charset value of "ISO-8859-1" when
+received via HTTP. Data        in character sets other than "ISO-8859-1" or its
+subsets        MUST be labeled with an appropriate charset value in order to be
+consistently interpreted by the        recipient.
+
+  Note:        Many current HTTP servers provide data using charsets other
+  than "ISO-8859-1" without proper labeling. This situation reduces
+  interoperability and is not recommended. To compensate for this,
+  some HTTP user agents        provide a configuration option to allow the
+  user to change the default interpretation of the media type
+  character set        when no charset parameter is given.
+
+
+
+
+7.7.2 Multipart        Types
+MIME provides for a number of "multipart" types        -- encapsulations of one
+or more        entities within a single message's Entity-Body. All multipart
+types share a common syntax, as        defined in section 7.2.1 of RFC 1521 ,
+and MUST include a boundary parameter as part of the media type        value.
+The message body is itself a protocol element and MUST therefore use
+only CRLF to represent line breaks between body-parts. Unlike in RFC
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 25]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+1521, the epilogue of any multipart message MUST be empty; HTTP
+applications MUST NOT transmit the epilogue even if the        original
+resource entity        contains an epilogue.
+
+In HTTP, multipart body-parts MAY contain header fields        which are
+significant to the meaning of that part.
+
+In general, an HTTP user agent SHOULD follow the same or similar
+behavior as a MIME user        agent would upon receipt of a multipart type. If
+an application receives        an unrecognized multipart subtype, the
+application MUST treat it as being equivalent to "multipart/mixed".
+
+  Note:        The "multipart/form-data" type has been specifically defined
+  for carrying form data suitable for processing via the POST request
+  method, as described in RFC 1867 .
+
+
+
+
+7.8 Product Tokens
+Product        tokens are used to allow communicating applications to identify
+themselves via a simple        product token, with an optional slash and
+version        designator. Most fields using product tokens also allow sub-
+products which form a significant part of the application to be        listed,
+separated by whitespace. By convention,        the products are listed in order
+of their significance for identifying the application.
+
+       product        = token ["/" product-version]
+       product-version = token
+
+Examples:
+
+       User-Agent: CERN-LineMode/2.15 libwww/2.17b3
+       Server: Apache/0.8.4
+
+Product        tokens should be short and to the point -- use of them for
+advertising or other non-essential information is explicitly forbidden.
+Although any token character may appear        in a product-version, this token
+SHOULD only be used for        a version identifier (i.e., successive versions
+of the same product SHOULD only        differ in the product-version portion of
+the product value).
+
+
+7.9 Quality Values
+HTTP content negotiation (section 15) uses short "floating point"
+numbers        to indicate the relative importance ("weight") of various
+negotiable parameters. The weights are normalized to a real number in
+the range 0 through 1, where 0 is the minimum and 1 the        maximum value.
+In order to discourage misuse of this feature, HTTP/1.1        applications
+MUST NOT generate more than three digits after the decimal point. User
+configuration of these values SHOULD also be limited in        this fashion.
+
+       qvalue        = ( "0" [ "." 0*3DIGIT ] )
+                     | ( "1" [ "." 0*3("0") ] )
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 26]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+"Quality values" is a slight misnomer, since these values actually
+measure        relative degradation in perceived quality. Thus, a value of
+"0.8" represents a 20% degradation from        the optimum rather than a
+statement of 80% quality.
+
+
+7.10 Language Tags
+A language tag identifies a natural language spoken, written, or
+otherwise conveyed by human beings for communication of        information to
+other human beings. Computer languages are explicitly excluded.        HTTP
+uses language tags within the Accept-Language, and Content-Language
+fields.
+
+The syntax and registry        of HTTP language tags is the same as that
+defined        by RFC 1766 . In summary, a language tag is composed of 1 or
+more parts: A primary language tag and a possibly empty        series of
+subtags:
+
+       language-tag  = primary-tag *( "-" subtag )
+
+       primary-tag   = 1*8ALPHA
+       subtag        = 1*8ALPHA
+
+Whitespace is not allowed within the tag and all tags are case-
+insensitive. The name space of language        tags is administered by the
+IANA. Example tags include:
+
+       en, en-US, en-cockney, i-cherokee, x-pig-latin
+
+where any two-letter primary-tag is an ISO 639 language        abbreviation and
+any two-letter initial subtag is an ISO        3166 country code.  (The last
+three tags above are not registered tags; all but the last are examples
+of tags        which could be registered in future.)
+
+
+7.11 Entity Tags
+Entity tags are        quoted strings whose internal structure is not visible
+to clients or caches. Entity tags are used as cache validators in
+HTTP/1.1.
+
+      entity-tag = strong-entity-tag | weak-entity-tag
+                             | null-entity-tag
+      strong-entity-tag        = quoted-string
+      weak-entity-tag =        quoted-string "/W"
+      null-entity-tag =        <"> <">
+
+  Note that the        "/W" tag is considered part of a weak entity tag; it
+  MUST NOT be removed by any cache or client.
+
+There are two comparison functions on  validators:
+
+  .  The strong        comparison function: in order to be considered equal,
+     both validators must be identical in every        way, and neither may be
+     weak.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 27]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+  .  The weak comparison function: in order to be considered equal, both
+     validators        must be identical in every way, except for the presence
+     or        absence of a "weak" tag.
+The weak comparison function MAY be used for simple (non-subrange) GET
+requests. The strong comparison        function MUST be used in all other
+cases.
+
+The null validator is a        special value, defined as never matching the
+current        validator of an existing resource entity, and always matching
+the "current" validator        of a resource entity  that does not exist.
+
+
+7.12 Variant IDs
+A cache        stores instances of resource entities, not instances of generic
+resources per se. Therefore, the URI of        a generic resource is not
+sufficient for use as an identifier for        a specific resource entity. In
+certain        interactions between a cache and an origin server, it is
+convenient to encode that identifier using a more   compact
+representation than the        full set of selecting request headers (which may
+not even be possible if        the selection criteria are not known to the
+cache).
+
+For these reasons, the HTTP protocol provides an optional mechanism for
+identifying a specific entity source of        a generic resource,  called a
+variant-ID.
+
+Variant-IDs are        used to identify specific variants of a generic
+resource; see section 16.5.3 for how they are used.
+
+      variant-id = quoted-string
+
+Variant-IDs are        compared using string octet-equality; case is
+significant.
+
+All responses from generic resources SHOULD include variant-IDs.  If
+these are not present, the resource author can expect caches to
+correctly handle requests on the generic resource, but cannot expect the
+caching        to be efficient.
+
+
+
+
+7.13 Variant Sets
+Validator sets are used        for doing conditional retrievals on generic
+resources; see section 16.5.3.
+
+      variant-set = 1#variant-set-item
+      variant-set-item = opaque-validator ";" variant-id
+
+
+7.14 Range Protocol Parameters
+This section defines certain HTTP protocol parameters used in range
+requests and related responses.
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 28]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+7.14.1 Range Units
+A resource entity may be broken        down into subranges according to various
+structural units.
+
+      range-unit       = bytes-unit | other-range-unit
+
+      bytes-unit       = "bytes"
+      other-range-unit = token
+
+The only range unit defined by HTTP/1.1        is "bytes".  HTTP/1.1
+implementations        may ignore ranges specified using other units.
+
+
+7.14.2 Byte Ranges
+Since all HTTP entities        are represented in HTTP messages as sequences of
+bytes, the concept of a        byte range is meaningful for any HTTP entity.
+(However, not all clients and servers need to support byte-range
+operations.)
+
+Byte range specifications in HTTP apply        to the sequence of bytes that
+would be transferred by        the protocol if no transfer-coding were being
+applied.
+
+  This means that if Content-coding is applied to the data, the        byte
+  range        specification applies to the resulting content-encoded byte
+  stream, not to the unencoded byte stream.  It        also means that if
+  the entity-body's media-type is a composite type (e.g., multipart/*
+  and message/rfc822), then the        composite's body-parts may have their
+  own content-encoding and content-transfer-encoding, and the byte
+  range        applies to the result of the those encodings.
+
+A byte range operation may specify a single range of bytes, or a set of
+ranges within a        single entity.
+
+       ranges-specifier        = byte-ranges-specifier
+
+       byte-ranges-specifier = bytes-unit "=" byte-range-set
+
+       byte-range-set =        1#( byte-range-spec | suffix-byte-range-spec )
+
+       byte-range-spec = first-byte-pos        "-" [last-byte-pos]
+
+       first-byte-pos =        1*DIGIT
+
+       last-byte-pos = 1*DIGIT
+
+The first-byte-pos value in a byte-range-spec gives the        byte-offset of
+the first byte in a range.  The        last-byte-pos value gives the byte-
+offset of the last byte        in the range; that is, the byte positions
+specified are inclusive.  Byte offsets start at        zero.
+
+If the last-byte-pos value is present, it must be greater than or equal
+to the first-byte-pos in that byte-range-spec, or the byte-range-spec is
+invalid.  The recipient        of an invalid byte-range-spec must ignore it.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 29]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+If the last-byte-pos value is absent, it is assumed to be equal        to the
+current        length of the entity in bytes.
+
+If the last-byte-pos value is larger than the current length of        the
+entity,        it is assumed to be equal to the current length of the entity.
+
+       suffix-byte-range-spec =        "-" suffix-length
+
+       suffix-length = 1*DIGIT
+
+A suffix-byte-range-spec is used to specify the        suffix of the entity, of
+a length given by the suffix-length value.  (That is, this form
+specifies the last N bytes of an entity.)  If the entity is shorter than
+the specified suffix-length, the entire        entity is used.
+
+Examples of byte-ranges-specifier values (assuming an entity of        length
+10000):
+
+  .  The first 500 bytes (byte offsets 0-499, inclusive):
+       bytes=0-499
+
+  .  The second        500 bytes (byte offsets 500-999, inclusive):
+       bytes=500-999
+
+  .  The final 500 bytes (byte offsets 9500-9999, inclusive):
+       bytes=-500
+
+  .  Or
+       bytes=9500-
+
+  .  The first and last        bytes only (bytes 0 and 9999):
+       bytes=0-0,-1
+
+  .  Several legal but not canonical specifications of the second 500
+     bytes (byte offsets 500-999, inclusive):
+       bytes=500-600,601-999
+
+       bytes=500-700,601-999
+
+
+7.14.3 Content Ranges
+When a server returns a        partial response to a client, it must describe
+both the extent        of the range covered by the response, and the length of
+the entire entity.
+
+       content-range-spec      = byte-content-range-spec
+
+       byte-content-range-spec = bytes-unit SP first-byte-pos "-"
+                                     last-byte-pos "/" entity-length
+
+       entity-length           = 1*DIGIT
+
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 30]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+Unlike byte-ranges-specifier values, a byte-content-range-spec may only
+specify        one range, and must contain absolute byte positions for both the
+first and last byte of the range.
+
+A byte-content-range-spec whose        last-byte-pos value is less than its
+first-byte-pos value, or whose entity-length value is less than        or equal
+to its last-byte-pos value, is invalid.         The recipient of an invalid
+byte-content-range-spec        MUST ignore it and any content transferred along
+with it.
+
+Examples of byte-content-range-spec values, assuming that the entity
+contains a total of 1234 bytes:
+
+  .  The first 500 bytes:
+       bytes 0-499/1234
+
+  .  The second        500 bytes:
+       bytes 500-999/1234
+
+  .  All except        for the first 500 bytes:
+       bytes 500-1233/1234
+
+  .  The last 500 bytes:
+       bytes 734-1233/1234
+
+
+8 HTTP Message
+
+8.1 Message Types
+HTTP messages consist of requests from client to server        and responses
+from server to client.
+
+       HTTP-message   =        Full-Request              ; HTTP/1.1 messages
+                     | Full-Response
+
+Full-Request and Full-Response use the generic message format of RFC 822
+for transferring entities. Both        messages may include optional header
+fields (also known as "headers") and an        entity body. The entity body is
+separated from the headers by a        null line (i.e., a line with nothing
+preceding the CRLF).
+
+
+8.2 Message Headers
+HTTP header fields, which include General-Header (Section 8.3),
+Request-
+Header (Section        9.2), Response-Header (Section 10.2), and Entity-Header
+(Section 11.1) fields, follow the same generic format as that given in
+Section        3.1 of RFC 822 . Each header field consists of a name followed
+by a colon (":") and the field value. Field names are case-insensitive.
+The field value        may be preceded by any amount of LWS, though a single SP
+is preferred. Header fields can        be extended over multiple lines by
+preceding each extra line with at least        one SP or HT.
+
+       HTTP-header    =        field-name ":" [ field-value ] CRLF
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 31]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+       field-name     =        token
+       field-value    =        *( field-content | LWS )
+
+       field-content  =        <the OCTETs making up the field-value
+                       and consisting of either *TEXT or combinations
+                       of token, tspecials, and quoted-string>
+
+The order in which header fields with differing        field names are received
+is not significant. However, it        is "good practice" to send General-
+Header fields first, followed by Request-Header        or Response-Header
+fields,        and ending with the Entity-Header fields.
+
+Multiple HTTP-header fields with the same field-name may be present in a
+message        if and only if the entire field-value for that header field is
+defined        as a comma-separated list [i.e., #(values)]. It MUST be possible
+to combine the multiple        header fields into one "field-name:
+field-value"
+pair, without changing the semantics of        the message, by appending each
+subsequent field-value to the first, each separated by a comma.         Thus,
+the order in which multiple header fields with the same        field-name are
+received may be        significant to the interpretation of the combined
+field-
+value.
+
+
+8.3 General Header Fields
+There are a few        header fields which have general applicability for both
+request        and response messages, but which do not apply to the entity
+being transferred. These headers apply only to the message being
+transmitted.
+
+       General-Header =        Cache-Control            ; Section 18.10
+                     | Connection               ; Section 18.11
+                     | Date                     ; Section 18.20
+                     | Via                      ; Section 18.47
+                     | Keep-Alive               ; Section 23.5.2.5.1
+                     | Pragma                   ; Section 18.34
+                     | Upgrade                  ; Section 18.44
+
+General        header field names can be extended reliably only in combination
+with a change in the protocol version. However,        new or experimental
+header fields may be given the semantics of general header fields if all
+parties        in the communication recognize them to be general header
+fields.
+Unrecognized header fields are treated as Entity-Header        fields.
+
+
+9 Request
+A request message from a client        to a server includes, within the first
+line of        that message, the method to be applied to the resource, the
+identifier of the resource, and        the protocol version in use. For
+backwards compatibility        with the more limited HTTP/0.9 protocol, there
+are two        valid formats for an HTTP request:
+
+       Request       = Full-Request
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 32]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+       Full-Request   =        Request-Line              ; Section 9.1
+                       *( General-Header         ; Section 8.3
+                        | Request-Header         ; Section 9.2
+                        | Entity-Header )        ; Section 11.1
+                       CRLF
+                       [ Entity-Body ]           ; Section 11.2
+
+
+
+
+9.1 Request-Line
+The Request-Line begins        with a method token, followed by the
+Request-URI
+and the        protocol version, and ending with CRLF. The elements are
+separated by SP        characters. No CR or LF are allowed except in the final
+CRLF sequence.
+
+       Request-Line   =         CRLF | Method SP Request-URI SP HTTP-Version CRLF
+
+In the interest        of robustness, HTTP/1.1 servers SHOULD ignore null
+request        lines (ones that comprise just CRLF).  An HTTP/1.1 client MUST
+NOT preface a request with CRLF.
+
+
+9.1.1 Method
+The Method token indicates the method to be performed on the resource
+identified by the Request-URI. The method is case-sensitive.
+
+       Method        = "OPTIONS"                ; Section 13.1
+                     | "GET"                    ; Section 13.2
+                     | "HEAD"                   ; Section 13.3
+                     | "POST"                   ; Section 13.4
+                     | "PUT"                    ; Section 13.5
+                     | "DELETE"                 ; Section 13.6
+                     | "TRACE"                  ; Section 13.7
+                     | extension-method
+
+       extension-method        = token
+
+The list of methods acceptable by a plain resource can be specified in
+an Allow header        field (section 18.7). However, the client is always
+notified through the return code of the        response whether a method is
+currently allowed on a plain resource, as this can change dynamically.
+Servers        SHOULD return the status code 405 (method not allowed) if the
+method is known        by the server but not allowed for the requested
+resource, and 501 (not implemented) if the method is unrecognized or not
+implemented by the server. The list of methods known by        a server can be
+listed in a Public response header field (section 18.37).
+
+The methods GET        and HEAD MUST be supported by all general-purpose
+servers. Servers which provide Last-Modified dates for resources MUST
+also support the conditional GET method. All other methods are
+optional;
+however, if the        above methods are implemented, they MUST be implemented
+with the same semantics        as those specified in section 13.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 33]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+9.1.2 Request-URI
+The Request-URI        is a Uniform Resource Identifier (section 7.2) and
+identifies the resource        upon which to apply the request.
+
+       Request-URI    =        "*" | absoluteURI | abs_path
+
+The three options for Request-URI are dependent        on the nature of the
+request. The asterisk "*" means        that the request does not apply to a
+particular resource, but to the        server itself, and is only allowed when
+the Method used        does not necessarily apply to a resource. One example
+would be
+
+       OPTIONS * HTTP/1.1
+
+The absoluteURI        form is required when the request is being made to a
+proxy. The proxy is requested to forward the request or        service it from
+a valid        cache, and return the response.. Note that the proxy MAY forward
+the request on to another proxy        or directly to the server specified by
+the absoluteURI. In order to avoid request loops, a proxy MUST be able
+to recognize all of its        server names, including any aliases, local
+variations, and        the numeric IP address. An example Request-Line would
+be:
+
+       GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1
+
+To allow for transition        to absoluteURIs in all requests in future
+versions of HTTP, all HTTP/1.1 servers MUST accept the absoluteURI form
+in requests, even though HTTP/1.1 clients will only generate them in
+requests to proxies.  The Host request-header field MUST be ignored in
+requests using an absoluteURL as the Request-URI.
+
+The most common        form of Request-URI is that used to identify a resource
+on an origin server or gateway.        In this case the absolute path of the
+URI MUST be transmitted        (see 7.2.1, abs_path) as the Request-URI, and
+the network location of        the URI (net_loc) MUST be transmitted in a Host
+header field.. For example, a client wishing to        retrieve the resource
+above directly from the        origin server would create a TCP connection to
+port 80        of the host "www.w3.org" and send the lines:
+
+       GET /pub/WWW/TheProject.html HTTP/1.1
+       Host:www.w3.org
+
+followed by the        remainder of the Full-Request. Note that the absolute
+path cannot be empty; if none is present in the        original URI, it MUST be
+given as "/" (the server root).
+
+If a proxy receives a request without any path in the Request-URI and
+the method specified is        capable of supporting the asterisk form of
+request, then the last proxy on        the request chain MUST forward the
+request        with "*" as the final Request-URI. For example, the request
+
+       OPTIONS http://www.ics.uci.edu:8001 HTTP/1.1
+
+would be forwarded by the proxy        as
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 34]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+       OPTIONS * HTTP/1.1
+       Host: www.ics.uci.edu:8001
+
+after connecting to port 8001 of host "www.ics.uci.edu".
+
+The Request-URI        is transmitted as an encoded string, where some
+characters may be escaped using        the "% HEX HEX" encoding defined by RFC
+1738 . The origin server MUST decode the Request-URI in        order to
+properly interpret the request.         In requests that they forward, proxies
+MUST NOT rewrite the "abs_path"        part of a Request-URI in any way except
+as noted above to replace a null abs_path with "*". Illegal
+Request-URIs
+SHOULD be responded to with an appropriate status code.        Proxies MAY
+transform the Request-URI for internal processing purposes, but        SHOULD
+NOT send such a        transformed Request-URI  in forwarded requests.
+
+  The main reason for this rule        is to make sure that the form of
+  Request-URI is well specified, to enable future extensions without
+  fear that they will break in the face        of some rewritings. Another
+  is that one consequence of rewriting the Request-URI is that
+  integrity or authentication checks by        the server may fail; since
+  rewriting MUST be avoided in this case, it may as well be
+  proscribed in        general. Implementers should be aware that some pre-
+  HTTP/1.1 proxies do some rewriting.
+
+
+9.2 The        Resource Identified by a Request
+HTTP/1.1 origin        servers SHOULD be aware that the exact resource
+identified by an Internet request is determined        by examining both the
+Request-URI and        the Host header field.  An origin server that does not
+allow resources        to differ by the requested host MAY ignore the Host
+header field.  An origin server        that does differentiate resources based
+on the host requested (sometimes referred to as        virtual hosts or vanity
+hostnames) MUST        use the following rules for determining the requested
+resource on an HTTP/1.1        request:.
+
+  1. If        Request-URI is an absoluteURI, the host is included in the
+     Request-URI.  Any Host header field in the        request MUST be
+ignored.
+  2. If        the Request-URI is not an absoluteURI, and the request includes
+     a Host header field, the host is determined by the        Host header
+     field.
+  3. If        the request-URI is not an absoluteURI and no Host header field
+     is        present (or does not represent a valid host on that server),
+     the response MUST be a 400        (Bad Request) error message.
+Recipients of an HTTP/1.0 request lacking a Host header        field MAY
+attempt        to use heuristics (e.g., examination of the URI path for
+something unique to a particular host) in order        to determine what exact
+resource is being requested.
+
+
+9.3 Request Header Fields
+The request header fields allow        the client to pass additional
+information about the request, and about the client itself, to the
+server.        These fields act as request modifiers, with semantics
+equivalent
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 35]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+to the parameters on a programming language method (procedure)
+invocation.
+
+       Request-Header =        Accept                   ; Section 18.1
+                     | Accept-Charset           ; Section 18.2
+                     | Accept-Encoding          ; Section 18.3
+                     | Accept-Language          ; Section 18.4
+                     | Authorization            ; Section 18.8
+                     | From                     ; Section 18.23
+                     | Host                     ; Section 18.24
+                     | If-Modified-Since        ; Section 18.25
+                     | If-Range                 ; Section 18.28
+                     | Proxy-Authorization      ; Section 18.36
+                     | Range                    ; Section 18.38
+                     | Referer                  ; Section 18.39
+                     | User-Agent               ; Section 18.45
+                     | Max-Forwards             ; Section 18.32
+
+Request-Header field names can be extended reliably only in combination
+with a change in the protocol version. However,        new or experimental
+header fields MAY be given the semantics of request header fields if all
+parties        in the communication recognize them to be request header
+fields.
+Unrecognized header fields are treated as Entity-Header        fields.
+
+
+10 Response
+After receiving        and interpreting a request message, a server responds in
+the form of an HTTP response message.
+
+       Response               = Full-Response
+
+       Full-Response   = Status-Line              ; Section 10.1
+                        *( General-Header         ; Section 8.3
+                         | Response-Header        ; Section 10.2
+                         | Entity-Header )        ; Section 11.1
+                        CRLF
+                        [ Entity-Body ]           ; Section 11.2
+
+
+10.1 Status-Line
+The first line of a Full-Response message is the Status-Line, consisting
+of the protocol        version followed by a numeric status code and its
+associated textual phrase, with        each element separated by SP
+characters.
+No CR or LF is allowed except in the final CRLF        sequence.
+
+       Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
+
+
+10.1.1 Status Code and Reason Phrase
+The Status-Code        element is a 3-digit integer result code of the attempt
+to understand and satisfy the request. The Reason-Phrase is intended to
+give a short textual description of the        Status-Code. The Status-Code is
+intended for use by automata and the Reason-Phrase is intended for the
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 36]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+human user. The        client is not required to examine or display the
+Reason-
+Phrase.
+
+The first digit        of the Status-Code defines the class of response. The
+last two digits        do not have any categorization role. There are 5 values
+for the        first digit:
+
+
+  .  1xx: Informational        - Request received, continuing process
+
+  .  2xx: Success - The        action was successfully received, understood,
+     and accepted
+
+  .  3xx: Redirection -        Further action must be taken in order to
+     complete the request
+
+  .  4xx: Client Error - The request contains bad syntax or cannot be
+     fulfilled
+
+  .  5xx: Server Error - The server failed to fulfill an apparently
+     valid request
+The individual values of the numeric status codes defined for HTTP/1.1,
+and an example set of corresponding Reason-Phrase's, are presented
+below. The reason phrases listed here are only recommended -- they may
+be replaced by local equivalents without affecting the protocol. These
+codes are fully        defined in section 12.
+
+       Status-Code    =        "100"   ; Continue
+                     | "101"   ; Switching Protocols
+                     | "200"   ; OK
+                     | "201"   ; Created
+                     | "202"   ; Accepted
+                     | "203"   ; Non-Authoritative Information
+                     | "204"   ; No Content
+                     | "205"   ; Reset Content
+                     | "206"   ; Partial Content
+                     | "300"   ; Multiple Choices
+                     | "301"   ; Moved Permanently
+                     | "302"   ; Moved Temporarily
+                     | "303"   ; See Other
+                     | "304"   ; Not Modified
+                     | "305"   ; Use Proxy
+                     | "400"   ; Bad Request
+                     | "401"   ; Unauthorized
+                     | "402"   ; Payment Required
+                     | "403"   ; Forbidden
+                     | "404"   ; Not Found
+                     | "405"   ; Method Not Allowed
+                     | "406"   ; Not Acceptable
+                     | "407"   ; Proxy Authentication Required
+                     | "408"   ; Request Time-out
+                     | "409"   ; Conflict
+                     | "410"   ; Gone
+                     | "411"   ; Length Required
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 37]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+                     | "412"   ; Precondition Failed
+                     | "413"   ; Request Entity Too Large
+                     | "414"   ; Request URI Too Large
+                     | "415"   ; Unsupported Media Type
+                     | "500"   ; Internal Server Error
+                     | "501"   ; Not Implemented
+                     | "502"   ; Bad Gateway
+                     | "503"   ; Service Unavailable
+                     | "504"   ; Gateway Time-out
+                     | "505"   ; HTTP Version not supported
+                     | extension-code
+
+       extension-code =        3DIGIT
+
+       Reason-Phrase  =        *<TEXT, excluding CR, LF>
+
+HTTP status codes are extensible. HTTP applications are        not required to
+understand the meaning of all registered status        codes, though such
+understanding is obviously desirable. However, applications MUST
+understand the class of        any status code, as indicated by the first
+digit, and treat any unrecognized response as being equivalent to the
+x00 status code        of that class, with the exception that an unrecognized
+response MUST NOT be cached. For example, if an        unrecognized status code
+of 431 is received by the client, it can safely        assume that there was
+something wrong        with its request and treat the response as if it had
+received a 400 status code. In such cases, user        agents SHOULD present to
+the user the entity returned with the response,        since that entity is
+likely to include human-readable information which will        explain the
+unusual        status.
+
+
+10.2 Response Header Fields
+The response header fields allow the server to pass additional
+information about the response which cannot be placed in the Status-
+Line. These header fields give information about the server and        about
+further        access to the resource identified by the Request-URI.
+
+       Response-Header = Location               ; Section 18.31
+                      | Proxy-Authenticate      ; Section 18.35
+                      | Public                  ; Section 18.37
+                      | Retry-After             ; Section 18.40
+                      | Server                  ; Section 18.41
+                      | WWW-Authenticate        ; Section 18.46
+
+Response-Header        field names can be extended reliably only in combination
+with a change in the protocol version. However,        new or experimental
+header fields MAY be given the semantics of response header fields if
+all parties in the communication recognize them        to be response header
+fields.        Unrecognized header fields are treated as Entity-Header fields.
+
+
+11 Entity
+Full-Request and Full-Response messages        MAY transfer an entity within
+some requests and responses. An        entity consists of Entity-Header fields
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 38]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+and (usually) an Entity-Body. In this section, both sender and recipient
+refer to either        the client or the server, depending on who sends and who
+receives the entity.
+
+
+11.1 Entity Header Fields
+Entity-Header fields define optional metainformation about the Entity-
+Body or, if no body is present,        about the resource identified by the
+request.
+
+       Entity-Header  =        Allow                    ; Section 18.7
+                     | Content-Base             ; Section 18.12
+                     | Content-Encoding         ; Section 18.3
+                     | Content-Language         ; Section 18.14
+                     | Content-Length           ; Section 18.15
+                     | Content-Location         ; Section 18.16
+                     | Content-MD5              ; Section 0
+                     | Content-Range            ; Section 18.18
+                     | Content-Type             ; Section 18.19
+                     | Expires                  ; Section 18.22
+                     | Last-Modified            ; Section 18.30
+                     | Title                    ; Section 18.42
+                     | Transfer-Encoding        ; Section 18.43
+                     | extension-header
+
+       extension-header        = HTTP-header
+
+The extension-header mechanism allows additional Entity-Header fields to
+be defined without changing the        protocol, but these fields cannot be
+assumed        to be recognizable by the recipient. Unrecognized header fields
+SHOULD be ignored by the recipient and forwarded by proxies.
+
+
+11.2 Entity Body
+The entity body        (if any) sent with an HTTP request or response is in a
+format and encoding defined by the Entity-Header fields.
+
+       Entity-Body    =        *OCTET
+
+An entity body MUST  ONLY be included with a request message when the
+request        method calls for one. The presence of an entity body in a
+request        is signaled by the inclusion of a Content-Length and/or
+Content-
+Type header field in the request message headers.
+
+For response messages, whether or not an entity        body is included with a
+message        is dependent on both the request method and the response code.
+All responses to the HEAD request method MUST NOT include a body, even
+though the presence of entity header fields may        lead one to believe they
+do. All        1xx (informational), 204 (no content), and 304 (not modified)
+responses MUST NOT include a body. All other responses MUST include an
+entity body or a Content-Length        header field defined with a value of
+zero (0).
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 39]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+11.2.1 Type
+When an        entity body is included with a message, the data type of that
+body is        determined via the header fields Content-Type,
+Content-Encoding,
+and Transfer-Encoding. These define a three-layer, ordered encoding
+model:
+
+       entity-body :=
+         Transfer-Encoding( Content-Encoding( Content-Type( data ) ) )
+
+The default for        both encodings is none (i.e., the identity function).
+Content-Type specifies the media type of the underlying        data. Content-
+Encoding may be        used to indicate any additional content codings applied
+to the type, usually for the purpose of        data compression, that are a
+property of the        resource entity  requested. Transfer-Encoding may be
+used to        indicate any additional transfer codings applied by an
+application to ensure safe and proper transfer of the message. Note that
+Transfer-Encoding is a property        of the message, not of the resource
+entity.
+
+Any HTTP/1.1 message containing        an entity body SHOULD include a
+Content-
+Type header field defining the media type of that body.        If and only if
+the media type is not given by a Content-Type header, the recipient may
+attempt        to guess the media type via inspection of its content and/or the
+name extension(s) of the URL used to identify the resource. If the media
+type remains unknown, the recipient SHOULD treat it as type
+"application/octet-stream".
+
+
+11.2.2 Length
+When an        entity body is included with a message, the length of that body
+may be determined in one of several ways. If a Content-Length header
+field is present, its value in bytes represents        the length of the entity
+body. Otherwise, the body length is determined by the Transfer-Encoding
+(if the        "chunked" transfer coding has been applied) or by the server
+closing        the connection.
+
+  Note:        Any response message which MUST NOT include an entity body
+  (such        as the 1xx, 204, and 304 responses and any response to a HEAD
+  request) is always terminated        by the first empty line after the
+  header fields, regardless of the entity header fields        present in
+  the message.
+
+Closing        the connection cannot be used to indicate the end of a request
+body, since it leaves no possibility for the server to send back a
+response. For compatibility with HTTP/1.0 applications,        HTTP/1.1
+requests containing an entity body MUST        include a valid Content-Length
+header field unless the        server is known to be HTTP/1.1 compliant.
+HTTP/1.1 servers MUST accept the "chunked" transfer coding (section
+7.6), thus allowing this mechanism to be used for a request when
+Content-Length is unknown.
+
+If a request contains an entity        body and Content-Length is not
+specified, the server SHOULD respond with 400 (bad request) if it cannot
+determine the length of        the request message's content, or with 411
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 40]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+(length        required) if it wishes to insist on receiving a valid Content-
+Length.
+
+Messages MUST NOT include both a Content-Length        header field and the
+"chunked" transfer coding. If both are received, the Content-Length MUST
+be ignored.
+
+When a Content-Length is given in a message where an entity body is
+allowed, its field value MUST exactly match the        number of OCTETs in the
+entity body. HTTP/1.1 user agents MUST notify the user when an invalid
+length is received and detected.
+
+
+12 Status Code Definitions
+Each Status-Code is described below, including a description of        which
+method(s) it can follow        and any metainformation required in the
+response.
+
+
+12.1 Informational 1xx
+This class of status code indicates a provisional response, consisting
+only of        the Status-Line and optional headers, and is terminated by an
+empty line. Since HTTP/1.0 did not define any 1xx status codes,        servers
+MUST NOT send a        1xx response to an HTTP/1.0 client except under
+experimental conditions.
+
+
+12.1.1.1 100 Continue
+The client may continue        with its request. This interim response is used
+to inform the client that the initial part of the request has been
+received and has not yet been rejected by the server. The client SHOULD
+continue by sending the        remainder of the request or, if the request has
+already        been completed, ignore this response. The server MUST send a
+final response after the request has been completed.
+
+
+12.1.1.2 101 Switching Protocols
+The server understands and is willing to comply        with the client's
+request, via the Upgrade message header        field (section 18.44), for a
+change in the application protocol being used on this connection. The
+server will switch protocols to        those defined by the response's Upgrade
+header field immediately after the empty line which terminates the 101
+response.
+
+The protocol should only be switched when it is        advantageous to do so.
+For example, switching to a newer version of HTTP is advantageous over
+older versions,        and switching to a real-time, synchronous protocol may
+be advantageous        when delivering resources that use such features.
+
+
+12.2 Successful        2xx
+This class of status code indicates that the client's request was
+successfully received, understood, and accepted.
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 41]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+12.2.1.1 200 OK
+The request has        succeeded. The information returned with the response is
+dependent on the method        used in the request, as follows:
+
+
+GET
+  an entity corresponding to the requested resource is sent in the
+  response;
+
+HEAD
+  the response MUST only contain the header information        and no Entity-
+  Body;
+
+POST
+  an entity describing or containing the result        of the action;
+
+TRACE
+  an entity containing the request message as received by the end
+  server;
+
+otherwise,
+  an entity describing the result of the action;
+If the entity corresponds to a resource, the response MAY include a
+Content-Location header        field giving the actual location of that plain
+resource for later reference.
+
+
+12.2.1.2 201 Created
+The request has        been fulfilled and resulted in a new resource being
+created. The newly created resource can        be referenced by the URI(s)
+returned in the        entity of the response, with the most specific URL for
+the resource given by a        Location header field. The origin server SHOULD
+create the resource before returning this status code. If the action
+cannot be carried out immediately, the server MUST include in the
+response body a        description of when the resource will be available;
+otherwise, the server SHOULD respond with 202 (Accepted).
+
+
+12.2.1.3 202 Accepted
+The request has        been accepted for processing, but the processing has not
+been completed.        The request MAY or MAY NOT eventually be acted upon, as
+it MAY be disallowed when processing actually takes place. There is no
+facility for re-sending        a status code from an asynchronous operation
+such as        this.
+
+The 202        response is intentionally non-committal. Its purpose is to allow
+a server to accept a request for some other process (perhaps a batch-
+oriented process that is only run once per day)        without requiring that
+the user agent's connection to the server persist until        the process is
+completed. The entity returned with this response SHOULD include an
+indication of the request's current status and either a        pointer to a
+status monitor or some estimate        of when the user can expect the request
+to be fulfilled.
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 42]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+12.2.1.4 203 Non-Authoritative Information
+The returned metainformation in        the Entity-Header is not the definitive
+set as available from the origin server, but is        gathered from a local or
+a third-party copy. The        set presented MAY be a subset or superset of the
+original version. For example, including local annotation information
+about the resource MAY result in a superset of the metainformation known
+by the origin server. Use of this response code        is not required and is
+only appropriate when the response would otherwise be 200 (OK).
+
+
+12.2.1.5 204 No        Content
+The server has fulfilled the request but there is no new information to
+send back. If the client is a user agent, it SHOULD NOT        change its
+document view from that        which caused the request to be generated. This
+response is primarily intended to allow        input for actions to take place
+without        causing a change to the user agent's active document view. The
+response MAY include new metainformation in the        form of entity headers,
+which SHOULD apply to the document currently in        the user agent's active
+view.
+
+The 204        response MUST NOT include an entity body, and thus is always
+terminated by the first        empty line after the header fields.
+
+
+12.2.1.6 205 Reset Content
+The server has fulfilled the request and the user agent        SHOULD reset the
+document view which caused the request to be generated.        This response is
+primarily intended to allow input for actions to take place via        user
+input, followed        by a clearing of the form in which the input is given so
+that the user can easily initiate another input        action. The response
+MUST include a Content-Length with a value of zero (0) and no entity
+body.
+
+
+12.2.1.7 206 Partial Content
+The server has fulfilled the partial GET request for the resource. The
+request        MUST have included a Range header field (section 18.38)
+indicating the desired range. The response MUST        include a Content-Range
+header field (section 18.18) indicating        the range included with this
+response. All entity header fields in the response MUST        describe the
+partial        entity transmitted rather than what would have been transmitted
+in a full response. In particular, the Content-Length header field in
+the response MUST match        the actual number of OCTETs transmitted in the
+entity body. It        is assumed that the client already has the complete
+entity's header        field data.
+
+
+12.3 Redirection 3xx
+This class of status code indicates that further action        needs to be
+taken by the user agent        in order to fulfill the request. The action
+required MAY be        carried out by the user agent without interaction with
+the user if and        only if the method used in the second request is GET or
+HEAD. A        user agent SHOULD NOT automatically redirect a request more than
+5 times, since such redirections usually indicate an infinite loop.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 43]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+12.3.1.1 300 Multiple Choices
+This status code is reserved for future        use by a planned content
+negotiation mechanism. HTTP/1.1 user agents receiving a 300 response
+which includes a Location header field can treat this response as they
+would treat a 303 (See Other) response.         If no Location header field is
+included, the appropriate action is to display the entity enclosed in
+the response to        the user.
+
+
+12.3.1.2 301 Moved Permanently
+The requested resource has been        assigned a new permanent URI and any
+future references to this resource SHOULD be done using        one of the
+returned URIs. Clients with link editing capabilities SHOULD
+automatically re-link references to the        Request-URI to one or more of
+the new        references returned by the server, where possible. This response
+is cachable unless indicated otherwise.
+
+If the new URI is a location, its URL MUST be given by the Location
+field in the response. Unless it was a HEAD request, the Entity-Body of
+the response SHOULD contain a short hypertext note with        a hyperlink to
+the new        URI(s).
+
+If the 301 status code is received in response to a request other than
+GET or HEAD, the user agent MUST NOT automatically redirect the        request
+unless it can be confirmed by the user,        since this might change the
+conditions under which the request was issued.
+
+  Note:        When automatically redirecting a POST request after receiving
+  a 301        status code, some existing HTTP/1.0 user agents will
+  erroneously change it        into a GET request.
+
+
+12.3.1.3 302 Moved Temporarily
+The requested resource resides temporarily under a different URI. Since
+the redirection        may be altered on occasion, the client SHOULD continue
+to use the Request-URI for future requests. This response is only
+cachable if indicated by a Cache-Control or Expires header field.
+
+If the new URI is a location, its URL MUST be given by the Location
+field in the response. Unless it was a HEAD request, the Entity-Body of
+the response SHOULD contain a short hypertext note with        a hyperlink to
+the new        URI(s).
+
+If the 302 status code is received in response to a request other than
+GET or HEAD, the user agent MUST NOT automatically redirect the        request
+unless it can be confirmed by the user,        since this might change the
+conditions under which the request was issued.
+
+  Note:        When automatically redirecting a POST request after receiving
+  a 302        status code, some existing HTTP/1.0 user agents will
+  erroneously change it        into a GET request.
+
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 44]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+12.3.1.4 303 See Other
+The response to        the request can be found under a different URI and
+SHOULD be retrieved using a GET        method on that resource. This method
+exists primarily to allow the output of        a POST-activated script to
+redirect the user agent        to a selected resource. The new resource is not
+a update reference for the original Request-URI. The 303 response is not
+cachable, but the response to the second request MAY be        cachable.
+
+If the new URI is a location, its URL MUST be given by the Location
+field in the response. Unless it was a HEAD request, the Entity-Body of
+the response SHOULD contain a short hypertext note with        a hyperlink to
+the new        URI(s).
+
+
+12.3.1.5 304 Not Modified
+If the client has performed a conditional GET request and access is
+allowed, but the document has not been modified        since the date and time
+specified in the If-Modified-Since field, the server MUST respond with
+this status code and not send an Entity-Body to        the client. Header
+fields contained in the        response SHOULD only include information which
+is relevant to cache managers or which MAY have        changed independently of
+the entity's Last-Modified date. Examples of relevant header fields
+include: Date, Server, Content-Length, Content-MD5, Content-Version,
+Cache-Control and Expires.
+
+A cache        SHOULD update its cached entity to reflect any new field values
+given in the 304 response. If the new field values indicate that the
+cached entity differs from the current resource        entity  (as would be
+indicated by a change in Content-Length, Content-MD5, or Content-
+Version), then the cache MUST disregard        the 304 response and repeat the
+request        without an If-Modified-Since field.
+
+The 304        response MUST NOT include an entity body, and thus is always
+terminated by the first        empty line after the header fields.
+
+
+12.3.1.6 305 Use Proxy
+The requested resource MUST be accessed        through the proxy given by the
+Location field in the response.        In other words, this is a proxy
+redirect.
+
+
+12.4 Client Error 4xx
+The 4xx        class of status code is intended for cases in which the client
+seems to have erred. If        the client has not completed the request when a
+4xx code is received, it SHOULD        immediately cease sending data to the
+server.        Except when responding to a HEAD request, the server SHOULD
+include        an entity containing an explanation of the error situation, and
+whether        it is a temporary or permanent condition. These status codes are
+applicable to any request method.
+
+  Note:        If the client is sending data, server implementations using
+  TCP SHOULD be        careful to ensure that the client acknowledges
+  receipt of the packet(s) containing the response prior to closing
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 45]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+  the input connection.        If the client continues sending data to the
+  server after the close, the server's controller will send a reset
+  packet to the        client, which may erase the client's unacknowledged
+  input        buffers before they can be read and interpreted by the HTTP
+  application.
+
+
+12.4.1.1 400 Bad Request
+The request could not be understood by the server due to malformed
+syntax.        The client SHOULD NOT repeat the request without modifications.
+
+
+12.4.1.2 401 Unauthorized
+The request requires user authentication. The response MUST include a
+WWW-Authenticate header        field (section 18.46) containing a challenge
+applicable to the requested resource. The client MAY repeat the        request
+with a suitable        Authorization header field (section 18.8). If the
+request        already included Authorization credentials, then the 401
+response indicates that        authorization has been refused for those
+credentials. If        the 401 response contains the same challenge as the
+prior response,        and the user agent has already attempted authentication
+at least once, then the        user SHOULD be presented the entity that was
+given in the response, since that entity MAY include relevant diagnostic
+information. HTTP access authentication        is explained in section 14.
+
+
+12.4.1.3 402 Payment Required
+This code is reserved for future use.
+
+
+12.4.1.4 403 Forbidden
+The server understood the request, but is refusing to fulfill it.
+Authorization will not help and        the request SHOULD not be repeated. If
+the request method was not HEAD        and the server wishes to make public why
+the request has        not been fulfilled, it SHOULD describe the reason for
+the refusal in the entity body.        This status code is commonly used when
+the server does        not wish to reveal exactly why the request has been
+refused, or when no other response is applicable.
+
+
+12.4.1.5 404 Not Found
+The server has not found anything matching the Request-URI. No
+indication is given of whether the condition is        temporary or permanent.
+If the server does not wish to make this information available to the
+client,        the status code 403 (Forbidden) can be used instead. The 410
+(Gone) status code SHOULD be used if the server        knows, through some
+internally configurable        mechanism, that an old resource is permanently
+unavailable and        has no forwarding address.
+
+
+12.4.1.6 405 Method Not        Allowed
+The method specified in        the Request-Line is not allowed for the resource
+identified by the Request-URI. The response MUST include an Allow header
+containing a list of valid methods for the requested resource.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 46]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+12.4.1.7 406 Not Acceptable
+The resource identified        by the request is only capable of generating
+response entities which        have content characteristics not acceptable
+according to the accept        headers sent in the request.
+
+HTTP/1.1 servers are allowed to        return responses which are not
+acceptable according to        the accept headers sent in the request. In some
+cases, this may        even be preferable to sending a 406 response.  User
+agents are encouraged to inspect the headers of        an incoming response to
+determine if it        is acceptable. If the response is not acceptable, user
+agents SHOULD interrupt        the receipt of the response if doing so would
+save network resources.         If it is unknown whether an incoming response
+would be acceptable, a user agent SHOULD temporarily stop receipt of
+more data and query the        user for a decision on furtheractions.
+
+
+12.4.1.8 407 Proxy Authentication Required
+This code is similar to        401 (Unauthorized), but indicates that the
+client MUST first authenticate itself with the proxy. The proxy        MUST
+return a Proxy-Authenticate header field (section 18.35) containing a
+challenge applicable to        the proxy for the requested resource. The client
+MAY repeat the request with a suitable Proxy-Authorization header field
+(section 18.36). HTTP access authentication is explained in section 14.
+
+
+12.4.1.9 408 Request Timeout
+The client did not produce a request within the        time that the server was
+prepared to wait. The client MAY repeat        the request without
+modifications at any later time.
+
+
+12.4.1.10 409 Conflict
+The request could not be completed due to a conflict with the current
+state of the resource. This code is only allowed in situations where it
+is expected that the user MAY be able to resolve the conflict and
+resubmit the request. The response body        SHOULD include enough
+information for        the user to recognize the source of the conflict.
+Ideally, the response entity would include enough information for the
+user or        user-agent to fix the problem; however, that MAY not be possible
+and is not required.
+
+Conflicts are most likely to occur in response to a PUT        request. If
+versioning is being used and the entity        being PUT includes changes to a
+resource which conflict        with those made by an earlier (third-party)
+request, the server MAY        use the 409 response to indicate that it can't
+complete the request. In this case, the        response entity SHOULD contain a
+list of        the differences between the two versions in a format defined by
+the response Content-Type.
+
+
+12.4.1.11 410 Gone
+The requested resource is no longer available at the server and        no
+forwarding address is known. This condition SHOULD be considered
+permanent. Clients with        link editing capabilities SHOULD delete
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 47]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+references to the Request-URI after user approval. If the server does
+not know, or has no facility to        determine, whether or not the condition
+is permanent, the status code 404 (Not Found) SHOULD be        used instead.
+This response is cachable unless indicated otherwise.
+
+The 410        response is primarily intended to assist the task of web
+maintenance by notifying the recipient that the        resource is
+intentionally unavailable and that the server owners desire that remote
+links to that resource be removed. Such        an event is common for limited-
+time, promotional services and for resources belonging to individuals no
+longer working at the server's site. It        is not necessary to mark all
+permanently unavailable        resources as "gone" or to keep the mark for any
+length of time -- that is left to the discretion of the        server owner.
+
+
+12.4.1.12 411 Length Required
+The server refuses to accept the request without a defined Content-
+Length.        The client MAY repeat the request if it adds a valid Content-
+Length header field containing the length of the entity        body in the
+request        message.
+
+
+12.4.1.13 412 Precondition Failed
+The precondition given in one or more of the request header fields
+evaluated to false when        it was tested on the server. This response code
+allows the client to place preconditions on the        current resource
+metainformation        (header field data) and thus prevent the requested
+method from being applied to a resource        other than the one intended.
+
+
+12.4.1.14 413 Request Entity Too Large
+The server is refusing to process a request because it considers the
+request        entity to be larger than it is willing or able to process. The
+server SHOULD close the        connection if that is necessary to prevent the
+client from continuing the request.
+
+If the client manages to read the 413 response,        it MUST honor it and
+SHOULD reflect it to the user.
+
+If this        restriction is considered temporary, the server MAY include a
+Retry-After header field to indicate that it is        temporary and after what
+time the client        MAY try again.
+
+
+12.4.1.15 414 Request-URI Too Long
+The server is refusing to service the request because the Request-URI is
+longer than the        server is willing to interpret. This rare condition is
+only likely to occur when a client has improperly converted a POST
+request        to a GET request with long query information, when the client
+has descended into a URL "black        hole" of redirection (e.g., a redirected
+URL prefix that        points to a suffix of itself), or when the server is
+under attack by        a client attempting to exploit security holes present in
+some servers using  fixed-length buffers for reading or        manipulating the
+Request-URI.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 48]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+12.4.1.16 415 Unsupported Media        Type
+The server is refusing to service the request because the entity body of
+the request is in a format not supported by the        requested resource for
+the requested method.
+
+
+12.5 Server Error 5xx
+Response status        codes beginning with the digit "5" indicate cases in
+which the server is aware that it has erred or is incapable of
+performing the request.        If the client has not completed the request when
+a 5xx code is received,        it SHOULD immediately cease sending data to the
+server.        Except when responding to a HEAD request, the server SHOULD
+include        an entity containing an explanation of the error situation, and
+whether        it is a temporary or permanent condition. These response codes
+are applicable to any request method and there are no required header
+fields.
+
+
+12.5.1.1 500 Internal Server Error
+The server encountered an unexpected condition which prevented it from
+fulfilling the request.
+
+
+12.5.1.2 501 Not Implemented
+The server does        not support the functionality required to fulfill the
+request. This is the appropriate response when the server does not
+recognize the request method and is not        capable of supporting it for any
+resource.
+
+
+12.5.1.3 502 Bad Gateway
+The server, while acting as a gateway or proxy,        received an invalid
+response from the upstream server it accessed in attempting to fulfill
+the request.
+
+
+12.5.1.4 503 Service Unavailable
+The server is currently        unable to handle the request due to a temporary
+overloading or maintenance of the server. The implication is that this
+is a temporary condition which will be alleviated after        some delay. If
+known, the length of the delay MAY be indicated        in a Retry-After
+header.
+If no Retry-After is given, the        client SHOULD handle the response as it
+would for a 500        response.
+
+  Note:        The existence of the 503 status code does not imply that a
+  server must use it when becoming overloaded. Some servers MAY        wish
+  to simply refuse the connection.
+
+
+12.5.1.5 504 Gateway Timeout
+The server, while acting as a gateway or proxy,        did not receive a timely
+response from the upstream server it accessed in attempting to complete
+the request.
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 49]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+12.5.1.6 505 HTTP Version Not Supported
+The server does        not support, or refuses to support, the HTTP protocol
+version        that was used in the request message.  The server is indicating
+that it        is unable or unwilling to complete the request using the same
+major version as the client, as        described in section 7.1, other than
+with this error        message.  The response SHOULD contain an entity
+describing why that version is not supported and what other protocols
+are supported by that server.
+
+
+13 Method Definitions
+The set        of common methods for HTTP/1.1 is defined below. Although this
+set can        be expanded, additional methods cannot be assumed to share the
+same semantics for separately extended clients and servers.
+
+The Host request-header        field (section 18.24) MUST accompany all
+HTTP/1.1 requests.
+
+
+13.1 OPTIONS
+The OPTIONS method represents a        request for information about the
+communication options available        on the request/response chain identified
+by the Request-URI. This method        allows the client to determine the
+options        and/or requirements associated with a resource, or the
+capabilities of        a server, without implying a resource action or
+initiating a resource retrieval.
+
+Unless the server's response is        an error, the response MUST NOT include
+entity information other than what can be considered as        communication
+options        (e.g., Allow is appropriate, but Content-Type is not) and MUST
+include        a Content-Length with a value of zero (0). Responses to this
+method are not cachable.
+
+If the Request-URI is an asterisk ("*"), the OPTIONS request is        intended
+to apply to the        server as a whole. A 200 response SHOULD include any
+header fields which indicate optional features implemented by the server
+(e.g., Public),        including any extensions not defined by this
+specification, in addition to any applicable general or        response header
+fields.        As described in section 9.1.2, an "OPTIONS *" request can be
+applied        through a proxy by specifying the destination server in the
+Request-URI without any        path information.
+
+If the Request-URI is not an asterisk, the OPTIONS request applies only
+to the options that are        available when communicating with that
+resource.
+A 200 response SHOULD include any header fields        which indicate optional
+features implemented by        the server and applicable to that resource
+(e.g., Allow), including any extensions        not defined by this
+specification, in addition to any applicable general or        response header
+fields.        If the OPTIONS request passes through a proxy, the proxy MUST
+edit the response to exclude those options known to be unavailable
+through        that proxy.
+
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 50]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+13.2 GET
+The GET        method means retrieve whatever information (in the form of an
+entity)        is identified by the Request-URI. If the Request-URI refers to a
+data-producing process,        it is the produced data which shall be returned
+as the entity in the response and not the source text of the process,
+unless that text happens to be the output of the process.
+
+The semantics of the GET method        change to a "conditional GET" if the
+request        message includes an If-Modified-Since header field. A
+conditional GET        method requests that the identified resource entity  be
+transferred only if it has been        modified since the date given by the
+If-
+Modified-Since header, as described in section 18.25. The conditional
+GET method is intended to reduce unnecessary network usage by allowing
+cached entities        to be refreshed without requiring multiple requests or
+transferring data already held by the client.
+
+The semantics of the GET method        change to a "partial GET" if the request
+message        includes a Range header field. A partial GET requests that only
+part of        the identified resource entity be transferred, as described in
+section        18.38. The partial GET method is intended to reduce unnecessary
+network        usage by allowing partially-retrieved entities to be completed
+without        transferring data already held by the client.
+
+The response to        a GET request may be cachable if and only if it meets
+the requirements for HTTP caching described in section 16.
+
+
+13.3 HEAD
+The HEAD method        is identical to GET except that the server MUST NOT
+return any Entity-Body in the response.        The metainformation contained in
+the HTTP headers in response to        a HEAD request SHOULD be identical to
+the information        sent in response to a GET request. This method can be
+used for obtaining metainformation about the resource entity identified
+by the Request-URI without transferring        the Entity-Body itself. This
+method is often        used for testing hypertext links for validity,
+accessibility, and recent modification.
+
+The response to        a HEAD request may be cachable in the sense that the
+information contained in the response may be used to update a previously
+cached entity from that        resource. If the new field values indicate that
+the cached entity differs from the current resource entity (as would be
+indicated by a change in Content-Length, Content-MD5, or Content-
+Version), then the cache MUST mark the cache entry stale.
+
+There is no "conditional HEAD" or "partial HEAD" request analogous to
+those associated with the GET method. If an If-Modified-Since and/or
+Range header field is included with a HEAD request, they SHOULD        be
+ignored.
+
+
+13.4 POST
+The POST method        is used to request that the destination server accept
+the entity enclosed in the request as a        new subordinate of the resource
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 51]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+identified by the Request-URI in the Request-Line. POST        is designed to
+allow a        uniform method to cover the following functions:
+
+
+  .  Annotation        of existing resources;
+
+  .  Posting a message to a bulletin board, newsgroup, mailing list, or
+     similar group of articles;
+
+  .  Providing a block of data,        such as the result of submitting a form
+     , to a data-handling process;
+
+  .  Extending a database through an append operation.
+The actual function performed by the POST method is determined by the
+server and is usually dependent        on the Request-URI. The posted entity is
+subordinate to that URI        in the same way that a file is subordinate to a
+directory containing it, a news        article is subordinate to a newsgroup to
+which it is posted, or a record        is subordinate to a database.
+
+For compatibility with HTTP/1.0        applications, all POST requests MUST
+include        a valid Content-Length header field unless the server is known
+to be HTTP/1.1 compliant. When sending a POST request to an HTTP/1.1
+server,        a client MUST use a valid Content-Length or the "chunked"
+Transfer-Encoding. The server SHOULD respond with a 400        (bad request)
+message        if it cannot determine the length of the request message's
+content, or with 411 (length required) if it wishes to insist on
+receiving a valid Content-Length.
+
+A successful POST does not require that        the entity be created as a
+resource on the        origin server or made accessible for future reference.
+That is, the action performed by the POST method might not result in a
+resource that can be identified        by a URI. In this case, either 200 (OK)
+or 204 (no content) is the appropriate response        status, depending on
+whether        or not the response includes an entity that describes the
+result.
+
+If a resource has been created on the origin server, the response SHOULD
+be 201 (Created) and contain an        entity (preferably of type "text/html")
+which describes        the status of the request and refers to the new
+resource.
+
+Responses to this method are not cachable. However, the        303 (See Other)
+response can be        used to direct the user agent to retrieve a cachable
+resource.
+
+POST requests must obey        the entity transmission requirements set out in
+section        13.4.1.
+
+
+13.4.1 SLUSHY: Entity Transmission Requirements
+Editor's Note: The issues here around reliable transmission of large
+entities to servers, particularly HTTP/1.0 servers, are        complicated and
+subtle,        particularly since we'd like optimistic transmission to be the
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 52]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+normal situation.  We would like it if we can redraft this section to be
+simpler        in the next draft
+
+General        requirements:
+
+  .  HTTP/1.1 servers should maintain persistent connections and use
+     TCP's flow        control mechanisms to resolve temporary overloads,
+     rather than terminating connections with the expectation that
+     clients will retry.  The latter technique can exacerbate network
+     congestion.
+  .  An        HTTP/1.1 (or later) client doing a PUT-like method SHOULD
+     monitor the network connection for        an error status while it is
+     transmitting the request. If  the client sees an error status, it
+     should immediately        cease transmitting the body.  If the body is
+     being sent        using a "Chunked" encoding, a zero length chunk is used
+     to        mark the end of the message.  If the body was preceded by a
+     Content-length header, the        client MUST close the connection.
+  .  An        HTTP/1.1 (or later) client MUST be prepared to accept a "100
+     Continue" status followed by a regular response.
+  .  An        HTTP/1.1 (or later) server that receives a request from a
+     HTTP/1.0 (or earlier) client MUST NOT transmit the        100 (continue)
+     response; it SHOULD either        wait for the request to be completed
+     normally (thus avoiding an        interrupted request) or close the
+     connection        prematurely.
+Upon receiving a method        subject to these requirements from an HTTP/1.1
+(or later) client, an HTTP/1.1 (or later) server MUST either immediately
+respondwith 100        (continue) and continue to read from the input stream,
+or respond with        an error status.  If it responds with an error status,
+it MAY close the transport (TCP) connection or it MAY continue to read
+and discard the        rest of the request.  It MUST NOT perform the requested
+method if it returns an        error status.
+
+If an HTTP/1.1 client has seen an HTTP/1.1 or later response from the
+server (clients        SHOULD remember the version number of at least the most
+recently used server), and it sees the connection close        before receiving
+any status from        the server, the client SHOULD retry the request.  If the
+client does retry the request,
+
+  .  it        MUST first send the request headers,
+  .  and then MUST wait        for the server to respond with either a 100
+     (continue)        response, in which case the client should continue, or
+     with an error status.
+If an HTTP/1.1 client has not seen an HTTP/1.1 or later        response from
+the server, it should assume that the server implements        HTTP/1.0 or
+older and will not use the 100 (Continue) response. If in this case the
+client sees the        connection close before receiving any status from the
+server,        the client SHOULD retry the request.  If the client does retry
+the request, it        should use the following "binary exponential backoff"
+algorithm to be        assured of obtaining a reliable response:
+
+  1.
+     Initiate a        new connection to the server
+  2.
+     Transmit the request headers
+  3.
+     Initialize        a variable R to the estimated round-trip time to the
+     server (e.g., based on the        time it took to establish the
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 53]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+     connection), or to        a constant value of 5 seconds if the round-trip
+     time is not available.
+  4.
+     Compute T = R * (2**N), where N is        the number of previous retries
+     of        this request.
+  5.
+     Wait either for an        error response from the server, or for T seconds
+     (whichever        comes first)
+  6.
+     If        no error response is received, after T seconds transmit the body
+     of        the request.
+  7.
+     If        client sees that the connection is closed prematurely, repeat
+     from step 1 until the request is accepted,        an error response is
+     received, or the user becomes impatient.
+No matter what the server version, if an error status is received,
+
+  .  the client        MUST NOT continue and
+  .  MUST close        the connection if it has not already completed sending
+     the full request body including any encoding mechanism used to
+     transmit the body.
+An HTTP/1.1 (or        later) client that sees the connection close after
+receiving a 100        (continue) but before receiving any other status SHOULD
+retry the request, and need not        wait for 100 (continue) response (but
+MAY do so if this simplifies the implementation).
+
+
+13.5 PUT
+The PUT        method requests that the enclosed entity be stored under the
+supplied Request-URI. If the Request-URI refers        to an already existing
+resource, the enclosed entity SHOULD be        considered as a modified version
+of the one residing on the origin server. If the Request-URI does not
+point to an existing resource, and that        URI is capable of being defined
+as a new resource by the requesting user agent,        the origin server can
+create the resource with that URI. If a        new resource is created, the
+origin server MUST inform the user agent via the 201 (created)
+response.
+If an existing resource        is modified, either the 200 (OK) or 204 (No
+Content) response codes        SHOULD be sent to indicate successful completion
+of the request.        If the resource could not be created or modified with
+the Request-URI, an appropriate        error response SHOULD be given that
+reflects the nature of the problem.
+
+If the request passes through a        cache and the Request-URI identifies a
+currently cached entity, that entity MUST be removed from the cache.
+Responses to this method are not cachable.
+
+The fundamental        difference between the POST and PUT requests is
+reflected in the different meaning of the Request-URI. The URI in a POST
+request        identifies the resource that will handle the enclosed entity as
+an appendage. That resource may        be a data-accepting process, a gateway
+to some        other protocol, or a separate entity that accepts annotations.
+In contrast, the URI in        a PUT request identifies the entity enclosed
+with the request -- the        user agent knows what URI is intended and the
+server MUST NOT        attempt to apply the request to some other resource. If
+the server desires that        the request be applied to a different URI, it
+MUST send a 301        (Moved Permanently) response; the user agent MAY then
+make its own decision regarding        whether or not to redirect the request.
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 54]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+A single resource MAY be identified by many different URIs. For
+example,
+an article may have a URI for identifying "the current version"        which is
+separate from the URI identifying each particular version. In this
+case,
+a PUT request on a general URI may result in several other URIs        being
+defined        by the origin server.
+
+For compatibility with HTTP/1.0        applications, all PUT requests MUST
+include        a valid Content-Length header field unless the server is known
+to be HTTP/1.1 compliant. When sending a PUT request to        an HTTP/1.1
+server,        a client MUST use a valid Content-Length or the "chunked"
+Transfer-Encoding. The server SHOULD respond with a 400        (bad request)
+message        if it cannot determine the length of the request message's
+content, or with 411 (length required) if it wishes to insist on
+receiving a valid Content-Length.
+
+The actual method for determining how the resource entity is placed, and
+what happens to        its predecessor, is defined entirely by the origin
+server.
+
+PUT requests must obey the entity transmission requirements set        out in
+section        13.4.1.
+
+
+13.6 DELETE
+The DELETE method requests that        the origin server delete the resource
+identified by the Request-URI. This method MAY be overridden by        human
+intervention (or other means) on the origin server. The        client cannot be
+guaranteed that        the operation has been carried out, even if the status
+code returned from the origin server indicates that the        action has been
+completed successfully.        However, the server SHOULD not indicate success
+unless,        at the time the response is given, it intends to delete the
+resource or move it to an inaccessible location.
+
+A successful response SHOULD be        200 (OK) if the response includes an
+entity describing the status, 202 (Accepted) if        the action has not yet
+been enacted, or 204 (No Content) if the response is OK        but does not
+include        an entity.
+
+If the request passes through a        cache and the Request-URI identifies a
+currently cached entity, that entity MUST be removed from the cache.
+Responses to this method are not cachable.
+
+
+13.7 TRACE
+The TRACE method is used to invoke a remote, application-layer
+loop-back
+of the request message.         The final recipient of the request SHOULD
+reflect        the message received back to the client as the entity body of a
+200 (OK) response.  The        final recipient is either the origin server or
+the first proxy        or gateway to receive a Max-Forwards value of zero (0)
+in the request (see section 18.32).  A TRACE request MUST NOT include an
+entity.
+
+TRACE allows the client        to see what is being received at the other end
+of the request chain and use that data for testing or diagnostic
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 55]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+information.  The value        of the Via header field (section 18.47) is of
+particular interest, since it acts as a        trace of the request chain.  Use
+of the Max-Forwards header field allows        the client to limit the length
+of the request chain, which is useful for testing a chain of proxies
+forwarding messages in an infinite loop.
+
+If successful, the response SHOULD contain the entire request message in
+the entity body, with a        Content-Type of "message/http",
+"application/http", or "text/plain".  Responses        to this method MUST NOT
+be cached.
+
+
+14 Access Authentication
+HTTP provides a        simple challenge-response authentication mechanism which
+MAY be used by a server        to challenge a client request and by a client to
+provide        authentication information. It uses an extensible, case-
+insensitive token to identify the authentication scheme, followed by a
+comma-separated        list of attribute-value pairs which carry the parameters
+necessary for achieving        authentication via that scheme.
+
+       auth-scheme    =        token
+
+       auth-param     =        token "=" quoted-string
+
+The 401        (Unauthorized) response message is used by an origin server to
+challenge the authorization of a user agent. This response MUST        include
+a WWW-Authenticate header field        containing at least one challenge
+applicable to the requested resource.
+
+       challenge      =        auth-scheme 1*SP realm *( "," auth-param )
+
+       realm         = "realm" "=" realm-value
+       realm-value    =        quoted-string
+
+The realm attribute (case-insensitive) is required for all
+authentication schemes which issue a challenge.        The realm value (case-
+sensitive), in combination with        the canonical root URL of the server
+being accessed,        defines the protection space. These realms allow the
+protected resources on a server        to be partitioned into a set of
+protection spaces, each        with its own authentication scheme and/or
+authorization database.        The realm value is a string, generally assigned
+by the origin server, which may        have additional semantics specific to
+the authentication scheme.
+
+A user agent that wishes to authenticate itself        with a server--usually,
+but not        necessarily, after receiving a 401 or 411 response--MAY do so by
+including an Authorization header field        with the request. The
+Authorization field value consists of credentials containing the
+authentication information of the user agent for the realm of the
+resource being requested.
+
+       credentials    =        basic-credentials
+                     | auth-scheme 0#auth-param
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 56]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+The domain over        which credentials can be automatically applied by a user
+agent is determined by the protection space. If        a prior request has been
+authorized, the        same credentials MAY be reused for all other requests
+within that protection space for a period of time determined by        the
+authentication scheme, parameters, and/or user preference. Unless
+otherwise defined by the authentication        scheme, a single protection
+space cannot extend outside the        scope of its server.
+
+If the server does not wish to accept the credentials sent with        a
+request, it SHOULD return a 401        (Unauthorized) response. The response
+MUST include a WWW-Authenticate        header field containing the (possibly
+new) challenge applicable to the requested resource and        an entity
+explaining the refusal.
+
+The HTTP protocol does not restrict applications to this simple
+challenge-response mechanism for access        authentication. Additional
+mechanisms MAY be used,        such as encryption at the transport level or via
+message        encapsulation, and with additional header fields specifying
+authentication information. However, these additional mechanisms are not
+defined        by this specification.
+
+Proxies        MUST be completely transparent regarding user agent
+authentication.        That is, they MUST forward the WWW-Authenticate and
+Authorization headers untouched, and MUST NOT cache the        response to a
+request        containing Authorization.
+
+HTTP/1.1 allows        a client to pass authentication information to and from
+a proxy        via the Proxy-Authenticate and Proxy-Authorization headers.
+
+
+14.1 Basic Authentication Scheme
+The "basic" authentication scheme is based on the model        that the user
+agent must authenticate        itself with a user-ID and a password for each
+realm. The realm value should be considered an opaque string which can
+only be        compared for equality with other realms on that server. The
+server will service the        request only if it can validate the user-ID and
+password for the protection space of the Request-URI. There are        no
+optional authentication        parameters.
+
+Upon receipt of        an unauthorized request for a URI within the protection
+space, the server SHOULD respond with a        challenge like the following:
+
+       WWW-Authenticate: Basic realm="WallyWorld"
+
+where "WallyWorld" is the string assigned by the server        to identify the
+protection space of the        Request-URI.
+
+To receive authorization, the client sends the user-ID and password,
+separated by a single colon (":") character, within a base64  encoded
+string in the credentials.
+
+       basic-credentials = "Basic" SP basic-cookie
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 57]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+       basic-cookie   =        <base64 [7] encoding of user-pass,
+                       except not limited to 76 char/line>
+
+       user-pass = userid ":" password
+
+       userid   = [ token ]
+
+       password         = *TEXT
+
+If the user agent wishes to send the user-ID "Aladdin" and password
+"open sesame", it would        use the following header field:
+
+       Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
+
+The basic authentication scheme        is a non-secure method of filtering
+unauthorized access to resources on an HTTP server. It is based        on the
+assumption that        the connection between the client and the server can be
+regarded as a trusted carrier. As this is not generally        true on an open
+network, the basic authentication scheme should        be used accordingly. In
+spite of this, clients SHOULD implement        the scheme in order to
+communicate with servers that use it.
+
+
+14.2 Digest Authentication Scheme
+The "digest" authentication scheme is [currently described in an expired
+Internet-Draft,        and this description will have to be improved to
+reference a new        draft or include the old one].
+
+
+15 Content Negotiation
+A generic resource has multiple        entities associated with it, all of
+which are representations of the content of the        resource.  Content
+negotiation is the process of selecting        the best representation when a
+GET or HEAD request is made on the generic resource.  HTTP/1.1 has
+provisions for two kinds of content negotiation: opaque        negotiation and
+transparent negotiation.
+
+With opaque negotiation, the selection of the best representation is
+done by        an algorithm located at the origin server, and unknown to the
+proxies        and user agents involved.  Selection is based on the contents of
+particular header fields in the        request message, or on other information
+pertaining to the request, like        the network address of the sending
+client.         A typical example of opaque negotiation would be the selection
+of a text/html response        in a particular language based on the contents
+of the Accept-Language request header field.  A        disadvantage of opaque
+negotiation is that the        request headers may not always contain enough
+information to allow for selection.  If        the Accept header
+
+       Accept: text/*: q=0.3, text/html, */*: q=0.5
+
+is sent        in a request on a generic resource which has a video/mpeg and a
+video/quicktime        representation, the selection algorithm in the origin
+server will either have        to make a default choice, or return an error
+response which allows the user to decide on further actions.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 58]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+With transparent negotiation, the selection of the best        representation
+is done        by a distributed algorithm which can perform computation steps
+in the origin server, in proxies, or in        the user agent.  Transparent
+negotiation guarantees that, if        the user agent supports the transparent
+negotiation algorithm and is correctly configured, the request will
+always correctly yield either the video/mpeg representation, the
+video/quicktime        representation, or an error message indicating that the
+resource cannot        be displayed by the user agent.
+
+
+15.1  Negotiation Facilities Defined in        this Specification
+This specification defines all protocol        facilities for opaque
+negotiation, but does not define the distributed algorithm for
+transparent negotiation.  This specification only defines the basic
+facilities (Vary, Alternates, Accept) in the core protocol allowing
+requests on transparently negotiated resources to be correctly handled
+by HTTP/1.1 caches.  All other information about transparent content
+negotiation is found in        a separate document[29].
+
+If a generic resource is opaquely negotiated, successful responses to
+requests on the        resource will always include a Vary header.  If a
+generic        resource is transparently negotiated, successful responses to
+requests on the        resource will always include an Alternates header.  If a
+successful response contains an        Alternates header, it will also always
+contain        a Content-Location header.  A future specification may allow a
+combination of opaque and transparent negotiation that would lead to the
+inclusion of both a Vary header        and an Alternates header in a response.
+
+
+16 Caching in HTTP
+The World Wide Web is a        distributed system, and so its performance can
+be improved by the use of caches. These        caches are typically placed at
+proxies        and in the clients themselves. The HTTP/1.1 protocol includes a
+number of elements intended to make caching work as well as possible.
+Because        these elements are inextricable from other aspects of the
+protocol, and because they interact with each other, it        is useful to
+describe the basic caching design of HTTP separately from the detailed
+descriptions of        methods, headers, response codes, etc.
+
+
+16.1 Semantic Transparency
+Requirements for performance, availability, and        disconnected operation
+require        us to be able to relax the goal of semantic transparency. The
+HTTP/1.1 protocol allows origin        servers, caches, and clients to
+explicitly reduce transparency when necessary. However,        because non-
+transparent operation may confuse non-expert users, and        may be
+incompatible with certain server applications (such as those for
+ordering merchandise), the protocol requires that transparency may not
+be relaxed
+
+  .  without an        explicit protocol-level request (when relaxed by client
+     or        origin server)
+  .  without a means for warning the end user (when relaxed by cache or
+     client)
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 59]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+Therefore, the HTTP/1.1        protocol provides these important elements:
+
+  1. Protocol features that provide full semantic transparency when this
+     is        desired by all parties.
+  2. Protocol features that allow an origin server or end-user client to
+     explicitly        request and control non-transparent operation.
+  3. Protocol features that allow a cache to attach warnings to
+     responses that do not preserve semantic transparency.
+A basic        principle is that it must be possible for the clients to detect
+any potential breakdown        of semantic transparency.
+
+Caching        would be useless if it did not significantly improve
+performance. The goal of caching in HTTP/1.1 is        to eliminate the need to
+send requests in many cases, and to eliminate the need to send full
+responses in many other        cases. The former reduces the number of network
+round-trips required for many operations; we use an "expiration"
+mechanism for this purpose (see        section 16.1.2). The latter reduces
+network        bandwidth requirements; we use a "validation" mechanism for this
+purpose        (see section 13.3).
+
+The server, cache, or client implementer may be        faced with design
+decisions not explicitly discussed in this specification. If a decision
+may affect semantic transparency, the implementer ought        to err on the
+side of        maintaining transparency unless a careful and complete analysis
+shows significant benefits in breaking transparency.
+
+
+16.1.1 Cache Correctness
+If the cache can communicate with the origin-server, then a correct
+cache MUST respond to a        request with a response that meets all the
+following conditions:
+
+  1. its end-to-end headers (see section 16.4.1) and entity-body value
+     are equivalent to what the        server would have returned for that
+     request if        the resource had not been modified since the response
+     was cached. This may be accomplished by revalidating the response
+     with the origin server, if        is not fresh.
+  2. it        is "fresh enough" (see section 16.1.2). In the default case,
+     this means        it meets the least restrictive freshness requirement of
+     the client, server, and cache (see        section 18.10); if the origin-
+     server so specifies, it is        the freshness requirement of the
+origin-
+     server alone.
+  3. it        includes a warning if the freshness demand of the client or the
+     origin-server is violated (see section 16.1.5 and 18.48).
+  4. it        is the most up-to-date response appropriate to the request the
+     cache has seen (see section 16.2.6, 16.2.8, and 16.13).
+If the cache can not communicate with the origin server, then a        correct
+cache SHOULD respond as        above if the response can be correctly served
+from the cache;        if not it MUST return an error or warning indicating
+that there was a communication.
+
+
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 60]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+16.1.2 Cache-control Mechanisms
+The basic cache        mechanisms in HTTP/1.1 (server-specified expiration
+times and validators) are implicit directives to caches. In some cases,
+a server or client may need to provide explicit        directives to the HTTP
+caches.        We use the Cache-Control header for this purpose.
+
+The Cache-Control header allows        a client or server to transmit a variety
+of directives in either        requests or responses. These directives
+typically override the default caching algorithms. As a        general rule, if
+there is any apparent conflict between header values, the most
+restrictive interpretation should be applied (that is, the one that is
+most likely to preserve        semantic transparency). However, in some cases,
+Cache-Control directives are explicitly        specified as weakening semantic
+transparency (for example, "max-stale" or "public").
+
+The Cache-Control directives are described in detail in        section 18.10.
+
+
+16.1.3 Warnings
+Whenever a cache returns a response that is not        semantically
+transparent, it        must attach a warning to that effect, using a Warning
+response header. This warning allows clients and user agents to        take
+appropriate action.
+
+Warnings may be        used for other purposes, both cache-related and
+otherwise. The use of a        warning, rather than an error status code,
+distinguish these responses from true failures.
+
+Warnings are always cachable, because they never weaken        the transparency
+of a response. This means that warnings        can be passed to HTTP/1.0 caches
+without        danger; such caches will simply pass the warning along as a
+entity header in the response.
+
+Warnings are assigned numbers between 0        and 99. This specification
+defines        the code numbers and meanings of each warning, allowing a client
+or cache to take automated action in some (but not all)        cases.
+
+Warnings also carry a warning message text in any appropriate natural
+language (perhaps based        on the client's Accept headers), and an optional
+indication of what language and        character set are used.
+
+Multiple warning messages may be attached to a response        (either by the
+origin server or by a cache), including        multiple warnings with the same
+code number. For example, a server may provide the same        warning with
+texts in both English and Basque.
+
+When multiple warnings are attached to a response, it may not be
+practical or reasonable        to display all of them to the user. This version
+of HTTP        does not specify strict priority rules for deciding which
+warnings to display and        in what order, but does suggest some
+heuristics.
+
+The Warning header and the currently defined warnings are described in
+section        18.48.
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 61]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+16.1.4 Explicit        User Agent Warnings
+Many user agents make it possible for users to override        the basic
+caching        mechanisms. For example, the user agent may allow the user to
+specify        that cached entities (even explicitly stale ones) are never
+validated. Or the user agent might habitually add "Cache-Control: max-
+stale=3600" or "Cache-Control: reload" to every        request. We recognize
+that there may be situations which require such        overrides, although user
+agents SHOULD NOT default to any behavior contrary to the HTTP/1.1
+specification. That is,        the user should have to explicitly request
+either non-transparent behavior, or behavior that results in abnormally
+ineffective caching.
+
+If the user has        overridden the basic caching mechanisms, the user agent
+should explicitly indicate to the user whenever        this results in the
+display        of information that might not meet the server's transparency
+requirements (in particular, if        the displayed entity is known to be
+stale).        Since the protocol normally allows the user agent to determine
+if responses are stale or not, this indication need only be displayed
+when this actually happens. The        indication need not be a dialog box; it
+could be an icon (for example, a picture of a rotting fish) or some
+other visual indicator.
+
+If the user has        overridden the caching mechanisms in a way that would
+abnormally reduce the effectiveness of caches, the user        agent should
+continually display an indication (for example,        a picture of currency in
+flames)        so that the user does not inadvertently consume excess resources
+or suffer from excessive latency.
+
+
+16.1.5 Exceptions to the Rules and Warnings
+In some        cases, the operator of a cache may choose to configure it to
+return stale responses even when not requested by clients. This        decision
+not be made lightly, but may be        necessary for reasons of availability or
+performance, especially        when the cache is poorly connected to the origin
+server.        Whenever a cache returns a stale response, it MUST mark it as
+such (using a Warning header). This allows the client software to alert
+the user that there may        be a potential problem.
+
+It also        allows the user to take steps to obtain a firsthand or fresh
+response, if the user so desires. For this reason, a cache MUST        NOT
+return a stale response        if the client explicitly requests a first-hand
+or fresh one, unless it        is impossible to comply.
+
+
+16.1.6 Client-controlled Behavior
+While the origin server        (and to a lesser extent, intermediate caches, by
+their contribution to the age of a response) are the primary source of
+expiration information,        in some cases the client may need to control a
+cache's        decision about whether to return a cached response without
+validating it. Clients do this using several directives        of the Cache-
+Control        header.
+
+A client's request may specify the maximum age it is willing to        accept
+for an unvalidated response; specifying        a value of zero forces the
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 62]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+cache(s) to revalidate all responses. A        client may also specify the
+minimum        time remaining before a response expires. Both of these options
+increase constraints on        the behavior of caches, and so cannot decrease
+semantic transparency.
+
+A client may also specify that it will accept stale responses, up to
+some maximum amount of staleness. This loosens the constraints on the
+caches,        and so may violate semantic transparency, but may be necessary
+to support disconnected        operation, or high availability in the face of
+poor connectivity.
+
+
+16.2 Expiration        Model
+
+16.2.1 Server-Specified        Expiration
+HTTP caching works best        when caches can entirely avoid making requests
+to the origin server. The primary mechanism for        avoiding requests is for
+an origin server to provide an explicit        expiration time in the future,
+indicating that        a response may be used to satisfy subsequent requests.
+In other words,        a cache can return a fresh response without first
+contacting the server.
+
+Our expectation        is that servers will assign future explicit expiration
+times to responses in the belief that the entity is not        likely to
+change,        in a semantically significant way, before the expiration time is
+reached. This normally preserves semantic transparency,        as long as the
+server's expiration times are carefully        chosen.
+
+If an origin server wishes to force a semantically transparent cache to
+validate every request,        it may assign an explicit expiration time in the
+past. This means that the response is always stale, and        so the cache
+SHOULD validate        it before using it for subsequent requests.  (See
+section        18.10.4 for a more restrictive way to force revalidation).
+
+  Note that a firsthand        response MUST always be returned to the
+  requesting client, independent of its        expiration time, unless the
+  connection to        the client is lost.
+
+If an origin server wishes to force any        HTTP/1.1 cache, no matter how it
+is configured, to validate every request, it should use        the "must-
+revalidate" Cache-Control directive.  See section 18.10.
+
+Servers        specify explicit expiration times using either the Expires
+header,        or the max-age directive of the Cache-Control header.
+
+
+16.2.2 Limitations on the Effect of Expiration Times
+An expiration time cannot be used to force a user agent        to refresh its
+display        or reload a resource entity; its semantics apply only to caching
+mechanisms, and        such mechanisms need only check a resource's expiration
+status when a new request for that resource is initiated.
+
+User agents often have history mechanisms, such        as "Back" buttons and
+history        lists, which can be used to redisplay an entity retrieved
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 63]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+earlier        in a session. By default, an expiration time does not apply to
+history        mechanisms. If the entity is still in storage, a history
+mechanism should display it even if the        entity has expired, unless the
+user has specifically configured the agent to refresh expired history
+documents.
+
+
+16.2.3 Heuristic Expiration
+Since origin servers do        not always provide explicit expiration times,
+HTTP caches typically assign heuristic expiration times, employing
+algorithms that        use other header values (such as the Last-Modified
+time)
+to estimate a plausible        expiration time. The HTTP/1.1 specification does
+not provide specific algorithms, but does impose worst-case constraints
+on their results. Since        heuristic expiration times may compromise
+semantic transparency, they should be used cautiously, and we encourage
+origin servers to provide explicit expiration times as much as
+possible.
+
+
+16.2.4 Age Calculations
+In order to know if a cached entry is fresh, a cache needs to know if
+its age        exceeds its freshness lifetime. We discuss how to calculate the
+latter in section 0; this section describes how        to calculate the age of
+a response or cache entry.
+
+In this        discussion, we use the term "now" to mean "the current value of
+the clock at the host performing the calculation." All HTTP
+implementations, but especially        origin servers and caches, should use
+NTP [RFC1305] or some similar protocol to synchronize their clocks to a
+globally accurate time standard.
+
+Also note that HTTP/1.1        requires origin servers to send a Date header
+with every response, giving the        time at which the response was
+generated. We use the term "date_value"        to denote a representation of
+the value of the Date header, in a form        appropriate for arithmetic
+operations.
+
+HTTP/1.1 uses the "Age"        response header to help convey age information
+between        caches. The Age header value is the sender's estimate of the
+amount of time since the response was generated        at the origin server. In
+the case of a cached response that has been revalidated        with the origin
+server,        the Age value is based on the time of revalidation, not of the
+original response.
+
+In essence, the        Age value is the sum of the time that the response has
+been resident in each of the caches along the path from        the origin
+server,        plus the amount of time it has been in transit along network
+paths.
+
+We use the term        "age_value" to denote a representation of the value of
+the Age        header, in a form appropriate for arithmetic operations.
+
+An response's age can be calculated in two entirely independent        ways:
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 64]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+  1. now - date_value, if the local clock is reasonably        well
+     synchronized to the origin        server's clock. If the result is
+     negative, this is replaced        by zero.
+  2. age_value,        if all of the caches along the response path implement
+     HTTP/1.1.
+Given that we have two independent ways        to compute the age of a response
+when it        is received, we can combine these as
+
+       corrected_received_age =        max(now - date_value, age_value)
+
+and as long as we have either nearly synchronized clocks or
+all-HTTP/1.1
+paths, one gets        a reliable (conservative) result.
+
+Note that this correction is applied at        each HTTP/1.1 cache along the
+path, so that if there is an HTTP/1.0 cache in the path, the correct
+received age is        computed as long as the receiving cache's clock is
+nearly in sync.        We don't need end-to-end clock synchronization
+(although
+it is good to have), and there is no explicit clock synchronization
+step.
+
+Because        of network-imposed delays, some significant interval may pass
+from the time that a server generates a        response, and the time it is
+received at the        next outbound cache or client. If uncorrected, this
+delay could result in improperly low ages.
+
+Because        the request that resulted in the returned Age value must have
+been initiated prior to        that Age value's generation, we can correct for
+delays imposed by the network by recording the time at which the request
+was initiated. Then, when an Age value is received, it MUST be
+interpreted relative to        the time the request was initiated, not the time
+that the response was received.        This algorithm results in conservative
+behavior no matter how much delay is experienced. So, we compute:
+
+      corrected_initial_age = corrected_received_age
+                           + (now - request_time)
+
+where "request_time" is        the time (according to the local clock) when the
+request        that elicited this response was sent.
+
+Summary        of age calculation algorithm, when a cache receives a response:
+
+      /*
+       * age_value
+       *      is the value of Age: header received by the cache        with
+       *             this response.
+       * date_value
+       *      is the value of the origin server's Date:        header
+       * request_time
+       *      is the (local) time when the cache made the request
+       *             that resulted in this cached response
+       * response_time
+       *      is the (local) time when the cache received the
+       *             response
+       * now
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 65]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+       *      is the current (local) time
+       */
+      apparent_age = max(0, now        - date_value);
+      corrected_received_age = max(apparent_age, age_value);
+      response_delay = now - request_time;
+      corrected_initial_age = corrected_received_age + response_delay;
+      resident_time = now - response_time;
+      current_age   = corrected_initial_age + resident_time;
+
+When a cache sends a response, it must add to the corrected_initial_age
+the amount of time that        the response was resident locally. It must then
+transmit this total age, using the Age header, to the next recipient
+cache.
+
+  Note that a client can usually tell if a response is firsthand by
+  comparing the        Date to its local request-time, and hoping that the
+  clocks are not badly skewed.
+
+
+
+
+16.2.5 Expiration Calculations
+In order to decide whether a response is fresh or stale, we need to
+compare        its freshness lifetime to its age. The age is calculated as
+described in section 16.2.4; this section describes how        to calculate the
+freshness lifetime, and        to determine if a response has expired.
+
+We use the term        "expires_value" to denote a representation of the value
+of the Expires header, in a form appropriate for arithmetic operations.
+We use the term        "max_age_value" to denote an appropriate representation
+of the number of seconds carried by the        max-age directive of the Cache-
+Control        header in a response (see section 18.11).
+
+The max-age directive takes priority over Expires, so if max-age is
+present        in a response, the calculation is simply:
+
+      freshness_lifetime = max_age_value
+
+Otherwise, if Expires is present in the        response, the calculation is:
+
+      freshness_lifetime = expires_value - date_value
+
+Note that neither of these calculations        is vulnerable to clock skew,
+since all of the information comes from        the origin server.
+
+If neither Expires nor Cache-Control max-age appears in        the response,
+and the        response does not include other restrictions on caching, the
+cache MAY compute a freshness lifetime using a heuristic. This heuristic
+is subject to certain limitations; the minimum value may be zero, and
+the maximum value MUST be no more than 24 hours.
+
+Also, if the response does have        a Last-Modified time, the heuristic
+expiration value SHOULD        be no more than some fraction of the interval
+since that time.  A typical setting of this fraction might be 10%.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 66]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+The calculation        to determine if a response has expired is quite simple:
+
+      response_is_fresh        = (freshness_lifetime > current_age)
+
+
+16.2.6 Scope of        Expiration
+HTTP/1.1's expiration model is that as soon as any variant of a        URI
+becomes        stale, all variants becomes stale as well.  Thus, "freshness"
+applies        to all the variants of URI, rather than any particular variant.
+Dates and expires etc. apply to        any cached variant that a proxy might
+have with a URI        and not just the one particular entity.
+
+Editor's note: This restriction        may be dropped in the next draft; there
+are still discussions about whether this restriction is        needed.
+
+
+16.2.7 Disambiguating Expiration Values
+Because        expiration values are assigned optimistically, it is possible
+that two caches        may contain fresh values for the same resource that are
+different.
+
+If a client performing a retrieval receives a non-firsthand response for
+a resource entity  that        was already fresh in its own cache, and the Date
+header in its existing cache entry is newer than the Date on the new
+response, then the client MAY ignore the response. If so, it MAY retry
+the request with a "Cache-Control: max-age=0" directive        (see section
+18.10),        to force a check with the origin server.
+
+If a cache that        is pooling cached responses from other caches sees two
+fresh responses        for the same resource entity with different validators,
+it SHOULD use the one with the newer Date header.
+
+
+16.2.8 Disambiguating Multiple Responses
+Because        a client may be receiving responses via multiple paths, so that
+some responses flow through one        set of caches and other responses flow
+through        a different set of caches, a client may receive responses in an
+order different        from that in which the origin server generated them. We
+would like the client to use the most recently generated response, even
+if older responses are still apparently        fresh.
+
+Neither        the entity tag nor the expiration value can impose an ordering
+on responses, since it is possible that        a later response intentionally
+carries        an earlier expiration time. However, the HTTP/1.1 specification
+requires the transmission of Date headers on every response, and the
+Date values are        ordered to a granularity of one second.
+
+If a client performs a request for a resource entity that it already has
+in its cache, and the response it receives contains a Date header that
+appears        to be older than the one it already has in its cache, then the
+client SHOULD repeat the request unconditionally, and include
+
+       Cache-Control: max-age=0
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 67]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+to force any intermediate caches to validate their copies directly with
+the origin server, or
+
+      Cache-Control: no-cache
+
+to force any intermediate caches to obtain a new copy from the origin
+server.        This prevents certain paradoxes arising from the use of multiple
+caches.
+
+If the Date values are equal, then the client may use either response
+(or may, if it is being        extremely prudent, request a new response).
+Servers        MUST NOT depend on clients being able to choose
+deterministically between responses generated during the same second, if
+their expiration times overlap.
+
+
+16.3 Validation        Model
+When a cache has a stale entry that it would like to use as a response
+to a client's request, it first        has to check with the origin server (or
+possibly an intermediate cache with a fresh response) to see if        its
+cached entry is        still usable. We call this "validating" the cache
+entry.
+Since we do not        want to have to pay the overhead of retransmitting the
+full response if the cached entry is good, and we do not want to pay the
+overhead of an extra round trip        if the cached entry is invalid, the
+HTTP/1.1 protocol supports the use of conditional methods.
+
+The key        protocol features for supporting conditional methods are those
+concerned with "cache validators." When        an origin server generates a
+full response, it attaches some        sort of validator to it, which is kept
+with the cache entry. When a client (end-user or cache)        makes a
+conditional request for        a resource for which it has a cache entry, it
+includes the associated        validator in the request.
+
+The server then        checks that validator against the current validator for
+the resource entity, and, if they match, it responds with a special
+status code (usually, "304 Not Modified") and no entity        body.
+Otherwise,
+it returns a full response (including entity body). Thus, we avoid
+transmitting the full response if the validator        matches, and we avoid an
+extra round trip if it does not        match.
+
+  Note:        the comparison functions used to decide if validators match
+  are defined in section 16.3.3.
+
+In HTTP/1.1, a conditional request looks exactly the same as a normal
+request        for the same resource, except that it carries a special header
+(which includes        the validator) that implicitly turns the method
+(usually, GET) into a conditional.
+
+The protocol includes both positive and        negative senses of cache-
+validating conditions. That is,        it is possible to request either that a
+method be performed if and only        if the validators match, or if and only
+if the validators do not match.
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 68]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+  Note:        a response that lacks a cache validator may still be cached,
+  and served from cache        until it expires, unless this is explicitly
+  prohibited by        a Cache-Control directive. However, a cache cannot do
+  a conditional        retrieval if it does not have a cache validator for
+  the entity, which means it will not be refreshable after it
+  expires.
+
+
+
+
+16.3.1 Last-modified Dates
+In HTTP/1.0, the only cache validator is the Last-Modified time        carried
+by a response. Clients validate        entities using the If-Modified-Since
+header.        In simple terms, a cache entry is considered to be valid if the
+actual resource        entity has not been modified since the original response
+was generated.
+
+
+16.3.2 Entity Tags
+HTTP/1.1 introduces the        possibility of using an "opaque" validator,
+called an "entity tag,"        for situations where the Last-Modified date is
+not appropriate. This may include server implementations where it is not
+convenient to store modification dates,        or where the one-second
+resolution of HTTP date        values is insufficient, or where the origin
+server wishes to avoid certain paradoxes that may arise        from the use of
+modification dates.
+
+An entity tag is simply        a string of octets whose internal structure is
+not known to clients or        caches. Caches store entity tags and return them
+when making conditional        requests. Also, when a cache receives a
+conditional request for        a resource for which it has a fresh cache
+entry,
+it may compare entity tags using strict        octet-equality. Otherwise,
+entity tags have no semantic value to clients or caches.
+
+To preserve compatibility with HTTP/1.0        clients and caches, and because
+the Last-Modified date may be useful for purposes other        than cache
+validation, HTTP/1.1 servers SHOULD send Last-Modified whenever
+feasible.
+
+The headers used to convey entity tags are described in        sections Error!
+Reference source not found., Error! Reference source not found., 18.26,
+and 18.46.
+
+
+16.3.3 Weak and        Strong Validators
+Since both origin servers and caches will compare two validator        values
+to decide if they represent the        same or different resource entities, one
+normally would expect that if the resource entity  (the        entity body or
+any entity headers) changes in any way,        then the associated validator
+would change as        well. If this is true, then we call this validator a
+"strong        validator."
+
+However, there may be cases when a server prefers to change the
+validator only on semantically significant changes, and        not when
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 69]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+insignificant aspects of the resource entity change. A validator that
+does not always        change when the resource changes is a "weak validator."
+
+One can        think of a strong validator as one that changes whenever the
+bits of        an entity changes, while a weak value changes whenever the
+meaning        of an entity changes. Alternatively, one can think of a strong
+validator as part of an        identifier for a specific entity, while a weak
+validator is part of an        identifier for a set of semantically equivalent
+entities.
+
+  Note:        One example of a strong validator is an integer that is
+  incremented in stable        storage every time an entity is changed.
+
+  An entity's modification time, if represented        with one-second
+  resolution, could be a weak validator, since it is possible that
+  the resource entity  may be modified twice during a single second.
+
+Entity tags are        normally "strong validators," but the protocol provides
+a mechanism to tag an entity tag as "weak."
+
+A "use"        of a validator is either when a client generates a request and
+includes the validator in a validating header field, or        when a server
+compares two validators.
+
+Strong validators are usable in        any context. Weak validators are only
+usable in contexts that        do not depend on exact equality of an entity.
+For example, either kind is usable for a conditional GET of a full
+entity.        However, only a strong validator is usable for a sub-range
+retrieval, since otherwise the client may end up with an internally
+inconsistent entity body.
+
+The only function that the HTTP/1.1 protocol defines on        validators is
+comparison. There are two validator comparison functions, depending on
+whether        the comparison context allows the use of weak validators or
+not:
+
+  .  The strong        comparison function: in order to be considered equal,
+     both validators must be identical in every        way, and neither may be
+     weak.
+  .  The weak comparison function: in order to be considered equal, both
+     validators        must be identical in every way, but either or both of
+     them may be tagged        as "weak" without affecting the result.
+The weak comparison function SHOULD be used for        simple (non-subrange)
+GET requests. The strong comparison function MUST be used in all other
+cases.
+
+An entity tag is strong        unless it is explicitly tagged as weak. Section
+16.3 gives the syntax for entity tags.
+
+A Last-Modified        time, when used as a validator in a request, is
+implicitly weak        unless it is possible to deduce that it is strong, using
+the following rules:
+
+  .  The validator is being compared by        an origin server to the actual
+     current validator for the entity and,
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 70]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+  .  That origin server        reliably knows that the associated entity did
+     not change        twice during the second covered by the presented
+     validator.        or
+
+  .  The validator is about to be used by a client in an If-Modified-
+     Since or If-Unmodified-Since header, because the client has a cache
+     entry for the associated entity, and
+  .  That cache        entry includes a Date value, which gives the time when
+     the origin        server generated the original response, and
+  .  The presented Last-Modified time is at least 60 seconds before the
+     Date value. or
+
+  .  The validator is being compared by        an intermediate cache to the
+     validator stored in its cache entry for the entity, and
+  .  That cache        entry includes a Date value, which gives the time when
+     the origin        server generated the original response, and
+  .  The presented Last-Modified time is at least 60 seconds before the
+     Date value.
+This method relies on the fact that if two different responses were
+generated by the origin        server during the same second, but both had the
+same Last-Modified time, then at least one of those responses would have
+a Date value equal to its Last-Modified        time. The arbitrary 60-second
+limit guards against the possibility that the Date and Last-Modified
+values are generated from different clocks, or at somewhat different
+times during the preparation of        the response. An implementation may use
+a value        larger than 60 seconds, if it is believed that 60 seconds is too
+short.
+
+If a client wishes to perform a        sub-range retrieval on a value for which
+it has only a Last-Modified time and no        opaque validator, it may do this
+only if        the Last-Modified time is strong in the sense described here.
+
+A cache        or origin server receiving a cache-conditional request, other
+than a full-body GET request, must use the strong comparison function to
+evaluate the condition.
+
+These rules allow HTTP/1.1 caches and clients to safely        perform sub-
+range retrievals on values that        have been obtained from HTTP/1.0
+servers.
+
+
+16.3.4 Rules for When to Use Entity Tags and Last-modified Dates
+We adopt a set of rules        and recommendations for origin servers,
+clients,
+and caches regarding when various validator types should be used, and
+for what purposes.
+
+HTTP/1.1 origin        servers:
+
+  .  SHOULD send an entity tag validator unless        performance
+     considerations support the        use of weak entity tags, or unless it is
+     unfeasible        to send a strong entity tag.
+  .  MAY send a        weak entity tag instead of a strong one.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 71]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+  .  MAY send no entity        tag if it is not feasible to generate one.
+  .  SHOULD send a Last-Modified value if it is        feasible to send one,
+     unless the        risk of a breakdown in semantic transparency that could
+     result from using this date in an If-Modified-Since header        would
+     lead to serious problems.
+In other words,        the preferred behavior for an HTTP/1.1 origin server is
+to send        both a strong entity tag and a Last-Modified value.
+
+In order to be legal, a        strong entity tag MUST change whenever the
+associated entity value        changes in any way. A weak entity tag SHOULD
+change whenever        the associated entity  changes in a semantically
+significant way.
+
+  Note:        in order to provide semantically transparent caching, an
+  origin server        should avoid reusing a specific strong entity tag
+  value        for two different resource entities, or reusing a specific
+  weak entity tag value        for two semantically different instances of a
+  resource entity.  Cache entries may persist for arbitrarily long
+  periods, regardless of expiration times, so it may be        inappropriate
+  to expect that a cache will never again attempt to validate an
+  entry        using a validator that it obtained at some point in the past.
+
+HTTP/1.1 clients:
+
+  .  If        an entity tag has been provided by the origin server, MUST use
+     that entity tag in        any cache-conditional request (using If-Match or
+     If-NoneMatch).
+  .  If        only a Last-Modified value has been provided by the origin
+     server, SHOULD use        that value in non-subrange cache-conditional
+     requests (using If-Modified-Since).
+  .  If        only a Last-Modified value has been provided by an HTTP/1.0
+     origin server, MAY        use that value in subrange cache-conditional
+     requests (using If-Unmodified-Since:). The        user agent should
+     provide a way to disable this, in case of difficulty.
+  .  If        both an entity tag and a Last-Modified value have been provided
+     by        the origin server, SHOULD use both validators in cache-
+     conditional requests. This        allows both HTTP/1.0 and HTTP/1.1 caches
+     to        respond appropriately.
+An HTTP/1.1 cache, upon        receiving a request, MUST use the most
+restrictive validator when deciding whether the        client's cache entry
+matches        the cache's own cache entry. This is only an issue when the
+request        contains both an entity tag and a last-modified-date validator
+(If-Modified-Since or If-Unmodified-Since).
+
+  A note on rationale: The general principle behind these rules        is
+  that HTTP/1.1        servers and clients should transmit as much non-
+  redundant information        as is available in their responses and
+  requests. HTTP/1.1 systems receiving this information        will make the
+  most conservative assumptions        about the validators they receive.
+
+  HTTP/1.0 clients and caches will ignore entity tags. Generally,
+  last-modified        values received or used by these systems will support
+  transparent and efficient caching, and so HTTP/1.1 origin servers
+  should provide Last-Modified values. In those        rare cases where the
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 72]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+  use of a Last-Modified value as a validator by an HTTP/1.0 system
+  could        result in a serious problem, then HTTP/1.1 origin servers
+  should not provide one.
+
+
+16.3.5 Non-validating Conditionals
+The principle behind entity tags is that only the service author knows
+the semantics of a resource well enough        to select an appropriate cache
+validation mechanism, and the specification of any validator comparison
+function more complex than byte-equality would open up a can of        worms.
+Thus, comparisons of any other headers (except Last-Modified, for
+compatibility with HTTP/1.0) are never used for        purposes of validating a
+cache entry.
+
+
+16.4 Constructing Responses From Caches
+The purpose of an HTTP cache is        to store information received in
+response to requests, for use in responding to future requests.        In many
+cases, a cache simply returns the appropriate parts of a response to the
+requester. However, if the cache holds a cache entry based on a        previous
+response, it may have to combine parts of a new        response with what is
+held in        the cache entry.
+
+
+16.4.1 End-to-end and Hop-by-hop Headers
+For the        purpose of defining the behavior of caches and non-caching
+proxies, we divide HTTP        headers into two categories:
+
+  .  End-to-end        headers, which must be transmitted to the ultimate
+     recipient of a request or response. End-to-end headers in responses
+     must be stored as part of a cache entry and transmitted in        any
+     response formed from a cache entry.
+  .  Hop-by-hop        headers, which are meaningful only for a single
+     transport-level connection, and are not stored by caches or
+     forwarded by proxies.
+The following HTTP/1.1 headers are hop-by-hop headers:
+
+  .  Connection
+  .  Keep-Alive
+  .  Upgrade
+  .  Public
+  .  Proxy-Authenticate
+  .  Transfer-Encoding
+All other headers defined by HTTP/1.1 are end-to-end headers.
+
+Hop-by-hop headers introduced in future        versions of HTTP MUST be listed
+in a Connection        header, as described in section 18.11.
+
+
+16.4.2 Non-modifiable Headers
+Some features of the HTTP/1.1 protocol,        such as Digest Authentication,
+depend on the value of certain end-to-end headers. A cache or non-
+caching        proxy SHOULD NOT modify an end-to-end header unless the
+definition of that header requires or specifically allows that.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 73]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+A cache        or non-caching proxy MUST NOT modify any of the following fields
+in a request or        response, nor may it add any of these fields if not
+already        present:
+
+  .  Content-Type
+  .  Content-Encoding
+  .  Content-Length
+  .  Expires
+  .  Last-Modified
+  .  Content-Range
+  .  Content-Location
+  Warning: unnecessary modification of end-to-end headers may cause
+  authentication failures if stronger authentication mechanisms        are
+  introduced in        later versions of HTTP. Such authentication
+  mechanisms may rely on the values of header fields not listed        here.
+
+
+
+
+16.4.3 Combining Headers
+When a cache makes a validating        request to a server, and the server
+provides a 304 Not Modified response, the cache        must construct a
+response to send to the        requesting client.  The cache uses the entity-
+body stored in the cache entry as the entity-body of this outgoing
+response. It uses the end-to-end headers from the incoming response, not
+from the cache entry.  Unless it decides to remove the cache entry, it
+must also replace the end-to-end headers stored        with the cache entry
+with those received in the incoming response.
+
+In other words,        the complete set of end-to-end headers received in the
+incoming response overrides all        end-to-end headers stored with the cache
+entry. The cache may add Warning headers (see section 18.48) to        this
+set.
+
+A cache        MUST preserve the order of all headers as received in an
+incoming response.
+
+These rule allows an origin server to completely control the response
+seen by        the client of a cache when the cache revalidates an entry, and
+may be necessary for preserving        semantic transparency or for certain
+kinds of security mechanisms or        future extensions.
+
+
+16.4.4 Combining Byte Ranges
+A response may transfer        only a subrange of the bytes of an entity,
+either because the request included one        or more Range specifications, or
+because        a connection was broken prematurely. After several such
+transfers, a cache may have received several ranges of the same        entity.
+
+If a cache has a stored        non-empty set of subranges for an entity, and an
+incoming response transfers another subrange, the cache        MAY combine the
+new subrange with the existing set if both the following conditions are
+met:
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 74]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+  .  Both the incoming response        and the cache entry must have a cache
+     validator.
+  .  The two cache validators must match using the strong comparison
+     function (see section 16.3.3).
+If either requirement is not meant, the        cache must use only the most
+recent partial response        (based on the Date values transmitted with every
+response, and using the        incoming response if these values are equal or
+missing), and must discard the other partial information.
+
+
+16.5 Caching and Generic Resources
+Generic        resources interacts with caching in several ways:
+
+  .  A generic resource        (one subject to content negotiation) may be
+     bound to more than        one entity. Each of these entities is called a
+     "variant" of the resource.
+  .  The request-URI may be only one part of the cache key.
+
+16.5.1 Vary Header Use
+Origin servers may respond to requests for generic resources use the
+Vary header (see section 18.46 for a full description) to inform the
+cache which header fields of the request were used to select the variant
+returned in the        response. A cache can use that response to reply to a
+subsequent request only        if the two requests not only specify the same
+URI, but also have the same value for all headers specified in the Vary
+response-header.
+
+The Vary header        may also inform the cache that the variant was selected
+using criteria not limited to the request headers; in this case, the
+response MUST NOT be used in a reply to        a subsequent request except if
+the cache relays the new request to the        origin server in a conditional
+request, and the origin        server responds with 304 (Not Modified) and
+includes the same variant-ID (see 13.8.3).
+
+
+16.5.2 Alternates Header Use
+The Alternates header is present in the        HTTP/1.1 to enable caching of
+entities from the planned content negotiation facilities. If a cache
+receives an Alternates header in a response from the origin server (and
+implement these        planned facilities), it should act as if the response
+carried        a "Vary:{accept-headers}" header.  This means that the response
+may be returned        in reply to a subsequent request with Accept-* headers
+identical to those in the current request.
+
+
+16.5.3 Variant-ID Use
+If an origin server chooses to use the variant-ID mechanism, it        assigns
+a variant-ID (see section 7.12)        to each distinct resource entity
+(variant). This        assignment can only be made by the origin server. It
+then returns the appropriate variant-ID        with each response that applies
+to a specific resource entity (variant), using the ETag        header (see
+Error! Reference source        not found.).
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 75]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+When sending an        entity derived from a particular variant in a response,
+an origin server SHOULD        include a variant-ID identifying the variant in
+the ETag header        (see section Error! Reference source not found.).  This
+variant-ID can be used for cache replacement and in conditional        requests
+on the generic resource. When a        cache receives a successful response
+with a variant-ID, it SHOULD use this information to replace any
+existing cache entries for the same variant of the corresponding URI.
+That is, it forms a cache key using the        URI of the request and the
+variant-ID of the response. If this key        matches the key of an existing
+cache entry, it        SHOULD replace the existing entry with the new response
+(subject to all        of the other rules on caching). See section Error!
+Reference source not found. for        more details on update.
+
+When a cache performs a        conditional request on a generic resource, and
+it has one or more cache entries for the resource that include variant-
+IDs, the cache MUST transmit the (cache-validator, variant-ID) tuples in
+the conditional        request, using the variant-set mechanism (see section
+7.13). This tells the server which variants are        currently in the
+requester's cache.
+
+  The client MAY choose        to transmit only a subset of the (cache-
+  validator, variant-ID) tuples        corresponding to its cache entries
+  for this resource.
+
+When a server receives a conditional request that includes a variant-
+set, and the server is able to reply with an appropriate variant
+(either
+because        it is the origin server, or because it is an intermediate cache
+that can properly implement the        variant selection algorithm), once it
+has selected the variant it should examine the elements        of the supplied
+variant-set. If        one of these matches the variant-ID of the selected
+variant, and if        the cache validators match, the server SHOULD reply with
+a 304 (Not Modified) response, including the variant-ID        of the selected
+variant. Otherwise, the        server should reply as if the request were
+unconditional.
+
+The server may optionally use the variant-set information in its
+selection algorithm. For example, if the selection algorithm yields
+several        variants with equal preference, and one of these is already in
+the requester's        cache, the server could select that variant and avoid an
+extra data transfer. This is a performance optimization; otherwise, the
+variant-selection mechanism is orthogonal to the variant-ID mechanism.
+
+
+16.6 Shared and        Non-Shared Caches
+For reasons of security        and privacy, it is necessary to make a
+distinction between "shared" and "non-shared" caches. A        non-shared cache
+is one that is accessible only to a single user. Accessibility in this
+case SHOULD be enforced        by appropriate security mechanisms. All other
+caches are considered to be "shared." Other sections of        this
+specification place certain constraints        on the operation of shared
+caches in order        to prevent loss of privacy or failure of access controls
+
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 76]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+16.7 Selecting a Cached        Response
+When a cache receives a        request it tries to see if it has a cached
+response appropriate for that request, using the matching rules        in this
+section. If such a response exists, then the cache can decide if it is
+fresh enough (using the        expiration model in section 16.1.2 and the
+freshness requirements of client and origin-server expressed in        the
+Cache-Control headers of the request and cached        response) to return in
+reply to the request.
+If on a        cache lookup there are two or more fresh entries that appear to
+match the request, then        the one with the most recent Date value MUST be
+used.
+16.7.1 Plain Resources
+If the cached response was for a plain resource        (that is, the response
+includes no Vary or Alternates headers), it matches if the Request-URI
+of the request matches the Request-URI of the of the request that caused
+the cached response to be stored. Request-URIs match if        their canonical
+forms (see section 7.2.3) are equal.
+
+16.7.2 Generic Resources
+If the cached response was for a generic resource (that        is, the response
+includes Vary, or Alternates headers), it matches if the Request-URI of
+the request matches the        Request-URI of the request that caused the
+cached response        to be stored, and the selecting request header field
+values of the request match those of the request that caused the cached
+response to be stored. (See section 18.46 on Vary, which defines the
+canonical form for selecting request headers and the matching rules for
+them.)
+If the response        contains "Vary: {other}", then the selecting request
+header field values for        its request are defined as never matching a set
+of request headers.
+
+16.8 Errors or Incomplete Response Cache Behavior
+A cache        that receives an incomplete response (for example, with fewer
+bytes of data than specified in        a Content-length: header) may store the
+response. However, the cache MUST treat        this as a partial response.
+Partial        responses may be combined as described in section 16.4.4; the
+result might be        a full response or might still be partial. A cache MUST
+NOT return a partial response to a client without explicitly marking it
+as such, using the 206 (Partial        Content) status code. A cache MUST NOT
+return a partial response using        a status code of 200 (OK).
+
+A cache        that receives a response with a zero-length Entity-body and no
+explicit indication that the correct length is zero (such as "Content-
+Length:        0") MUST NOT  store the response. The same rule applies to a
+response of any        length received without an explicit length indication if
+the transport connection was terminated        in any unusual way.
+
+If a cache receives a response carrying        Retry-After header (see section
+18.40),        it may either forward this response to the requesting client, or
+act as if the server failed to respond.        In the latter case, it MAY
+return a previously received response, although        it MUST follow all of
+the rules applying to stale responses. In particular, it MUST NOT
+override the "must-revalidate" Cache-Control directive (see section
+18.10).
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 77]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+16.8.1 Caching and Status Codes
+A response received with a status code of 200 or 206 may be stored by a
+cache and used in reply        to a subsequent request, subject to the
+expiration mechanism, unless a Cache-control directive prohibits
+caching.
+
+A response received with any other status code MUST NOT        be returned in a
+reply to a subsequent request unless it        carries at least one of the
+following:
+
+  .  an        Expires header
+  .  a max-age Cache-control directive
+  .  a must-revalidate Cache-control directive
+  .  a public Cache-control directive
+
+16.8.2 Handling        of Retry-After
+If a cache receives a response carrying        a Retry-After header (see
+section        18.40), it may either forward this response to the requesting
+client,        or act as if the server failed to respond.  In the latter case,
+it MAY return a        previously received response, although it MUST follow
+all of the rules applying to stale responses.  In particular, it MUST
+NOT override the "must-revalidate" Cache-Control directive (see        section
+18.10).
+
+
+16.9 Side Effects of GET and HEAD
+Unless the origin server explicitly prohibits the caching of their
+responses, the application of GET and HEAD methods to any resources
+SHOULD NOT have        side effects that would lead to erroneous behavior if
+these responses        are taken from a cache. They may still have side
+effects, but a cache is        not required to consider such side effects in
+its caching decisions. Caches are always expected to observe an        origin
+server's explicit restrictions on caching.
+
+We note        one exception to this rule: since some applications have
+traditionally used GETs        and HEADs with query URLs (those containing a
+"?" in the rel_path part) to perform operations        with significant side
+effects, caches        MUST NOT treat responses to such URLs as fresh unless
+the server provides an explicit        expiration time.
+
+This specifically means        that responses from HTTP/1.0 servers for such
+URIs should not        be taken from a cache.
+
+See section 19.2 for related information.
+
+
+16.10 Invalidation After Updates or Deletions
+The effect of certain methods at the origin server may cause one or more
+existing cache entries to become non-transparently invalid. That is,
+although they may continue to be "fresh," they do not accurately reflect
+what the origin        server would return for a new request.
+
+There is no way        for the HTTP protocol to guarantee that all such cache
+entries        are marked invalid.  For example, the request that caused the
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 78]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+change at the origin server may        not have gone through the proxy where a
+cache entry is stored. However, several rules help reduce the
+likelihood of erroneous        behavior.
+
+In this        section, the phrase "invalidate an entity" means that the cache
+should either remove all instances of that entity from its storage, or
+should mark these as "invalid" and in need of a        mandatory revalidation
+before they can        be returned in response to a subsequent request.
+
+Some HTTP methods invalidate a single entity.  This is either the entity
+referred to by the Request-URI,        or by the Location or Content-Location
+response headers (if present). These methods are:
+
+  .  PUT
+  .  DELETE
+  .  POST
+In order to prevent denial of service attacks, an invalidation based on
+the URI        in a Location or Content-Location header MUST only be performed
+if the host part is the        same as in the Request-URI.
+
+
+16.11 Write-Through Mandatory
+All methods that may be        expected to cause modifications to the origin
+server's resources MUST        be written through to the origin server. This
+currently includes all methods except for GET and HEAD.        A cache MUST NOT
+reply to such a        request from a client before having transmitted the
+request        to the inbound server, and having received a corresponding
+response from the inbound server.
+
+The alternative        (known as "write-back" or "copy-back" caching) is not
+allowed        in HTTP/1.1, due to the difficulty of providing consistent
+updates        and the problems arising from server, cache, or network failure
+prior to write-back.
+
+
+16.12  Generic Resources and HTTP/1.0 Proxy Caches
+If the correct handling        of responses from a generic resource (Section
+15) by HTTP/1.0        proxy caches in the response chain is important,
+HTTP/1.1 origin        servers can include the following Expires (Section
+18.22) response        header in all responses from the generic resource:
+
+     Expires: Thu, 01 Jan 1980 00:00:00        GMT
+
+If this        Expires header is included, the server should usually also
+include        a Cache-Control header for the benefit of HTTP/1.1 caches, for example
+
+     Cache-Control: max-age=604800
+
+which overrides        the freshness lifetime of zero seconds specified by the
+included Expires header.
+
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 79]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+16.13 Cache Replacement
+If a new cacheable response (see sections 18.10.2, 16.2.6, 16.2.8 and
+16.8) is received from a plain resource        while any existing responses for
+the same resource are cached, the cache        MUST NOT return any of those
+older responses        to any  future requests for the resource.
+
+  Note:        a new response that has an older Date header value than
+  existing cached responses is not cacheable.
+
+If a new cacheable response is received        from a generic resource with a
+certain        variant-ID while any old responses with the same variant-ID for
+the same resource are cached, the cache        MUST NOT return any of those old
+responses to any future        requests for the resource.
+
+  Note:        In some cases, this may mean that the cache chooses to delete
+  the old response(s) from cache storage to recover space. However,
+  note that there will never be        a new response to signal that a
+  variant-ID is        no longer in use. It is expected that the cache's
+  update heuristics will eventually cause such old responses to        be
+  deleted.
+
+The cache SHOULD use the new response to reply to the current request.
+It may insert it into cache storage and        may, if it meets all other
+requirements, use it to        respond to any future requests that would
+previously have        caused the old response to be returned. If it inserts
+the new        response into cache storage it should follow the rules in
+section        16.4.3.
+
+
+16.14 Caching of Negative Responses
+Caching        of negative responses has often been a significant performance
+advantage in distributed systems.  In some future draft        or specification
+we may have more to say        about negative caching.
+
+
+16.15 History Lists
+History        lists as implemented in many user agents and caches are
+different.  In particular history lists        SHOULD NOT try to show a
+semantically transparent view of the current state of a        resource
+entity.
+Rather,        a history list is meant to show exactly what the user saw at the
+time when the resource was retrieved .
+
+This should not        be construed to prohibit the history mechanism from
+telling        the user that a view may be stale.
+
+
+17 Persistent Connections
+
+17.1 Purpose
+HTTP's greatest        strength and its greatest weakness has been its
+simplicity.  Prior to persistent connections, a        separate TCP connection
+was established        to fetch each URL, increasing the load on HTTP servers,
+and causing congestion on the Internet.          The use of inline images and
+other associated data often requires a client to make multiple requests
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 80]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+of the same server in a        short amount of time.   An excellent analysis of
+these performance problems is available        [30]; analysis and results from
+a prototype implementation are in [33],        [34].
+
+ Persistent HTTP connections have a number of advantages:
+
+  .  By        opening and closing fewer TCP connections, CPU time is saved,
+     and memory        used for TCP protocol control blocks is also saved
+  .  HTTP requests and responses can be        pipe-lined on a connection.
+     Pipe-lining allows        a client to make multiple requests without
+     waiting for each response,        allowing a single TCP connection to be
+     used much more efficiently, with much lower elapsed time.
+  .  Network congestion        is reduced by reducing the number of packets
+     caused by TCP opens, and by allowing TCP sufficient time to
+     determine the congestion state of the network.
+  .  HTTP can evolve more gracefully; since errors can be reported
+     without the penalty of closing the        TCP connection. Clients using
+     future versions of        HTTP might optimistically try a new feature, but
+     if        communicating with an older server, retry with old semantics
+     after an error is reported.
+HTTP implementations SHOULD implement persistent connections.
+
+
+17.2 Overall Operation
+Persistent connections provides        a mechanism by which a client and a
+server can negotiate the use of        a TCP connection for an extended
+conversation. This negotiation takes place using the Connection        and
+Persist        header fields. Once this option has been negotiated, the client
+can make multiple HTTP requests        over a single transport connection.
+
+
+17.2.1 Negotiation
+To request the use of persistent connections, a        client sends a
+Connection header with a connection-token "Persist". If        the server
+wishes to accept persistent connections, it will respond with the same
+connection-token. Both the client and server MUST send this connection-
+token with every request and response for the duration of the persistent
+connection. If either the client or the        server omits the Persist token
+from the Connection header, that request becomes the last one for the
+connection.
+
+A server MUST NOT establish a persistent connection with an HTTP/1.0
+client that uses the above form        of the Persist header due to problems
+with the interactions between HTTP/1.1 clients and HTTP/1.0 proxy
+servers. (See section 23.5.2.5 for more        information on backwards
+compatibility with HTTP/1.0 clients.)
+
+
+17.2.2 Pipe-lining
+Clients        and servers which support persistent connections MAY
+"pipe-line"
+their requests and responses. When pipe-lining,        a client will send
+multiple requests without waiting for the responses. The server        MUST
+then send all of the responses in the same order that the requests were
+made.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 81]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+A client MAY assume that a server supports persistent connections if the
+same server has        accepted persistent connections within the past 24
+hours. Clients which assume persistent connections and pipeline
+immediately SHOULD be prepared to retry        their connection if the first
+pipe-lined attempt fails. If a client does such        a retry, it MUST NOT
+pipeline without first receiving an explicit Persist token from        the
+server.        Clients MUST also be prepared to resend their requests if the
+server closes the connection before sending all        of the corresponding
+responses.
+
+
+17.2.3 Delimiting Entity-Bodies
+When using persistent connections, both        the client and the server MUST
+mark the exact endings of transmitted entity-bodies using one of the
+following three        techniques:
+
+  1. Send a Content-length field in the        header with the exact number of
+     bytes in the entity-body.
+  2. Send the message using chunked Transfer Coding as described in
+     section 7.6. Chunked Transfer Coding allows the server to transmit
+     the data to the client a piece at a time while still communicating
+     an        exact ending of the entity-body.
+  3. Close the transport connection after the entity body.
+Sending        the Content-length is the preferred technique. Chunked encoding
+SHOULD be used when the        size of the entity-body is not known before
+beginning to transmit the entity-body. Finally, the connection MAY be
+closed and fall        back to non-persistent connections, if neither 1 or 2
+are possible.
+
+Clients        and servers that support persistent connections MUST correctly
+support        receiving via all three techniques.
+
+
+17.3 Proxy Servers
+It is especially important that        proxies correctly implement the
+properties of the Connection header field as specified in 14.2.1.
+
+The proxy server MUST negotiate        persistent connections separately with
+its clients and        the origin servers (or other proxy servers) that it
+connects to.  Each persistent connection applies to only one transport
+link.
+
+A proxy        server MUST NOT establish a persistent connection with an
+HTTP/1.0 client.
+
+
+17.4 Interaction with Security Protocols
+It is expected that persistent connections will        operate with both SHTTP
+[31] and SSL [32]. When        used in conjunction with SHTTP, the SHTTP
+request        is prepared normally and the persist connection-token is placed
+in the outermost request block (the one        containing the "Secure"
+method).
+When used in conjunction with SSL, a SSL session is started as normal
+and the        first HTTP request made using SSL contains the persistent
+connection header.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 82]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+17.5 Practical Considerations
+Servers        will usually have some time-out value beyond which they will no
+longer maintain        an inactive connection. Proxy servers might make this a
+higher value since it is likely        that the client will be making more
+connections through the        same server. The use of persistent connections
+places no requirements on the length of        this time-out for either the
+client or the server.
+
+When a client or server        wishes to time-out it SHOULD issue a graceful
+close on the transport connection. Clients and servers SHOULD both
+constantly watch for the other side of the transport close, and        respond
+to it as appropriate. If a client or server does not detect the        other
+side's close promptly it could cause unnecessary resource drain        on the
+network.
+
+A client, server, or proxy MAY close the transport connection at any
+time. For example, a client MAY        have started to send a new request at
+the same time that the server has decided to close the "idle"
+connection. From the server's point of view, the connection is being
+closed while it        was idle, but from the client's point of view, a request
+is in progress.
+
+This means that        clients, servers, and proxies MUST be able to recover
+from asynchronous close        events. Client software SHOULD reopen the
+transport connection and retransmit the        aborted request without user
+interaction. However, this automatic retry SHOULD NOT be repeated if the
+second request fails.
+
+Servers        SHOULD always respond to at least one request per connection, if
+at all possible. Servers SHOULD        NOT close a connection in the middle of
+transmitting a response, unless        a network or client failure is
+suspected.
+
+It is suggested        that clients which use persistent connections SHOULD
+limit the number of simultaneous connections that they maintain        to a
+given server. A        single-user client SHOULD maintain AT MOST 2 connections
+with any server        of proxy. A proxy SHOULD use up to 2*N connections to
+another        server or proxy, where N is the number of simultaneously active
+users. These guidelines        are intended to improve HTTP response times and
+avoid congestion of the        Internet or other networks.
+
+
+18 Header Field        Definitions
+This section defines the syntax        and semantics of all standard HTTP/1.1
+header fields. For Entity-Header fields, both sender and recipient refer
+to either the client or        the server, depending on who sends and who
+receives the entity.
+
+
+18.1 Accept
+The Accept request-header field        can be used to specify certain media
+types which are        acceptable for the response.  Accept headers can be used
+to indicate that the request is        specifically limited to a small set of
+desired        types, as in the case of a request for an in-line image.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 83]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+The field MAY be folded        onto several lines and more than one occurrence
+of the field is        allowed, with the semantics being the same as if all the
+entries        had been in one field value.
+
+       Accept        = "Accept" ":" #(
+                            media-range
+                            [ ( ":" | ";" )
+
+                              range-parameter
+
+                              *( ";" range-parameter ) ]
+
+                           | extension-token )
+
+       media-range    =        ( "*/*"
+                       | ( type "/" "*" )
+                       | ( type "/" subtype )
+                       ) *( ";" parameter )
+
+       range-parameter = ( "q" "=" qvalue )
+                      | extension-range-parameter
+
+       extension-range-parameter = ( token "=" token )
+
+       extension-token = token
+
+The asterisk "*" character is used to group media types        into ranges,
+with "*/*" indicating all media        types and "type/*" indicating all
+subtypes of that type. The range-parameter q is        used to indicate the
+media type quality factor for the range, which represents the user's
+preference for that range of media types.  The default value is        q=1.  In
+Accept headers generated by HTTP/1.1 clients, the character separating
+media-ranges from range-parameters SHOULD be a ":".  HTTP/1.1 servers
+SHOULD be tolerant of use of the ";" separator by HTTP/1.0 clients.
+
+The example
+
+       Accept: audio/*:        q=0.2, audio/basic
+
+SHOULD be interpreted as "I prefer audio/basic,        but send me any audio
+type if        it is the best available after an 80% mark-down in quality."
+
+If no Accept header is present,        then it is assumed that the client
+accepts        all media types.  If Accept headers are present, and if the
+server cannot send a response which is acceptable according to the
+Accept headers,        then the server SHOULD send an error response with the
+406 (not acceptable) status code, though the sending of        an unacceptable
+response is also allowed.
+
+A more elaborate example is
+
+       Accept: text/plain: q=0.5, text/html,
+              text/x-dvi: q=0.8, text/x-c
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 84]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+Verbally, this would be        interpreted as "text/html and text/x-c are the
+preferred media        types, but if they do not exist, then send the text/x-
+dvi entity, and        if that does not exist, send the text/plain entity."
+
+Media ranges can be overridden by more specific        media ranges or specific
+media types. If        more than one media range applies to a given type, the
+most specific reference        has precedence. For example,
+
+       Accept: text/*, text/html, text/html;level=1, */*
+
+have the following precedence:
+
+       1) text/html;level=1
+       2) text/html
+       3) text/*
+       4) */*
+
+The media type quality factor associated with a        given type is determined
+by finding the media range with        the highest precedence which matches
+that type. For example,
+
+       Accept: text/*:q=0.3, text/html:q=0.7, text/html;level=1,
+              */*:q=0.5
+
+would cause the        following values to be associated:
+
+       text/html;level=1        = 1
+       text/html                = 0.7
+       text/plain               = 0.3
+       image/jpeg               = 0.5
+       text/html;level=3        = 0.7
+
+  Note:        A user agent MAY be provided with a default set of quality
+  values for certain media ranges. However, unless the user agent is
+  a closed system which        cannot interact with other rendering agents,
+  this default set SHOULD be configurable by the user.
+
+
+
+
+18.2 Accept-Charset
+The Accept-Charset request-header field        can be used to indicate what
+character sets are acceptable for the response.        This field allows
+clients        capable of understanding more comprehensive or special-purpose
+character sets to signal that capability to a server which is capable of
+representing documents in those        character sets. The ISO-8859-1 character
+set can        be assumed to be acceptable to all user agents.
+
+       Accept-Charset =        "Accept-Charset" ":"
+
+                1#( charset [ ";" "q" "=" qvalue ] )
+
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 85]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+Character set values are described in section 7.4. Each        charset  may be
+given an associated quality value which        represents the user's preference
+for that charset.  The default value is        q=1.  An example is
+
+       Accept-Charset: iso-8859-5, unicode-1-1;q=0.8
+
+If no Accept-Charset header is present,        the default is that any
+character set is acceptable. If        an Accept-Charset header is present, and
+if the server cannot send a response which is acceptable according to
+the Accept-Charset header, then        the server SHOULD send an error response
+with the 406 (not acceptable) status code, though the sending of an
+unacceptable response is also allowed.
+
+
+
+
+18.3 Accept-Encoding
+The Accept-Encoding request-header field is similar to Accept, but
+restricts the content-coding values (18.13) which are acceptable in the
+response.
+
+       Accept-Encoding = "Accept-Encoding" ":"
+                                #( content-coding )
+
+An example of its use is
+
+       Accept-Encoding:        compress, gzip
+
+If no Accept-Encoding header is        present in a request, the server MAY
+assume that the        client will accept any content coding. If an Accept-
+Encoding header        is present, and if the server cannot send a response
+which is acceptable according to the Accept-Encoding  header, then the
+server SHOULD send an error response with the 406 (not acceptable)
+status code.
+
+
+18.4 Accept-Language
+The Accept-Language request-header field is similar to Accept, but
+restricts the set of natural languages that are        preferred as a response
+to the request.
+
+       Accept-Language = "Accept-Language" ":"
+                         1#( language-range [ ";" "q" "=" qvalue ] )
+
+       language-range  = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) )
+                       | "*" )
+
+Each language-range MAY        be given an associated quality value which
+represents an estimate of the user's comprehension of the languages
+specified by that range.  The quality value defaults to        "q=1" (100%
+comprehension).For example,
+
+       Accept-Language:        da, en-gb;q=0.8, en;q=0.7
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 86]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+would mean: "I prefer Danish, but will accept British English (with 80%
+comprehension) and other types of English(with 70% comprehension)."  A
+language-range matches a language-tag if it exactly equals the tag, or
+if it exactly equals a prefix (a sub-sequence starting at the first
+character) of the tag such that        the first tag character following the
+prefix is "-". The special range "*", if present in the
+Accept-Language
+field, matches every tag not matched by        any other ranges present in the
+Accept-Language        field.
+
+  Note:        This use of a prefix matching rule does not imply that
+  language tags        are assigned to languages in such a way that it is
+  always true that if a        user understands a language with a certain
+  tag, then this user will also        understand all languages with tags
+  for which this tag is        a prefix.  The prefix rule simply allows the
+  use of prefix        tags if this is the case.
+
+The language quality factor assigned to        a language-tag by the Accept-
+Language field is the quality value of the longest language-range in the
+field that matches the language-range. If no language-range in the
+field matches the tag, the language quality factor assigned is 0. If no
+Accept-Language        header is present in the request, the server SHOULD
+assume that all        languages are equally acceptable.  If an
+Accept-Language
+header is present, then        all languages which are assigned a quality
+factor greater than 0 are acceptable.  If the server cannot generate a
+response for an        audience capable of understanding at least one
+acceptable language, it        can send a response that uses one or more un-
+accepted languages.
+
+It may be contrary to the privacy expectations of the user to send an
+Accept-Language        header with the complete linguistic preferences of the
+user in        every request.  For a discussion of this issue, see section
+19.7.
+
+  Note:        As intelligibility is highly dependent on the individual
+  user,        it is recommended that client applications make the choice of
+  linguistic preference        available to the user. If the choice is not
+  made available, then the Accept-Language header field        MUST NOT be
+  given        in the request.
+
+
+
+
+18.5 Accept-Ranges
+In some        cases, a client may want to know if the server accepts range
+requests using a certain range unit. The server        may indicate its
+acceptance of range requests for a resource entity  by providing this
+header in a response for that resource:
+
+       Accept-Ranges    = "Accept-Ranges" ":" acceptable-ranges
+
+       acceptable-ranges = 1#range-unit        | "none"
+
+Origin servers that accept byte-range requests MAY send
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 87]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+       Accept-Ranges: bytes
+
+but are        not required to do so.  Clients MAY generate byte-range requests
+without        having received this header for the plain resource involved, but
+the server MAY ignore such requests.
+
+Origin servers that do not accept any kind of range request for        a plain
+resource MAY send
+
+       Accept-Ranges: none
+
+to advise the client not to attempt a range request.
+
+
+18.6 Age
+Caches transmit        age values using:
+
+       Age = "Age" ":" age-value
+
+       age-value = delta-seconds
+
+Age values are non-negative decimal integers, representing time        in
+seconds.
+
+If a cache receives a value larger than        the largest positive integer it
+can represent, or if any of its        age calculations overflows, it MUST
+transmit an Age        header with a value of 2147483648 (2^31).  Otherwise,
+HTTP/1.1 caches        MUST send an Age header in every response.  Caches
+SHOULD use a representation with at least 31 bits of range..
+
+
+18.7 Allow
+The Allow entity-header        field lists the set of methods supported by the
+resource identified by the Request-URI.        The purpose of this field is
+strictly to inform the recipient of valid methods associated with the
+resource. An Allow header field        MUST be present in a 405 (method not
+allowed) response. The Allow header field is not permitted in a        request
+using the POST method, and thus        SHOULD be ignored if it is received as
+part of        a POST entity.
+
+       Allow         = "Allow" ":" 1#method
+
+Example        of use:
+
+       Allow: GET, HEAD, PUT
+
+This field cannot prevent a client from        trying other methods. However,
+the indications        given by the Allow header field value SHOULD be
+followed. The actual set of allowed methods is defined by the origin
+server at the time of each request.
+
+The Allow header field MAY be provided with a PUT request to recommend
+the methods to be supported by the new or modified resource. The server
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 88]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+is not required        to support these methods and SHOULD include an Allow
+header in the response giving the actual supported methods.
+
+A proxy        MUST NOT modify the Allow header field even if it does not
+understand all the methods specified, since the        user agent MAY have
+other means of communicating with the origin server.
+
+The Allow header field does not        indicate what methods are implemented at
+the server level. Servers MAY use the Public response header field
+(section 18.37)        to describe what methods are implemented on the server
+as a whole.
+
+
+18.8 Alternates
+The Alternates response-header field is        used by origin servers to signal
+that the resource identified by        the current request has the capability
+to send        different responses depending on the accept headers in the
+request        message.  This has an important effect on cache management,
+particularly for caching proxies which service a diverse set of        user
+agents.         This effect is covered in section 18.46.
+
+       Alternates          = "Alternates" ":" opaque-field
+
+       opaque-field        = field-value
+
+The Alternates header is included into HTTP/1.1        to make HTTP/1.1 caches
+compatible with        a planned content negotiation mechanism.  HTTP/1.1
+allows a future        content negotiation standard to define the format of the
+Alternates header field-value, as long as the defined format satisfies
+the general rules in section 18.8.
+
+To ensure compatibility        with future experimental or standardized
+software, caching HTTP/1.1 clients MUST        treat all Alternates headers in
+a response as synonymous to the        following Vary header:
+
+        Vary: {accept-headers}
+
+and follow the caching rules associated        with the presence of this Vary
+header,        as covered in Section 18.46.  HTTP/1.1 allows origin servers to
+send Alternates        headers under experimental conditions.
+
+
+18.9 Authorization
+A user agent that wishes to authenticate itself        with a server--usually,
+but not        necessarily, after receiving a 401 response--MAY do so by
+including an Authorization request-header field        with the request. The
+Authorization field value consists of credentials containing the
+authentication information of the user agent for the realm of the
+resource being requested.
+
+       Authorization  =        "Authorization" ":" credentials
+
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 89]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+HTTP access authentication is described        in section 14. If a request is
+authenticated and a realm specified, the same credentials SHOULD be
+valid for all other requests within this realm.
+
+When a shared cache (see section 16.6) receives        a request containing an
+Authorization field, it        MUST NOT return the corresponding response as a
+reply to any other request, unless one of the following        specific
+exceptions holds:
+
+  1. If        the response includes the "proxy-revalidate" Cache-Control
+     directive,        the cache MAY use that response in replying to a
+     subsequent        request, but a proxy cache MUST first revalidate it with
+     the origin        server, using the request headers from the new request
+     to        allow the origin server to authenticate the new request.
+  2. If        the response includes the "must-revalidate" Cache-Control
+     directive,        the cache MAY use that response in replying to a
+     subsequent        request, but all caches MUST first revalidate it with
+     the origin        server, using the request headers from the new request
+     to        allow the origin server to authenticate the new request.
+  3. If        the response includes the "public" Cache-Control directive, it
+     may be returned in        reply to any subsequent request.
+
+18.10 Cache-Control
+The Cache-Control general-header field is used to specify directives
+that MUST be obeyed by all caching mechanisms along the
+request/response
+chain. The directives specify behavior intended        to prevent caches from
+adversely interfering with the request or response. .  These directives
+typically override the default caching algorithms.  Cache directives are
+unidirectional in that the presence of a directive in a        request does not
+imply that the same directive should be        given in the response.
+
+Cache directives must be passed        through by a proxy or gateway
+application, regardless        of their significance to that application, since
+the directives may be applicable to all        recipients along the
+request/response chain.        It is not possible to specify a cache-directive
+for a specific cache.
+
+       Cache-Control   = "Cache-Control" ":" 1#cache-directive
+
+       cache-directive = "public"
+                      | "private" [ "=" <"> 1#field-name <"> ]
+                      | "no-cache" [ "=" <"> 1#field-name <"> ]
+                      | "no-store"
+                      | "no-transform"
+                      | "must-revalidate"
+                      | "proxy-revalidate"
+                      | "only-if-cached"
+                      | "max-age" "=" delta-seconds
+                      | "max-stale" "=" delta-seconds
+                      | "min-fresh" "=" delta-seconds
+                      | "min-vers" "=" HTTP-Version
+
+When a directive appears without any 1#field-name parameter, the
+directive applies to the entire        request or response. When such a
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 90]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+directive appears with a 1#field-name parameter, it applies only to the
+named field or fields, and not to the rest of the request or response.
+This mechanism supports        extensibility; implementations of future
+versions of the        HTTP protocol may apply these directives to header
+fields not defined in HTTP/1.1.
+
+The cache-control directives can be broken down        into these general
+categories:
+
+  .  Restrictions on what is cachable; these may only be imposed by the
+     origin server.
+  .  Restrictions on what may be stored        by a cache; these may be imposed
+     by        either the origin server or the end-user client.
+  .  Modifications of the basic        expiration mechanism; these may be
+     imposed by        either the origin server or the end-user client.
+  .  Controls over cache revalidation and reload; these        may only be
+     imposed by        an end-user client.
+  .  Restrictions on the number        of times a cache entry may be used, and
+     related demographic reporting mechanisms.
+  .  Miscellaneous restrictions
+Caches never add or remove Cache-Control directives to requests        or
+responses.
+
+Check: is this true?
+
+
+18.10.1        Cache-Control Restrictions on What is Cachable
+Unless specifically constrained        by a Cache-Control directive, a caching
+system may always store        a successful response (see section 16.8) as a
+cache entry, may return        it without validation if it is fresh, and may
+return it after        successful validation. If there is neither a cache
+validator nor an explicit expiration time associated with a response, we
+do not expect it to be cached, but certain caches may violate this
+expectation (for example, when little or no network connectivity is
+available).  A client can usually detect that such a response was taken
+from a cache by        comparing the Date header to the current time.
+
+  Note that some HTTP/1.0 caches are known to violate this
+  expectation without providing        any Warning.
+
+However, in some cases it may be inappropriate for a cache to retain a
+resource entity, or to return it in response to        a subsequent request.
+This may be because absolute semantic transparency is deemed necessary
+by the service author, or because of security or privacy
+considerations.
+Certain        Cache-Control directives are therefore provided so that the
+server can indicate that certain resource entities, or portions
+thereof,
+may not        be cached regardless of other considerations.
+
+Note that section 18.8 normally        prevents a shared cache from saving and
+returning a response to        a previous request if that request included an
+Authorization header.
+
+The following Cache-Control response directives        add or remove
+restrictions on        what is cachable:
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 91]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+public
+  Overrides the        restriction in section 18.8 that prevents a shared
+  cache        from saving and returning a response to a previous request if
+  that request included        an Authorization header. However, any other
+  constraints on caching still apply.
+ private
+  Indicates that all or        part of the response message is intended for a
+  single user and MUST NOT be cached by        a shared cache. This allows an
+  origin server        to state that the specified parts of the response are
+  intended for only one        user and are not a valid response for requests
+  by other users. A private (non-shared) cache may ignore this
+  directive.
+  Note:        This usage of the word "private" only controls where the
+  response may be cached, and cannot ensure the        privacy of the
+  message content. Note        in particular that HTTP/1.0 caches will not
+  recognize or obey this directive.
+
+
+no-cache
+  indicates that all or        partof the response message MUST NOT be cached
+  anywhere. This allows        an origin server to prevent caching even by
+  caches that have been        configured to return stale responses to client
+  requests.
+  Note:        HTTP/1.0 caches will not recognize or obey this directive.
+
+TBS: precedence        relations between public, private, and no-cache.
+
+
+18.10.2        What May be Stored by Caches
+The "no-store" directive applies to the        entire message, and may be sent
+either in a response or        in a request. If sent in a request, a cache MUST
+NOT store any part of either this request or any response to it. If sent
+in a response, a cache MUST NOT        store any part of either this response
+or the request that elicited it. This directive        applies to both non-
+shared and shared caches.
+
+Even when this directive is associated with a response,        users may
+explicitly store such a        response outside of the caching system (e.g.,
+with a "Save As" dialog). History buffers may store such responses as
+part of        their normal operation.
+
+The purpose of this directive is to meet the stated requirements of
+certain        users and service authors who are concerned about accidental
+releases of information        via unanticipated accesses to cache data
+structures. While the use of this directive may        improve privacy in some
+cases, we caution that it is NOT in any        way a reliable or sufficient
+mechanism for ensuring privacy.        In particular, HTTP/1.0 caches will not
+recognize or obey this directive, malicious or compromised caches may
+not recognize or obey this directive, and communications networks may be
+vulnerable to eavesdropping.
+
+The "min-vers" directive applies to the        entire message, and may be sent
+either in a response or        in a request. If sent in a request, a cache
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 92]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+whose HTTP version number is less than the specified version MUST NOT
+store any part of either this request or any response to it. If        sent in
+a response, a cache whose HTTP version number is less than the specified
+version        MUST NOT store any part of either this response or the request
+that elicited it, nor may any cache transmit a stored (non-firsthand)
+copy of        the response to any client with a lower HTTP version number.
+This directive applies to both non-shared and shared caches, and is made
+mandatory to allow for future protocol extensions that may affect
+caching.
+
+  Note that the        lowest version that can be sensibly included in a
+  "min-vers" directive is HTTP/1.1, since HTTP/1.0 caches do not obey
+  it.
+
+
+18.10.3        Modifications of the Basic Expiration Mechanism
+The expiration time of a resource entity may be        specified by the origin
+server using the Expires header        (see section 18.22). Alternatively, it
+may be specified using the "max-age" directive in a response.
+
+If a response includes both an Expires header and a max-age directive,
+the max-age directive overrides        the Expires header, even if the Expires
+header is more restrictive. This rule allows an        origin server to
+provide, for a given response, a longer        expiration time to an HTTP/1.1
+(or later) cache than to an HTTP/1.0 cache. This may be        useful if
+certain        HTTP/1.0 caches improperly calculate ages or expiration times,
+perhaps        due to synchronized clocks.
+
+Other directives allow an end-user client to modify the        basic expiration
+mechanism, making it either stricter or        looser. These directives may be
+specified on a request:
+
+
+max-age
+  Indicates that the client is willing to accept a response whose age
+  is no        greater than the specified time in seconds. Unless "max-stale"
+  is also included, the        client is not willing to accept a stale
+  response. This directive overrides any policy        of the cache.
+
+min-fresh
+  Indicates that the client is willing to accept a response whose
+  freshness lifetime is        no less than its current age plus the specified
+  time in seconds. That        is, the client wants a that response will still
+  be fresh for at least        the specified number of seconds.
+
+max-stale
+  Indicates that the client is willing to accept a response that has
+  exceeded its expiration time by no more than the specified number of
+  seconds. If a        cache returns a stale response in response to such a
+  request, it MUST mark        it as stale using the Warning header.
+  Note that HTTP/1.0 caches will ignore        these directives.
+
+If a cache returns a stale response, either because of a max-stale
+directive on a request,        or because the cache is configured to override
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 93]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+the expiration time of a response, the cache MUST attach a Warning
+header to the stale response, using Warning 10 (Response is stale).
+
+
+18.10.4        Cache Revalidation and Reload Controls
+Sometimes an end-user client may want or need to insist        that a cache
+revalidate its cache entry with        the origin server (and not just with the
+next cache along the path to the origin        server), or to reload its cache
+entry from the origin server. End-to-end revalidation may be necessary
+if either the cache or the origin server has overestimated the
+expiration time        of the cached response. End-to-end reload may be
+necessary if the cache entryhas        become corrupted for some reason, and
+the fact that its validator is up-to-date is irrelevant.
+
+End-to-end revalidation        may be requested either when the client does not
+have its own local cached copy,        in which case we call it "unspecified
+end-to-end revalidation", or when the client does have a local cached
+copy, in which case we call it "specific end-to-end revalidation."
+
+The client can specify these three kinds of action using Cache-Control
+request        directives:
+
+
+End-to-end reload
+  The request includes "Cache-Control: no-cache" or, for compatibility
+  with HTTP/1.0        clients, "Pragma: no-cache". No field names may be
+  included with        the "no-cache" directive in a request. The server MUST
+  NOT use a cached copy        when responding to such a request.
+
+Specific end-to-end revalidation
+  The request includes "Cache-Control: max-age=0", which forces        each
+  cache        along the path to the origin server to revalidate its own
+  entry, if any, with the next cache or        server. The initial request
+  includes a cache-validating conditional with the client's current
+  validator.
+
+Unspecified end-to-end revalidation
+  The request includes "Cache-Control: max-age=0", which forces        each
+  cache        along the path to the origin server to revalidate its own
+  entry, if any, with the next cache or        server. The initial request
+  does not include a cache-validating conditional; the first cache
+  along        the path (if any) that holds a cache entry for this resource
+  includes a cache-validating conditional with its current validator.
+  Note that HTTP/1.0 caches will ignore        these directives, except
+  perhaps for "Pragma: no-cache".
+
+When an        intermediate cache is forced, by means of a "max-age=0"
+directive, to revalidate its own cache entry, and the client has
+supplied its own validator in the request, the supplied        validator may
+differ from the        validator currently stored with the cache entry. In this
+case, the cache        may use either validator in making its own request
+without        affecting semantic transparency.
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 94]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+However, the choice of validator may affect performance. The best
+approach is for        the intermediate cache to use its own validator when
+making its request. If the server replies with 304 (Not        Modified), then
+the cache should return        its now validated copy to the client with a 200
+(OK) response. If the server replies with a new        Entity-body and cache
+validator, however, the        intermediate cache should compare the returned
+validator with the one provided        in the client's request, using the
+strong comparison function. If the client's validator is equal to the
+origin server's, then the intermediate cache simply returns 304        (Not
+Modified). Otherwise, it returns the new Entity-body with a 200        (OK)
+response.
+
+If a request includes the "no-cache" directive,        it should not include
+"min-fresh", "max-stale", or "max-age".
+
+In some        cases, such as times of extremely poor network connectivity, a
+client may want        a cache to return only those responses that it currently
+has stored, and        not to reload or revalidate with the origin server. To
+do this, the client may        include the "only-if-cached" directive in a
+request. If it receives        this directive, a cache SHOULD either respond
+using a        cached entry that is consistent with the other constraints of
+the request, or        respond with a 504 (Gateway Timeout) status. However, if
+a group        of caches is being operated as a unified system with good
+internal connectivity, such a request MAY be forwarded within that group
+of caches.
+
+Because        a cache may be configured to ignore a server's specified
+expiration time, and because a client request may include a max-stale
+directive, which has a similar effect, the protocol also includes a
+mechanism for the origin server        to require revalidation of a cache entry
+on any subsequent use. When the        "must-revalidate" directive is present
+in a response received by a cache, that        cache MUST NOT use the entry
+after it becomes stale to respond to a subsequent request without first
+revalidating it        with the origin server. (I.e., the cache must do an
+end-
+to-end revalidation every time,        if, based solely on the origin server's
+Expires        or max-age value, the cached response is stale.)
+
+The "must-revalidate" directive        is necessary to support reliable
+operation for certain protocol features. In all        circumstances an
+HTTP/1.1 cache MUST obey the "must-revalidate" directive; in
+particular,
+if the cache cannot reach the origin server for        any reason, it MUST
+generate a 504 (Gateway        Timeout) response. Note that HTTP/1.0 caches
+will ignore this directive.
+
+Servers        should send the "must-revalidate" directive if and only if
+failure        to revalidate a request on the entity could result in incorrect
+operation, such        as a silently unexecuted financial transaction.
+Recipients MUST        NOT take any automated action that violates this
+directive, and MUST NOT        automatically provide an unvalidated copy of the
+entity if revalidation fails.
+
+Although this is not recommended, user agents operating        under severe
+connectivity constraints may violate this directive but, if so,        MUST
+explicitly warn        the user that an unvalidated response has been
+provided.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 95]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+The warning MUST be provided on        each unvalidated access, and SHOULD
+require        explicit user confirmation.
+
+The "proxy-revalidate" directive has the same meaning as the "must-
+revalidate" directive, except that it does not apply to        user-agent
+caches.
+
+
+18.10.5        Miscellaneous Restrictions
+In certain circumstances, an intermediate cache        (proxy) may find it
+useful to convert the encoding of an entity body. For example, a proxy
+might use a compressed content-coding to transfer the body to a        client
+on a slow link.
+
+Because        end-to-end authentication of entity bodies and/or entity headers
+relies on the specific encoding        of these values, such transformations
+may cause authentication failures. Therefore, an intermediate cache MUST
+NOT change the encoding        of an entity body if the response includes the
+"no-transform" directive.
+
+  Note:        the use of hop-by-hop compression in conjunction with Range
+  retrievals may require additional specification in a subsequent
+  draft.
+
+
+18.11 Connection
+HTTP version 1.1 provides a new        request and response header field called
+"Connection". This header field        allows the client and server to specify
+options        which should only exist over that particular connection and MUST
+NOT be communicated by proxies over further connections. The connection
+header field MAY have multiple tokens separated        by commas (referred to
+as connection-tokens).
+
+HTTP version 1.1 proxies MUST parse the        Connection header field and for
+every connection-token in this field, remove a corresponding header
+field from the request before the request is forwarded.        The use of a
+connection option is specified by the presence of a connection token in
+the Connection header field, not by the        corresponding additional header
+field (which may not be        present).
+
+When a client wishes to        establish a persistent connection it MUST send a
+"Persist" connection-token:
+
+       Connection: persist
+
+The Connection header has the following        grammar:
+
+       Connection-header = "Connection"        ":" 1#(connection-token)
+       connection-token         = token
+
+
+
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 96]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+18.12 Content-Base
+The Content-Base entity-header field may be used to specify the        base URI
+for resolving relative URLs within the entity. This header field is
+described as "Base" in RFC 1808        , which is expected to be revised soon.
+
+       Content-Base          = "Content-Base" ":" absoluteURI
+
+If no Content-Base field is present, the base URI of an        entity is
+defined        either by its Content-Location or the URI used to initiate the
+request, in that order of precedence. Note, however, that the base URI
+of the contents        within the entity body may be redefined within that
+entity body.
+
+
+18.13 Content-Encoding
+The Content-Encoding entity-header field is used as a modifier to the
+media-type. When present, its value indicates what additional content
+codings        have been applied to the resource entity, and thus what decoding
+mechanisms MUST        be applied in order to obtain the media-type referenced
+by the Content-Type header field. Content-Encoding is primarily        used to
+allow a        document to be compressed without losing the identity of its
+underlying media type.
+
+       Content-Encoding               = "Content-Encoding" ":"
+1#content-coding
+
+Content        codings are defined in section 7.5. An example of its use is
+
+       Content-Encoding: gzip
+
+The Content-Encoding is        a characteristic of the resource entity
+identified by the Request-URI. Typically, the resource entity is stored
+with this encoding and is only decoded before rendering        or analogous
+usage.
+
+If multiple encodings have been        applied to a resource entity, the
+content        codings MUST be listed in the order in which they were applied.
+Additional information about the encoding parameters MAY be provided by
+other Entity-Header fields not defined by this specification.
+
+
+18.14 Content-Language
+The Content-Language entity-header field describes the natural
+language(s) of the intended audience for the enclosed entity. Note that
+this may not be        equivalent to all the languages used within the entity.
+
+       Content-Language               = "Content-Language" ":" 1#language-tag
+
+Language tags are defined in section 7.10. The primary purpose of
+Content-Language is to allow a selective consumer to identify and
+differentiate resource variants        according to the consumer's own
+preferred language. Thus, if the body content is intended only for a
+Danish-literate        audience, the appropriate field is
+
+       Content-Language: dk
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 97]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+If no Content-Language is specified, the default is that the content is
+intended for all language audiences. This may mean that        the sender does
+not consider it        to be specific to any natural language, or that the
+sender does not        know for which language it is intended.
+
+Multiple languages MAY be listed for content that is intended for
+multiple audiences. For        example, a rendition of the "Treaty of
+Waitangi," presented simultaneously in the original Maori and English
+versions, would        call for
+
+       Content-Language: mi, en
+
+However, just because multiple languages are present within an entity
+does not mean that it is intended for multiple linguistic audiences. An
+example        would be a beginner's language primer, such as "A First Lesson
+in Latin," which is clearly intended to        be used by an English-literate
+audience. In this case,        the Content-Language should only include "en".
+
+Content-Language MAY be        applied to any media type -- it SHOULD not be
+limited        to textual documents.
+
+
+18.15 Content-Length
+The Content-Length entity-header field indicates the size of the
+Entity-
+Body, in decimal number        of octets, sent to the recipient or, in the case
+of the HEAD method, the        size of the Entity-Body that would have been
+sent had the request been a GET.
+
+       Content-Length =        "Content-Length" ":" 1*DIGIT
+
+An example is
+
+       Content-Length: 3495
+
+Applications SHOULD use        this field to indicate the size of the Entity-
+Body to        be transferred, regardless of the media type of the entity. It
+must be        possible for the recipient to reliably determine the end of a
+HTTP/1.1 request method        containing an entity body, e.g., because the
+request        has a valid Content-Length field, uses Transfer-Encoding:
+chunked        or a multipart body.
+
+Any Content-Length greater than        or equal to zero is a valid value.
+Section        11.2.2 describes how to determine the length of an Entity-Body
+if a Content-Length is not given.
+
+  Note:        The meaning of this field is significantly different from the
+  corresponding        definition in MIME, where it is an optional field
+  used within the "message/external-body" content-type.        In HTTP, it
+  SHOULD be used whenever the entity's length can be determined        prior
+  to being transferred.
+
+
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 98]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+18.16 Content-Location
+The Content-Location entity-header field is used to define the location
+of the plain resource associated with the entity enclosed in the
+message. A server SHOULD provide a Content-Location if,        when including
+an entity in response to a GET request on a generic resource, the entity
+corresponds to a specific, non-negotiated location which can be        accessed
+via the        Content-Location URI. A server SHOULD provide a
+Content-Location
+with any 200 (OK) response which was internally        (not visible to the
+client)        redirected to a resource other than the one identified by the
+request        and for which correct interpretation of that resource MAY
+require        knowledge of its actual location.
+
+       Content-Location = "Content-Location" ":" absoluteURI
+
+If no Content-Base header field        is present, the value of Content-
+Location also defines the base URL for the entity (see Section 18.12).
+
+  Note that the        Content-Location information is advisory, and that
+  there        is no guarantee that the URI of the Content-Location actually
+  corresponds in any way to the        original request URI. For example, a
+  cache        cannot reliably assume that the data returned as a result of
+  the request can be returned from a new request on any        URI other
+  than the original request.  See section 19.9.
+
+
+18.17 Content-MD5
+The Content-MD5        entity-header field is an MD5 digest of the
+entity-body,
+as defined in RFC 1864 [], for the purpose of providing        an end-to-end
+message        integrity check (MIC) of the entity-body. (Note: an MIC is good
+for detecting accidental modification of the entity-body in transit, but
+is not proof against malicious attacks.)
+
+       ContentMD5      = "Content-MD5" ":" md5-digest
+
+       md5-digest      = <base64 of 128 bit MD5 digest as per RFC
+1864>
+
+The Content-MD5        header may be generated by an origin server to function
+as an integrity        check of the entity-body. Only origin-servers may
+generate the Content-MD5 header        field; proxies and gateways MUST NOT
+generate it, as        this would defeat its value as an end-to-end integrity
+check. Any recipient of        the entity-body, including gateways and
+proxies,
+MAY check that the digest value        in this header field matches that of the
+entity-body as received.
+
+The MD5        digest is computed based on the content of the entity body,
+including any Content-Encoding that has        been applied, but not including
+any Transfer-Encoding. If the entity is received with a Transfer-
+Encoding, that encoding        must be removed prior to checking the Content-
+MD5 value against the received entity.
+
+This has the result that the digest is computed        on the octets of the
+entity body exactly as,        and in the order that, they would be sent if no
+Transfer-Encoding were being applied.
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul  [Page 99]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+HTTP extends RFC 1864 to permit        the digest to be computed for MIME
+composite media-types (e.g., multipart/* and message/rfc822), but this
+does not change        how the digest is computed as defined in the preceding
+paragraph.
+
+  Note:        There are several consequences of this. The entity-body for
+  composite types may contain many body-parts, each with its own MIME
+  and HTTP headers (including Content-MD5, Content-Transfer-Encoding,
+  and Content-Encoding headers). If a body-part        has a Content-
+  Transfer-Encoding or Content-Encoding        header, it is assumed that
+  the content of the body-part has had the encoding applied, and the
+  body-part is included        in the Content-MD5 digest as is -- i.e.,
+  after        the application. Also, the HTTP Transfer-Encoding header
+  makes        no sense within body-parts; if it is present, it is ignored -
+  - i.e. treated as ordinary text.
+
+  Note:        while the definition of Content-MD5 is exactly the same for
+  HTTP as in RFC 1864 for MIME entity-bodies, there are        several ways
+  in which the application of Content-MD5 to HTTP entity-bodies
+  differs from its application to MIME entity-bodies. One is that
+  HTTP,        unlike MIME, does not use Content-Transfer-Encoding, and does
+  use Transfer-Encoding        and Content-Encoding. Another is that HTTP
+  more frequently uses binary content types than MIME, so it is        worth
+  noting that in such cases, the byte order used to compute the
+  digest is the        transmission byte order defined for the type. Lastly,
+  HTTP allows transmission of text types with any of several line
+  break        conventions and not just the canonical form using CRLF.
+  Conversion of        all line breaks to CRLF should not be done before
+  computing or checking        the digest: the line break convention used in
+  the text actually transmitted        should be left unaltered when
+  computing the        digest.
+
+
+
+
+18.18 Content-Range
+The Content-Range header is sent with a        partial entity body to specify
+where in the full entity body the partial body should be inserted.  It
+also indicates the total size of the entity.
+
+       Content-Range = "Content-Range" ":" content-range-spec
+
+When an        HTTP message includes the content of a single range (for
+example, a response to a request for a single range, or        to request for a
+set of ranges that overlap without any holes), this content is
+transmitted with a Content-Range header, and a Content-Length header
+showing        the number of bytes actually transferred.  For example,
+
+       HTTP/1.0        206 Partial content
+       Date: Wed, 15 Nov 1995 06:25:24 GMT
+       Last-modified: Wed, 15 Nov 1995 04:58:08        GMT
+       Content-Range: 21010-47021/47022
+       Content-Length: 26012
+       Content-Type: image/gif
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 100]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+18.18.1        MIME multipart/byteranges Content-type
+When an        HTTP message includes the content of multiple ranges (for
+
+example, a response to a request for multiple non-overlapping ranges),
+these are transmitted as a multipart MIME message.  The        multipart MIME
+content-type used for this purpose is defined in this specification to
+be "multipart/byteranges".
+
+The MIME multipart/byteranges content-type includes two        or more parts,
+each with its own Content-Type and Content-Range fields.  The parts are
+separated using        a MIME boundary parameter.
+
+For example:
+
+       HTTP/1.0        206 Partial content
+       Date: Wed, 15 Nov 1995 06:25:24 GMT
+       Last-modified: Wed, 15 Nov 1995 04:58:08        GMT
+       Content-type: multipart/byteranges;
+boundary=THIS_STRING_SEPARATES
+
+       --THIS_STRING_SEPARATES
+       Content-type: application/pdf
+      Content-range: bytes 500-999/8000
+
+       ...the first range...
+       --THIS_STRING_SEPARATES
+       Content-type: application/pdf
+      Content-range: bytes 7000-7999/8000
+
+       ...the second range
+       --THIS_STRING_SEPARATES_
+
+
+18.18.2        Additional Rules for Content-Range
+A client that cannot decode a MIME multipart/byteranges        message should
+not ask        for multiple byte-ranges in a single request.
+
+When a client requests multiple        byte-ranges in one request, the server
+SHOULD return them in the order        that they appeared in the request.
+
+If the server ignores a        byte-range-spec because it is invalid,  the
+server should treat the        request as if the invalid Range header field did
+not exist (normally, this means        return a 200 response containing the
+full resource entity). The reason is that the only time a client will
+make such an invalid request is        when the resource entity has changed
+(shrunk) since the prior request.
+
+
+18.19 Content-Type
+The Content-Type entity-header field indicates the media type of the
+Entity-Body sent to the        recipient or, in the case of the HEAD method,
+the media type that would have been sent had the request been a        GET.
+
+       Content-Type   =        "Content-Type" ":" media-type
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 101]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+Media types are        defined in section 7.7. An example of the field is
+
+       Content-Type: text/html;        charset=ISO-8859-4
+
+Further        discussion of methods for identifying the media type of an
+entity is provided in section 11.2.1.
+
+
+18.20 Date
+The Date general-header        field represents the date and time at which the
+message        was originated, having the same semantics as orig-date in RFC
+822. The field value is        an HTTP-date, as described in section 7.3.1.
+
+       Date          = "Date" ":" HTTP-date
+
+An example is
+
+       Date: Tue, 15 Nov 1994 08:12:31 GMT
+
+If a message is        received via direct connection with the user agent (in
+the case of requests) or the origin server (in the case        of responses),
+then the date can be assumed to        be the current date at the receiving
+end. However, since the        date--as it is believed by the origin--is
+important for evaluating cached        responses, origin servers SHOULD always
+include        a Date header. Clients SHOULD only send a Date header field in
+messages that include an entity        body, as in the case of the PUT and POST
+requests, and even then        it is optional. A received message which does
+not have a Date        header field SHOULD be assigned one by the recipient if
+the message will be cached by that recipient or        gatewayed via a protocol
+which requires a Date.
+
+In theory, the date SHOULD represent the moment        just before the entity
+is generated. In practice, the date can        be generated at any time during
+the message origination        without affecting its semantic value.
+
+  Note:        An earlier version of this document incorrectly specified
+  that this field SHOULD contain the creation date of the enclosed
+  Entity-Body. This has        been changed to reflect actual (and proper)
+  usage.
+
+Origin servers MUST send a Date        field in every response.  However, if a
+cache receives a response without a Date field,        it SHOULD attach one
+with the cache's best estimate of the time at which the        response was
+originally generated.
+
+The format of the Date is an absolute date and time as defined by HTTP-
+date in        Section 7.3; it MUST be in RFC1123-date format.
+
+
+
+
+18.21 ETag
+The ETag header        is used to transmit entity tags with variant id's in
+HTTP/1.1 responses.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 102]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+      ETag = "ETag" ":"        etag-info
+      etag-info        = entity-tag [ ";" variant-id ]
+
+Examples:
+
+      ETag: "xyzzy"
+      ETag: "xyzzy"/W
+      ETag: "xyzzy";"3"
+      ETag: "xyzzy"/W;"3"
+      ETag: ""
+
+  Note that the        variant-id is not part of the entity tag. The ETag
+  field        is used to transmit a variant-id simply as a matter of
+  compact representation of responses.
+
+
+18.22 Expires
+The Expires entity-header field        gives the date/time after which the
+entity should be considered stale. A stale cache entry may not normally
+be returned by a cache (either a proxy cache or        an end-user cache)
+unless it is first validated with the origin server (or        with an
+intermediate cache that        has a fresh copy of the resource entity). See
+section        16.1.2 for further discussion of the expiration model.
+
+The presence of        an Expires field does not imply that the original
+resource will change or        cease to exist at, before, or after that time.
+
+The format is an absolute date and time        as defined by HTTP-date in
+section        7.3; it MUST be in rfc1123-date format:
+
+      Expires =        "Expires" ":" HTTP-date
+
+An example of its use is
+
+      Expires: Thu, 01 Dec 1994        16:00:00 GMT
+
+  Note:        if a response includes a Cache-Control field with the max-age
+  directive, that directive overrides the Expires field.
+
+HTTP/1.1 clients and caches MUST treat other invalid date formats,
+especially including the value "0", as in the past (i.e., "already
+expired").
+
+To mark        a response as "already expired," an origin server should use an
+Expires        date that is equal to the Date header value. (See the rules for
+expiration calculations        in section 0.)
+
+To mark        a response as "never expires," an origin server should use an
+Expires        date approximately one year from the time the response is
+generated. HTTP/1.1 servers should not send Expires dates more than one
+year in        the future.
+
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 103]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+18.23 From
+The From request-header        field, if given, SHOULD contain an Internet e-
+mail address for the human user        who controls the requesting user agent.
+The address SHOULD be machine-usable, as defined by mailbox in RFC 822
+(as updated by RFC 1123        ):
+
+       From   =        "From" ":" mailbox
+
+An example is:
+
+       From: webmaster@w3.org
+
+This header field MAY be used for logging purposes and as a means for
+identifying the        source of invalid or unwanted requests. It SHOULD NOT be
+used as        an insecure form of access protection. The interpretation of
+this field is that the request is being        performed on behalf of the
+person given, who accepts responsibility for the method        performed. In
+particular, robot agents SHOULD        include this header so that the person
+responsible for        running the robot can be contacted if problems occur on
+the receiving end.
+
+The Internet e-mail address in this field MAY be separate from the
+Internet host which issued the request.        For example, when a request is
+passed through a proxy the original issuer's address SHOULD be used.
+
+  Note:        The client SHOULD not send the From header field without the
+  user's approval, as it may conflict with the user's privacy
+  interests or their site's security policy. It        is strongly
+  recommended that the user be able to disable,        enable, and modify
+  the value of this field at any time prior to a request.
+
+
+18.24 Host
+The Host request-header        field specifies the Internet host and port
+number of the resource being requested,        as obtained from the original
+URL given by the user or referring resource (generally an HTTP URL, as
+described in section 7.2.2).  The Host field value MUST        represent  the
+network        location of the origin server or gateway given by the original
+URL.  This allows the origin server or gateway to differentiate        between
+internally-ambiguous URLs, such        as the root "/"  URL of a server for
+multiple host names on a single        IP address.
+
+       Host = "Host" ":" host [        ":" port ]    ; Section 7.2.2
+
+A "host" without any trailing port information implies the default port
+for the        service requested (e.g., "80" for an HTTP URL).  For example, a
+request        on the origin server for <http://www.w3.org/pub/WWW/> MUST
+include:
+
+       GET /pub/WWW/ HTTP/1.1
+       Host: www.w3.org
+
+The Host header        field MUST be included in all HTTP/1.1 request messages
+on the Internet        (i.e., on any message corresponding to a request for a
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 104]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+URL which includes an Internet host address for        the service being
+requested).  If        the Host field is not already present, an HTTP/1.1 proxy
+MUST add a Host        field to the request message prior to forwarding it on
+the Internet.  All Internet-based HTTP/1.1 servers MUST        respond with a
+400 status code        to any HTTP/1.1 request message which lacks a Host
+header field.
+
+
+18.25 If-Modified-Since
+The If-Modified-Since request-header field is used with        the GET method
+to make        it conditional: if the requested resource entity has not been
+modified since the time        specified in this field, a copy of the resource
+entity will not        be returned from the server; instead, a 304 (not
+modified) response will        be returned without any Entity-Body.
+
+       If-Modified-Since = "If-Modified-Since" ":" HTTP-date
+
+An example of the field        is:
+
+       If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
+
+A GET method with an If-Modified-Since header and no Range header
+requests that the identified resource entity be        transferred only if it
+has been modified since        the date given by the If-Modified-Since header.
+The algorithm for determining this includes the        following cases:
+
+
+a)If the request would normally        result in anything other than a 200
+  (OK) status, or if the passed        If-Modified-Since date is invalid, the
+  response is exactly the same as for a        normal GET. A date which is
+  later        than the server's current time is invalid.
+
+b)If the resource entity has been modified since the If-Modified-Since
+  date,        the response is exactly the same as for a normal GET.
+
+c)If the resource entity  has not been modified        since a valid If-
+  Modified-Since date, the server MUST return a        304 (not modified)
+  response.
+The purpose of this feature is to allow        efficient updates of cached
+information with a minimum amount of transaction overhead.
+
+  Note that the        Range request-header field modifies the meaning of
+  If-Modified-Since; see section 18.38 for full        details.
+
+  Note that If-Modified-Since is ignored for generic resources.
+
+  Note that If-Modified-Since times are        interpreted by the server,
+  whose        clock may not be synchronized with the client.
+
+  Note that if a client        uses an arbitrary date in the If-Modified-
+  Since        header instead of a date taken from the Last-Modified header
+  for the same request,        the client should be aware of the fact that
+  this date is interpreted in the server's understanding of time.
+  The client should consider unsynchronized clocks and rounding
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 105]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+  problems due to the different        representations of time between the
+  client and server.  This includes the        possibility of race
+  conditions if        the document has changed between the time it was
+  first        requested and the If-Modified-Since date of a subsequent
+  request, and the possibility of clock-skew-related problems if the
+  If-Modified-Date date        is derived from the client's clock without
+  correction to        the server's clock.  Corrections for different time
+  bases        between client and server are at best approximate due to
+  network latency.
+
+
+
+
+18.26 If-Match
+The If-Match request-header field is used with a method        to make it
+conditional. A client that has a cache entry for the relevant entity
+supplies the associated        entity tag using the If-Match header; if this
+entity tag matches the server's        current entity tag for the entity, the
+server SHOULD perform the requested operation as if the        If-Match header
+were not present.
+
+If the entity tags do not match, the server MUST NOT perform the
+requested operation, and MUST return a 412 (Precondition failed)
+response with no Entity-Body. This behavior is most useful when        the
+client wants to        prevent an updating method, such as PUT or POST, from
+modifying a resource entity  that  has changed since the client        last
+checked        it.
+
+When the If-Match header is used, the server should use        the strong
+comparison function (see section 18.26)        to compare entity tags.
+
+If the If-Match        header is used to make a conditional request on generic
+resource, it may be used to pass a set of validators.  This is done
+using the variant-set mechanism        if the client has variant IDs for the
+corresponding cache entries (see sections 16.5.3 and 7.13 ).  The server
+selects        the appropriate variant based on other request headers; if the
+variant-ID for that resource entity is listed in the If-Match header,
+and if the entity-tag associated with that variant-ID in the header
+matches        the current entity-tag of the resource entity, then the
+requested operation SHOULD be performed.  Otherwise, it        MUST NOT be
+performed.
+
+      If-Match = "If-Match" ":"        if-match-rhs
+      if-match-rhs = opaque-validator |        variant-set
+
+An updating request (e.g., a PUT or POST) on a generic resource should
+include        only one variant-set-item, the one associated with the
+particular variant whose value is being        conditionally updated.
+
+Examples of plain resource  form:
+
+       If-Match: "xyzzy"
+       If-Match: "xyzzy"/W
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 106]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+Examples of generic resource  form:
+
+       If-Match: "xyzzy";"4"
+       If-Match: "xyzzy";"3", "r2d2xxxx";"5", "c3piozzzz";"7"
+       If-Match: "xyzzy"/W; "3", "r2d2xxxx"/W; "5", "c3piozzzz"/W; "7"
+
+If the request would, without the If-Match header, result in anything
+other than a 2xx status, then the If-Match header is ignored.
+
+The purpose of this feature is to allow        efficient updates of cached
+information with a minimum amount of transaction overhead. It is also
+used, on updating requests, to prevent inadvertent modification        of the
+wrong variant of a resource.
+
+
+18.27 If-NoneMatch
+The If-NoneMatch request-header        field is used with a method to make it
+conditional. A client that has a cache entry for the relevant entity
+supplies the associated        entity tag using the If-NoneMatch header; if
+this entity tag        matches the server's current entity tag for the entity,
+the server SHOULD return a 304 (Not Modified) response without any
+Entity-Body.
+
+If the entity tags do not match, the server should treat the request as
+if the If-NoneMatch header was not present.
+
+See section 18.26 for rules on how to determine        if two entity tags
+match.
+
+If the If-NoneMatch header is used to make a conditional request on
+generic        resource, it may be used to pass a set of validators.  This is
+done using the variant-set mechanism if        the client has variant IDs for
+the corresponding cache        entries (see sections 16.5.3 and 7.13).  The
+server selects the appropriate variant based on        other request headers;
+if the variant-ID for that resource entity is listed in        the
+If-NoneMatch
+header,        and if the entity-tag associated with that variant-ID in the
+header matches the current entity-tag of the resource entity, then the
+requested operation SHOULD NOT be performed.  Otherwise, it SHOULD be
+performed.
+
+      If-NoneMatch = "If-NoneMatch" ":"        if-nonematch-rhs
+      if-nonematch-rhs = opaque-validator | variant-set
+
+Examples of plain resource form:
+
+       If-NoneMatch: "xyzzy"
+       If-NoneMatch: "xyzzy"/W
+
+Examples of generic resource form:
+
+       If-NoneMatch: "xyzzy";"4"
+       If-NoneMatch: "xyzzy";"3", "r2d2xxxx";"5", "c3piozzzz";"7"
+       If-NoneMatch: "xyzzy"/W;        "3", "r2d2xxxx"/W; "5", "c3piozzzz"/W;7
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 107]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+If the request would, without the If-NoneMatch header, result in
+anything other than a 2xx status, then the If-NoneMatch        header is
+ignored.
+
+The purpose of this feature is to allow        efficient updates of cached
+information with a minimum amount of transaction overhead.
+
+
+18.28 If-Range
+If a client has        a partial copy of an entity in its cache, and wishes to
+have an        up-to-date copy of the entire entity in its cache, it could use
+the Range request header with a        conditional GET (using either or both of
+If-Unmodified-Since and        If-Match.)  However, if the condition fails
+because        the entity has been modified, the client would then have to make
+a second request to obtain the entire current entity body.
+
+The If-Range header allows a client to "short-circuit" the second
+request.  Informally, its meaning is "if the entity is unchanged, send
+me the part(s) that I am missing; otherwise, send me the entire        new
+entity.'"
+
+       Range-If = "Range-If" ":" (if-valid-rhs | HTTP-date)
+
+If the client has no entity tag        for a plain resource, but does have a
+Last-Modified date, it may use that date in a If-Range header. (The
+server can detect this because an HTTP-date, unlike any        form of if-
+valid-rhs, does        not start with a `"' quotation mark.)  Dates may only be
+used in        If-Range for plain resources, not for generic resources.  The
+If-Range header        should only be used together with a Range header, and
+must be        ignored if the request does not include a Range header, or if
+the server does        not support the sub-range operation.
+
+If the entity tag given        in the If-Range header matches the current
+entity tag for the entity, then        the server should provide the specified
+sub-range of the entity        using a 206 (Partial content) response.  If the
+entity tag does        not match, then the server should return the entire
+entity using a 200 (OK)        response.
+
+
+18.29 If-Unmodified-Since
+The If-Unmodified-Since        request-header field is used with a method to
+make it        conditional. If the requested resource entity has not been
+modified since the time        specified in this field, the server should
+perform        the requested operation as if the If-Unmodified-Since header
+were not present.
+
+If the requested resource entity has been modified since the specified
+time, the server MUST NOT perform the requested        operation, and MUST
+return a 412 (Precondition Failed) response with no Entity-Body.
+
+      If-Unmodified-Since = "If-Unmodified-Since" ":" HTTP-date
+
+An example of the field        is:
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 108]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+       If-Unmodified-Since: Sat, 29 Oct        1994 19:43:31 GMT
+
+If the request normally        (i.e., without the If-Unmodified-Since header)
+would result in        anything other than a 2xx status, the If-Unmodified-
+Since header should be ignored.
+
+If the specified date is invalid, the header is        ignored.
+
+
+18.30 Last-Modified
+The Last-Modified entity-header        field indicates the date and time at
+which the sender believes the resource entity was last modified. The
+exact semantics        of this field are defined in terms of how the recipient
+SHOULD interpret it: if        the recipient has a copy of this resource entity
+which is older than the        date given by the Last-Modified field, that copy
+SHOULD be considered stale.
+
+       Last-Modified  =        "Last-Modified" ":" HTTP-date
+
+An example of its use is
+
+       Last-Modified: Tue, 15 Nov 1994 12:45:26        GMT
+
+The exact meaning of this header field depends on the implementation of
+the sender and the nature of the original resource. For        files, it may be
+just the file system last-modified time. For entities with dynamically
+included parts,        it may be the most recent of the set of last-modify
+times for its component        parts. For database gateways, it may be the
+last-update time stamp of the record. For virtual objects, it may be the
+last time the internal state changed.
+
+An origin server MUST NOT send a Last-Modified date which is later than
+the server's time of message origination. In such cases, where the
+resource's last        modification would indicate some time in the future, the
+server MUST replace that date with the message origination date.
+
+An origin server should        obtain the Last-Modified value of the entity as
+close as possible to the time that it generates        the Date value of its
+response. This allows a        recipient to make an accurate assessment of the
+entity's modification time, especially if the entity changes near the
+time that the response is generated.
+
+
+18.31 Location
+The Location response-header field is used to redirect the recipient to
+a location other than the Request-URI for completion of        the request or
+identification of a new        resource. For 201 (created) responses, the
+Location is that of the        new resource which was created by the request.
+For 3xx        responses, the location SHOULD indicate the server's preferred
+URL for        automatic redirection to the resource. The field value consists
+of a single absolute URL.
+
+       Location              = "Location" ":" absoluteURI
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 109]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+An example is
+
+       Location: http://www.w3.org/pub/WWW/People.html
+
+  Note:        The Content-Location header field (section 18.16) differs
+  from Location        in that the Content-Location identifies the original
+  location of the entity enclosed in the request.  It is therefore
+  possible for a response to contain header fields for both Location
+  and Content-Location.
+
+
+18.32 Max-Forwards
+[JG14]The Max-Forwards general-header field may        be used with the TRACE
+method (section        18.32) to limit the number of times that a proxy or
+gateway        can forward the request to the next inbound server.  This can be
+useful when the        client is attempting to trace a request chain which
+appears        to be failing or looping in mid-chain.
+
+       Max-Forwards   =        "Max-Forwards" ":" 1*DIGIT
+
+The Max-Forwards value is a decimal integer indicating the remaining
+number of times        this request message may be forwarded.
+
+Each proxy or gateway recipient        of a TRACE request containing a Max-
+Forwards header        field SHOULD check and update its value prior to
+forwarding the request.         If the received value is zero (0), the
+recipient SHOULD NOT forward the request; instead, it SHOULD respond as
+the final recipient with a 200 (OK) response containing        the received
+request        message as the response entity body (as described in Section
+13.7). If the received Max-Forwards value is greater than zero, then
+the forwarded message SHOULD contain an        updated Max-Forwards field with
+a value        decremented by one (1).
+
+The Max-Forwards header        field SHOULD be ignored for all other methods
+defined        by this specification and for any extension methods for which it
+is not explicitly referred to as part of that method definition.
+
+
+18.33 Persist
+When the Persist connection-token has been transmitted with a request or
+a response a Persist header field MAY also be included.        The Persist
+header field takes the following form:
+
+       Persist-header =        "Persist" ":" 0#pers-param
+
+       pers-param = param-name "=" word
+       param-name = token
+
+The Persist header itself is optional, and is used only        if a parameter
+is being sent. HTTP/1.1        does not define any parameters.
+
+If the Persist header is sent, the corresponding connection token MUST
+be transmitted.        The Persist header MUST be ignored if received without
+the connection token.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 110]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+18.34 Pragma
+The Pragma general-header field        is used to include implementation-
+specific directives that may apply to any recipient along the
+request/response chain.        All pragma directives specify optional behavior
+from the viewpoint of the protocol; however, some systems MAY require
+that behavior be consistent with the directives.
+
+       Pragma                 = "Pragma" ":" 1#pragma-directive
+
+       pragma-directive               = "no-cache" | extension-pragma
+       extension-pragma               = token [ "=" word ]
+
+When the "no-cache" directive is present in a request message, an
+application SHOULD forward the request toward the origin server        even if
+it has a cached        copy of what is being requested. This pragma directive
+has the        same semantics as the "no-cache" cache-directive (see section
+18.10) and is defined here for backwards compatibility with HTTP/1.0.
+Clients        SHOULD include both header fields when a "no-cache" request is
+sent to        a server not known to be HTTP/1.1 compliant.
+
+Pragma directives MUST be passed through by a proxy or gateway
+application, regardless        of their significance to that application, since
+the directives may be applicable to all        recipients along the
+request/response chain.        It is not possible to specify a pragma for a
+specific recipient; however, any pragma        directive not relevant to a
+recipient SHOULD be ignored by that recipient.
+
+HTTP/1.1 clients SHOULD        NOT send the Pragma request header. HTTP/1.1
+caches SHOULD treat "Pragma: no-cache" as if the client        had sent
+"Cache-
+control: no-cache".  No        new Pragma directives will be defined in HTTP.
+
+
+18.35 Proxy-Authenticate
+The Proxy-Authenticate response-header field MUST be included as part of
+a 407 (Proxy Authentication Required) response.        The field value consists
+of a challenge that indicates the authentication scheme        and parameters
+applicable to the proxy        for this Request-URI.
+
+       Proxy-Authentication    = "Proxy-Authentication"        ":" challenge
+
+The HTTP access        authentication process is described in section 14.
+Unlike WWW-Authenticate, the Proxy-Authenticate        header field applies
+only to        the current connection and MUST NOT be passed on to downstream
+clients.
+
+
+18.36 Proxy-Authorization
+The Proxy-Authorization        request-header field allows the client to
+identify itself        (or its user) to a proxy which requires authentication.
+The Proxy-Authorization        field value consists of credentials containing
+the authentication information of the user agent for the proxy and/or
+realm of the resource being requested.
+
+       Proxy-Authorization     = "Proxy-Authorization" ":" credentials
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 111]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+The HTTP access        authentication process is described in section 14.
+Unlike Authorization, the Proxy-Authorization applies only to the
+current        connection and MUST NOT be passed on to upstream servers. If a
+request        is authenticated and a realm specified, the same credentials
+SHOULD be valid        for all other requests within this realm.
+
+
+18.37 Public
+The Public response-header field lists the set of non-standard methods
+supported by the server. The purpose of        this field is strictly to inform
+the recipient of the capabilities of the server        regarding unusual
+methods. The methods listed may        or may not be applicable to the
+Request-
+URI; the Allow header field (section 18.7) SHOULD be used to indicate
+methods        allowed for a particular URI. This does not prevent a client
+from trying other methods. The field value SHOULD not include the
+methods        predefined for HTTP/1.1 in section 9.1.1.
+
+       Public        = "Public" ":" 1#method
+
+Example        of use:
+
+       Public: OPTIONS,        MGET, MHEAD
+
+This header field applies only to the server directly connected        to the
+client (i.e., the nearest neighbor in a        chain of connections). If the
+response passes        through a proxy, the proxy MUST either remove the Public
+header field or        replace it with one applicable to its own capabilities.
+
+
+18.38 Range
+HTTP retrieval requests        using conditional or unconditional GET methods
+may request one        or more sub-ranges of the entity, instead of the entire
+entity.         This is done using the Range request header:
+
+      Range = "Range" ":" ranges-specifier
+
+A server MAY ignore the        Range header.  However, HTTP/1.1 origin servers
+and intermediate caches        SHOULD support byte ranges whenever possible,
+since this supports efficient recovery from partially failed transfers,
+and it supports        efficient partial retrieval of large entities.
+
+If the server supports the Range header        and the specified range or
+ranges are appropriate for the entity:
+
+  .  The presence of a Range header in an unconditional        GET modifies
+     what is returned if the GET is otherwise successful.  In other
+     words, the        response carries a status code of 206 (Partial Content)
+     instead of        200 (OK).
+  .  The presence of a Range header in a conditional GET (a request
+     using one or both of If-Modified-Since and        If-NoneMatch, or one or
+     both of If-Unmodified-Since and If-Match) modifies        what is returned
+     if        the GET is otherwise successful and the condition is true.  It
+     does not affect the 304 (Not Modified) response returned if the
+     conditional is false.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 112]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+In some        cases, it may be more appropriate to use the If-Range header
+(see section 18.28) in addition        to the Range header.
+
+
+18.39 Referer
+The Referer[sic] request-header        field allows the client to specify, for
+the server's benefit, the address (URI)        of the resource from which the
+Request-URI was        obtained. This allows a server to generate lists of
+back-links to resources        for interest, logging, optimized caching, etc.
+It also        allows obsolete or mistyped links to be traced for maintenance.
+The Referer field MUST NOT be sent if the Request-URI was obtained from
+a source that does not have its        own URI, such as input from the user
+keyboard.
+
+       Referer       = "Referer" ":" ( absoluteURI | relativeURI )
+
+Example:
+
+       Referer:        http://www.w3.org/hypertext/DataSources/Overview.html
+
+If a partial URI is given, it SHOULD be        interpreted relative to the
+Request-URI. The URI MUST NOT include a        fragment.
+
+  Note:        Because the source of a link may be private information or
+  may reveal an        otherwise private information source, it is strongly
+  recommended that the user be able to select whether or not the
+  Referer field        is sent. For example, a browser client could have a
+  toggle switch        for browsing openly/anonymously, which would
+  respectively enable/disable the sending of Referer and From
+  information.
+
+
+18.40 Retry-After
+The Retry-After        response-header field can be used with a 503 (Service
+Unavailable) response to indicate how long the service is expected to be
+unavailable to the requesting client. The value        of this field can be
+either an HTTP-date or an integer number of seconds (in        decimal) after
+the time of the        response.
+
+       Retry-After    =        "Retry-After" ":" ( HTTP-date | delta-seconds )
+
+Two examples of        its use are
+
+       Retry-After: Wed, 14 Dec        1994 18:22:54 GMT
+       Retry-After: 120
+
+In the latter example, the delay is 2 minutes.
+
+
+18.41 Server
+The Server response-header field contains information about the        software
+used by        the origin server to handle the request. The field can contain
+multiple product tokens        (section 7.8) and comments identifying the
+server and any significant subproducts.        By convention, the product
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 113]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+tokens are listed in order of their significance for identifying the
+application.
+
+       Server        = "Server" ":" 1*( product | comment )
+
+Example:
+
+       Server: CERN/3.0        libwww/2.17
+
+If the response        is being forwarded through a proxy, the proxy
+application MUST NOT add its data to the product list. Instead,        it
+SHOULD include a Via field (as described in section 18.47).
+
+  Note:        Revealing the specific software version of the server may
+  allow        the server machine to become more vulnerable to attacks
+  against software that        is known to contain security holes. Server
+  implementers are encouraged to make this field a configurable
+  option.
+
+
+18.42 Title
+The Title entity-header        field indicates the title of the entity
+
+       Title         = "Title" ":" *TEXT
+
+An example of the field        is
+
+       Title: Hypertext        Transfer Protocol -- HTTP/1.1
+
+This field is isomorphic with the <TITLE> element in HTML .
+
+
+18.43 Transfer Encoding
+The Transfer-Encoding general-header field indicates what (if any) type
+of transformation has been applied to the message body in order        to
+safely transfer        it between the sender and the recipient. This differs
+from the Content-Encoding in that the transfer coding is a property of
+the message, not of the        original resource entity.
+
+       Transfer-Encoding       = "Transfer-Encoding" ":" 1#transfer- coding
+
+Transfer codings are defined in        section 7.6. An example is:
+
+       Transfer-Encoding: chunked
+
+Many older HTTP/1.0 applications do not        understand the
+Transfer-Encoding
+header.
+
+
+18.44 Upgrade
+The Upgrade general-header allows the client to        specify what additional
+communication protocols        it supports and would like to use if the server
+finds it appropriate to        switch protocols. The server MUST use the
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 114]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+Upgrade        header field within a 101 (Switching Protocols) response to
+indicate which protocol(s) are being switched.
+
+       Upgrade       = "Upgrade" ":" 1#product
+
+For example,
+
+       Upgrade:        HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
+
+The Upgrade header field is intended to        provide a simple mechanism for
+transition from        HTTP/1.1 to some other, incompatible protocol.  It does
+so by allowing the client to advertise its desire to use another
+protocol, such as a later version of HTTP with a higher        major version
+number,        even though the current request has been made using  HTTP/1.1.
+This eases the difficult transition between incompatible protocols by
+allowing the client to initiate        a request in the more commonly supported
+protocol while indicating to the server        that it would like to use a
+"better" protocol if available (where "better" is determined by        the
+server,        possibly according to the nature of the method and/or resource
+being requested).
+
+The Upgrade header field only applies to switching application-layer
+protocols upon the existing transport-layer connection.         Upgrade cannot
+be used        to insist on a protocol change; its acceptance and use by the
+server is optional.  The capabilities and nature of the        application-
+layer communication after the protocol change is entirely dependent upon
+the new        protocol chosen, although the first action after changing the
+protocol MUST be a response to the initial HTTP        request containing the
+Upgrade        header field.
+
+The Upgrade header field only applies to the immediate connection.
+Therefore, the "upgrade" keyword MUST be supplied within a Connection
+header field (section 18.11) whenever Upgrade is present in an HTTP/1.1
+message.
+
+The Upgrade header field cannot        be used to indicate a switch to a
+protocol on a different        connection.  For that purpose, it is more
+appropriate to use a 301, 302, 303, or 305 redirection response.
+
+This specification only        defines the protocol name "HTTP" for use by the
+family of Hypertext Transfer Protocols,        as defined by the HTTP version
+rules of section 7.1 and future        updates to this specification.  Any
+token can be used as a protocol        name; however, it will only be useful if
+both the client        and server associate the name with the same protocol.
+
+
+18.45 User-Agent
+The User-Agent request-header field contains information about the user
+agent originating the request. This is for statistical purposes, the
+tracing        of protocol violations, and automated recognition of user agents
+for the        sake of tailoring responses to avoid particular user agent
+limitations. Although it is not        required, user agents SHOULD include
+this field with        requests. The field can contain multiple product tokens
+(section 7.8) and comments identifying the agent and any subproducts
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 115]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+which form a significant part of the user agent. By convention,        the
+product        tokens are listed in order of their significance for identifying
+the application.
+
+       User-Agent     =        "User-Agent" ":" 1*( product | comment )
+
+Example:
+
+       User-Agent: CERN-LineMode/2.15 libwww/2.17b3
+
+
+18.46 Vary
+The Vary response-header field is used by an origin server to signal
+that the resource identified by        the current request is a generic)
+resource.  A generic resource has multiple entities associated with it,
+all of which are representations of the        content of the resource.  If a
+GET or HEAD request on a generic resource is received, the origin server
+will select one        of the associated entities as the entity best matching
+the request.  Selection        of this entity is based on the contents of
+particular header fields in the        request message, or on other information
+pertaining to the request, like        the network address of the sending
+client.
+
+A resource being generic has an        important effect on cache management,
+particularly for caching proxies which service a diverse set of        user
+agents.         All 200 (OK) responses from generic resources MUST contain at
+least one Vary header (section 18.46) or Alternates header (section
+18.8) to signal        variance.
+
+If no Vary headers and no Alternates headers are present in a 200 (OK)
+response, then caches may assume, as long as the response is fresh, that
+the resource in        question is plain, and has only one associated entity.
+Note however that this entity can still        change through time, as possibly
+indicated by a Cache-Control response header (section 18.10).
+
+After selection        of the entity best matching the current request, the
+origin server will usually generate a 200 (OK) response, but it        can also
+generate other responses like 206 (Partial Content) or 304 (Not
+Modified) if headers which modify the semantics        of the request, like
+Range (section 18.38) or If-Match (section 18.26), are present.         An
+origin server need not be capable of selecting an entity for every
+possible incoming request on a generic resource; it can        choose to
+generate a 3xx (redirection) or        4xx (client error) type response for
+some requests.
+
+In a request message on        a generic resource, the selecting request
+headers        are those request headers whose contents were used by the origin
+server to select the entity best matching the request. The Vary        header
+field specifies        the selecting request headers and any other selection
+parameters that        were used by the origin server.
+
+       Vary                = "Vary" ":" 1#selection-parameter
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 116]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+       selection-parameter  = request-header-name
+                           | "{accept-headers}"
+                           | "{other}"
+                           | "{" extension-parameter "}"
+
+       request-header-name  = field-name
+
+       extension-parameter  = token
+
+The presence of        a request-header-name signals that the request-header
+field with this        name is selecting.  Note that the name need not belong
+to a request-header field defined in this specification, and that header
+names are case-insensitive.  The presence of the "{accept-headers}"
+parameter signals that all request headers whose names start with
+"accept" are selecting.
+
+The inclusion of the "{other}" parameter in a Vary field signals that
+parameters other than the contents of request headers, for example the
+network        address of the sending party, play a role in the selection of
+the response.
+
+  Note:        This specification allows the origin server to express that
+  other        parameters were used, but does not allow the origin server to
+  specify the exact nature of these parameters.         This is left to
+  future extensions.
+
+If an extension-parameter unknown to the cache is present in a Vary
+header,        the cache MUST treat it as the "{other}" parameter. If multiple
+Vary and Alternates header fields are present in a response, these MUST
+be combined to give all        selecting parameters.
+
+The field name "Host" MUST never be included in        a Vary header; clients
+MUST ignore it if it is        present.  The names of fields which change the
+semantics of a GET request, like "Range" and "If-Match"        MUST also never
+be included, and MUST be ignored when present.
+
+Servers        which use access authentication are not obliged to send "Vary:
+Authorization" headers in responses.  It MUST be assumed that requests
+on authenticated resources can always produce different        responses for
+different users.  Note that servers can        signal the absence of
+authentication by including "Cache-Control: public" header in the
+response.
+
+A cache        MAY store and refresh 200 (OK) responses from a generic resource
+according to the rules in section 16.4.         The partial entities in 206
+(Partial Content) responses from generic resources MAY also be used by
+the cache.
+
+When getting a request on a generic resource, a        cache can only return a
+cached 200 (OK)        response to one of its clients in two particular cases.
+
+First, if a cache gets a request on a generic resource for which it has
+cached one or more responses with Vary or Alternates headers, it can
+relay that request towards the origin server, adding an        If-NoneMatch
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 117]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+header listing the etag-info values in the ETag        headers (section Error!
+Reference source not found.) of        the cached responses which have
+variant-
+IDs.  If it then gets back a 304 (Not Modified)        response with the etag-
+info of        a cached 200 (OK) response in its ETag header, it can return
+this cached 200        (OK) response to its client, after merging in any of the
+304 response headers as        specified in section 16.4.2.
+
+Second,        if a cache gets a request on a generic resource, it can return
+to its client a        cached, fresh 200 (OK) response which has Vary or
+Alternates headers, provided that
+
+
+  .  the Vary and Alternates headers of        this fresh response specify that
+     only request header fields        are selecting parameters,
+
+  .  the specified selecting request header fields of the current
+     request match the specified selecting request header fields of a
+     previous request on the resource relayed towards the origin
+server,
+
+  .  this previous request got a 200 (OK) or 304 (Not Modified)        response
+     which had the same        etag-info value in its ETag header as the
+     cached, fresh 200 (OK) response.
+Two sequences of selecting request header fields match if and only if
+the first sequence can be transformed into the second sequence by only
+adding or removing whitespace at places        in fields where this is allowed
+according to the syntax        rules in this specification.
+
+If a cached 200        (OK) response MAY be returned to a request on a generic
+resource which includes        a Range request header, then a cache MAY also
+use this 200 (OK) response to construct        and return a 206 (Partial
+Content) response with the requested range.
+
+  Note:        Implementation of support for the second case above is mainly
+  interesting in user agent caches, as a user agent cache will
+  generally have an easy way of        determining whether the sequence of
+  request header fields        of the current request equals the sequence
+  sent in an earlier request on        the same resource.  Proxy caches
+  supporting the second        case would have to record diverse sequences
+  of request header fields previously relayed; the implementation
+  effort associated with this may not be balanced by a sufficient
+  payoff in traffic savings.  A        planned specification of a content
+  negotiation mechanism        will define additional cases in which proxy
+  caches can return a cached 200 (OK) response without contacting the
+  origin server.  The implementation effort associated with support
+  for these additional cases is        expected to have a much better
+  cost/benefit ratio.
+
+
+18.47 Via
+The Via        general-header field MUST be used by gateways and proxies to
+indicate the intermediate protocols and        recipients between the user
+agent and the server on        requests, and between the origin server and the
+client on responses. It        is analogous to the "Received" field of RFC 822
+and is intended        to be used for tracking message forwards, avoiding
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 118]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+request        loops, and identifying the protocol capabilities of all senders
+along the request/response chain.
+
+      Via   =  "Via" ":" 1#( received-protocol received-by [ comment ]
+)
+
+      received-protocol        = [ protocol-name "/" ] protocol-version
+      protocol-name    = token
+      protocol-version = token
+      received-by      = ( host [ ":" port ] ) | pseudonym
+      pseudonym                = token
+
+The received-protocol indicates        the protocol version of the message
+received by the        server or client along each segment of the
+request/response chain.         The received-protocol version is appended to
+the Via        field value when the message is forwarded so that information
+about the protocol capabilities        of upstream applications remains visible
+to all recipients.
+
+The protocol-name is optional if and only if it        would be "HTTP".  The
+received-by field is normally the host and optional port number        of a
+recipient server or client that        subsequently forwarded the message.
+However, if the        real host is considered to be sensitive information, it
+MAY be replaced        by a pseudonym.  If the port is not given, it MAY be
+assumed        to be the default port of the received-protocol.
+
+Multiple Via field values represent each proxy or gateway that has
+forwarded the message. Each recipient MUST append its information such
+that the end result is ordered according to the        sequence of forwarding
+applications.
+
+Comments MAY be        used in the Via header field to identify the software of
+the recipient proxy or gateway,        analogous to the User-Agent and  Server
+header fields. However, all comments in the Via field are optional and
+MAY be removed by any recipient        prior to forwarding the message.
+
+For example, a request message could be        sent from an HTTP/1.0 user agent
+to an internal proxy code-named        "fred", which uses HTTP/1.1 to forward
+the request to a public        proxy at nowhere.com, which completes the
+request        by forwarding it to the origin server at www.ics.uci.edu.  The
+request        received by www.ics.uci.edu would then have the following Via
+header field:
+
+       Via: 1.0        fred, 1.1 nowhere.com (Apache/1.1)
+
+Proxies        and gateways used as a portal through a network firewall SHOULD
+NOT, by        default, forward the names and ports of hosts within the
+firewall region. This information SHOULD only be propagated if
+explicitly enabled. If not enabled, the        received-by host of any host
+behind the firewall SHOULD be replaced by an appropriate pseudonym for
+that host.
+
+For organizations that have strong privacy requirements        for hiding
+internal structures, a proxy MAY combine an ordered subsequence        of Via
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 119]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+header field entries with identical received-protocol values into a
+single such entry.  For        example,
+
+       Via: 1.0        ricky, 1.1 ethel, 1.1 fred, 1.0 lucy
+
+   could be collapsed to
+
+       Via: 1.0        ricky, 1.1 mertz, 1.0 lucy
+
+Applications SHOULD NOT        combine multiple entries unless they are all
+under the same organizational control and the hosts have already been
+replaced by pseudonyms.         Applications MUST NOT combine entries which
+have different received-protocol values.
+
+  Note:        The Via header field replaces the Forwarded header field
+  which        was present in earlier drafts of this specification.
+
+
+18.48 Warning
+Warning        headers are sent with responses using:
+
+       Warning   = "Warning" ":" warn-code SP warn-agent SP warn-text
+       warn-code  = 2DIGIT
+       warn-agent = ( host [ ":" port ]        ) | pseudonym
+                      ; the name or pseudonym of the server adding
+                      ; the Warning header, for use in debugging
+       warn-text  = quoted-string
+
+A response may carry more than one Warning header.
+
+The warn-text should be        in a natural language and character set that is
+most likely to be intelligible to the human user receiving the
+response.
+This decision may be based on any available knowledge, such as the
+location of the        cache or user, the Accept-Language field in a request,
+the Content-Language field in a        response, etc. The default language is
+English        and the default character set is ISO-8599-1.
+
+If a character set other than ISO-8599-1 is used, it must be encoded in
+the warn-text using the        method described in RFC 1522 [14].
+
+Any server or cache may        add Warning headers to a response. New Warning
+headers        should be added after any existing Warning headers. A cache MUST
+NOT delete any Warning header that it received with a response.
+However,
+if a cache successfully        validates a cache entry, it SHOULD remove any
+Warning        headers previously attached to that entry. It MUST then add any
+Warning        headers received in the validating response. In other words,
+Warning        headers are those that would be attached to the most recent
+relevant response.
+
+When multiple Warning headers are attached to a        response, the user agent
+SHOULD display as many of them as possible, in the order that they
+appear in the response.        If it is not possible to display all of the
+warnings, the user agent should        follow these heuristics:
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 120]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+  .  Warnings that appear early        in the response take priority over those
+     appearing later in        the response.
+  .  Warnings in the user's preferred character        set take priority over
+     warnings in other character sets but with identical warn-codes and
+     warn-agents.
+Systems        that generate multiple Warning headers should order them with
+this user-agent        behavior in mind.
+
+This is        a list of the currently-defined warn-codes, each with a
+recommended warn-text in English, and a        description of its meaning.
+
+
+10 Response is stale
+  MUST be included whenever the        returned response is stale. A cache may
+  add this warning to any response, but        may never remove it until the
+  response is known to be fresh.
+
+11 Revalidation        failed
+  MUST be included if a        cache returns a stale response because an
+  attempt to revalidate        the response failed, due to an inability to
+  reach        the server. A cache may add this warning to any response, but
+  may never remove it until the        response is successfully revalidated.
+
+12 Disconnected        operation
+   SHOULD be included if the cache is intentionally disconnected from
+  the rest of the network for a        period of time.
+
+99 Miscellaneous warning
+  The warning text may include arbitrary information to        be presented to
+  a human user,        or logged. A system receiving this warning MUST NOT
+  take any automated action.
+
+
+
+18.49 WWW-Authenticate
+The WWW-Authenticate response-header field MUST        be included in 401
+(Unauthorized) response        messages. The field value consists of at least
+one challenge that indicates the authentication        scheme(s) and parameters
+applicable to the Request-URI.
+
+       WWW-Authenticate               = "WWW-Authenticate" ":" 1#challenge
+
+The HTTP access        authentication process is described in section 14. User
+agents MUST take special care in parsing the WWW-Authenticate field
+value if it contains more than one challenge, or if more than one WWW-
+Authenticate header field is provided, since the contents of a challenge
+may itself contain a comma-separated list of authentication parameters.
+
+
+19 Security Considerations
+This section is        meant to inform application developers, information
+providers, and users of        the security limitations in HTTP/1.1 as
+described by this document. The        discussion does not include definitive
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 121]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+solutions to the problems revealed, though it does make        some suggestions
+for reducing security risks.
+
+
+19.1 Authentication of Clients
+As mentioned in        section 14, the Basic authentication scheme is not a
+secure method of user authentication, nor does it in any way protect the
+Entity-Body, which is transmitted in clear text        across the physical
+network        used as the carrier. HTTP does not prevent additional
+authentication schemes and encryption mechanisms from being employed to
+increase security or the addition of enhancements (such        as schemes to
+use one-time passwords)        to Basic authentication.
+
+The most serious flaw in Basic authentication is that it results in the
+essentially clear text transmission of the user's password over        the
+physical network.  It is this problem which Digest Authentication
+attempts to address.
+
+Because        Basic authentication involves the clear text transmission of
+passwords it SHOULD never be used (without enhancements) to protect
+sensitive or valuable information.
+
+A common use of        Basic authentication is for identification purposes --
+requiring the user to provide a        user name and password as a means of
+identification,        for example, for purposes of gathering accurate usage
+statistics on a        server.  When used in this way it is tempting to think
+that there is no danger        in its use if illicit access to the protected
+documents is not a major concern.  This        is only correct if the server
+issues both user name and password to the users        and in particular does
+not allow the user to choose his or her        own password.  The danger arises
+because        naive users frequently reuse a single password to avoid the task
+of maintaining multiple        passwords.
+
+If a server permits users to select their own passwords, then the threat
+is not only illicit access to documents        on the server but also illicit
+access to the accounts of all users who        have chosen to use their account
+password.  If users are        allowed to choose their own password that also
+means the server must maintain files containing        the (presumably
+encrypted) passwords.  Many of these may be the        account passwords of
+users perhaps at distant sites.         The owner or administrator of such a
+system could conceivably incur liability if this information is        not
+maintained in a        secure fashion.
+
+Basic Authentication is        also vulnerable to spoofing by counterfeit
+servers.  If a user can        be led to believe that he is connecting to a
+host containing        information protected by basic authentication when in
+fact he        is connecting to a hostile server or gateway then the attacker
+can request a password,        store it for later use, and feign an error.
+This type of attack is not possible with Digest        Authentication[26].
+Server implementers SHOULD guard against the possibility of this sort of
+counterfeiting by gateways or CGI scripts.  In particular it is        very
+dangerous for a        server to simply turn over a connection to a gateway
+since that gateway can then use        the persistent connection mechanism to
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 122]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+engage in multiple transactions        with the client while impersonating the
+original server        in a way that is not detectable by the client.
+
+
+19.2 Safe Methods
+The writers of client software should be aware that the        software
+represents the user in their interactions over the Internet, and should
+be careful to allow the        user to be aware of any actions they may take
+which may have an unexpected significance to themselves        or others.
+
+In particular, the convention has been established that        the GET and HEAD
+methods        should never have the significance of taking an action other
+than retrieval.        These methods should be considered  "safe. " This allows
+user agents to represent other methods,        such as POST, PUT and DELETE, in
+a special way, so that the user        is made aware of the fact that a
+possibly unsafe        action is being requested.
+
+Naturally, it is not possible to ensure        that the server does not
+generate side-effects as a result of performing        a GET request; in fact,
+some dynamic resources consider        that a feature. The important
+distinction here is that the user did not request the side-effects, so
+therefore cannot be held accountable for them.
+
+
+19.3 Abuse of Server Log Information
+A server is in the position to save personal data about        a user's
+requests which may identify their reading patterns or subjects of
+interest. This information is clearly confidential in nature and its
+handling may be        constrained by law in certain countries. People using
+the HTTP protocol to provide data are responsible for ensuring that such
+material is not        distributed without the permission of any individuals
+that are identifiable by the published results.
+
+
+19.4 Transfer of Sensitive Information
+Like any generic data transfer protocol, HTTP cannot regulate the
+content        of the data that is transferred, nor is there any a priori
+method of determining the sensitivity of any particular        piece of
+information within the context of any given request. Therefore,
+applications SHOULD supply as much control over        this information as
+possible to the        provider of that information. Four header fields are
+worth special mention in this context: Server, Via, Referer and        From.
+
+Revealing the specific software        version of the server may allow the
+server machine to become more vulnerable to attacks against software
+that is        known to contain security holes. Implementers SHOULD make the
+Server header field a configurable option.
+
+Proxies        which serve as a portal through a network firewall SHOULD take
+special        precautions regarding the transfer of header information that
+identifies the hosts behind the        firewall. In particular, they SHOULD
+remove,        or replace with sanitized versions, any Via fields generated
+behind the firewall.
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 123]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+The Referer field allows reading patterns to be        studied and reverse
+links drawn. Although it can be        very useful, its power can be abused if
+user details are not separated from the        information contained in the
+Referer. Even when the personal        information has been removed, the
+Referer        field may indicate a private document's URI whose publication
+would be inappropriate.
+
+The information        sent in the From field might conflict with the user's
+privacy        interests or their site's security policy, and hence it SHOULD
+NOT be transmitted without the user being able to disable, enable, and
+modify the contents of the field. The user MUST        be able to set the
+contents of this field within a        user preference or application defaults
+configuration.
+
+We suggest, though do not require, that        a convenient toggle interface be
+provided for the user to enable        or disable the sending of From and
+Referer        information.
+
+
+19.5 Attacks Based On File and Path Names
+Implementations        of HTTP origin servers SHOULD be careful to restrict the
+documents returned by HTTP requests to be only those that were intended
+by the server administrators. If an HTTP server        translates HTTP URIs
+directly into file system calls, the server MUST take special care not
+to serve files that were not intended to be delivered to HTTP clients.
+For example, UNIX, Microsoft Windows, and other        operating systems use
+".." as        a path component to indicate a directory level above the current
+one. On        such a system, an HTTP server MUST disallow any such construct
+in the Request-URI if it would otherwise allow access to a resource
+outside        those intended to be accessible via the HTTP server. Similarly,
+files intended for reference only internally to        the server (such as
+access control files, configuration files, and script code) MUST be
+protected from inappropriate retrieval,        since they might contain
+sensitive information. Experience has shown that minor bugs in such HTTP
+server implementations have turned into        security risks.
+
+
+19.6 Personal Information
+HTTP clients are often privy to        large amounts of personal information
+(e.g. the user's name, location, mail address, passwords, encryption
+keys, etc.), and SHOULD        be very careful to prevent unintentional leakage
+of this        information via the HTTP protocol to other sources.  We very
+strongly recommend that        a convenient interface be provided for the user
+to control dissemination of such information, and that designers and
+implementers be        particularly careful in this area. History shows that
+errors in this area are        often both serious security and/or privacy
+problems, and often generate very adverse publicity for        the
+implementer's company.
+
+
+19.7 Privacy Issues Connected to Accept        headers
+Accept request headers can reveal information about the        user to all
+servers        which are accessed.  The Accept-Language header in particular
+can reveal information the user        would consider to be of a private
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 124]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+nature,        because the understanding of particular languages is often
+strongly correlated to the membership of a particular ethnic group.
+User agents which offer        the option to configure the contents of an
+Accept-Language        header to be sent in every request are strongly
+encouraged to let the configuration process include a message which
+makes the user aware of        the loss of privacy involved.
+
+An approach that limits        the loss of privacy would be for a user agent to
+omit the sending of  Accept-Language headers by        default, and to ask the
+user whether it        should start sending Accept-Language headers to a server
+if it detects, by looking for any Vary or Alternates response headers
+generated by the server, that such sending could improve the quality of
+service.
+
+Elaborate user-customized accept header        fields sent in every request, in
+particular if these include quality values, can        be used by servers as
+relatively reliable and        long-lived user identifiers. Such user
+identifiers would allow        content providers to do click-trail tracking,
+and would allow        collaborating content providers to match cross-server
+click-trails or        form submissions of individual users.  Note that for
+many users not behind a        proxy, the network address of the host running
+the user agent will also serve as a long-lived user identifier.         In
+environments where proxies are used to enhance privacy,        user agents
+should be conservative in offering accept header configuration options
+to end users.  As an extreme privacy measure, proxies could filter the
+accept headers in relayed requests.  General purpose user agents which
+provide        a high degree of header configurability should warn users about
+the loss of privacy which can be involved.
+
+
+19.8 DNS Spoofing
+Clients        using HTTP rely heavily on the Domain Name Service, and are thus
+generally prone        to security attacks based on the deliberate miss-
+association of IP addresses and        DNS names.  The deployment of DNSSEC
+should help this situation.  In        advance of this deployment, however,
+clients        need to be cautious in assuming the continuing validity of an IP
+number/DNS name        association.
+
+In particular, HTTP clients SHOULD rely        on their name resolver for
+confirmation of        an IP number/DNS name association, rather than caching
+the result of previous host name lookups.  Many        platforms already can
+cache host name        lookups locally when appropriate, and they SHOULD be
+configured to do so.  These lookups should be cached, however, only when
+the TTL        (Time To Live) information reported by the name server makes it
+likely that the        cached information will remain useful.
+
+If HTTP        clients cache the results of host name lookups in order to
+achieve        a performance improvement, they MUST observe the TTL information
+reported by DNS.
+
+If HTTP        clients do not observe this rule, they could be spoofed when a
+previously-accessed server's IP        address changes.  As renumbering is
+expected to become increasingly        common, the possibility of this form of
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 125]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+attack will grow.  Observing this requirement thus reduces this
+potential security vulnerability.
+
+This requirement also improves the load-balancing behavior of clients
+for replicated servers using the same DNS name and reduces the
+likelihood of a        user's experiencing failure in accessing sites which use
+that strategy.
+
+
+19.9 Location Headers and Spoofing
+If a single server supports multiple organizations that        do not trust one
+another, then it must check the        values of Location and Content-Location
+headers        in responses that are generated under control of said
+organizations to make sure that        they do not attempt to invalidate
+resources over which they have no authority.
+
+
+20 Acknowledgments
+This specification makes heavy use of the augmented BNF        and generic
+constructs defined by David H. Crocker for RFC 822 . Similarly,        it
+reuses many of the definitions provided        by Nathaniel Borenstein and Ned
+Freed for MIME . We hope that their inclusion in this specification will
+help reduce past confusion over        the relationship between HTTP and
+Internet mail message formats.
+
+The HTTP protocol has evolved considerably over        the past four years. It
+has benefited from a large and active developer        community--the many
+people who have        participated on the www-talk mailing list--and it is
+that community which has been most responsible for the success of HTTP
+and of the World-Wide Web in general. Marc Andreessen, Robert Cailliau,
+Daniel W. Connolly, Bob        Denny, John Franks, Jean-Francois Groff, Phillip
+M. Hallam-Baker, Hakon W. Lie, Ari Luotonen, Rob McCool, Lou Montulli,
+Dave Raggett, Tony Sanders, and        Marc VanHeyningen deserve special
+recognition for        their efforts in defining early aspects of the
+protocol.
+
+This document has benefited greatly from the comments of all those
+participating in the HTTP-WG. In addition to those already mentioned,
+the following individuals have contributed to this specification:
+
+       Gary Adams                        Harald Tveit Alvestrand
+       Keith Ball                        Brian Behlendorf
+       Paul Burchard                     Maurizio Codogno
+       Mike Cowlishaw                    Roman Czyborra
+       Michael A. Dolan                          Alan Freier
+       Marc Hedlund                      Koen Holtman
+       Alex Hopmann                      Bob Jernigan
+       Shel Kaphan                       Rohit Khare
+       Martijn Koster                    Alexei Kosut
+       David M.        Kristol                    Daniel LaLiberte
+       Paul J. Leach                     Albert Lunde
+       John C. Mallery                   Jean-Philippe Martin-Flatin
+       Larry Masinter                    Mitra
+       Gavin Nicol                       Scott Powers
+       Bill Perry                        Jeffrey Perry
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 126]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+       Owen Rees                         Luigi Rizzo
+       David Robinson                    Marc Salomon
+       Rich Salz                         Jim Seidman
+       Chuck Shotton                     Eric W. Sink
+       Simon E.        Spero                     Richard N. Taylor
+       Robert S. Thau                    Francois Yergeau
+       Mary Ellen Zurko                          David Morris
+       Greg Herlihy                      Bill (BearHeart) Weinman
+       Allan M.        Schiffman
+
+
+Much of        the content and presentation of the caching design is due to
+suggestions and        comments from individuals including: Shel Kaphan, Paul
+Leach, Koen Holtman, David Morris, Larry Masinter, and Roy Fielding.
+
+Most of        the specification of ranges is based on work originally done by
+Ari Luotonen and John Franks, with additional input from Steve Zilles
+and Roy        Fielding.
+
+XXX need acks for subgroup work.
+
+
+
+
+21 References
+
+[1]    H. Alvestrand. "Tags for the identification of languages." RFC
+
+  1766,        UNINETT, March 1995.
+
+[2]    F. Anklesaria, M. McCahill, P. Lindner, D. Johnson, D. Torrey,
+  B. Alberti. "The Internet Gopher Protocol: (a        distributed document
+
+  search and retrieval protocol)", RFC 1436, University        of Minnesota,
+  March        1993.
+
+[3]    T. Berners-Lee. "Universal Resource Identifiers in WWW" A
+
+  Unifying Syntax for the Expression of        Names and Addresses of Objects
+  on the Network as used in the        World-Wide Web." RFC 1630, CERN, June
+  1994.
+
+[4]    T. Berners-Lee, L. Masinter, M. McCahill.
+  "Uniform Resource Locators (URL)." RFC 1738, CERN, Xerox PARC,
+
+  University of        Minnesota, December 1994.
+
+[5]    T. Berners-Lee, D. Connolly.
+  "HyperText Markup Language Specification - 2.0." RFC 1866, MIT/LCS,
+
+  November 1995.
+
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 127]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+[6]    T. Berners-Lee, R. Fielding, H. Frystyk.
+  "Hypertext Transfer Protocol - HTTP/1.0." Work in Progress (draft-
+
+  ietf-http-v10-spec-04.txt), MIT/LCS, UC Irvine, September 1995.
+
+[7]    N. Borenstein, N. Freed.
+  "MIME        (Multipurpose Internet Mail Extensions) Part One: Mechanisms
+
+  for Specifying and Describing        the Format of Internet Message Bodies."
+  RFC 1521, Bellcore, Innosoft,        September 1993.
+
+[8]    R. Braden.
+  "Requirements        for Internet hosts - application and support." STD 3,
+
+  RFC 1123, IETF, October 1989.
+
+[9]    D. H. Crocker.
+  "Standard for        the Format of ARPA Internet Text Messages." STD 11, RFC
+
+  822, UDEL, August 1982.
+
+[10]   F. Davis, B. Kahle, H. Morris, J. Salem, T. Shen, R. Wang, J.
+  Sui, M. Grinbaum. "WAIS Interface Protocol Prototype Functional
+  Specification." (v1.5), Thinking Machines Corporation, April 1990.
+
+[11]   R. Fielding. "Relative Uniform Resource Locators." RFC 1808, UC
+
+  Irvine, June 1995.
+
+[12]   M. Horton, R. Adams.
+  "Standard for        interchange of USENET messages." RFC 1036 (Obsoletes
+
+  RFC 850), AT&amp;T Bell Laboratories,        Center for Seismic Studies,
+  December 1987.
+
+[13]   B. Kantor, P. Lapsley. "Network News Transfer Protocol A
+
+  Proposed Standard for        the Stream-Based Transmission of News." RFC
+  977, UC San Diego, UC        Berkeley, February 1986.
+
+[14]   K. Moore. "MIME (Multipurpose Internet Mail Extensions) Part Two
+
+  : Message Header Extensions for Non-ASCII Text." RFC 1522, University
+  of Tennessee,        September 1993.
+
+[15]   E. Nebel, L. Masinter. "Form-based File Upload in HTML." RFC
+
+  1867,        Xerox Corporation, November 1995.
+
+[16]   J. Postel. "Simple Mail Transfer Protocol." STD 10, RFC 821,
+
+  USC/ISI, August 1982.
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 128]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+[17]   J. Postel. "Media Type Registration Procedure." RFC 1590,
+
+  USC/ISI, March 1994.
+
+[18]   J. Postel, J. K. Reynolds. "File Transfer Protocol (FTP)" STD
+9,
+
+  RFC 959, USC/ISI, October 1985.
+
+[19]   J. Reynolds, J. Postel. "Assigned Numbers." STD 2, RFC 1700,
+
+  USC/ISI, October 1994.
+
+[20]   K. Sollins, L. Masinter.
+  "Functional Requirements for Uniform Resource        Names." RFC 1737,
+
+  MIT/LCS, Xerox Corporation, December 1994.
+
+[21]   US-ASCII. Coded Character Set - 7-Bit American Standard Code for
+  Information Interchange. Standard ANSI X3.4-1986, ANSI, 1986.
+
+[22]   ISO-8859. International Standard -- Information Processing --
+  8-bit        Single-Byte Coded Graphic Character Sets --
+  Part 1: Latin        alphabet No. 1, ISO 8859-1:1987.
+  Part 2: Latin        alphabet No. 2, ISO 8859-2, 1987.
+  Part 3: Latin        alphabet No. 3, ISO 8859-3, 1988.
+  Part 4: Latin        alphabet No. 4, ISO 8859-4, 1988.
+  Part 5: Latin/Cyrillic alphabet, ISO 8859-5, 1988.
+  Part 6: Latin/Arabic alphabet, ISO 8859-6, 1987.
+  Part 7: Latin/Greek alphabet,        ISO 8859-7, 1987.
+  Part 8: Latin/Hebrew alphabet, ISO 8859-8, 1988.
+  Part 9: Latin        alphabet No. 5, ISO 8859-9, 1990.
+
+[23]   Meyers, M. Rose "The Content-MD5 Header Field." RFC 1864,
+
+  Carnegie Mellon, Dover Beach Consulting, October, 1995.
+
+[24]   B. Carpenter, Y. Rekhter, "Renumbering Needs Work". RFC 1900,
+
+  IAB, February        1996.
+
+[25]   Gzip is available from the GNU project at
+  <URL:ftp://prep.ai.mit.edu/pub/gnu/>.         A more formal specification is
+
+  currently a work in progress.
+
+[26]   Work In Progress for Digest authentication of the IETF HTTP
+  working group.
+
+[27]   TBS, Work in progress (XXX should put RFC in here_ )
+
+[28]   Mills, D, "Network Time Protocol, Version 3", Specification,
+
+  Implementation and Analysis RFC 1305,        University of Delaware, March,
+  1992.
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 129]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+[29]   Work in progress of the HTTP working group (XXX is this correct
+  reference for        incomplete work?).
+
+[30]   S. Spero. "Analysis of HTTP Performance Problems"
+  <URL:http://sunsite.unc.edu/mdma-release/http-prob.html>
+
+[31]   E. Rescorla, A. Schiffman "The Secure HyperText Transfer
+  Protocol" Internet-Draft (work in progress).
+
+[32]   A. Freier, P Karlton, P. Kocher. "SSL Version 3.0" Internet-
+  Draft" (work in progress).
+
+[33]   Jeffrey C. Mogul. "The Case for Persistent-Connection HTTP".  In
+  Proc.SIGCOMM '95 Symposium on        Communications Architectures and
+  Protocols, pages 299-313. Cambridge, MA, August, 1995.
+
+[34]   Jeffrey C. Mogul. "The Case for Persistent-Connection HTTP".
+  Research, Report 95/4, Digital Equipment Corporation Western Research
+  Laboratory, May, 1995.,
+  <URL
+  :http://www.research.digital.com/wrl/techreports/abstracts/95.4.html>
+
+
+[35]   Work in progress of the HTTP working group on state management.
+
+22 Authors' Addresses
+
+Roy T. Fielding
+
+Department of Information and Computer Science
+University of California
+Irvine,        CA 92717-3425, USA
+Fax: +1        (714) 824-4056
+Email: fielding@ics.uci.edu
+
+Henrik Frystyk Nielsen
+
+W3 Consortium
+MIT Laboratory for Computer Science
+545 Technology Square
+Cambridge, MA 02139, USA
+Fax: +1        (617) 258 8682
+Email: frystyk@w3.org
+
+Tim Berners-Lee
+
+Director, W3 Consortium
+MIT Laboratory for Computer Science
+545 Technology Square
+Cambridge, MA 02139, USA
+Fax: +1        (617) 258 8682
+Email: timbl@w3.org
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 130]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+Jim Gettys
+
+MIT Laboratory for Computer Science
+545 Technology Square
+Cambridge, MA 02139, USA
+Fax: +1        (617) 258 8682
+Email: jg@w3.org
+
+Jeffrey        C. Mogul
+
+Western        Research Laboratory
+Digital        Equipment Corporation
+250 University Avenue
+Palo Alto, California, 94305, U.S.A.
+Email: mogul@wrl.dec.com
+
+
+
+
+23 Appendices
+These appendices are provided for informational        reasons only -- they do
+not form a part        of the HTTP/1.1 specification.
+
+
+23.1 Internet Media Type message/http
+In addition to defining        the HTTP/1.1 protocol, this document serves as
+the specification for the Internet media type "message/http". The
+following is to        be registered with IANA .
+
+       Media Type name:                message
+       Media subtype name:     http
+       Required        parameters:     none
+       Optional        parameters:     version, msgtype
+
+             version: The HTTP-Version number of the enclosed message
+                      (e.g., "1.1"). If not present, the version can be
+                      determined from the first line of the body.
+
+             msgtype: The message type -- "request" or "response". If not
+                      present, the type can be determined from the first
+                      line of the body.
+
+       Encoding        considerations: only "7bit", "8bit", or "binary" are
+                               permitted
+
+       Security        considerations: none
+
+
+23.2 Tolerant Applications
+Although this document specifies the requirements for the generation of
+HTTP/1.1 messages, not all applications        will be correct in their
+implementation.        We therefore recommend that operational applications be
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 131]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+tolerant of deviations whenever        those deviations can be interpreted
+unambiguously.
+
+Clients        SHOULD be tolerant in parsing the Status-Line and servers
+tolerant when parsing the Request-Line.        In particular, they SHOULD
+accept any amount of SP        or HT characters between fields, even though
+only a single SP is required.
+
+The line terminator for        HTTP-header fields is the sequence CRLF.
+However, we recommend that applications, when parsing such headers,
+recognize a single LF as a line        terminator and ignore the leading CR.
+
+
+23.3 Differences Between  HTTP Bodies and RFC 1521 Internet Message Bodies
+HTTP/1.1 uses many of the constructs defined for Internet Mail (RFC 822
+) and the Multipurpose Internet        Mail Extensions (MIME ) to allow
+entities to be transmitted in an open variety of representations and
+with extensible        mechanisms. However, RFC 1521 discusses mail, and HTTP
+has a few features that        are different than those described in RFC 1521.
+These differences were carefully chosen        to optimize performance over
+binary connections, to allow greater freedom in        the use of new media
+types, to make date comparisons        easier, and to acknowledge the practice
+of some        early HTTP servers and clients.
+
+At the time of this writing, it        is expected that RFC 1521 will be
+revised. The revisions may include some        of the practices found in
+HTTP/1.1 but not in RFC        1521.
+
+This appendix describes        specific areas where HTTP differs from RFC
+1521.
+Proxies        and gateways to strict MIME environments SHOULD be aware of
+these differences and provide the appropriate conversions where
+necessary. Proxies and gateways        from MIME environments to HTTP also need
+to be aware of the differences because some conversions        may be
+required.
+
+
+23.3.1 Conversion to Canonical Form
+RFC 1521 requires that an Internet mail        entity be converted to canonical
+form prior to being transferred, as described in Appendix G of RFC 1521
+. Section 7.7.1        of this document describes the forms allowed for
+subtypes of the        "text" media type when transmitted over HTTP.  RFC 1521
+requires that content with a  typeof "text" represent line breaks as
+CRLF and forbids the use of CR or LF outside of        line break sequences.
+HTTP allows CRLF, bare CR, and bare LF to indicate a line break        within
+text content when a message is transmitted over        HTTP.
+
+Where it is possible, a        proxy or gateway from HTTP to a strict RFC 1521
+environment SHOULD translate all line breaks within the        text media types
+described in section 7.7.1 of this document to the RFC 1521 canonical
+form of        CRLF. Note, however, that this may be complicated by the
+presence of a Content-Encoding and by the fact that HTTP allows        the use
+of some        character sets which do not use octets 13 and 10 to represent CR
+and LF,        as is the case for some multi-byte character sets.
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 132]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+23.3.2 Conversion of Date Formats
+HTTP/1.1 uses a        restricted set of date formats (section 7.3.1) to
+simplify the process of        date comparison. Proxies and gateways from other
+protocols SHOULD ensure        that any Date header field present in a message
+conforms to one        of the HTTP/1.1 formats and rewrite the date if
+necessary.
+
+
+23.3.3 Introduction of Content-Encoding
+RFC 1521 does not include any concept equivalent to HTTP/1.1's Content-
+Encoding header        field. Since this acts as a modifier on the media type,
+proxies        and gateways from HTTP to MIME-compliant protocols MUST either
+change the value of the        Content-Type header field or decode the Entity-
+Body before forwarding the message. (Some experimental applications of
+Content-Type for Internet mail have used a media-type parameter        of
+";conversions=<content-coding>"        to perform an equivalent function as
+Content-Encoding. However, this        parameter is not part of RFC 1521.)
+
+
+23.3.4 No Content-Transfer-Encoding
+HTTP does not use the Content-Transfer-Encoding        (CTE) field of RFC
+1521.
+Proxies        and gateways from MIME-compliant protocols to HTTP MUST remove
+any non-identity CTE ("quoted-printable" or "base64") encoding prior to
+delivering the response        message to an HTTP client.
+
+Proxies        and gateways from HTTP to MIME-compliant protocols are
+responsible for        ensuring that the message is in the correct format and
+encoding for safe transport on that protocol, where "safe transport" is
+defined        by the limitations of the protocol being used. Such a proxy or
+gateway        SHOULD label the data with an appropriate Content-Transfer-
+Encoding if doing so will improve the likelihood of safe transport over
+the destination        protocol.
+
+
+23.3.5 HTTP Header Fields in Multipart Body-Parts
+In RFC 1521, most header fields        in multipart body-parts are generally
+ignored        unless the field name begins with "Content-". In HTTP/1.1,
+multipart body-parts may contain any HTTP header fields        which are
+significant to the meaning of that part.
+
+
+23.3.6 Introduction of Transfer-Encoding
+HTTP/1.1 introduces the        Transfer-Encoding header field (section 18.43).
+Proxies/gateways MUST remove any transfer coding prior to forwarding a
+message        via a MIME-compliant protocol. The process for decoding the
+"chunked" transfer coding (section 7.6)        can be represented in pseudo-
+code as:
+
+       length := 0
+       read chunk-size and CRLF
+       while (chunk-size > 0) {
+         read chunk-data and CRLF
+         append chunk-data to Entity-Body
+         length := length + chunk-size
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 133]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+         read chunk-size and CRLF
+       }
+       read entity-header
+       while (entity-header not        empty) {
+         append entity-header to existing header fields
+         read entity-header
+       }
+       Content-Length := length
+       Remove "chunked"        from Transfer-Encoding
+
+
+
+
+23.3.7 MIME-Version
+HTTP is        not a MIME-compliant protocol (see Appendix 23.3). However,
+HTTP/1.1 messages may include a        single MIME-Version general-header field
+to indicate what version of the        MIME protocol was used to construct the
+message. Use of        the MIME-Version header field indicates that the message
+is in full compliance with the MIME protocol (as defined in ).
+Proxies/gateways are responsible for ensuring full compliance (where
+possible) when exporting HTTP messages to strict MIME environments.
+
+       MIME-Version   =        "MIME-Version" ":" 1*DIGIT "." 1*DIGIT
+
+MIME version "1.0" is the default for use in HTTP/1.1. However,
+HTTP/1.1
+message        parsing and semantics are defined by this document and not the
+MIME specification.
+
+
+23.4 Changes from HTTP/1.0
+This section will summarize major differences between versions HTTP/1.0
+and HTTP/1.1.
+
+
+23.4.1 Changes to Simplify Multi-homed Web Servers and Conserve        IP Addresses
+The requirements that clients and servers support the Host  request-
+header,        report an error if the Host request-header (section 18.24) is
+missing        from an HTTP/1.1 request,  and accept absolute URIs (Section
+9.1.2) are among the most important changes from HTTP/1.0.
+
+In HTTP/1.0 there is a one-to-one relationship of IP addresses and
+servers. There is no other way to distinguish the intended server of a
+request        than the IP address to which that request is directed. The
+HTTP/1.1 change        will allow the Internet, once HTTP/1.0 clients and
+servers        are no longer common, to support multiple Web sites from a
+single IP address, greatly simplifying large operational Web servers,
+where allocation of many IP addresses to a single  host        has created
+serious        problems.  The Internet will also be able to recover the IP
+addresses that have been used for the sole purpose of allowing root-
+level domain names to be used in HTTP URLs. Given the rate of growth of
+the Web, and the number        of servers already deployed, it is extremely
+important that implementations of HTTP/1.1 correctly implement these new
+requirements:
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 134]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+  .  both clients and servers MUST support the Host request-header
+
+  .  Host request-headers are required in HTTP/1.1 requests.
+
+  .  servers MUST report an error if an        HTTP/1.1 request does not
+     include a Host request-header
+
+  .  servers MUST accept absolute URIs
+
+23.5 Additional        Features
+This appendix documents        protocol elements used by some existing HTTP
+implementations, but not consistently and correctly across most
+HTTP/1.1
+applications. Implementers should be aware of these features, but cannot
+rely upon their        presence in, or interoperability with, other HTTP/1.1
+applications.  Some of these describe proposed experimental features,
+and some describe features that        experimental deployment found lacking
+that are now addressed in the base HTTP/1.1 specification.
+
+
+23.5.1 Additional Request Methods
+
+23.5.1.1 PATCH
+The PATCH method is similar to PUT except that the entity contains a
+list of        differences between the original version of the resource
+identified by the Request-URI and the desired content of the resource
+entity after the PATCH action has been applied. The list of differences
+is in a        format defined by the media type of the entity (e.g.,
+"application/diff") and        MUST include sufficient information to allow the
+server to recreate the changes necessary to convert the        original version
+of the resource        entity to the desired version.
+
+If the request passes through a        cache and the Request-URI identifies a
+currently cached entity, that entity MUST be removed from the cache.
+Responses to this method are not cachable.
+
+For compatibility with HTTP/1.0        applications, all PATCH requests MUST
+include        a valid Content-Length header field unless the server is known
+to be HTTP/1.1 compliant. When sending a PATCH request to an HTTP/1.1
+server,        a client MUST use a valid Content-Length or the "chunked"
+Transfer-Encoding. The server SHOULD respond with a 400        (Bad Request)
+message        if it cannot determine the length of the request message's
+content, or with 411 (Length Required) if it wishes to insist on
+receiving a valid Content-Length.
+
+The actual method for determining how the patched resource is placed,
+and what happens to its        predecessor, is defined entirely by the origin
+server.        If the original version of the resource being patched included a
+Content-Version        header field, the request entity MUST include a
+Derived-
+From header field corresponding        to the value of the original Content-
+Version        header field. Applications are encouraged to use these fields
+for constructing versioning relationships and resolving        version
+conflicts.
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 135]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+PATCH requests must obey the entity transmission requirements set out in
+section        13.4.1.
+
+Caches that implement PATCH should invalidate cached responses as
+defined        in section 16.10 for PUT.
+
+
+23.5.1.2 LINK
+The LINK method        establishes one or more Link relationships between the
+existing resource identified by        the Request-URI and other existing
+resources. The difference between LINK and other methods allowing links
+to be established between resources is that the        LINK method does not
+allow any Entity-Body to be sent in the        request and does not directly
+result in the creation of new resources.
+
+If the request passes through a        cache and the Request-URI identifies a
+currently cached entity, that entity MUST be removed from the cache.
+Responses to this method are not cachable.
+
+Caches that implement LINK should invalidate cached responses as defined
+in section 16.10 for PUT.
+
+
+23.5.1.3 UNLINK
+The UNLINK method removes one or more Link relationships from the
+existing resource identified by        the Request-URI. These relationships may
+have been established using the        LINK method or by any other method
+supporting the Link header. The        removal of a link to a resource does not
+imply that the resource        ceases to exist or becomes inaccessible for
+future references.
+
+If the request passes through a        cache and the Request-URI identifies a
+currently cached entity, that entity MUST be removed from the cache.
+Responses to this method are not cachable.
+
+Caches that implement UNLINK should invalidate cached responses        as
+defined        in section 16.10 for PUT.
+
+
+23.5.1.4 PUT
+To support the PATCH method, if        the entity being PUT was derived from an
+existing resource which        included a Content-Version header field, the new
+entity MUST include a Derived-From header field        corresponding to the
+value of the original Content-Version header field. Multiple Derived-
+From values may        be included if the entity was derived from multiple
+resources with Content-Version information. Applications are encouraged
+to use these fields for        constructing versioning relationships and
+resolving version conflicts.
+
+
+23.5.2 Additional Header Field Definitions
+
+23.5.2.1 Content-Version
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 136]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+The Content-Version entity-header field        defines the version tag
+associated with        a rendition of an evolving entity. Together with the
+Derived-From field described in        section 23.5.2.2, it allows a group of
+people to work simultaneously on the creation of a work        as an iterative
+process. The field SHOULD be used to allow evolution of        a particular
+work along a single path. It SHOULD NOT        be used to indicate derived
+works or renditions in different representations. It MAY also me used as
+an opaque value        for comparing a cached entity's version with that of the
+current        resource entity.
+
+       Content-Version = "Content-Version" ":" quoted-string
+
+Examples of the        Content-Version field include:
+
+       Content-Version:        "2.1.2"
+       Content-Version:        "Fred 19950116-12:26:48"
+       Content-Version:        "2.5a4-omega7"
+
+The value of the Content-Version field SHOULD be considered opaque to
+all parties but        the origin server. A user agent MAY suggest a value for
+the version of an entity transferred via a PUT request;        however, only
+the origin server can reliably assign that value.
+
+
+23.5.2.2 Derived-From
+The Derived-From entity-header field can be used to indicate the version
+tag of the resource from which the enclosed entity was derived before
+modifications were made        by the sender. This field is used to help manage
+the process of merging successive changes to a resource, particularly
+when such changes are being made in parallel and from multiple sources.
+
+       Derived-From   =        "Derived-From" ":" quoted-string
+
+An example use of the field is:
+
+       Derived-From: "2.1.1"
+
+The Derived-From field is required for PUT and PATCH requests if the
+entity being sent was previously retrieved from        the same URI and a
+Content-Version        header was included with the entity when it was last
+retrieved.
+
+
+23.5.2.3 Link
+The Link entity-header field provides a        means for describing a
+relationship between two resources, generally between the requested
+resource and some other        resource. An entity MAY include multiple Link
+values.        Links at the metainformation level typically indicate
+relationships like hierarchical        structure and navigation paths. The Link
+field is semantically equivalent to the        <LINK> element in HTML .
+
+       Link          = "Link" ":" #("<" URI ">" *( ";" link-param )
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 137]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+       link-param     =        ( ( "rel" "=" relationship )
+                         | ( "rev" "=" relationship )
+                         | ( "title" "=" quoted-string )
+                         | ( "anchor" "=" <"> URI <"> )
+                         | ( link-extension ) )
+
+       link-extension =        token [ "=" ( token | quoted-string ) ]
+
+       relationship   =        sgml-name
+                     | ( <"> sgml-name *( SP sgml-name) <"> )
+
+       sgml-name      =        ALPHA *( ALPHA | DIGIT | "." | "-" )
+
+Relationship values are        case-insensitive and MAY be extended within the
+constraints of the sgml-name syntax. The title parameter MAY be        used to
+label the destination of a link        such that it can be used as
+identification within a        human-readable menu. The anchor parameter MAY be
+used to        indicate a source anchor other than the entire current
+resource,
+such as        a fragment of this resource or a third resource.
+
+Examples of usage include:
+
+       Link: <http://www.cern.ch/TheBook/chapter2>; rel="Previous"
+
+       Link: <mailto:timbl@w3.org>; rev="Made";        title="Tim Berners-Lee"
+
+The first example indicates that chapter2 is previous to this resource
+in a logical navigation        path. The second indicates that the person
+responsible for        making the resource available is identified by the given
+e-mail address.
+
+
+23.5.2.4 URI
+The URI        header field has, in past versions of this specification, been
+used as        a combination of the existing Location, Content-Location, and
+Alternates header fields. Its primary purpose has been to include a list
+of additional URIs for the resource, including names and mirror
+locations.  However, it        has become clear that the combination of many
+different functions within this        single field has been a barrier to
+consistently and correctly implementing        any of those functions.
+Furthermore, we        believe that the identification of names and mirror
+locations would        be better performed via the Link header field. The URI
+header field is        therefore deprecated in favor of those other fields.
+
+       URI-header    = "URI" ":" 1#( "<" URI ">" )
+
+
+23.5.2.5 Compatibility with HTTP/1.0 Persistent        Connections
+Some clients and servers may wish to be        compatible with some previous
+implementations        of persistent connections in HTTP/1.0 clients and
+servers.  These        implementations are faulty, and the new facilities in
+HTTP/1.1 are designed to rectify these problems.   The fear was        that
+some existing 1.0 clients may be sending Keep-Alive to a proxy server
+that doesn't understand        Connection, which would then erroneously forward
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 138]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+it to the next inbound server, which would establish the Keep-Alive
+connection and result in a dead        1.0 proxy waiting for the close on the
+response.  The result is that 1.0 clients must be prevented from using
+Keep-Alive when        talking to proxies.
+
+However, talking to proxies is the most        important use of persistent
+connections, so        that is clearly unacceptable.  Therefore, we need some
+other mechanism        for indicating a persistent connection is desired, which
+is safe        to use even when talking to an old proxy that ignores
+Connection.  As        it turns out, there are two ways to accomplish that:
+
+1.
+  Introduce a new keyword (persist) which is declared to be valid only
+  when received        from an HTTP/1.1 message.
+
+2.
+  Declare persistence to be the        default for HTTP/1.1 messages and
+  introduce a new keyword (close) for declaring        non-persistence.
+
+The following describes        the original, buggy form of persistent
+connections.
+
+When connecting        to an origin server an HTTP client MAY send the Keep-
+Alive connection-token in addition to the Persist connection-token:
+
+       Connection: Keep-Alive,Persist
+
+An HTTP/1.0 server would then respond with the Keep-Alive connection
+token and the client may proceed with an HTTP/1.0 (or Keep-Alive)
+persistent connection.
+
+An HTTP/1.1 server may also establish persistent connections with
+HTTP/1.0 clients upon receipt of a Keep-Alive connection token.
+However, a persistent connection with an HTTP/1.0 client cannot        make use
+of the chunked transfer-coding,        and therefore MUST use a Content-Length
+for marking the        ending boundary of each Entity-Body.
+
+A client MUST NOT send the Keep-Alive connection token to a proxy server
+as HTTP/1.0 proxy servers do not obey the rules        of HTTP/1.1 for parsing
+the Connection header field.
+
+
+23.5.2.5.1 The Keep-Alive Header
+When the Keep-Alive connection-token has been transmitted with a request
+or a response a        Keep-Alive header field MAY also be included. The Keep-
+Alive header field takes the following form:
+
+       Keep-Alive-header = "Keep-Alive"        ":" 0# keepalive-param
+
+       keepalive-param = param-name "="        value
+
+The Keep-Alive header itself is        optional, and is used only if a
+parameter is being sent. HTTP/1.1 does not define any parameters.
+
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 139]
+
+
+
+
+INTERNET-DRAFT           HTTP/1.1      Friday, May 03, 1996
+
+
+If the Keep-Alive header is sent, the corresponding connection token
+MUST be        transmitted. The Keep-Alive header MUST be ignored if received
+without        the connection token.
+
+
+23.5.3 Compatibility with Previous Versions
+It is beyond the scope of a protocol specification to mandate compliance
+with previous versions.         HTTP/1.1 was deliberately designed, however, to
+make supporting        previous versions easy.  While we are contemplating a
+separate document containing advice to implementers, we        feel it worth
+noting that at the time        of composing this specification, we would expect
+commercial HTTP/1.1 servers to:
+
+
+  .  recognize the format of the Request-Line for HTTP/0.9, 1.0, and 1.1
+     requests;
+
+  .  understand        any valid request in the format of HTTP/0.9, 1.0, or
+     1.1;
+
+  .  respond appropriately with        a message in the same major version used
+     by        the client.
+And  we        would expect HTTP/1.1 clients to:
+
+
+  .  recognize the format of the Status-Line for HTTP/1.0 and 1.1
+     responses;
+
+  .  understand        any valid response in the format of HTTP/0.9, 1.0, or
+     1.1.
+For most implementations of HTTP/1.0, each connection is established by
+the client prior to the        request and closed by the server after sending
+the response.  A few implementations implement the Keep-Alive version of
+persistent connections described in section 23.5.2.5.1.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Fielding, Frystyk, Berners-Lee,        Gettys, and Mogul [Page 140]
+
+
+
diff --git a/reports/rfc/draft-ietf-ids-dnsnames-00.txt b/reports/rfc/draft-ietf-ids-dnsnames-00.txt
new file mode 100644 (file)
index 0000000..fa63541
--- /dev/null
@@ -0,0 +1,561 @@
+
+
+
+
+INTERNET-DRAFT                                           Martin Hamilton
+draft-ietf-ids-dnsnames-00.txt                   Loughborough University
+Expires in six months                                        Russ Wright
+                                            Lawrence Berkeley Laboratory
+                                                                May 1996
+
+
+                Use of DNS Aliases for Network Services
+                Filename: draft-ietf-ids-dnsnames-00.txt
+
+
+Status of this Memo
+
+      This document is an Internet-Draft.  Internet-Drafts are working
+      documents of the Internet Engineering Task Force (IETF), its
+      areas, and its working groups.  Note that other groups may also
+      distribute working documents as Internet-Drafts.
+
+      Internet-Drafts are draft documents valid for a maximum of six
+      months and may be updated, replaced, or obsoleted by other
+      documents at any time.  It is inappropriate to use Internet-
+      Drafts as reference material or to cite them other than as ``work
+      in progress.''
+
+      To learn the current status of any Internet-Draft, please check
+      the ``1id-abstracts.txt'' listing contained in the Internet-
+      Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net
+      (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East
+      Coast), or ftp.isi.edu (US West Coast).
+
+Abstract
+
+   It has become a common practice to use symbolic names (usually
+   CNAMEs) in the Domain Name Service (DNS - [1,2]) to refer to network
+   services such as anonymous FTP [3] servers, Gopher [4] servers, and
+   most notably World-Wide Web HTTP [5] servers.  This is desirable for
+   a number of reasons.  It provides a way of moving services from one
+   machine to another transparently, and a mechanism by which people or
+   agents may programatically discover that an organization runs, say, a
+   World-Wide Web server.
+
+   Although this approach has been almost universally adopted, there is
+   no standards document or similar specification for these commonly
+   used names.  This document seeks to rectify this situation by
+   gathering together the extant "folklore" on naming conventions, and
+   proposes a mechanism for accommodating new protocols.  Distribution
+   of this document is unlimited.  Comments should be sent to the IETF
+   Integrated Directory Services mailing list, ietf-ids@umich.edu, or
+
+
+
+                                                                [Page 1]
+\f
+INTERNET-DRAFT                                                  May 1996
+
+
+   directly to the authors.
+
+1. Rationale
+
+   In order to locate the network services offered at a particular
+   Internet domain one is faced with the choice of selecting from a
+   growing number of centralized databases - typically Web or Usenet
+   News "wanderers", or attempting to infer the existence of network
+   services from whatever DNS information may be available.  The former
+   approach is not practical in some cases, notably when the entity
+   seeking service information is a program.
+
+   Perhaps the most visible example of the latter approach at work is in
+   the case of World-Wide Web HTTP servers.  It is common practice to
+   try prefixing the domain name of an organization with "http://www."
+   in order to reach its World-Wide Web site, e.g. taking "hivnet.fr"
+   and arriving at "http://www.hivnet.fr."  Some popular World-Wide Web
+   browsers have gone so far as to provide automatic support for this
+   domain name expansion.
+
+   Ideally, the DNS or some complementary directory service would
+   provide a means for programs to determine automatically the network
+   services which are offered at a particular Internet domain, the
+   protocols which are used to deliver them, and other technical
+   information such as TCP [6] and UDP [7] port numbers.
+
+   Unfortunately, although much work has been done on developing "yellow
+   pages" directory service technologies, and on attempting to define
+   new types of DNS resource record to provide this type of information,
+   there is no widely agreed upon or widely deployed solution to the
+   problem - except in a small number of cases.
+
+   The first case is where the DNS already provides a lookup capability
+   for the type of information being sought after.  For example: Mail
+   Exchanger (MX) records specify how mail to a particular domain should
+   be routed [8], the Start of Authority (SOA) records make it possible
+   to determine who is responsible for a given domain, and Name Server
+   (NS) records indicate which hosts provide DNS name service for a
+   given domain.
+
+   The second case is where the DNS does not provide an appropriate
+   lookup capability, but there is some widely accepted convention for
+   finding this information.  Some use has been made of Text (TXT)
+   records in this scenario, but in the vast majority of cases a
+   Canonical Name (CNAME) or Address (A) record pointer is used to
+   indicate the host or hosts which provide the service.  This document
+   proposes a slight formalization of this well-known alias approach.
+
+
+
+
+                                                                [Page 2]
+\f
+INTERNET-DRAFT                                                  May 1996
+
+
+   It should be noted that the DNS provides a Well Known Services (WKS)
+   lookup capability, which makes it possible to determine the services
+   offered by a particular host given its domain name.  In practice this
+   is not widely used, and was deprecated in the Host Requirements
+   specification [9].  In fact, WKS is really trying to solve a
+   different problem - advertising the services provided by a particular
+   machine, rather than which machines provide particular services for a
+   domain as a whole.
+
+2. A generic framework
+
+   One approach to dealing with aliases for new protocols would be to
+   define a standard set of DNS aliases for the most popular network
+   services, and an accompanying review procedure for registering new
+   protocols - such as has been attempted with Internet Media (MIME)
+   Types [10].  We suggest that in the rapidly changing world of
+   computer networking this may not be the most appropriate way of
+   tackling the problem.
+
+   The Internet Assigned Numbers Authority (IANA) maintains a registry
+   of well known port numbers, registered port numbers, protocol and
+   service names [11].  We propose that this list be used to determine
+   the a default port number, transport protocol (e.g. TCP or UDP) and
+   DNS alias for a given application protocol.
+
+   e.g.
+
+        -----------------------------------------------------------
+        Name      Port  Transport   Protocol
+        -----------------------------------------------------------
+        finger    79    TCP         Finger [12]
+        ftp       21    TCP         File Transfer Protocol
+        gopher    70    TCP         Internet Gopher Protocol
+        ldap      389   TCP/UDP     Lightweight Directory Access
+                                      Protocol [13]
+        ntp       123   UDP         Network Time Protocol [14]
+        rwhois    4321  TCP         Referral WHOIS [15]
+        whois     43    TCP         NICNAME/WHOIS [16]
+        -----------------------------------------------------------
+
+   If it is not appropriate to use the information registered with IANA
+   for a particular application protocol, we suggest the protocol
+   specification should indicate why this is the case - and preferably
+   propose an alternative mechanism.  For example, a Remote Procedure
+   Call (RPC) based application protocol which does not use a fixed port
+   number by default might determine which port to use by contacting a
+   remote RPC portmapper.
+
+
+
+
+                                                                [Page 3]
+\f
+INTERNET-DRAFT                                                  May 1996
+
+
+   We suggest that the DNS alias to be used for a service be taken
+   initially from the IANA lists of well known port numbers (in the
+   traditionally "restricted" rage 0 to 1023) and registered port
+   numbers (1024 to 65535), with recourse to the list of protocol and
+   service names if there is some confusion over the preferred alias.
+   This might be necessary if, for example, the name associated with the
+   IANA registered port number for a protocol contains the underscore
+   character "_", the plus character "+", or the dot character "." -
+   these are not legal as domain name components.
+
+3. Special cases
+
+   In addition to the character set problems outlined above, there are a
+   small number of special cases which are not currently catered for in
+   the IANA registry.  We propose that IANA maintain a list of these in
+   addition to the existing assigned numbers information.
+
+   Some common examples:
+
+        -----------------------------------------------------------
+        Alias     Service
+        -----------------------------------------------------------
+        archie    archie [17] (alias for "prospero")
+        cso       CCSO nameserver [18] (alias for "csnet-ns")
+        fsp       File Service Protocol [19]
+        news      Usenet News via NNTP [20] (alias for "nntp")
+        ns        DNS servers, and CCSO nameservers (aliases for
+                                       "domain" and "csnet-ns")
+        ph        CCSO (alias for "csnet-ns")
+        wais      Wide Area Information Server [21] (alias for
+                                       "z39.50")
+        www       World-Wide Web HTTP (alias for "http")
+        -----------------------------------------------------------
+
+4. (Ab)Use of the DNS as a directory service
+
+   The widespread use of these common aliases effectively means that it
+   is sometimes possible to "guess" the domain names associated with an
+   organization's network services, though this is becoming more
+   difficult as the number of organizations registered in the DNS
+   increases.
+
+   It should be understood by implementors that the existence of a DNS
+   entry such as
+
+        www.hivnet.fr
+
+   does not constitute a registration of a World-Wide Web service.
+
+
+
+                                                                [Page 4]
+\f
+INTERNET-DRAFT                                                  May 1996
+
+
+   There is no requirement that the domain name resolve to an IP address
+   or addresses.  There is no requirement that a host be listening for
+   HTTP connections, or if it is, that the HTTP server be running on
+   port 80.  Finally, even if all of these things are true, there can be
+   no guarantee that the World-Wide Web server will be prepared to honor
+   requests from arbitrary clients.
+
+   Having said this, the aliases do provide useful "hints" about the
+   services offered.  We propose that they be taken in this spirit.
+
+   The conventions described in this document are, essentially, only
+   useful when the organization's domain name can be determined - e.g.
+   from some external database.  A number of groups, including the IETF,
+   have been working on ways of finding domain names given a set of
+   information such as organization name, location, and business type.
+   It is hoped that one or more of these will eventually make it
+   possible to augment the basic lookup service which the DNS provides
+   with a more generalised search and retrieval capability.
+
+5. DNS server configuration
+
+   In the short term, whilst directory service technology and further
+   types of DNS resource record are being developed, domain name
+   administrators are encouraged to use these common names for the
+   network services they run.  They will make it easier for outsiders to
+   find information about your organization, and also make it easier for
+   you to move services from one machine to another.
+
+   There are two conventional approaches to creating these DNS entries.
+   One is to add a single CNAME record to your DNS server's
+   configuration, e.g.
+
+        ph.hivnet.fr. IN CNAME baby.hivnet.fr.
+
+   Note that in this scenario no information about ph.hivnet.fr should
+   exist in the DNS other than the CNAME record.  An alternative
+   approach would be to create an A record for each of the IP addresses
+   associated with ph.hivnet.fr, e.g.
+
+        ph.hivnet.fr. IN A 194.167.157.2
+
+   Recent DNS server implementations provide a "round-robin" feature
+   which causes the host's IP addresses to be returned in a different
+   order each time the address is looked up.
+
+   Network clients are starting to appear which, when they encounter a
+   host with multiple addresses, use heuristics to determine the address
+   to contact - e.g. picking the one which has the shortest round-trip-
+
+
+
+                                                                [Page 5]
+\f
+INTERNET-DRAFT                                                  May 1996
+
+
+   time.  Thus, if a server is mirrored (replicated) at a number of
+   locations, it may be desirable to list the IP addresses of the mirror
+   servers as A records of the primary server.  This is only likely to
+   be appropriate if the mirror servers are exact copies of the original
+   server.
+
+6. Limitations of this approach
+
+   Some services require that a client have more information than the
+   server's domain name and (default) port number.  For example, an LDAP
+   client needs to know a starting search base within the Directory
+   Information Tree in order to have a meaningful dialogue with the
+   server.  This document does not attempt to address this problem.
+
+   In some cases, different aliases are in common use for the same
+   service - e.g. "ph", "cso" and "ns" for the CCSO nameserver.  It
+   might appear to be in everyone's interest to narrow the choice of
+   alias down to a single name.  However, if current practice implies
+   that a number of aliases are equally valid, it would be advisable to
+   support them all.  This increases the likelihood of the service being
+   found.
+
+   <<contentious>> Given the confusion over the multiple use of the "ns"
+   alias in particular, we could suggest/mandate that everyone move to a
+   single name, e.g. the IANA registered "csnet-ns" or one of "cso" and
+   "ph".  Should we be trying to do this ?  Discuss!  <</contentious>>
+
+   Another problem is the use of a single alias to refer to multiple
+   network services, e.g. "ns" is commonly used to refer to both hosts
+   which run the CCSO nameserver, and DNS servers themselves.  In this
+   particular case the DNS already provides a lookup capability for
+   nameservers via the NS record.  As noted, implementations should be
+   resilient in the event that the name does not point to the expected
+   service.
+
+7. Security considerations
+
+   The DNS is open to many kinds of "spoofing" attacks, and it cannot be
+   guaranteed that the result returned by a DNS lookup is indeed the
+   genuine information.  Spoofing may take the form of denial of
+   service, such as directing of the client to a non-existent address,
+   or a passive attack such as an intruder's server which masquerades as
+   the legitimate one.
+
+   Work is ongoing to remedy this situation insofar as the DNS is
+   concerned [22].  In the meantime it should be noted that stronger
+   authentication mechanisms such as public key cryptography with large
+   key sizes are a pre-requisite if the DNS is being used in any
+
+
+
+                                                                [Page 6]
+\f
+INTERNET-DRAFT                                                  May 1996
+
+
+   sensitive situations.  Examples of these would be on-line financial
+   transactions, and any situation where privacy is a concern - such as
+   the querying of medical records over the network.  Strong encryption
+   of the network traffic may also be advisable, to protect against TCP
+   connection "hijacking" and packet sniffing.
+
+8. Conclusions
+
+   The service names registered with the IANA provide a sensible set of
+   defaults which may be used as an aid in determining the hosts which
+   offer particular services for a given domain name.
+
+   This document has noted some exceptions which are either inherently
+   unsuitable for this treatment, or already have a substantial
+   installed base using alternative aliases.
+
+9. Acknowledgements
+
+   Thanks to Jeff Allen, Tom Gillman, Renato Iannella, Thomas
+   Lenggenhager, Bill Manning, Andy Powell, Sri Sataluri, and <<your
+   name here!!>> for their comments on draft versions of this document.
+
+   This work was supported by grants from the UK Electronic Libraries
+   Programme (eLib) and the European Commission's Telematics for
+   Research Programme.
+
+10. References
+
+   Request For Comments (RFC) and Internet Draft documents are available
+   from <URL:ftp://ftp.internic.net> and numerous mirror sites.
+
+         [1]         P. V. Mockapetris. "Domain names - concepts and
+                     facilities", RFC 1034.  November 1987.
+
+
+         [2]         P. V. Mockapetris. "Domain names - implementation
+                     and specification", RFC 1035.  November 1987.
+
+
+         [3]         J. Postel, J. K. Reynolds.  "File Transfer Proto-
+                     col", RFC 959.  October 1985.
+
+
+         [4]         F. Anklesaria, M. McCahill, P. Lindner, D. Johnson,
+                     D. Torrey & B. Albert.  "The Internet Gopher Proto-
+                     col (a distributed document search and retrieval
+                     protocol)", RFC 1436.  March 1993.
+
+
+
+
+                                                                [Page 7]
+\f
+INTERNET-DRAFT                                                  May 1996
+
+
+         [5]         T. Berners-Lee, R. Fielding, H. Nielsen.  "Hyper-
+                     text Transfer Protocol -- HTTP/1.0", RFC 1945.  May
+                     1996.
+
+
+         [6]         J. Postel.  "Transmission Control Protocol", RFC
+                     793.  September 1981.
+
+
+         [7]         J. Postel.  "User Datagram Protocol", RFC 768.
+                     August 1980.
+
+
+         [8]         C. Partridge.  "Mail routing and the domain sys-
+                     tem", RFC 974.  January 1986.
+
+
+         [9]         R. T. Braden.  "Requirements for Internet hosts -
+                     application and support", RFC 1123. October 1989.
+
+
+         [10]        J. Postel.  "Media Type Registration Procedure",
+                     RFC 1590.  March 1994.
+
+
+         [11]        J. Reynolds, J. Postel.  "ASSIGNED NUMBERS", RFC
+                     1700.  October 1994.
+
+
+         [12]        D. Zimmerman.  "The Finger User Information Proto-
+                     col", RFC 1288. December 1992.
+
+
+         [13]        W. Yeong, T. Howes, S. Kille.  "Lightweight Direc-
+                     tory Access Protocol", RFC 1777.  March 1995.
+
+
+         [14]        D. Mills.  "Network Time Protocol (Version 3)
+                     Specification, Implementation", RFC 1305.  March
+                     1992.
+
+
+         [15]        S. Williamson & M. Kosters.  "Referral Whois Proto-
+                     col (RWhois)", RFC 1714.  November 1994.
+
+
+         [16]        K. Harrenstien, M. K. Stahl, E.J. Feinler.
+                     "NICNAME/WHOIS", RFC 954.  October 1985.
+
+
+
+                                                                [Page 8]
+\f
+INTERNET-DRAFT                                                  May 1996
+
+
+         [17]        A. Emtage, P. Deutsch. "archie - An Electronic
+                     Directory Service for the Internet", Winter Usenix
+                     Conference Proceedings 1992.  Pages 93-110.
+
+
+         [18]        R. Hedberg, S. Dorner, P. Pomes.  "The CCSO
+                     Nameserver (Ph) Architecture", Internet Draft.
+                     February 1996.
+
+
+         [19]        FSP software distribution:
+                     <URL:ftp://ftp.germany.eu.net/pub/networking/inet/fsp>
+
+
+         [20]        B. Kantor, P. Lapsley.  "Network News Transfer Pro-
+                     tocol", RFC 977.  February 1986.
+
+
+         [21]        M. St. Pierre, J. Fullton, K. Gamiel, J. Goldman,
+                     B. Kahle, J. Kunze, H. Morris & F. Schiettecatte.
+                     "WAIS over Z39.50-1988", RFC 1625.  June 1994.
+
+
+         [22]        D. E. Eastlake 3rd, C. W. Kaufman.  "Domain Name
+                     System Security Extensions", Internet Draft.  Janu-
+                     ary 1996.
+
+
+11. Authors addresses
+
+   Martin Hamilton
+   Department of Computer Studies
+   Loughborough University of Technology
+   Leics. LE11 3TU, UK
+
+   Email: m.t.hamilton@lut.ac.uk
+
+
+   Russ Wright
+   Information & Computing Sciences Division
+   Lawrence Berkeley National Laboratory
+   1 Cyclotron Road, Berkeley
+   Mail-Stop: 50B-2258
+   CA 94720, USA
+
+   Email: wright@lbl.gov
+
+
+
+
+
+                                                                [Page 9]
+\f
+INTERNET-DRAFT                                                  May 1996
+
+
+             This Internet Draft expires 29th November, 1996.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                                                               [Page 10]
+\f
diff --git a/reports/rfc/draft-ietf-mailext-mail-attributes-04.txt b/reports/rfc/draft-ietf-mailext-mail-attributes-04.txt
new file mode 100644 (file)
index 0000000..cee193c
--- /dev/null
@@ -0,0 +1,1154 @@
+Network Working Group                                       Jacob Palme
+Internet Draft                                 Stockholm University/KTH
+draft-ietf-mailext-mail-attributes-04.txt                        Sweden
+Category: Informational                                        May 1996
+Expires November 1996
+
+
+
+
+
+                  Common Internet Message Headers
+
+                        Status of this Memo
+
+
+
+  This document is an Internet-Draft.  Internet-Drafts are working
+  documents of the Internet Engineering Task Force (IETF), its
+  areas, and its working groups.  Note that other groups may also
+  distribute working documents as Internet-Drafts.
+
+  Internet-Drafts are draft documents valid for a maximum of six
+  months and may be updated, replaced, or obsoleted by other
+  documents at any time.  It is inappropriate to use Internet-
+  Drafts as reference material or to cite them other than as
+  ``work in progress.''
+
+  To learn the current status of any Internet-Draft, please check
+  the ``1id-abstracts.txt'' listing contained in the Internet-
+  Drafts Shadow Directories on ftp.is.co.za (Africa),
+  nic.nordu.net (Europe), munnari.oz.au (Pacific Rim),
+  ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast).
+
+  This memo provides information for the Internet community. This'
+  memo does not specify an Internet standard of any kind, since
+  this document is mainly a compilation of information taken from
+  other RFCs.. Distribution of this memo is unlimited.
+
+
+
+                            Abstract
+
+This memo contains a table of commonly occurring headers in headings of
+e-mail messages. The document compiles information from other RFCs such
+as RFC 822, RFC 1036, RFC 1123, RFC 1327, RFC 1496, RFC 1521, RFC 1766,
+RFC 1806 and RFC 1864. A few commonly occurring headers which are not
+defined in RFCs are also included. For each header, the memo gives a
+short description and a reference to the RFC in which the header is
+defined.
+
+
+
+
+
+
+
+Palme                                                           [Page 1]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+
+                         Table of contents
+
+1. Introduction
+
+2. Use of gatewaying headers
+
+3. Table of headers
+
+   3.1 Phrases used in the tables
+   3.2 Trace information
+   3.3 Format and control information
+   3.4 Sender and recipient indication
+   3.5 Response control
+   3.6 Message identification and referral headers
+   3.7 Other textual headers
+   3.8 Headers containing dates and times
+   3.9 Quality information
+   3.10 Language information
+   3.11 Size information
+   3.12 Conversion control
+   3.13 Encoding information
+   3.14 Resent-headers
+   3.15 Security and reliability
+   3.16 Miscellaneous
+
+4. Acknowledgments
+
+5. References
+
+6. Author's address
+
+Appendix A: Headers sorted by Internet RFC document in which
+            they appear
+
+Appendix B: Alphabetical index
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Palme                                                           [Page 2]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+
+                         1. Introduction
+
+Many different Internet standards and RFCs define headers which
+may occur on Internet Mail Messages and Network News Articles. The
+intention of this document is to list all such headers in one
+document as an aid to people developing message systems or interested
+in Internet Mail standards.
+
+The document contains all headers which the author has
+found in the following Internet standards: , RFC 822 [2],
+RFC 1036 [3], RFC 1123 [5], RFC 1327 [7], RFC 1496 [8], RFC 1521 [11],
+RFC 1766 [12], RFC 1806 [14] and RFC 1864[17]. Note in particular that
+heading attributes defined in PEM (RFC 1421-1424) and MOSS (RFC 1848
+[16]) are not included. PEM and MOSS headers only appear inside the
+body of a message, and thus are not headers in the RFC 822 sense. Mail
+attributes in envelopes, i.e. attributes controlling the message
+transport mechanism between mail and news servers, are not included.
+This means that attributes from SMTP [1], UUCP [18] and NNTP [15] are
+not covered either. Headings used only in HTTP [19] are not included
+yet, but may be included in future version of this memo. A few
+additional headers which often can be found in e-mail headings but are
+not part of any Internet standard are also included.
+
+For each header, the document gives a short description and
+a reference to the Internet standard or RFC, in which they are defined.
+
+The header names given here are spelled the same way as when they are
+actually used. This is usually American but sometimes English spelling.
+One header in particular, "Organisation/Organization", occurs in e-mail
+headers sometimes with the English and other times with the American
+spelling.
+
+The following words are used in this memo with the meaning specified
+below:
+
+heading           Formatted text at the top of a message, ended by a
+                  blank line
+
+header = heading  One field in the heading, beginning with a field
+field             name, colon, and followed by the field value(s)
+
+It is my intention to continue updating this document after its
+publication as an RFC. The latest version, which may be more up-to-date
+(but also less fully checked out) will be kept available for
+downloading by anonymous FTP from URL
+http://www.dsv.su.se/~jpalme/ietf-mail-attributes.pdf.
+
+Please e-mail me (Jacob Palme <jpalme@dsv.su.se>) if you have noted
+headers which should be included in this memo but are not.
+
+
+
+
+Palme                                                           [Page 3]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+                 2. Use of gatewaying headers
+
+RFC 1327 defines a number of new headers in Internet mail, which
+are defined to map headers which X.400 has but which were
+previously not standardized in Internet mail. The fact that a
+header occurs in RFC 1327 indicates that it is recommended for
+use in gatewaying messages between X.400 and Internet mail, but
+does not mean that the header is recommended for messages wholly
+within Internet mail. Some of these headers may eventually see
+widespread implementation and use in Internet mail, but at the time of
+this writing (May 1996) they are not widely implemented or used.
+
+Headers defined in RFC 1036 for use in Usenet News sometimes appear
+in mail messages, either because the messages have been gatewayed
+from Usenet News to e-mail, or because the messages were written in
+combined clients supporting both e-mail and Usenet News in the same
+client. These headers are not standardized for use in Internet e-mail
+and should be handled with caution by e-mail agents.
+
+
+
+
+                      3. Table of headers
+
+3.1 Phrases used in the tables
+
+
+"not for general        Used to mark headers which are defined in RFC
+usage"                  1327 for use in messages from or to Internet
+                        mail/X.400 gateways. These headers have not
+                        been standardized for general usage in the
+                        exchange of messages between Internet mail-
+                        based systems.
+
+"not standardized       Used to mark headers defined only in RFC 1036
+for use in e-mail"      for use in Usenet News. These headers have no
+                        standard meaning when appearing in e-mail,
+                        some of them may even be used in different
+                        ways by different software. When appearing in
+                        e-mail, they should be handled with caution.
+                        Note that RFC 1036, although generally used as
+                        a standard for Usenet News, is not an accepted
+                        IETF standard or on the IETF standards track.
+
+"non-standard"          This header is not specified in any of
+                        referenced RFCs which define Internet
+                        protocols, including Internet Standards, draft
+                        standards or proposed standards. The header
+                        appears here because it often appears in e-
+                        mail or Usenet News. Usage of these headers is
+                        not in general recommended.
+
+
+
+Palme                                                           [Page 4]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+"discouraged"           This header, which is non-standard, is known
+                        to create problems and should not be
+                        generated. Handling of such headers in
+                        incoming mail should be done with great
+                        caution.
+
+"controversial"         The meaning and usage of this header is
+                        controversial, i.e. different implementors
+                        have chosen to implement the header in
+                        different ways. Because of this, such headers
+                        should be handled with caution and
+                        understanding of the different possible
+                        interpretations.
+
+"experimental"          This header is used for newly defined headers,
+                        which are to be tried out before entering the
+                        IETF standards track. These should only be
+                        used if both communicating parties agree on
+                        using them. In practice, some experimental
+                        protocols become de-facto-standards before
+                        they are made into IETF standards.
+
+
+
+3.2 Trace information
+Used to convey the information       Return-Path:    RFC 821,
+from the MAIL FROM envelope                          RFC 1123: 5.2.13.
+attribute in final delivery, when
+the message leaves the SMTP
+environment in which "MAIL FROM"
+is used.
+
+Trace of MTAs which a message has    Received:       RFC 822: 4.3.2,
+passed.                                              RFC 1123: 5.2.8.
+
+List of MTAs passed.                 Path:           RFC 1036: 2.2.6,
+                                                     only in Usenet
+                                                     News, not in e-
+                                                     mail.
+
+Trace of distribution lists          DL-Expansion-   RFC 1327, not for
+passed.                              History-        general usage.
+                                     Indication:
+
+3.3 Format and control
+information
+
+An indicator that this message is    MIME-Version:   RFC 1521: 3.
+formatted according to the MIME
+standard, and an indication of
+which version of MIME is
+utilized.
+
+
+
+Palme                                                           [Page 5]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+Special Usenet News actions.         Control:        RFC 1036: 2.1.6,
+                                                     only in Usenet
+                                                     News, not in e-
+                                                     mail.
+
+Which body part types occur in       Original-       RFC 1327, not for
+this message.                        Encoded-        general usage.
+                                     Information-
+                                     Types:
+
+Controls whether this message may    Alternate-      RFC 1327, not for
+be forwarded to alternate            Recipient:      general usage.
+recipients such as a postmaster
+if delivery is not possible to
+the intended recipient. Default:
+Allowed.
+
+Whether recipients are to be told    Disclose-       RFC 1327, not for
+the names of other recipients of     Recipients:     general usage.
+the same message. This is
+primarily an X.400 facility. In
+X.400, this is an envelope
+attribute and refers to
+disclosure of the envelope
+recipient list. Disclosure of
+other recipients is in Internet
+mail done via the To:, cc: and
+bcc: headers.
+
+Whether a MIME body part is to be    Content-        RFC 1806,
+shown inline or is an attachment;    Disposition:    experimental
+can also indicate a suggested
+filename for use when saving an
+attachment to a file.
+
+3.4 Sender and recipient
+indication
+
+Authors or persons taking            From:           RFC 822: 4.4.1,
+responsibility for the message.                      RFC 1123: 5.2.15-
+                                                     16, 5.3.7,
+                                                     RFC 1036 2.1.1
+
+Name of the moderator of the         Approved:       RFC 1036: 2.2.11,
+newsgroup to which this message                      not standardized
+is sent; necessary on an article                     for use in e-mail.
+sent to a moderated newsgroup to
+allow its distribution to the
+newsgroup members. Also used on
+certain control messages, which
+are only performed if they are
+marked as Approved.
+
+
+
+Palme                                                           [Page 6]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+The person or agent submitting       Sender:         RFC 822: 4.4.2,
+the message to the network, if                       RFC 1123: 5.2.15-
+other than shown by the From:                        16, 5.3.7.
+header.
+
+Primary recipients.                  To:             RFC 822: 4.5.1,
+                                                     RFC 1123: 5.2.15-
+                                                     16, 5.3.7.
+
+Secondary, informational             cc:             RFC 822: 4.5.2,
+recipients. (cc = Carbon Copy)                       RFC 1123. 5.2.15-
+                                                     16, 5.3.7.
+
+Recipients not to be disclosed to    bcc:            RFC 822: 4.5.3,
+other recipients. (bcc = Blind                       RFC 1123: 5.2.15-
+Carbon Copy).                                        16, 5.3.7.
+
+In Usenet News: group(s) to which    Newsgroups:     RFC 1036: 2.1.3,
+this article was posted.                             not standardized
+Some systems provide this header                     and controversial
+also in e-mail although it is not                    for use in e-mail.
+standardized there.
+Unfortunately, the header can
+appear in e-mail with two
+different and contradictory
+meanings:
+(a) Indicates the newsgroup
+recipient of a message sent to
+both e-mail and Usenet News
+recipients.
+(b) In a personally addressed
+reply to a message in a news-
+group, indicate the newsgroup in
+which this discussion originated.
+
+Inserted by Sendmail when there      Apparently-     Non-standard,
+is no "To:" recipient in the         To:             discouraged,
+original message, listing                            mentioned in
+recipients derived from the                          RFC 1211.
+envelope into the message
+heading. This behavior is not
+quite proper, MTAs should not
+modify headings (except inserting
+Received lines), and it can in
+some cases cause Bcc recipients
+to be wrongly divulged to non-Bcc
+recipients.
+
+Geographical or organizational       Distribution:   RFC 1036: 2.2.7,
+limitation on where this message                     not standardized
+can be distributed.                                  for use in e-mail.
+
+
+
+
+Palme                                                           [Page 7]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+Fax number of the originator.        Fax:,           Non-standard.
+                                     Telefax:
+
+
+Phone number of the originator.      Phone:          Non-standard.
+
+Information about the client         Mail-System-    Non-standard.
+software of the originator.          Version:,
+                                     Mailer:,
+                                     Originating-
+                                     Client:, X-
+                                     Mailer, X-
+                                     Newsreader
+
+3.5 Response control
+
+This header is meant to indicate     Reply-To:       RFC 822: 4.4.3,
+where the sender wants replies to                    RFC 1036: 2.2.1
+go. Unfortunately, this is                           controversial.
+ambiguous, since there are
+different kinds of replies, which
+the sender may wish to go to
+different addresses. In
+particular, there are personal
+replies intended for only one
+person, and group replies,
+intended for the whole group of
+people who read the replied-to
+message (often a mailing list).
+
+Some mail systems use this header
+to indicate a better form of the
+e-mail address of the sender.
+Some mailing list expanders puts
+the name of the list in this
+header. These practices are
+controversial. The personal
+opinion of the author of this RFC
+is that this header should be
+avoided except in special cases,
+but this is a personal opinion
+not shared by all specialists in
+the area.
+
+Used in Usenet News to indicate      Followup-To:    RFC 1036: 2.2.3,
+that future discussions (=follow-                    not standardized
+up) on an article should go to a                     for use in e-mail.
+different set of newsgroups than
+the replied-to article. The most
+common usage is when an article
+is posted to several newsgroups,
+and further discussions is to
+take place in only one of them.
+
+Palme                                                           [Page 8]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+In e-mail, this header is used in
+a message which is sent to both e-
+mail and Usenet News, to show
+where follow-up in Usenet news is
+wanted. The header does not say
+anything about where follow-up in
+e-mail is to be sent.
+
+Note that the value of this
+header must always be one or more
+newsgroup names, never e-mail
+addresses.
+
+Address to which notifications       Errors-To:,     Non-standard,
+are to be sent and a request to      Return-         discouraged.
+get delivery notifications.          Receipt-To:
+Internet standards recommend,
+however, the use of RCPT TO and
+Return-Path, not Errors-To, for
+where delivery notifications are
+to be sent.
+
+Whether non-delivery report is       Prevent-        RFC 1327, not for
+wanted at delivery error. Default    NonDelivery-    general usage.
+is to want such a report.            Report:
+
+Whether a delivery report is         Generate-       RFC 1327, not for
+wanted at successful delivery.       Delivery-       general usage.
+Default is not to generate such a    Report:
+report.
+
+Indicates whether the content of     Content-        RFC 1327, not for
+a message is to be returned with     Return:         general usage.
+non-delivery notifications.
+
+3.6 Message identification and
+referral headers
+
+Unique ID of this message.           Message-ID:     RFC 822: 4.6.1
+                                                     RFC 1036: 2.1.5.
+
+Unique ID of one body part of the    Content-ID:     RFC 1521: 6.1.
+content of a message.
+
+Reference to message which this      In-Reply-To:    RFC 822: 4.6.2.
+message is a reply to.
+
+Reference to other related           References:     RFC 822: 4.6.3
+messages.                                            RFC 1036: 2.1.5.
+
+Reference to previous message        Obsoletes:      RFC 1327, not for
+being corrected and replaced.                        general usage.
+Compare to "Supersedes:" below.
+
+
+Palme                                                           [Page 9]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+Commonly used in Usenet News in      Supersedes:     Non-standard.
+similar ways to the "Obsoletes"
+header described above. In Usenet
+News, however, Supersedes causes
+a full deletion of the replaced
+message in the server, while
+Obsoletes is implemented in the
+client and often does not remove
+the old version of the text.
+
+3.7 Other textual headers
+
+Search keys for data base            Keywords:       RFC 822: 4.7.1
+retrieval.                                           RFC 1036: 2.2.9.
+
+Title, heading, subject. Often       Subject:        RFC 822: 4.7.1
+used as thread indicator for                         RFC 1036: 2.1.4.
+messages replying to or
+commenting on other messages.
+
+Comments on a message.               Comments:       RFC 822: 4.7.2.
+
+Description of a particular body     Content-        RFC 1521: 6.2.
+part of a message.                   Description:
+
+Organization to which the sender     Organization:   RFC 1036: 2.2.8,
+of this message belongs.                             not standardized
+                                                     for use in e-mail.
+
+See Organization above.              Organisation:   Non-standard.
+
+Short text describing a longer       Summary:        RFC 1036: 2.2.10,
+message. Warning: Some mail                          not standardized
+systems will not display this                        for use in e-mail,
+text to the recipient. Because of                    discouraged.
+this, do not use this header for
+text which you want to ensure
+that the recipient gets.
+
+A text string which identifies       Content-        RFC 1327, not for
+the content of a message.            Identifier:     general usage.
+
+3.8 Headers containing dates and
+times
+
+The time when a message was          Delivery-       RFC 1327, not for
+delivered to its recipient.          Date:           general usage.
+
+In Internet, the date when a         Date:           RFC 822: 5.1,
+message was written, in X.400,                       RFC 1123: 5.2.14
+the time a message was submitted.                    RFC 1036: 2.1.2.
+Some Internet mail systems also
+use the date when the message was
+submitted.
+
+Palme                                                          [Page 10]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+A suggested expiration date. Can     Expires:        RFC 1036: 2.2.4,
+be used both to limit the time of                    not standardized
+an article which is not                              for use in e-mail.
+meaningful after a certain date,
+and to extend the storage of
+important articles.
+
+Time at which a message loses its    Expiry-Date:    RFC 1327, not for
+validity.                                            general usage.
+
+Latest time at which a reply is      Reply-By:       RFC 1327, not for
+requested (not demanded).                            general usage.
+
+3.9 Quality information
+
+Can be "normal", "urgent" or "non-   Priority:       RFC 1327, not for
+urgent" and can influence                            general usage.
+transmission speed and delivery.
+
+Sometimes used as a priority         Precedence:     Non-standard,
+value which can influence                            controversial,
+transmission speed and delivery.                     discouraged.
+Common values are "bulk" and
+"first-class". Other uses is to
+control automatic replies and to
+control return-of-content
+facilities, and to stop mailing
+list loops.
+
+A hint from the originator to the    Importance:     RFC 1327, not for
+recipients about how important a                     general usage.
+message is. Values: High, normal
+or low. Not used to control
+transmission speed.
+
+How sensitive it is to disclose      Sensitivity:    RFC 1327, not for
+this message to other people than                    general usage.
+the specified recipients. Values:
+Personal, private, company
+confidential. The absence of this
+header in messages gatewayed from
+X.400 indicates that the message
+is not sensitive.
+
+Body parts are missing.              Incomplete-     RFC 1327, not for
+                                     Copy:           general usage.
+
+3.10 Language information
+
+Can include a code for the           Language:       RFC 1327, not for
+natural language used in a                           general usage.
+message, e.g. "en" for English.
+
+
+
+Palme                                                          [Page 11]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+Can include a code for the           Content-        RFC 1766, proposed
+natural language used in a           Language:       standard.
+message, e.g. "en" for English.
+
+3.11 Size information
+
+Inserted by certain mailers to       Content-        Non-standard,
+indicate the size in bytes of the    Length:         discouraged.
+message text. This is part of a
+format some mailers use when
+showing a message to its users,
+and this header should not be
+used when sending a message
+through the net. The use of this
+header in transmission of a
+message can cause several
+robustness and interoperability
+problems.
+
+Size of the message.                 Lines:          RFC 1036: 2.2.12,
+                                                     not standardized
+                                                     for use in e-mail.
+
+3.12 Conversion control
+
+The body of this message may not     Conversion:     RFC 1327, not for
+be converted from one character                      general usage.
+set to another. Values:
+Prohibited and allowed.
+
+Non-standard variant of              Content-        Non-standard.
+Conversion: with the same values.    Conversion:
+
+The body of this message may not     Conversion-     RFC 1327, not for
+be converted from one character      With-Loss:      general usage.
+set to another if information
+will be lost. Values: Prohibited
+and allowed.
+
+3.13 Encoding information
+
+Format of content (character set     Content-Type:   RFC 1049,
+etc.) Note that the values for                       RFC 1123: 5.2.13,
+this header are defined in                           RFC 1521: 4.
+different ways in RFC 1049 and in
+MIME (RFC 1521), look for the
+"MIME-version" header to
+understand if Content-Type is to
+be interpreted according to RFC
+1049 or according to MIME. The
+MIME definition should be used in
+generating mail.
+
+
+
+Palme                                                          [Page 12]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+Coding method used in a MIME         Content-        RFC 1521: 5.
+message body.                        Transfer-
+                                     Encoding:
+
+Only used with the value             Message-Type:   RFC 1327, not for
+"Delivery Report" to indicates                       general usage.
+that this is a delivery report
+gatewayed from X.400.
+
+Used in several different ways by    Encoding:       RFC 1154,
+different mail systems. Some use                     RFC 1505,
+it for a kind of content-type                        experimental.
+information, some for encoding
+and length information, some for
+a kind of boundary information,
+some in other ways.
+
+3.14 Resent-headers
+
+When manually forwarding a           Resent-Reply-   RFC 822: C.3.3.
+message, headers referring to the    To:,
+forwarding, not to the original      Resent-From:,
+message.  Note: MIME specifies       Resent-
+another way of resending             Sender:,
+messages, using the "Message"        Resent-From:,
+Content-Type.                        Resent-Date:,
+                                     Resent-To:,
+                                     Resent-cc:,
+                                     Resent-bcc:,
+                                     Resent-
+                                     Message-ID:
+
+3.15 Security and reliability
+
+Checksum of content to ensure        Content-MD5:    RFC 1864, proposed
+that it has not been modified.                       standard.
+
+3.16 Miscellaneous
+
+Name of file in which a copy of      Fcc:            Non-standard.
+this message is stored.
+
+Has been automatically forwarded.    Auto-           RFC 1327, not for
+                                     Forwarded:      general usage.
+
+Can be used in Internet mail to      Discarded-      RFC 1327, not for
+indicate X.400 IPM extensions        X400-IPMS-      general usage.
+which could not be mapped to         Extensions:
+Internet mail format.
+
+Can be used in Internet mail to      Discarded-      RFC 1327, not for
+indicate X.400 MTS extensions        X400-MTS-       general usage.
+which could not be mapped to         Extensions:
+Internet mail format.
+
+Palme                                                          [Page 13]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+
+                          4. Acknowledgments
+
+Harald Tveit Alvestrand, Ned Freed, Olle Järnefors, Keith Moore, Nick
+Smith and several other people have helped me with compiling this list.
+I especially thank Ned Freed and Olle Järnefors for their thorough
+review and many helpful suggestions for improvements. I alone take
+responsibility for any errors which may still be in the list.
+
+An earlier version of this list has been published as part of [13].
+
+
+
+                            5. References
+
+Ref.    Author, title                                    IETF status
+                                                         (May 1996)
+-----   ---------------------------------------------    -----------
+[1]     J. Postel: "Simple Mail Transfer Protocol",      Standard,
+        STD 10, RFC 821, August 1982.                    Recommended
+
+[2]     D. Crocker: "Standard for the format of ARPA     Standard,
+        Internet text messages." STD 11, RFC 822,        Recommended
+        August 1982.
+
+[3]     M.R. Horton, R. Adams: "Standard for             Not an offi-
+        interchange of USENET messages", RFC 1036,       cial IETF
+        December 1987.                                   standard,
+                                                         but in
+                                                         reality a de-
+                                                         facto
+                                                         standard for
+                                                         Usenet News
+
+[4]     M. Sirbu: "A Content-Type header header for      Standard,
+        internet messages", RFC 1049, March 1988.        Recommended,
+                                                         but can in
+                                                         the future
+                                                         be expected
+                                                         to be
+                                                         replaced by
+                                                         MIME
+
+[5]     R. Braden (editor): "Requirements for            Standard,
+        Internet Hosts -- Application and Support",      Required
+        STD-3, RFC 1123, October 1989.
+
+[6]     D. Robinson, R. Ullman: "Encoding Header         Non-standard
+        Header for Internet Messages", RFC 1154,
+        April 1990.
+
+
+
+
+
+Palme                                                          [Page 14]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+[7]     S. Hardcastle-Kille: "Mapping between            Proposed
+        X.400(1988) / ISO 10021 and RFC 822",  RFC       standard,
+        1327 May 1992.                                   elective
+
+[8]     H. Alvestrand & J. Romaguera: "Rules for         Proposed
+        Downgrading Messages from X.400/88 to            standard,
+        X.400/84 When MIME Content-Types are Present     elective
+        in the Messages", RFC 1496, August 1993.
+
+[9]     A. Costanzo: "Encoding Header Header for         Non-standard
+        Internet Messages", RFC 1154, April 1990.
+
+[10]    A. Costanzo, D. Robinson: "Encoding Header       Experimental
+        Header for Internet Messages", RFC 1505,
+        August 1993.
+
+[11]    N. Borenstein & N. Freed: "MIME (Multipurpose    Draft
+        Internet Mail Extensions) Part One:              Standard,
+        Mechanisms for Specifying and Describing the     elective
+        Format of Internet Message Bodies", RFC 1521,
+        Sept 1993.
+
+[12]    H. Alvestrand: "Tags for the Identification      Proposed
+        of Languages", RFC 1766, February 1995.          standard,
+                                                         elective
+
+[13]    J. Palme: "Electronic Mail", Artech House        Non-standard
+        publishers, London-Boston January 1995.
+
+[14]    R. Troost, S. Dorner: "Communicating             Experimental
+        Presentation Information in Internet
+        Messages: The Content-Disposition Header",
+        RFC 1806, June 1995.
+
+[15]    B. Kantor, P. Lapsley, "Network News Transfer    Proposed
+        Protocol: "A Proposed Standard for the Stream-   standard
+        Based Transmission of News", RFC 977, January
+        1986.
+[16]    1848  PS   S. Crocker, N. Freed, J. Galvin,      Proposed
+        S. Murphy, "MIME Object Security Services",      standard
+        RFC 1848, March 1995.
+
+[17]    J. Myers, M. Rose: The Content-MD5 Header        Draft
+        Header, RFC 1864, October 1995.                  standard
+
+[18]    M. Horton, UUCP mail interchange format          Not an offi-
+        standard, RFC 976, Januari 1986.                 cial IETF
+                                                         standard,
+                                                         but in
+                                                         reality a de-
+                                                         facto
+                                                         standard for
+                                                         Usenet News
+
+
+Palme                                                          [Page 15]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+[19]    T. Berners-Lee, R. Headering, H. Frystyk:        IETF draft
+        Hypertext Transfer Protocol -- HTTP/1.0,
+        draft-ietf-http-v10-spec-04.txt.
+
+
+
+                          6. Author's address
+
+Jacob Palme                          Phone: +46-8-16 16 67
+Stockholm University/KTH             Fax: +46-8-783 08 29
+Electrum 230                         E-mail: jpalme@dsv.su.se
+S-164 40 Kista, Sweden
+
+
+
+
+                             Appendix A:
+Headers sorted by Internet RFC document in which they appear.
+
+
+RFC 822
+-------
+
+bcc
+cc
+Comments
+Date
+From
+In-Reply-To
+Keywords
+Message-ID
+Received
+References
+Reply-To
+Resent-
+Resent-bcc
+Resent-cc
+Resent-Date
+Resent-From
+Resent-From
+Resent-Message-ID
+Resent-Reply-To
+Resent-To
+Return-Path
+Sender
+Sender
+Subject
+To
+
+
+
+
+
+
+
+Palme                                                          [Page 16]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+RFC 1036
+--------
+
+Approved
+Control
+Distribution
+Expires
+Followup-To
+Lines
+Newsgroups
+Organization
+Path
+Summary
+
+RFC 1049
+--------
+
+Content-Type
+
+RFC 1327
+--------
+
+Alternate-recipient
+Auto-Forwarded
+Autoforwarded
+Content-Identifier
+Content-Return
+Conversion
+Conversion-With-Loss
+Delivery-Date
+Discarded-X400-IPMS-Extensions
+Discarded-X400-MTS-Extensions
+Disclose-Recipients
+DL-Expansion-History
+Expiry-Date
+Generate-Delivery-Report
+Importance
+Incomplete-Copy
+Language
+Message-Type Delivery
+Obsoletes
+Original-Encoded-Information-Types
+Prevent-NonDelivery-Report
+Priority
+Reply-By
+Report
+Sensitivity
+
+RFC 1505
+--------
+
+Encoding
+
+
+Palme                                                          [Page 17]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+RFC 1521
+--------
+
+Content-Description
+Content-ID
+Content-Transfer-Encoding
+Content-Type
+MIME-Version
+
+RFC 1806
+--------
+
+Content-Disposition
+
+RFC 1864
+--------
+
+Content-MD5
+
+Not Internet standard
+---------------------
+
+Apparently-to
+Content-length
+Encoding
+Errors-To
+Return-Receipt-To
+Fax
+Telefax
+Fcc
+Mail-System-Version
+Mailer
+Organisation
+Originating-Client
+Phone
+Supersedes
+X-Mailer
+X-Newsreader
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Palme                                                          [Page 18]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+                             Appendix B:
+                         Alphabetical index
+
+Section Heading-header
+------- --------------
+
+3.3     Alternate-Recipient
+3.4     Apparently-To
+3.4     Approved
+3.16    Auto-Forwarded
+3.4     bcc
+3.4     cc
+        Client, see Originating-Client
+3.7     Comments
+3.12    Content-Conversion
+3.7     Content-Description
+3.3     Content-Disposition
+3.6     Content-ID
+3.7     Content-Identifier
+3.10    Content-Language see also Language
+3.11    Content-Length
+3.15    Content-MD5
+3.4     Content-Return
+3.13    Content-Transfer-Encoding
+3.13    Content-Type
+3.3     Control
+3.12    Conversion
+3.12    Conversion-With-Loss
+3.8     Date
+3.8     Delivery-Date
+        Delivery-Report, see Generate-Delivery-Report, Prevent-
+        Delivery-Report, Non-Delivery-Report, Content-Type
+        Description, see Content-Description
+3.16    Discarded-X400-IPMS-Extensions
+3.16    Discarded-X400-MTS-Extensions
+3.3     Disclose-Recipients
+        Disposition, see Content-Disposition
+3.4     Distribution
+3.2     DL-Expansion-History-Indication
+3.13    Encoding see also Content-Transfer-Encoding
+3.4     Errors-To
+3.8     Expires
+        Extension see Discarded-X400-IPMS-Extensions, Discarded-
+        X400-MTS-Extensions
+3.4     Fax
+3.16    Fcc
+3.4     Followup-To
+        Forwarded, see Auto-Forwarded
+3.4     From
+3.4     Generate-Delivery-Report
+        History, see DL-Expansion-History-Indication
+        ID, see Content-ID and Message-ID
+        Identifier, see Content-ID and Message-ID
+
+
+Palme                                                          [Page 19]
+\fdraft-ietf-mailext-mail-attributes-04.txt                      May 1996
+
+3.9     Importance
+3.6     In-Reply-To
+3.9     Incomplete-Copy
+3.7     Keywords
+3.10    Language see also Content-Language
+        Length see Content-Length
+3.11    Lines
+3.4     Mail-System-Version see also X-mailer
+3.4     Mailer
+        MD5 see Content-MD5
+3.6     Message-ID
+3.13    Message-Type
+3.3     MIME-Version
+3.4     Newsgroups
+        Newsreader, see X-Newsreader
+3.6     Obsoletes
+3.7     Organisation
+3.7     Organization
+3.3     Original-Encoded-Information-Types
+3.4     Originating-Client
+3.2     Path
+3.4     Phone
+3.9     Precedence
+3.4     Prevent-NonDelivery-Report
+3.9     Priority
+3.2     Received
+        Recipient, see To, cc, bcc, Alternate-Recipient, Disclose-
+        Recipient
+3.6     References
+3.8     Reply-By
+3.4     Reply-To, see also In-Reply-To, References
+3.14    Resent-
+        Return see also Content-Return
+3.2     Return-Path
+3.5     Return-Receipt-To
+3.4     Sender
+3.9     Sensitivity
+3.7     Subject
+3.7     Summary
+3.6     Supersedes
+3.4     Telefax
+3.4     To
+        Transfer-Encoding see Content-Transfer-Encoding
+        Type see Content-Type, Message-Type, Original-Encoded-
+        Information-Types
+        Version, see MIME-Version, X-Mailer
+3.4     X-Mailer see also Mail-System-Version
+3.4     X-Newsreader
+
+
+
+
+
+
+Palme                                                          [Page 20]
diff --git a/reports/rfc/draft-ietf-ssh-handbook-03.txt b/reports/rfc/draft-ietf-ssh-handbook-03.txt
new file mode 100644 (file)
index 0000000..5fb846c
--- /dev/null
@@ -0,0 +1,5334 @@
+
+Internet Draft                                             Barbara Fraser
+Network Working Group                                             SEI/CMU
+Expires in six months                                             Editor
+                                                               June 1996
+
+
+                         Site Security Handbook
+                     <draft-ietf-ssh-handbook-03.txt>
+
+Status of this Memo
+
+
+   This document is an Internet-Draft.  Internet-Drafts are working
+   documents of the Internet Engineering Task Force (IETF), its areas,
+   and its working groups.  Note that other groups may also distribute
+   working documents as Internet-Drafts.
+
+   Internet-Drafts are draft documents valid for a maximum of six months
+   and may be updated, replaced, or obsoleted by other documents at any
+   time.  It is inappropriate to use Internet- Drafts as reference
+   material or to cite them other than as ``work in progress.''
+
+   To learn the current status of any Internet-Draft, please check the
+   ``1id-abstracts.txt'' listing contained in the Internet- Drafts
+   Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
+   munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
+   ftp.isi.edu (US West Coast).
+
+Table of Contents
+
+1.   Introduction....................................................  2
+1.1  Purpose of this Work............................................  2
+1.2  Audience........................................................  2
+1.3  Definitions.....................................................  3
+1.4  Related Work....................................................  3
+1.5  Basic Approach..................................................  3
+1.6  Risk Assessment.................................................  4
+2.   Security Policies...............................................  5
+2.1  What is a Computer Security Policy and Why Have One?............  5
+2.2  What Makes a Good Computer Security Policy?.....................  7
+2.3  Keeping the Policy Flexible.....................................  8
+3.   Architecture....................................................  9
+3.1  Objectives......................................................  9
+3.2  Network and Service Configuration............................... 11
+3.3  Firewalls....................................................... 16
+4.   Security Services and Procedures................................ 19
+4.1  Authentication.................................................. 19
+4.2  Confidentiality................................................. 22
+4.3  Integrity....................................................... 23
+4.4  Authorization................................................... 23
+4.5  Access.......................................................... 24
+4.6  Auditing........................................................ 27
+4.7  Securing Backups................................................ 30
+5.   Security Incident Handling...................................... 30
+5.1  Preparing and Planning for Incident Handling.................... 32
+
+
+
+Site Security Working Group                                     [Page 1]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+5.2  Notification and Points of Contact.............................. 34
+5.3  Identifying an Incident......................................... 40
+5.4  Handling an Incident............................................ 42
+5.5  Aftermath of an Incident........................................ 47
+5.6  Responsibilities................................................ 48
+6.   Ongoing Activities.............................................. 49
+7.   Tools and Locations............................................. 49
+8.   Mailing Lists and Other Resources............................... 51
+9.   References...................................................... 53
+10.  Annotated Bibliography.......................................... 62
+
+1.  INTRODUCTION
+
+   This document provides guidance to system and network administrators
+   on how to address security issues within the Internet community.  It
+   builds on the foundation provided in RFC 1244 and is the collective
+   work of a number of contributing authors. Those authors include:
+   Jules P. Aronson, Nevil Brownlee, Frank Byrum, Joao Nuno Ferreira,
+   Erik Guttman, Klaus-Peter Kossakowski, Edward.P.Lewis, Gary Malkin,
+   Russ Mundy, Philip J. Nesser, and Michael S. Ramsey.
+
+   A special thank you goes to Joyce Reynolds, ISI, and Paul Holbrook,
+   CICnet, for their vision, leadership, and effort in the creation of
+   the first version of this handbook. It is the working group's sincere
+   hope that this version will be as helpful to the community as the
+   earlier one was.
+
+1.1  Purpose of this Work
+
+   This handbook is a guide to setting computer security policies and
+   procedures for sites that have systems on the Internet.  This guide
+   lists issues and factors that a site must consider when setting their
+   own policies.  It makes some recommendations and provides discussions
+   of relevant areas.
+
+   This guide is only a framework for setting security policies and
+   procedures.  In order to have an effective set of policies and
+   procedures, a site will have to make many decisions, gain agreement,
+   and then communicate and implement the policies.
+
+1.2  Audience
+
+   The audience for this document are system and network administrators,
+   and decision makers (typically "middle management") at sites.  For
+   brevity, we will use the term "administrator" throughout this
+   document to refer to system and network administrators.
+
+   This document is not directed at programmers or those trying to
+   create secure programs or systems.  The focus of this document is on
+   the policies and procedures that need to be in place to support any
+   technical security features that a site may be implementing.
+
+   The primary audience for this work are sites that are members of the
+   Internet community.  However, this document should be useful to any
+
+
+
+Site Security Working Group                                     [Page 2]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   site that allows communication with other sites.  As a general guide
+   to security policies, this document may also be useful to sites with
+   isolated systems.
+
+1.3  Definitions
+
+   For the purposes of this guide, a "site" is any organization that
+   owns computers or network-related resources.  These resources may
+   include host computers that users use, routers, terminal servers,
+   PC's or other devices that have access to the Internet.  A site may
+   be an end user of Internet services or a service provider such as a
+   mid-level network.  However, most of the focus of this guide is on
+   those end users of Internet services.  We assume that the site has
+   the ability to set policies and procedures for itself with the
+   concurrence and support from those who actually own the resources.
+
+   The "Internet" is that set of networks and machines which use the
+   TCP/IP protocol suite, connect through gateways, and share common
+   name and address spaces [1].
+
+   The term "administrator" is used to cover all those people who are
+   responsible for the day-to-day operation of system and network
+   resources.  This may be a number of individuals or an organization.
+
+   The term "decision maker" refers to those people at a site who set or
+   approve policy.  These are often (but not always) the people who own
+   the resources.
+
+1.4  Related Work
+
+   The IETF Guidelines for Security Incident Response Working Group
+   (GRIP) is developing a document for security incident response teams.
+   That document provides additional guidance to those organizations
+   planning to develop their own computer security incident response
+   team (CSIRT), including a template that is useful to CSIRTs when
+   describing their policies and services.
+
+   The Site Security Handbook Working Group is working on a User's Guide
+   to Internet Security. It will provide practical guidance to end users
+   to help them protect their information and the resources they use.
+
+1.5  Basic Approach
+
+   This guide is written to provide basic guidance in developing a
+   security plan for your site.  One generally accepted approach to
+   follow is suggested by Fites, et. al. [ref] and includes the
+   following steps:
+
+   (1)  Identify what you are trying to protect
+   (2)  Determine what you are trying to protect it from
+   (3)  Determine how likely the threats are
+   (4)  Implement measures which will protect your assets in a cost-
+        effective manner.
+   (5)  Review the process continuously and make improvements each time
+
+
+
+Site Security Working Group                                     [Page 3]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+        a weakness is found.
+
+
+   Most of this document is focused on item 4 above, but the other steps
+   cannot be avoided if an effective plan is to be established at your
+   site.  One old truism in security is that the cost of protecting
+   yourself against a threat should be less than the cost of recovering
+   if the threat were to strike you.  Without reasonable knowledge of
+   what you are protecting and what the likely threats are, following
+   this rule could be difficult.
+
+1.6  Risk Assessment
+
+1.6.1  General Discussion
+
+   One of the most important reasons for creating a computer security
+   policy is to ensure that efforts spent on security yield cost
+   effective benefits.  Although this may seem obvious, it is possible
+   to be mislead about where the effort is needed.  As an example, there
+   is a great deal of publicity about intruders on computers systems;
+   yet most surveys of computer security show that, for most
+   organizations, the actual loss from "insiders" is much greater.
+
+   Risk analysis involves determining what you need to protect, what you
+   need to protect it from, and how to protect it.  It is the process of
+   examining all of your risks, then ranking those risks by level of
+   severity.  This process involves making cost-effective decisions on
+   what you want to protect.  As mentioned above, you should probably
+   not spend more to protect something than it is actually worth.
+
+   A full treatment of risk analysis is outside the scope of this
+   document.  [3, FITES] and [16, PFLEEGER] provide introductions to
+   this topic.  However, there are two elements of a risk analysis that
+   will be briefly covered in the next two sections:
+
+   (1) Identifying the assets
+   (2) Identifying the threats
+
+   For each asset, the basic goals of security are availability,
+   confidentiality, and integrity.  Each threat should be examined with
+   an eye to how the threat could affect these areas.
+
+1.6.2  Identifying the Assets
+
+   One step in a risk analysis is to identify all the things that need
+   to be protected.  Some things are obvious, like valuable proprietary
+   information, intellectual property, and all the various pieces of
+   hardware; but, some are overlooked, such as the people who actually
+   use the systems. The essential point is to list all things that could
+   be affected by a security problem.
+
+   One list of categories is suggested by Pfleeger [16, PFLEEGER, page
+   459]; this list is adapted from that source:
+
+
+
+
+Site Security Working Group                                     [Page 4]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   (1)  Hardware: CPUs, boards, keyboards, terminals,
+        workstations, personal computers, printers, disk
+        drives, communication lines, terminal servers, routers.
+
+   (2)  Software: source programs, object programs,
+        utilities, diagnostic programs, operating systems,
+        communication programs.
+
+   (3)  Data: during execution, stored on-line, archived off-line,
+        backups, audit logs, databases, in transit over
+        communication media.
+
+   (4)  People: users, administrators.
+
+   (5)  Documentation: on programs, hardware, systems, local
+        administrative procedures.
+
+   (6)  Supplies: paper, forms, ribbons, magnetic media.
+
+1.6.3  Identifying the Threats
+
+   Once the assets requiring protection are identified, it is necessary
+   to identify threats to those assests.  The threats can then be
+   examined to determine what potential for loss exists.  It helps to
+   consider from what threats you are trying to protect your assets.
+   The following are classic threats that should be considered.
+   Depending on your site, there will be more specific threats that
+   should be identified and addressed.
+
+   (1)  Unauthorized access to resources and/or information
+   (2)  Disclosure of information
+   (3)  Denial of service
+
+2.   Security Policies
+
+2.1  What is a Computer Security Policy and Why Have One?
+
+   The security-related decisions you make, or fail to make, as network
+   administrator largely determines how secure or insecure your network
+   is, how much functionality your network offers, and how easy your
+   network is to use.  However, you cannot make good decisions about
+   security without first determining what your security goals are.
+   Until you determine what your security goals are, you cannot make
+   effective use of any collection of security tools because you simply
+   will not know what to check for and what restrictions to impose.
+
+   For example, your goals will probably be very different from the
+   goals of a product vendor.  Vendors are trying to make configuration
+   and operation of their products as simple as possible, which implies
+   that the default configurations will often be as open (i.e.,
+   insecure) as possible.  While this does make it easier to install new
+   products, it also leaves access to those systems, and other systems
+   through them, open to any user who wanders by.
+
+
+
+
+Site Security Working Group                                     [Page 5]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   Your goals will be largely determined by the following key tradeoffs:
+
+   (1)  services offered vs. security provided -
+        Each service offered to users carries its own security risks.
+        For some services the risk outweighs the benefit of the service
+        and the administrator may choose to eliminate the service rather
+        than try to secure it.
+
+   (2)  ease of use vs. security -
+        The easiest system to use would allow access to any user and requi=
+re
+        no passwords; that is, there would be no security.  Requiring
+        passwords makes the system a little less convenient, but more secu=
+re.
+        Requiring device-generated one-time passwords makes the system eve=
+n
+        more difficult to use, but much more secure.
+
+   (3)  cost of security vs. risk of loss -
+        There are many different costs to security: monetary (i.e., the
+        cost of purchasing security hardware and software like firewalls
+        and one-time password generators), performance (i.e., encryption
+        and decryption take time), and ease of use (as mentioned above).
+        There are also many levels of risk: loss of privacy (i.e., the
+        reading of information by unauthorized individuals), loss of
+        data (i.e., the corruption or erasure of information), and the
+        loss of service (e.g., the filling of data storage space, usage
+        of computational resources, and denial of network access).  Each
+        type of cost must be weighed against each type of loss.
+
+
+   Your goals should be communicated to all users, operations staff, and
+   managers through a set of security rules, called a "computer security
+   policy."
+
+2.1.1  Definition of a Computer Security Policy
+
+   A computer security policy is a formal statement of the rules by
+   which people who are given access to an organization's technology and
+   information assets must abide.
+
+2.1.2  Purposes of a Computer Security Policy
+
+   The main purpose of a computer security policy is to inform users,
+   staff and managers of their obligatory requirements for protecting
+   technology and information assets.  The policy should specify the
+   mechanisms through which these requirements can be met.  Another
+   purpose is to provide a baseline from which to acquire, configure and
+   audit computer systems and networks for compliance with the policy.
+   Therefore an attempt to use a set of security tools in the absence of
+   at least an implied security policy is meaningless.
+
+   An Appropriate Use Policy (AUP) may also be part of a security
+   policy.  It should spell out what users may and may not do on the
+   various components of the system, including the type of traffic
+   allowed on the networks.  The AUP should be as explicit as possible
+   to avoid ambiguity or misunderstanding.  For example, an AUP might
+
+
+
+Site Security Working Group                                     [Page 6]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   list any prohibited USENET newsgroups.
+
+2.1.3  Who Should be Involved When Forming Policy?
+
+   In order for a security policy to be appropriate and effective, it
+   needs to have the acceptance and support of all levels of employees
+   within the organization.  The following is a list of individuals who
+   should be involved in the creation and review of security policy
+   documents:
+
+   (1)  site security administrator
+   (2)  legal counsel
+   (3)  computing center personnel
+   (4)  administrators of large user groups within the organization
+        (e.g., business divisions, computer science department within a
+        university, etc.)
+   (5)  security incident response team
+   (6)  representatives of the user groups affected by the security policy
+
+   The list of above is representative of many organizations, but is not
+   necessarily comprehensive.  The idea is to bring in representation
+   from key stakeholders, management who have budget and policy
+   authority, technical staff who know what can and cannot be supported,
+   and legal counsel who know the legal ramifications of various policy
+   choices.  In some organizations, it may be appropriate to include
+   audit personnel.  Involving this group is important if resulting
+   policy statements are to reach the broadest possible acceptance.
+
+2.2  What Makes a Good Computer Security Policy?
+
+   The characteristics of a good security policy are:
+
+   (1)  It must be implementable through system administration
+        procedures, publishing of acceptable use guidelines, or other
+        appropriate methods.
+
+   (2)  It must be enforcible with security tools, where appropriate,
+        and with sanctions, where actual prevention is not technically
+        feasible.
+
+   (3)  It must clearly define the areas of responsibility for the
+        users, staff, and administrators.
+
+   The components of a good security policy include:
+
+   (1)  Computer Technology Purchasing Guidelines which specify required,
+        or preferred, security features.  These should supplement existing
+        purchasing policies and guidelines.
+
+   (2)  A Privacy Policy which defines reasonable expectations of privacy
+        regarding such issues as monitoring of electronic mail, logging of
+        keystrokes, and access to users' files.
+
+   (3)  An Access Policy which defines access rights and privileges to
+
+
+
+Site Security Working Group                                     [Page 7]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+        protect assets from loss or disclosure by specifying acceptable us=
+e
+        guidelines for users, operations staff, and management.  It should
+        provide guidelines for external connections, data communications,
+        connecting devices to a network, and adding new software to
+        systems.  It should also specify any required notification message=
+s
+        (e.g., connect messages should provide warnings about authorized
+        usage and line monitoring, and not simply say "Welcome").
+
+   (4)  An Accountability Policy which defines the responsibilities of use=
+rs,
+        operations staff, and management.  It should specify an audit
+        capability, and provide incident handling guidelines (i.e., what t=
+o
+        do and who to contact if a possible intrusion is detected).
+
+   (5)  An Authentication Policy which establishes trust through an effect=
+ive
+        password policy, and by setting guidelines for remote location
+        authentication and the use of authentication devices (e.g., one-ti=
+me
+        passwords and the devices that generate them).
+
+   (6)  An Availability statement which sets users' expectations for the
+        availability of resources.  It should address redundancy and recov=
+ery
+        issues, as well as specify operating hours and maintenance down-ti=
+me
+        periods.  It should also include contact information for reporting
+        system and network failures.
+
+   (7)  A Violations Reporting Policy that indicates which types of
+        violations (e.g., privacy and security, internal and external)
+        must be reported and to whom the reports are made.  A
+        non-threatening atmosphere and the possibility of anonymous report=
+ing
+        will result in a greater probability that a violation will be
+        reported if it is detected.
+
+   (8)  Supporting Information which provides users, staff, and management
+        with contact information for each type of policy violation;
+        guidelines on how to handle outside queries about a security incid=
+ent,
+        or information which may be considered confidential or proprietary=
+;
+        and cross-references to security procedures and related informatio=
+n,
+        such as company policies and regulatory requirements (federal, sta=
+te,
+        and local).
+
+   There may be regulatory requirements that affect some aspects of your
+   security policy (e.g., line monitoring).  The creators of the
+   security policy should consider seeking legal assistance in the
+   creation of the policy.  At a minimum, the policy should be reviewed
+   by legal counsel.
+
+   Once your computer security policy has been established it should be
+   clearly communicated to users, staff, and management.  Having all
+   personnel sign a statement indicating that they have read,
+   understood, and agreed to abide by the policy is an important part of
+   the process.  Finally, your policy should be reviewed on a regular
+   basis to see if it is successfully supporting your security needs.
+
+2.3  Keeping the Policy Flexible
+
+
+
+
+Site Security Working Group                                     [Page 8]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   In order for a security policy to be viable for the long term, it
+   requires a lot of flexibility.  The mechanisms for updating the
+   policy should be clearly spelled out.  This includes the process, the
+   people involved, and the people who must sign-off on the changes.
+
+   It is also important to recognize that there are exceptions to every
+   rule.  Whenever possible, the policy should spell out what exceptions
+   to the general policy exist.  For example, under what conditions is a
+   system administrator allowed to go through a user's files.  Also,
+   there may be some cases when multiple users will have access to the
+   same userid.  For example, on systems with a "root" user, multiple
+   system administrators may know the password and use the root account.
+
+   Another consideration is called the "Garbage Truck Syndrome."  This
+   refers to what would happen to a site if a key person was suddenly
+   unavailable for his/her job function (e.g., was suddenly ill or left
+   the company unexpectedly).  While the greatest security resides in
+   the minimum dissemination of information, the risk of losing critical
+   information increases when that information is not shared.  It is
+   necessary to determine what the proper balance is for your site.
+
+3.  Architecture
+
+3.1  Objectives
+
+3.1.1  Completely defined security plans
+
+   Defining a comprehensive security plan should be done by all sites.
+   This plan should be at a higher level than the specific policies
+   discussed in section 2.  It should be crafted as a framework of broad
+   guidelines into which specific policies will fit.
+
+   It is important to have this framework in place so that individual
+   policies can be consistant with the overall site security
+   architecture.  For example, having a strong policy with regard to
+   Internet access and having weak restrictions on modem usage is
+   inconsistent with an overall philosophy of strong security
+   restrictions on external access.
+
+   A security policy should contain, at a minimum: a list of services
+   which are currently, or will be, provided; who will have access to
+   those services; how access will be provided; who will administer
+   those services; etc.  It is also important to define any limitations
+   on which portions of an organization can provide certain services.
+
+   Another aspect of the plan should concern incident handling.  Chapter
+   5 provides an in-depth discussion of responses to incidents, but it
+   is important to define classes of incidents and define responses to
+   each class of incident.  For sites with firewalls, how many attempts
+   to foil the firewall will trigger a response?  Are there levels of
+   escallation in both attacks and responses?  For sites without
+   firewalls, does a single attempt to connect constitute an incident?
+   How about a systematic scan of machines?
+
+
+
+
+Site Security Working Group                                     [Page 9]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   For sites connected to the Internet, the rampant media glorification
+   of Internet related security incidents can overshadow a (potentially)
+   more serious internal security problem.  Likewise, companies who have
+   never been on the Internet before, may have strong, well defined,
+   internal policies but fail to adequately address an external
+   connection policy.
+
+3.1.2  Separation of Services
+
+   There are many services which a site may wish to provide for its
+   users, some of which may be external.  There are a variety of
+   security reasons to attempt to isolate services onto dedicated
+   machines.  There are also performance reasons in most cases, but a
+   detailed discussion is beyond to scope of this document.
+
+   The services which a site may provide will, in most cases, have
+   different levels of access needs and models of trust.  Services which
+   are essential to the security or smooth operation of a site would be
+   better off being placed on a dedicated machine with very limited
+   access (see Section 3.1.3 "deny all" model), rather than on a machine
+   which provides a service (or services) which has traditionally been
+   less secure, or requires greater accessability by users who may
+   accidentally suborn security.
+
+   It is also important to distinguish between machines which operate
+   within different models of trust, i.e., all the machines inside of a
+   firewall and any machines on an exposed network.
+
+   Some of the services which should be examined for potential
+   separation are outlined in section 3.2.3. It is important to try to
+   understand that security is only as strong as the weakest link in the
+   chain.  Several of the most publicized penetrations in recent years
+   has been through the electronic mail systems of machines.  The
+   intruders were not trying to steal electronic mail, but they used the
+   vulnerability in that system to gain access to other systems.
+
+   If possible, each service should be running on a different machine
+   whose only duty is to provide a specific service.  This helps to
+   isolate intruders and limit potential harm.
+
+3.1.3  Deny all/ Allow all
+
+   There are two diametrically opposed underlying philosophies which can
+   be adopted in defining a security plan.  Both alternatives are
+   legitimate models to adopt, depending on the site and its needs for
+   security.
+
+   The first option is to turn off all services and then selectively
+   enable services on a case by case basis, be it at the machine or
+   network level, as they are needed.  This model, which will here after
+   be referred to as the "deny all" model, is generally more secure.
+   More work is required to successfully implement a "deny all"
+   configuration and usually a better understanding of services. Only
+   allowing known services allows a better analysis of a particular
+
+
+
+Site Security Working Group                                    [Page 10]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   service/protocol and the design of a security mechanism suited to the
+   security level of the site.
+
+   The other model, which will here after be referred to as the "allow
+   all" model, is much easier to implement, but is generally less secure
+   than the "deny all" model.  Simply turn on all services, usually the
+   default at the host level, and allow all protocols to travel across
+   network boundaries, usually the default at the router level.  As
+   security holes become apparent, they are patched at either the host
+   or network level.
+
+   Each of these models can be applied to different portions of the
+   site, depending on functionality requirements, administrative
+   control, site policy, etc.  For example, the policy may be to use the
+   "allow all" model when setting up workstations for general use, but
+   adopt a "deny all" model when setting up information servers, like an
+   email hub.  Likewise, an "allow all" policy may be adopted for
+   traffic between LAN's internal to the site, but a "deny all" policy
+   can be adopted between the site and the Internet.
+
+   Be careful when mixing philosophies as in the examples above.  Many
+   sites adopt the M & M theory of a hard "crunchy" shell and a soft
+   "squishy" middle.  They are willing to pay the cost of security for
+   their external traffic and require strong security measures, but are
+   unwilling or unable to provide similar protections internally.  This
+   works fine as long as the outer defenses are never breached and the
+   internal users can be trusted.  Once the outer shell (firewall) is
+   breached, subverting the internal network is trivial.
+
+3.1.4  Identify real needs for services
+
+   There is a large variety of services which may be provided, both
+   internally and on the Internet at large.  Managing security is, in
+   many ways, managing access to services internal to the site and
+   managing how internal users access information at remote sites.
+
+   Services tend to rush like waves over the Internet.  Over the years
+   many sites have established anonymous FTP servers, gopher servers,
+   wais servers, WWW servers, etc. as they became popular, but not
+   particularly needed, at all sites.  Evaluate all new services that
+   are established with a skeptical attitude to determine if they are
+   actually needed or just the current fad sweeping the Internet.
+
+   Bear in mind that security complexity can grow exponentially with the
+   number of services provided.  Filtering routers need to be modified
+   to support the new protocols.  Some protocols are inherently
+   difficult to filter safely (e.g., RPC and UDP services), thus
+   providing more openings to the internal network.  Services provided
+   on the same machine can interact in catastrophic ways.  For example,
+   allowing anonymous FTP on the same machine as the WWW server may
+   allow an intruder to place a file in the anonymous FTP area and cause
+   the HTTP server to execute it.
+
+3.2  Network and Service Configuration
+
+
+
+Site Security Working Group                                    [Page 11]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+3.2.1  Protecting the Infrastructure
+
+   Many network administrators go to great lengths to protect the hosts
+   on their networks.  Few administrators make any effort to protect the
+   networks themselves.  There is some rationale to this.  For example,
+   it is far easier to protect a host than a network.  Also, intruders
+   are likely to be after data on the hosts; damaging the network would
+   not serve their purposes.  That said, there are still reasons to
+   protect the networks.  For example, an intruder might divert network
+   traffic through an outside host in order to examine the data (i.e.,
+   to search for passwords).  Also, infrastructure includes more than
+   the networks and the routers which interconnect them.  Infrastructure
+   also includes network management (e.g., SNMP), services (e.g., DNS,
+   NFS, NTP, WWW), and security (i.e., user authentication and access
+   restrictions).
+
+   The infrastructure also needs protection against human error.  When
+   an administrator misconfigures a host, that host may offer degraded
+   service.  This only affects users who require that host and, unless
+   that host is a primary server, the number of affected users will
+   therefore be limited.  However, if a router is misconfigured, all
+   users who require the network will be affected.  Obviously, this is a
+   far larger number of users than those depending on any one host.
+
+3.2.2  Protecting the Network
+
+   There are several problems to which networks are vulnerable.  The
+   classic is a "denial of service" attack.  In this case, the network
+   is brought to a state in which it can no longer carry legitimate
+   users' data.  There are two common ways this can be done: by
+   attacking the routers and by flooding the network with extraneous
+   traffic.  An attack on the router is designed to cause it to stop
+   forwarding packets, or to forward them improperly.  The former case
+   may be due to a misconfiguration, the injection of a spurious routing
+   update, or a "flood attack" (i.e., the router is bombarded with
+   unroutable packets, causing its performance to degrade).  A flood
+   attack on a network is similar to a flood attack on a router, except
+   that the flood packets are usually broadcast.  An ideal flood attack
+   would be the injection of a single packet which exploits some known
+   flaw in the network nodes and causes them to retransmit the packet,
+   or generate error packets, each of which is picked up and repeated by
+   another host.  A well chosen attack packet can even generate an
+   exponential explosion of transmissions.
+
+   Another classic problem is "spoofing."  In this case, spurious
+   routing updates are sent to one or more routers causing them to
+   misroute packets.  This differs from a denial of service attack only
+   in the purpose behind the spurious route.  In denial of service, the
+   object is to make the router unusable; a state which will be quickly
+   detected by network users.  In spoofing, the spurious route will
+   cause packets to be routed to a host from which an intruder may
+   monitor the data in the packets.  These packets are then re-routed to
+   their correct destinations.  However, the intruder may or may not
+   have altered the contents of the packets.
+
+
+
+Site Security Working Group                                    [Page 12]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   The solution to most of these problems is to protect the routing
+   update packets sent by the routing protocols in use (e.g., RIP-2,
+   OSPF).  There are three levels of protection: clear-text password,
+   cryptographic checksum, and encryption.  Passwords offer only minimal
+   protection against intruders who do not have direct access to the
+   physical networks.  Passwords also offer some protection against
+   misconfigured routers (i.e, routers which, out of the box, attempt to
+   route packets).  The advantage of passwords is that they have a very
+   low overhead, in both bandwidth and CPU consumption.  Checksums
+   protect against the injection of spurious packets, even if the
+   intruder has direct access to the physical network.  Combined with a
+   sequence number, or other unique identifier, a checksum can also
+   protect again "replay" attacks, wherein an old (but valid at the
+   time) routing update is retransmitted by either an intruder or a
+   misbehaving router.  The most security is provided by complete
+   encryption of sequenced, or uniquely identified, routing updates.
+   This prevents an intruder from determining the topology of the
+   network.  The disadvantage to encryption is the overhead involved in
+   processing the updates.
+
+   RIP-2 (RFC 1723) and OSPF (RFC 1583) both support clear-text
+   passwords in their base design specifications.  In addition, there
+   are extensions to each base protocol to support MD5 encryption.
+
+   Unfortunately, there is no adequate protection against a flooding
+   attack, or a misbehaving host or router which is flooding the
+   network.  Fortunately, this type of attack is obvious when it occurs
+   and can usually be terminated relatively simply.
+
+3.2.3  Protecting the Services
+
+   There are many types of services and each has its own security
+   requirements.  These requirements will vary based on the intended use
+   of the service.  For example, a service which should only be usable
+   within a site (e.g., NFS) may require different protection mechanisms
+   than a service provided for external use. It may be sufficient to
+   protect the internal server from external access.  However, a WWW
+   server, which provides a home page intended for viewing by users
+   anywhere on the Internet, requires built-in protection.  That is, the
+   service/protocol/server must provide whatever security may be
+   required to prevent unauthorized access and modification of the Web
+   database.
+
+   Internal services (i.e., services meant to be used only by users
+   within a site) and external services (i.e., services deliberately
+   made available to users outside a site) will, in general, have
+   protection requirements which differ as previously described.  It is
+   therefore wise to isolate the internal services to one set of server
+   machines and the external services to another set of server machines.
+   That is, internal and external servers should not be co-located.  In
+   fact, many sites go so far as to have one set of subnets (or even
+   different networks) which are accessible from the outside and another
+   set which may be accessed only within the site.  Of course, there is
+   usually a firewall which connects these partitions.  Great care must
+
+
+
+Site Security Working Group                                    [Page 13]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   be taken to ensure that such a firewall is operating properly.
+
+   One form of external service deserves some special consideration, and
+   that is anonymous, or guest, access.  This may be either anonymous
+   FTP or guest (unauthenticated) login.  It is extremely important to
+   ensure that anonymous FTP servers and guest login userids are
+   carefully isolated from any hosts and file systems from which outside
+   users should be kept.  Another area to which special attention must
+   be paid concerns anonymous, writable access.  A site may be legally
+   responsible for the content of publicly available information, so
+   careful monitoring of the information deposited by anonymous users is
+   advised.
+
+   Now we shall consider some of the most popular services: name
+   service, password/key service, authentication/proxy service,
+   electronic mail, WWW, file transfer, and NFS.  Since these are the
+   most frequently used services, they are the most obvious points of
+   attack.  Also, a successful attack on one of these services can
+   produce disaster all out of proportion to the innocence of the basic
+   service.
+
+3.2.3.1 Name Servers (DNS and NIS(+))
+
+   The Internet uses the Domain Name System (DNS) to perform address
+   resolution for host and network names.  The Network Information
+   Service (NIS) and NIS+ are not used on the global Internet, but are
+   subject to the same risks as a DNS server.  Name-to-address
+   resolution is critical to the secure operation of any network.  An
+   attacker who can successfully control or impersonate a DNS server can
+   re-route traffic to subvert security protections.  For example,
+   routine traffic can be diverted to a compromised system to be
+   monitored; or, users can be tricked into providing authentication
+   secrets.  An organization should create well known, protected sites
+   to act as secondary name servers and protect their DNS masters from
+   denial of service attacks using filtering routers.
+
+3.2.3.2 Password/Key Servers (NIS(+) and KDC)
+
+   Password and key servers generally protect their vital information
+   (i.e., the passwords and keys) with encryption algorithms.  However,
+   even a one-way encrypted password can be determined by a dictionary
+   attack (wherein common words are encrypted to see if they match the
+   stored encryption).  It is therefore necessary to ensure that these
+   servers are not accessable by hosts which do not plan to use them for
+   the service, and even those hosts should only be able to access the
+   service (i.e., general services, such as Telnet and FTP, should not
+   be allowed by anyone other than administrators).
+
+3.2.3.3 Authentication/Proxy Servers (SOCKS, FWTK)
+
+   A proxy server provides a number of security enhancements.  It allows
+   sites to concentrate services through a specific host to allow
+   monitoring, hiding of internal structure, etc.  This funnelling of
+   services creates an attractive target for a potential intruder.  The
+
+
+
+Site Security Working Group                                    [Page 14]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   type of protection required for a proxy server depends greatly on the
+   proxy protocol in use and the services being proxied.  The general
+   rule of limiting access only to those hosts which need the services,
+   and limiting access by those hosts to only those services, is a good
+   starting point.
+
+3.2.3.4 Electronic Mail
+
+   Electronic mail (email) systems have long been a source for intruder
+   break-ins because email protocols are among the oldest and most
+   widely deployed services.  Also, by it's very nature, an email server
+   requires access to the outside world; most email servers accept input
+   from any source.  An email server generally consists of two parts: a
+   receiving/sending agent and a processing agent.  Since email is
+   delivered to all users, and is usually private, the processing agent
+   typically requires system (root) privileges to deliver the mail.
+   Most email implementations perform both portions of the service,
+   which means the receiving agent also has system privileges.  This
+   opens several security holes which this document will not describe.
+   There are some implementations available which allow a separation of
+   the two agents.  Such implementations are generally considered more
+   secure, but still require careful installation to avoid creating a
+   security problem.
+
+3.2.3.5 World Wide Web (WWW)
+
+   The Web is growing in popularity exponentially because of its ease of
+   use and the powerful abilities to concentrate information services.
+   Most WWW servers take some directions and actions from the persons
+   accessing their services.  The most common example is taking a
+   request from a remote user and passing the provided information to a
+   program running on the server to process the request.  Some of these
+   programs are not written with security in mind and can create
+   security holes.  If a Web server is available to the Internet
+   community, it is especially important that confidential information
+   not be co-located on the same host as the server.  In fact, it is
+   recommended that the server have a dedicated host which is not
+   "trusted" by other internal hosts.  It may be co-located with an
+   anonymous FTP server, since both protocols share common security
+   considerations.
+
+3.2.3.6 File Transfer (FTP, TFTP)
+
+   FTP and TFTP both allow users to receive and send electronic files in
+   a point-to-point manner.  However, FTP requires authentication while
+   TFTP requires none. For this reason, TFTP should be avoided as much
+   as possible.
+
+   Improperly configured FTP servers can allow intruders to copy,
+   replace and delete files at will, anywhere on a host, so it is very
+   important to configure this service correctly.   Access to encrypted
+   passwords and proprietary data, and the introduction of trojan horses
+   are just a few of the potential security holes that can occur when
+   the service is configured incorrectly. FTP servers should reside on
+
+
+
+Site Security Working Group                                    [Page 15]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   their own host, or perhaps be co-located with a Web server, since the
+   two protocols share common security considerations. As mentioned in
+   the opening paragraphs of section 3.2.3, services offered internally
+   to your site should not be co-located with services offered
+   externally. Each should have its own host.
+
+   TFTP does not support the same range of functions and has no security
+   whatsoever.  This service should only be considered for internal use,
+   and then it should be configured in a restricted way so that the
+   server only has access to a set of predetermined files (instead of
+   every world-readable file on the system).  Probably the most common
+   usage of TFTP is for downloading router configuration files to a
+   router.  TFTP should reside on its own host, and should not be
+   installed on hosts supporting external FTP or Web access.
+
+3.2.3.7 NFS
+
+   The Network File Service allows hosts to share common disks.  NFS is
+   most frequently used by diskless hosts who depend on a disk server
+   for all of their storage needs.  Unfortunately, NFS has no built-in
+   security.  It is therefore necessary that the NFS server be
+   accessable only by those hosts which are using it for service.  It is
+   especially important that external hosts be unable to reach the NFS
+   host by any means.  Ideally, such access attempts would be stopped by
+   a firewall.
+
+3.2.4  Protecting the Protection
+
+   It is amazing how often a site will overlook the most obvious
+   weakness in its security by leaving the security server itself open
+   to attack.  Based on considerations previously discussed, it should
+   be clear that:  the security server should not be accessible from
+   off-site; should offer minimum access, except for the authentication
+   function, to users on-site; and should not be co-located with any
+   other servers.  Further, all access to the node, including access to
+   the service itself, should be logged to provide a "paper trail" in
+   the event of a security breach.
+
+3.3  Firewalls
+
+   One of the most widely deployed and publicized security measures in
+   use on the Internet is a "firewall."  Firewalls have been given the
+   reputation of a general panacea for many, if not all, of the Internet
+   security issues.  They are not.  Firewalls are just another tool in
+   the quest for system security.  They provide a certain level of
+   protection and are, in general, a way of implementing security policy
+   at the network level.  The level of security that a firewall provides
+   can vary as much as the level of security on a particular machine.
+   There are the traditional trade-offs between security, ease of use,
+   cost, complexity, etc.
+
+   A firewall is any one of several mechanisms used to control and watch
+   access to and from a network for the purpose of protecting it.  A
+   firewall acts as a gateway through which all traffic to and from the
+
+
+
+Site Security Working Group                                    [Page 16]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   protected network or machines passes.  Firewalls help to place
+   limitations on the amount and type of communication that takes place
+   between the protected network and the another network (e.g., the
+   Internet, or another piece of the site's network).
+
+   A firewall is generally a way to build a wall between one part of a
+   network, a company=D5s internal network, for example, and another part,
+   the global Internet, for example.  The unique feature about this wall
+   is that there needs to be ways for some traffic with particular
+   characteristics to pass through carefully monitored doors
+   ("gateways").  The difficult part is to establish the criteria by
+   which the packets are allowed or denied access through the doors.
+   Different books written on firewalls use different terminology to
+   describe the various forms of firewalls. This can be confusing to
+   system administrators who are not familiar with firewalls. The thing
+   to note here is that there is no fixed terminology for the
+   description of firewalls.
+
+   Firewalls are not always, or even typically, a single machine, but in
+   general are a combination of routers, networks, and host machines, so
+   for the purposes of this discussion, the term "firewall" can consist
+   of more than one physical device.  Firewalls are typically built
+   using two different components, filtering routers and proxy servers.
+
+   Filtering routers are the easiest component to conceptualize in a
+   firewall.  A router moves data back and forth between two (or more)
+   different networks.  A "normal" router takes a packet from network A
+   and "routes" it to its destination on network B.  A filtering router
+   does the same thing but decides not only how to route the packet, but
+   should it route the packet.  This is done by installing a series of
+   filters by which the router decides what to do with any given packet
+   of data.
+
+   A discussion concerning capabilities of a particular brand of router,
+   running a particular software version is outside the scope of this
+   document.  However, when evaluating a router to be used for filtering
+   packets, the following criteria can be important when implementing a
+   filtering policy:  source and destination IP address, source and
+   destination TCP port numbers, state of the TCP "ack" bit, UDP source
+   and destination port numbers, and direction of packet flow (i.e.. A-
+   >B or B->A).  Other information necessary to construct a secure
+   filtering scheme are whether the router reorders filter instructions
+   (designed to optimize filters, this can sometimes change the meaning
+   and cause unintended access), and whether it is possible to apply
+   filters for inbound and outbound packets on each interface (if the
+   router filters only outbound packets then the router is "outside" of
+   its filters and may be more vulnerable to attack).  In addition to
+   the router being vulnerable, this distinction between applying
+   filters on inbound or outbound packets is especially relevant for
+   routers with more than 2 interfaces.  Other important issues are the
+   ability to create filters based on IP header options and the fragment
+   state of a packet.  Building a good filter can be very difficult and
+   requires a good understanding of the type of services (protocols)
+   that will be filtered.
+
+
+
+Site Security Working Group                                    [Page 17]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   For better security, the filters usually restrict access between the
+   two connected nets to just one host, the bastion host.  It is only
+   possible to access the other network via this bastion host.  As only
+   this host, rather than a few hundred hosts, can get attacked, it is
+   easier to maintain a certain level of security because only this host
+   has to be protected very carefully.  To make resources available to
+   legitimate users across this firewall, services have to be forwarded
+   by the bastion host.  Some servers have forwarding built in (like
+   DNS-servers or SMTP-servers), for other services (e.g., Telnet, FTP,
+   etc.), proxy servers can be used to allow access to the resources
+   across the firewall in a secure way.
+
+   A proxy server is way to concentrate application services through a
+   single machine.  There is typically a single machine (the bastion
+   host) that acts as a proxy server for a variety of protocols (Telnet,
+   SMTP, FTP, HTTP, etc.) but there can be individual machines for each
+   service.  Instead of connecting directly to an external server, the
+   client connects to the proxy server which in turn initiates a
+   connection to the requested external server.  Depending on the type
+   of proxy server used, it is possible to configure internal clients to
+   perform this redirection automatically, without knowledge to the
+   user, others might require that the user connect directly to the
+   proxy server and then initiate the connection through a specified
+   format.
+
+   There are significant security benefits which can be derived from
+   using proxy servers.  It is possible to add access control lists to
+   protocols, requiring users or machines to provide some level of
+   authentication before access is granted.  Smarter proxy servers,
+   sometimes called Application Layer Gateways (ALGs), can be written
+   which understand specific protocols and can be configured to block
+   only subsections of the protocol.  For example, an ALG for FTP can
+   tell the difference between the "put" command and the "get" command;
+   an organization may wish to allow users to "get" files from the
+   Internet, but not be able to "put" internal files on a remote server.
+   By contrast, a filtering router could either block all FTP access, or
+   none, but not a subset.
+
+   Proxy servers can also be configured to encrypt data streams based on
+   a variety of parameters.  An organization might use this feature to
+   allow encrypted connections between two locations whose sole access
+   points are on the Internet.
+
+   Firewalls are typically thought of as a way to keep intruders out,
+   but they are also often used as a way to let legitimate users into a
+   site.  There are many examples where a valid user might need to
+   regularly access the "home" site while on travel to trade shows and
+   conferences, etc.  Access to the Internet is often available but may
+   be through an untrusted machine or network.  A correctly configured
+   proxy server can allow the correct users into the site while still
+   denying access to other users.
+
+   The current best effort in firewall techniques is found using a
+   combination of a pair of screening routers with one or more proxy
+
+
+
+Site Security Working Group                                    [Page 18]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   servers on a network between the two routers.  This setup allows the
+   external router to block off any attempts to use the underlying IP
+   layer to break security (IP spoofing, source routing, packet
+   fragments), while allowing the proxy server to handle potential
+   security holes in the higher layer protocols.  The internal router's
+   purpose is to block all traffic except to the proxy server.  If this
+   setup is rigidly implemented, a high level of security can be
+   achieved.
+
+   Most firewalls provide logging which can be tuned to make security
+   administration of the network more convenient.  Logging may be
+   centralized and the system may be configured to send out alerts for
+   abnormal conditions.  It is important to regularly monitor these logs
+   for any signs of intrusions or break-in attempts.  Since some
+   intruders will attempt to cover their tracks by editing logs, it is
+   desirable to protect these logs.  A variety of methods is available,
+   including: write once, read many (WORM) drives; papers logs; and
+   centralized logging via the "syslog" utility.  Another technique is
+   to use a "fake" serial printer, but have the serial port connected to
+   an isolated machine or PC which keeps the logs.
+
+   Firewalls are available in a wide range of quality and strengths.
+   Commercial packages start at approximately $10,000US and go up to
+   over $250,000US.  "Home grown" firewalls can be built for smaller
+   amounts of capital.  It should be remembered that the correct setup
+   of a firewall (commercial or homegrown) requires a significant amount
+   of skill and knowledge of TCP/IP.  Both types require regular
+   maintenance, installation of software patches and updates, and
+   regular monitoring.  When budgeting for a firewall, these additional
+   costs should be considered in addition to the cost of the physical
+   elements of the firewall.
+
+   As an aside, building a "home grown" firewall requires a significant
+   amount of skill and knowledge of TCP/IP.  It should not be trivially
+   attempted because a perceived sense of security is worse in the long
+   run than knowing that there is no security.  As with all security
+   measures, it is important to decide on the threat, the value of the
+   assets to be protected, and the costs to implement security.
+
+   A final note about firewalls.  They can be a great aid when
+   implementing security for a site and they protect against a large
+   variety of attacks.  But it is important to keep in mind that they
+   are only one part of the solution.  They cannot protect your site
+   against all types of attack.
+
+4.  Security Services and Procedures
+
+   This chapter guides the reader through a number of topics that should
+   be addressed when securing a site.  Each section touches on a
+   security service or capability that may be required to protect the
+   information and systems at a site.  These are presented at a fairly
+   high-level to introduce the reader to the concepts.
+
+   Throughout the chapter, you will find considerable mention of
+
+
+
+Site Security Working Group                                    [Page 19]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   cryptography.  It is outside the scope of this document to delve into
+   details concerning cryptography, but the interested reader can obtain
+   more information from books and articles listed in the reference
+   section of this document.
+
+4.1  Authentication
+
+   For many years, the prescribed method for authenticating users has
+   been through the use of standard, reusable passwords.  Originally,
+   these passwords were used by users at terminals to authenticate
+   themselves to a central computer.  At the time, there were no
+   networks (internally or externally), so the risk of disclosure of the
+   clear text password was minimal.  Today, systems are connected
+   together through local networks, and these local networks are further
+   connected together and to the Internet.  Users are logging in from
+   all over the globe; their reusable passwords are often transmitted
+   across those same networks in clear text, ripe for anyone in-between
+   to capture.  And indeed, the CERT Coordination Center and other
+   response teams are seeing a tremendous number of incidents involving
+   packet sniffers which are capturing the clear text passwords.  To
+   address this threat, we are including sections on better
+   technologies, like one-time passwords and Kerberos.
+
+   With the advent of newer technologies like one-time passwords (e.g.,
+   S/Key), PGP, and token-based authentication devices, people are using
+   password-like strings as secret tokens and pins. We are including a
+   discussion on these since they are the foundation upon which stronger
+   authentication techniques are based.  If these secret tokens and pins
+   are not properly selected and protected, the authentication will be
+   easily subverted.
+
+4.1.1  One-Time passwords
+
+   As mentioned above, given today's networked environments, it is
+   recommended that sites concerned about the security and integrity of
+   their systems and networks consider moving away from standard,
+   reusable passwords.  There have been many incidents involving Trojan
+   network programs (e.g., telnet and rlogin) and network packet
+   sniffing programs.  These programs capture clear text
+   hostname/account name/password triplets.  Intruders can use the
+   captured information for subsequent access to those hosts and
+   accounts.  This is possible because 1) the password is used over and
+   over (hence the term "reusable"), and 2) the password passes across
+   the network in clear text.
+
+   Several authentication techniques have been developed that address
+   this problem.  Among these techniques are challenge-response
+   technologies that provide passwords that are only used once (commonly
+   called one-time passwords).  This document provides a list of sources
+   for products that provide this capability.  The decision to use a
+   product is the responsibility of each organization, and each
+   organization should perform its own evaluation and selection.
+
+4.1.2  Kerberos
+
+
+
+Site Security Working Group                                    [Page 20]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   Kerberos is a distributed network security system which provides for
+   authentication across unsecured networks.  If requested by the
+   application, integrity and encryption can also be provided.  Kerberos
+   was originally developed at the Massachusetts Institute of Technology
+   (MIT) in the late 1980's.  There are two major releases of Kerberos,
+   version 4 and 5, which are for practical purposes, incompatible.
+
+   Kerberos relies on a symmetric key database using a key distribution
+   center (KDC) which is known as the Kerberos server.  A user or
+   service (known as "principals") are granted electronic "tickets"
+   after properly communicating with the KDC.  These tickets are used
+   for authentication between principals.  All tickets include a time
+   stamp which limits the time period for which the ticket is valid.
+   Therefore, Kerberos clients and server must have a secure time
+   source, and be able to keep time accurately.
+
+   The practical side of Kerberos is its integration with the
+   application level.  Typical applications like FTP, telnet, POP, and
+   NFS have been integrated with the Kerberos system.  There are a
+   variety of implementations which have varying levels of integration.
+   Please see the Kerberos FAQ available at http://www.ov.com/misc/krb-
+   faq.html for the latest information.
+
+4.1.3  Choosing and Protecting Secret Tokens and PINs
+
+   When selecting secret tokens, take care to choose them carefully.
+   Like the selection of passwords, they should be robust against brute
+   force efforts to guess them.  That is, they should not be single
+   words in any language, any common, industry, or cultural acronyms,
+   etc.  Ideally, they will be longer rather than shorter and consist of
+   pass phrases that combine upper and lower case character, digits, and
+   other characters.
+
+   Once chosen, the protection of these secret tokens is very important.
+   Some are used as pins to hardware devices (like token cards) and
+   these should not be written down and placed in the same location as
+   the device with which they are associated.  Others, such as a secret
+   PGP key, should be protected from unauthorized access.
+
+   One final word on this subject.  When using cryptography products,
+   like PGP, take care to determine the proper key length and ensure
+   that your users are trained to do likewise.  As technology advances,
+   the minimum safe key length continues to grow.  Make sure your site
+   keeps up with the current state of knowledge on the subject so that
+   you can ensure any cryptography used will be providing you the
+   protection you are assuming it is.
+
+4.1.4  Password Assurance
+
+   While the need to eliminate the use of standard, reusable passwords
+   cannot be overstated, it is recognized that some organizations may
+   have to transition to the use of better technology.  Given that
+   situation, we have included the following advice to help with the
+   selection and maintenance of traditional passwords.  But remember,
+
+
+
+Site Security Working Group                                    [Page 21]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   none of these measures provides protection against disclosure due to
+   sniffer programs.
+
+   (1)  The importance of robust passwords - In many (if not most) cases o=
+f
+        system penetration, the intruder needs to gain access to an accoun=
+t
+        on the system. One way that goal is typically accomplished is
+        through guessing the password of a legitimate user.  This is often
+        accomplished by running an automated password cracking program,
+        which utilizes a very large dictionary, against the system's passw=
+ord
+        file.  The only way to guard against passwords being disclosed in =
+this
+        manner is through the careful selection of passwords which cannot =
+be
+        easily guessed (i.e., combinations of numbers, letters, and punctu=
+ation
+        characters).
+
+   (2)  Changing default passwords - Many operating systems and applicatio=
+n
+        programs are installed with default accounts and passwords.  These
+        must be changed immediately to something that cannot be guessed or
+        cracked.
+
+   (3)  Restricting access to the password file - In particular, a site
+        wants to protect the encrypted password portion of the file so tha=
+t
+        would-be intruders don't have them available for cracking.  One
+        effective technique is to use shadow passwords where the password
+        field of the standard file contains a dummy or false password.  Th=
+e
+        file containing the legitimate passwords are protected elsewhere o=
+n
+        the system.
+
+   (4)  Password aging - When and how to expire passwords is still a subje=
+ct
+        of controversy among the security community.  It is generally acce=
+pted
+        that a password should not be maintained once an account is no lon=
+ger in
+        use, but it is hotly debated whether a user should be forced to ch=
+ange a
+        good password that's in active use.  The arguments for changing
+        passwords relate to the prevention of the continued use of penetra=
+ted
+        accounts.  However, the opposition claims that frequent password
+        changes lead to users writing down their passwords in visible area=
+s
+        (such as pasting them to a terminal), or to users selecting very s=
+imple
+        passwords that are easy to guess.  It should also be stated that a=
+n
+        intruder will probably use a captured or guessed password sooner r=
+ather
+        than later, in which case password aging provides little if any
+        protection.
+
+        While there is no definitive answer to this dilemma, a password po=
+licy
+        should directly address the issue and provide guidelines for how o=
+ften
+        a user should change the password.  It is recommended that passwor=
+ds
+        be changed whenever root is penetrated, there is a critical change=
+ in
+        personnel (especially if it is the system administrator!), or when=
+ an
+        account has been compromised.  In particular, if the root password=
+ is
+        compromised, all passwords on the system should be changed.  In
+        addition, an annual change in their password is usually not diffic=
+ult
+        for most users, and you should consider requiring it.
+
+4.2  Confidentiality
+
+   There will be information assets that your site will want to protect
+
+
+
+Site Security Working Group                                    [Page 22]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   from disclosure to unauthorized entities.  Operating systems often
+   have built-in file protection mechanisms that allow an administrator
+   to control who on the system can access, or "see," the contents of a
+   given file.  A stronger way to provide confidentiality is through
+   encryption.  Encryption is accomplished by scrambling data so that it
+   is very difficult and time consuming for anyone other than the
+   authorized recipients or owners to obtain the plain text.  Authorized
+   recipients and the owner of the information will possess the
+   corresponding decryption keys that allow them to easily unscramble
+   the text to a readable (clear text) form.  We recommend that sites
+   use encryption to provide confidentiality and protect valuable
+   information.
+
+   The use of encryption is sometimes controlled by governmental and
+   site regulations, so we encourage administrators to become informed
+   of laws or policies that regulate its use before employing it.  It is
+   outside the scope of this document to discuss the various algorithms
+   and programs available for this purpose, but we do caution against
+   the casual use of the UNIX crypt program as it has been found to be
+   easily broken.  We also encourage you to take time to understand the
+   strength of the encryption in any given algorithm/product before
+   using it.  Most well-known products are well-documented in the
+   literature, so this should be a fairly easy task.
+
+4.3  Integrity
+
+   As an administrator, you will want to make sure that information
+   (e.g., operating system files, company data, etc.) has not been
+   altered in an unauthorized fashion.  This means you will want to
+   provide some assurance as to the integrity of the information on your
+   systems.  One way to provide this is to produce a checksum of the
+   unaltered file, store that checksum offline, and periodically (or
+   when desired) check to make sure the checksum of the online file
+   hasn't changed (which would indicate the data has been modified).
+
+   Some operating systems come with checksumming programs, such as the
+   UNIX sum program.  However, these may not provide the protection you
+   actually need.  Files can be modified in such a way as to preserve
+   the result of the UNIX sum program!  Therefore, we suggest that you
+   use a cryptographically strong program, such as the message digesting
+   program MD5 [ref], to produce the checksums you will be using to
+   assure integrity.
+
+   There are other applications when integrity will want to be assured,
+   such as when transmitting an email message between two parties. There
+   are products available that can provide this capability.  The purpose
+   of this section is to acquaint you with this concept so that you can
+   apply it where needed.  Once you identify that this is a capability
+   you need, you can go about identifying technologies that will provide
+   it.
+
+4.4  Authorization
+
+   Authorization refers to the process of granting privileges to
+
+
+
+Site Security Working Group                                    [Page 23]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   processes and, ultimately, users.  This differs from authentication
+   in that authentication is what occurs to identify a user.  Once
+   identified (reliably), the privileges, rights, property, and
+   permissible actions of the user are determined by authorization.
+
+   Explicitly listing the authorized activities of each user (and user
+   process) with respect to all resources (objects) is impossible in a
+   reasonable system.  In a real system certain techniques are used to
+   simplify the process of granting and checking authorization(s).
+
+   One approach, popularized in UNIX systems, is to assign to each
+   object three classes of user: owner, group and world.  The owner is
+   either the creator of the object or the user assigned as owner by the
+   super-user.  The owner permissions (read, write and execute) apply
+   only to the owner.  A group is a collection of users which share
+   access rights to an object.  The group permissions (read, write and
+   execute) apply to all users in the group (except the owner).  The
+   world refers to everybody else with access to the system.  The world
+   permissions (read, write and execute) apply to all users (except the
+   owner and members of the group).
+
+   Another approach is to attach to an object a list which explicitly
+   contains the identity of all permitted users (or groups).  This is an
+   Access Control List.  The advantage of these are that they are easily
+   maintained (one central list per object).
+
+4.5  Access
+
+4.5.1  Physical Access
+
+   Restrict physical access to areas containing hosts to people who are
+   supposed to use the hosts.  Hosts include "trusted" terminals (such
+   as system consoles, operator terminals and terminals dedicated to
+   special tasks), and individual microcomputers and workstations,
+   especially those connected to your network.  Make sure access
+   restrictions mesh well with people's work patterns; otherwise they
+   will find ways to circumvent your physical security (e.g., jamming
+   doors open).
+
+   Keep original and backup copies of data and programs safe.  Apart
+   from keeping them in good condition for backup purposes, they must be
+   protected from theft.
+
+   Portable hosts are a particular risk.  Make sure it won't cause
+   problems if one of your staff's portable computer is stolen.
+   Consider developing guidelines for the kinds of data that should be
+   allowed to reside on the disks of portable computers as well as how
+   the data should be protected (e.g., encryption) when it is on a
+   portable computer.
+
+   Other areas where physical access should be restricted is the wiring
+   closets and important network elements like file servers, name server
+   hosts, and routers.
+
+
+
+
+Site Security Working Group                                    [Page 24]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+4.5.2  Walk-up Network Connections
+
+   By "walk-up" connections, we mean sockets located so as to provide a
+   convenient way for users to connect a portable host to your network.
+
+   Consider whether you need to provide this service, bearing in mind
+   that it allows any user to attach an unauthorized host to your
+   network.  This increases the risk of attacks via techniques such as
+   IP address spoofing, packet sniffing, etc.  Users and site management
+   must appreciate the risks involved.  If you decide to provide walk-up
+   connections, plan the service carefully and define precisely where
+   you will provide it so that you can provide the necessary physical
+   access security.
+
+   A walk-up host should be authenticated before its user is permitted
+   to access resources on your network.  As an alternative, it may be
+   possible to control physical access. For example, if the service is
+   to be used by students, you might only provide walk-up connection
+   sockets in student laboratories.
+
+   Keep an eye on empty offices.  It may be sensible to disconnect
+   connections to unused offices at the wiring closet.  Consider using
+   secure hubs and monitoring attempts to connect unauthorized hosts.
+
+4.5.3  Other Network Technologies
+
+   Technologies considered here include X.25, ISDN, SMDS, DDS and Frame
+   Relay.  All are provided via physical links which go through
+   telephone exchanges, providing the potential for them to be diverted.
+   Crackers are certainly interested in telephone switches as well as in
+   data networks!
+
+   With switched technologies, use Permanent Virtual Circuits or Closed
+   User Groups whenever this is possible.  Technologies which provide
+   authentication and/or encryption (such as IPv6) are evolving rapidly;
+   consider using them on links where security is important.
+
+4.5.4  Modems
+
+4.5.4.1  Modem lines must be managed
+
+   Although they provide convenient access to a site for its users, they
+   can also provide an effective detour around the site's firewalls.
+   For this reason it is essential to maintain proper control of modems.
+
+   Don't allow users to install a modem line without proper
+   authorization.  This includes temporary installations (e.g., plugging
+   a modem into a facsimile or telephone line overnight).
+
+   Maintain a register of all your modem lines and keep your register up
+   to date.  Conduct regular site checks for unauthorized modems.
+
+4.5.4.2  Dial-in users must be authenticated
+
+
+
+
+Site Security Working Group                                    [Page 25]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   A username and password check should be completed before a user can
+   access anything on your network.  Normal password security
+   considerations are particularly important (see section 4.1.1).
+
+   Remember that telephone lines can be tapped, and that it is quite
+   easy to intercept messages to cellular phones.  Modern high-speed
+   modems use more sophisticated modulation techniques, which makes them
+   somewhat more difficult to monitor, but it is prudent to assume that
+   hackers know how to eavesdrop on your lines.  For this reason, you
+   should use one-shot passwords if at all possible.
+
+   It is helpful to have a single dial-in point (e.g., a single large
+   modem pool) so that all users are authenticated in the same way.
+
+   Users will occasionally mis-type a password.  Set a short delay - say
+   two seconds - after the first and second failed logins, and force a
+   disconnect after the third.  This will slow down automated password
+   attacks.  Don't tell the user whether the username, the password, or
+   both, were incorrect.
+
+4.5.4.3  All logins (successful and unsuccessful) should be logged
+
+   Don't keep correct passwords in the log, but consider keeping
+   incorrect passwords to aid in detecting password attacks.  However,
+   most incorrect passwords are correct passwords with one character
+   mistyped and may suggest the real password.  If you can't keep this
+   information secure, don't log it at all.
+
+   If Calling Line Identification is available, take advantage of it by
+   recording the calling number for each login attempt.  Be sensitive to
+   the privacy issues raised by Calling Line Identification.  Also be
+   aware that Calling Line Identification is not to be trusted; use the
+   data for informational purposes only, not for authentication.
+
+4.5.4.4  Minimize the amount of information given in your opening banner
+
+   In particular, don't announce the type of host hardware or operating
+   system - this encourages specialist hackers.
+
+   Display a short banner, but don't offer an "inviting" name (e.g.,
+   University of XYZ, Student Records System).  Instead, give your site
+   name, a short warning that sessions may be monitored, and a
+   username/password prompt.  Get your site's lawyers to check your
+   banner to make sure it states your legal position correctly.
+
+   For high-security applications, consider using a "blind" password
+   (i.e., give no response to an incoming call until the user has typed
+   in a password).  This effectively simulates a dead modem.
+
+4.5.4.5  Call-back Capability
+
+   Some dial-in servers offer call-back facilities (i.e., the user dials
+   in and is authenticated, then the system disconnects the call and
+   calls back on a specified number).  You will probably have to pay the
+
+
+
+Site Security Working Group                                    [Page 26]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   charges for such calls.
+
+   This feature should be used with caution; it can easily be bypassed.
+   At a minimum, make sure that the return call is never made from the
+   same modem as the incoming one.  Overall, although call-back can
+   improve modem security, you should not depend on it alone.
+
+4.5.4.6  Dial-out authentication
+
+   Dial-out users should also be authenticated, particularly since your
+   site will have to pay their telephone charges.
+
+   Never allow dial-out from an unauthenticated dial-in call, and
+   consider whether you will allow it from an authenticated one.  The
+   goal here is to prevent callers using your modem pool as part of a
+   chain of logins.  This can be hard to detect, particularly if a
+   hacker sets up a path through several hosts on your site.
+
+   At a minimum, don't allow the same modems and phone lines to be used
+   for both dial-in and dial-out.  This can be implemented easily if you
+   run separate dial-in and dial-out modem pools.
+
+4.5.4.7  Make your modem programming as "bullet-proof" as possible
+
+   Be sure modems can't be reprogrammed while they're in service.  At a
+   minimum, make sure that three plus signs won't put your dial-in
+   modems into command mode!
+
+   Program your modems to reset to your standard configuration at the
+   start of each new call.  Failing this, make them reset at the end of
+   each call.  This precaution will protect you against accidental
+   reprogramming of your modems.
+
+   Check that your modems terminate calls cleanly.  When a user logs out
+   from an access server, verify that the server hangs up the phone line
+   properly.  It is equally important that the server forces logouts
+   from whatever sessions were active if the user hangs up unexpectedly.
+
+4.6  Auditing
+
+   This section covers the procedures for collecting data generated by
+   network activity, which may be useful in analyzing the security of a
+   network and responding to security incidents.
+
+4.6.1  What to collect
+
+   Audit data should include any attempt to achieve a different security
+   level by any person, process, or other entity in the network.  This
+   includes login and logout, su (or the non-UNIX equivalent), ticket
+   generation (for Kerberos, for example), and any other change of
+   access or status.  It is especially important to note "anonymous" or
+   "guest" access to public servers.
+
+   The actual data to collect will differ for different sites and for
+
+
+
+Site Security Working Group                                    [Page 27]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   different types of access changes within a site.  In general, the
+   information you want to collect includes: username and hostname, for
+   login and logout; previous and new access rights, for a change of
+   access rights; and a timestamp.  Of course, there is much more
+   information which might be gathered, depending on what the system
+   makes available and how much space is available to store that
+   information.
+
+   One very important note: do not gather passwords.  This creates an
+   enormous potential security breach if the audit records should be
+   improperly accessed.  Do not gather incorrect passwords either, as
+   they often differ from valid passwords by only a single character or
+   transposition.
+
+4.6.2  Collection Process
+
+   The collection process should be enacted by the host or resource
+   being accessed.  Depending on the importance of the data and the need
+   to have it local in instances in which services are being denied,
+   data could be kept local to the resource until needed or be
+   transmitted to storage after each event.
+
+   There are basically three ways to store audit records: in a
+   read/write file on a host, on a write-once/read-many device (e.g., a
+   CD-ROM or a specially configured tape drive), or on a write-only
+   device (e.g., a line printer).  Each method has advantages and
+   disadvantages.
+
+   File system logging is the least resource intensive of the three
+   methods and the easiest to configure.  It allows instant access to
+   the records for analysis, which may be important if an attack is in
+   progress.  File system logging is also the least reliable method.  If
+   the logging host has been compromised, the file system is usually the
+   first thing to go; an intruder could easily cover up traces of the
+   intrusion.
+
+   Collecting audit data on a write-once device is slightly more effort
+   to configure than a simple file, but it has the significant advantage
+   of greatly increased security because an intruder could not alter the
+   data showing that an intrusion has occurred.  The disadvantage of
+   this method is the need to maintain a supply of storage media and the
+   cost of that media.  Also, the data may not be instantly available.
+
+   Line printer logging is useful in system where permanent and
+   immediate logs are required.  A real time system is an example of
+   this, where the exact point of a failure or attack must be recorded.
+   A laser printer, or other device which buffers data (e.g., a print
+   server), may suffer from lost data if buffers contain the needed data
+   at a critical instant.  The disadvantage of, literally, "paper
+   trails" is the need to keep the printer fed and the need to scan
+   records by hand.  There is also the issue of where to store the,
+   potentially, enormous volume of paper which may be generated.
+
+   For each of the logging methods described, there is also the issue of
+
+
+
+Site Security Working Group                                    [Page 28]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   securing the path between the device generating the log and actual
+   logging device (i.e., the file server, tape/CD-ROM drive, printer).
+   If that path is compromised, logging can be stopped or spoofed or
+   both.  In an ideal world, the logging device would be directly
+   attached by a single, simple, point-to-point cable.  Since that is
+   usually impractical, the path should pass through the minimum number
+   of networks and routers.  Even if logs can be blocked, spoofing can
+   be prevented with cryptographic checksums (it probably isn't
+   necessary to encrypt the logs because they should not contain
+   sensitive information in the first place).
+
+4.6.3  Collection Load
+
+   Collecting audit data may result in a rapid accumulation of bytes so
+   storage availability for this information must be considered in
+   advance.  There are a few ways to reduce the required storage space.
+   First, data can be compressed, using one of many methods. Or, the
+   required space can be minimized by keeping data for a shorter period
+   of time with only summaries of that data kept in long-term archives.
+   One major drawback to the latter method involves incident response.
+   Often, an incident has been ongoing for some period of time when a
+   site notices it and begins to investigate. At that point in time,
+   it's very helpful to have detailed audit logs available. If these are
+   just summaries, there may not be sufficient detail to fully handle
+   the incident.
+
+4.6.4  Handling and Preserving Audit Data
+
+   Audit data should be some of the most carefully secured data at the
+   site and in the backups.  If an intruder were to gain access to audit
+   logs, the systems themselves, in addition to the data, would be at
+   risk.
+
+   Audit data may also become key to the investigation, apprehension,
+   and prosecution of the perpetrator of an incident.  For this reason,
+   it is advisable to seek the advice of legal council when deciding how
+   audit data should be treated.  This should happen before an incident
+   occurs.
+
+   If a data handling plan is not adequately defined prior to an
+   incident, it may mean that there is no recourse in the aftermath of
+   an event, and it may create liability resulting from improper
+   treatment of the data.
+
+4.6.5  Legal Considerations
+
+   Due to the content of audit data, there are a number of legal
+   questions that arise which need to be addressed by your legal
+   counsel. If you collect and save audit data, you need to be prepared
+   for consequences resulting both from its existence and its content.
+
+   One area concerns the privacy of individuals.  In certain instances,
+   audit data may contain personal information.  Searching through the
+   data, even for a routine check of the system's security, could
+
+
+
+Site Security Working Group                                    [Page 29]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   represent an invasion of privacy.
+
+   A second area of concern involves knowledge of intrusive behavior
+   originating from your site.  If an organization keeps audit data, is
+   it responsible for examining it to search for incidents?  If a host
+   in one organization is used as a launching point for an attack
+   against another organization, can the second organization use the
+   audit data of the first organization to prove negligence on the part
+   of that organization?
+
+   The above examples are meant to be comprehensive, but should motivate
+   your organization to consider the legal issues involved with audit
+   data.
+
+4.7  Securing Backups
+
+   The procedure of creating backups is a classic part of operating a
+   computer system.  Within the context of this document, backups are
+   addressed as part of the overall security plan of a site.  There are
+   several aspects to backups that are important within this context:
+
+   (1)  Make sure your site is creating backups
+   (2)  Make sure your site is using offsite storage for backups. The
+        storage site should be carefully selected for both its security an=
+d
+        its availability.
+   (3)  Consider encrypting your backups to provide additional protection =
+of
+        the information once it is off-site.  However, be aware that you w=
+ill
+        need a good key management scheme so that you'll be able to recove=
+r
+        data at any point in the future.  Also, make sure you will have
+        access to the necessary decryption programs at such time in the
+        future as you need to perform the decryption.
+   (4)  Don't always assume that your backups are good.  There have been
+        many instances of computer security incidents that have gone on fo=
+r
+        long periods of time before a site has noticed the incident.  In s=
+uch
+        cases, backups of the affected systems are also tainted.
+   (5)  Periodically check your backups.
+
+5.  Security Incident Handling
+
+   This section of the document will supply guidance to be applied
+   before, during, and after a computer security incident occurs on a
+   machine, network, site, or multi-site environment.  The operative
+   philosophy in the event of a breach of computer security is to react
+   according to a plan.  This is true whether the breach is the result
+   of an external intruder attack, unintentional damage, a student
+   testing some new program to exploit a software vulnerability, or a
+   disgruntled employee.  Each of the possible types of events, such as
+   those just listed, should be addressed in advance by adequate
+   contingency plans.
+
+   Traditional computer security, while quite important in the overall
+   site security plan, usually pays little attention to how to actually
+   handle the attack once it occurs.  The result is that when an attack
+   is in progress, many decisions are made in haste and can be damaging
+
+
+
+Site Security Working Group                                    [Page 30]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   to tracking down the source of the incident, collecting evidence to
+   be used in prosecution efforts, preparing for the recovery of the
+   system, and protecting the valuable data contained on the system.
+
+   One of the most important, but often overlooked, benefits for
+   efficient incident handling is an economic one.  Having both
+   technical and managerial personnel respond to an incident requires
+   considerable resources.  If trained to handle incidents efficiently,
+   less staff time is required when one occurs.
+
+   Due to the world-wide network most incidents are not restricted to a
+   single site.  Operating systems vulnerabilities apply (in some cases)
+   to several millions of systems, and many vulnerabilities are
+   exploited within the network itself.  Therefore, it is vital for all
+   sites with involved parties are informed as soon as possible.
+
+   Another benefit is related to public relations.  News about computer
+   security incidents tends to be damaging to an organization's stature
+   among current or potential clients.  Efficient incident handling
+   minimizes the potential for negative exposure.
+
+   A final benefit of efficient incident handling is related to legal
+   issues.  It is possible that in the near future organizations may be
+   sued because one of their nodes was used to launch a network attack.
+   In a similar vein, people who develop patches or workarounds may be
+   sued if the patches or workarounds are ineffective, resulting in
+   compromise of the systems, or, if the patches or workarounds
+   themselves damage systems.  Knowing about operating system
+   vulnerabilities and patterns of attacks, and then taking appropriate
+   measures to counter these potential threats, is critical to
+   circumventing possible legal problems.
+
+   The sections in this chapter provide an outline and starting point
+   for creating your site's policy for handling security incidents.  The
+   sections are:
+
+   (1)  Preparing and planning (what are the goals and objectives in
+        handling an incident).
+   (2)  Notification (who should be contacted in the case of an incident).
+   (3)  Evaluation (how serious is the incident).
+   (4)  Handling (what should be done when an incident occurs).
+          - Notification (who should be notified about the incident).
+          - Containment (how can the damage be limited).
+          - Eradication (how to eliminate the reasons for the incident).
+          - Recovery (how to reestablish service and systems).
+          - Follow Up (what actions should be taken after the incident).
+          - Legal/Investigative implications (what are the legal and
+            prosecutorial implications of the incident).
+          - Documentation Logs (what records should be kept from
+            before, during, and after the incident).
+   (5)  Aftermath (what are the implications of past incidents).
+   (6)  Responsibilities (how to handle an incident responsibly).
+
+   The remainder of this chapter will detail the issues involved in each
+
+
+
+Site Security Working Group                                    [Page 31]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   of the important topics listed above, and provide some guidance as to
+   what should be included in a site policy for handling incidents.
+
+5.1  Preparing and Planning for Incident Handling
+
+   Part of handling an incident is being prepared to respond to an
+   incident before the incident occurs in the first place.  This
+   includes establishing a suitable level of protections as explained in
+   the preceding chapters.  Doing this should help your site prevent
+   incidents as well as limit potential damage resulting from them when
+   they do occur.  Protection also includes preparing incident handling
+   guidelines as part of a contingency plan for your organization or
+   site.  Having written plans eliminates much of the ambiguity which
+   occurs during an incident, and will lead to a more appropriate and
+   thorough set of responses.  It is vitally important to test the
+   proposed plan before an incident occurs through "dry runs".  A team
+   might even consider hiring a tiger team to act in parallel with the
+   dry run.
+
+   Learning to respond efficiently to an incident is important for a
+   number of reasons:
+
+   (1)  protecting the assets which could be compromised
+   (2)  protecting resources which could be utilized more
+        profitably if an incident did not require their services
+   (3)  complying with (government or other) regulations
+   (4)  preventing the use of your systems in attacks against other
+        systems (which could cause you to incur legal liability)
+   (5)  minimizing the potential for negative exposure
+
+   As in any set of pre-planned procedures, attention must be paid to a
+   set of goals for handling an incident.  These goals will be
+   prioritized differently depending on the site.  A specific set of
+   objectives can be identified for dealing with incidents:
+
+   (1)  Figure out how it happened.
+   (2)  Find out how to avoid further exploitation of the same
+          vulnerability.
+   (3)  Avoid escalation and further incidents.
+   (4)  Recover from the incident.
+   (5)  Find out who did it.
+
+   Due to the nature of the incident, there might be a conflict between
+   analyzing the original source of a problem and restoring systems and
+   services.  Overall goals (like assuring the integrity of critical
+   systems) might be the reason for not analyzing an incident.  Of
+   course, this is an important management decision; but all involved
+   parties must be aware that without analysis the same incident may
+   happen again.
+
+   It is also important to prioritize the actions to be taken during an
+   incident well in advance of the time an incident occurs.  Sometimes
+   an incident may be so complex that it is impossible to do everything
+   at once to respond to it; priorities are essential.  Although
+
+
+
+Site Security Working Group                                    [Page 32]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   priorities will vary from institution to institution, the following
+   suggested priorities may serve as a starting point for defining your
+   organization's response:
+
+   (1)  Priority one -- protect human life and people's
+        safety; human life always has precedence over all
+        other considerations.
+
+   (2)  Priority two -- protect classified and/or sensitive
+        data.  Prevent exploitation of classified and/or
+        sensitive systems, networks or sites.  Inform affected
+        classified and/or sensitive systems, networks or sites
+        about already occurred penetrations.
+        (Be aware of regulations by your site or by government)
+
+   (3)  Priority three -- protect other data, including
+        proprietary, scientific, managerial and other data,
+        because loss of data is costly in terms of resources.
+        Prevent exploitations of other systems, networks or
+        sites and inform already affected systems, networks or
+        sites about successful penetrations.
+
+   (4)  Priority four -- prevent damage to systems (e.g., loss
+        or alteration of system files, damage to disk drives,
+        etc.).  Damage to systems can result in costly down
+        time and recovery.
+
+   (5)  Priority five -- minimize disruption of computing
+        resources.  It is better in many cases to shut a system
+        down or disconnect from a network than to risk damage
+        to data or systems.
+
+   An important implication for defining priorities is that once human
+   life and national security considerations have been addressed, it is
+   generally more important to save data than system software and
+   hardware.  Although it is undesirable to have any damage or loss
+   during an incident, systems can be replaced. However, the loss or
+   compromise of data (especially classified or proprietary data) is
+   usually not an acceptable outcome under any circumstances.
+
+   Another important concern is the effect on others, beyond the systems
+   and networks where the incident occurs.  Within the limits imposed by
+   government regulations it is always important to inform affected
+   parties as soon as possible.  Due to the legal implications of this
+   topic, it should be included in the planned procedures to avoid
+   further delays and uncertainties for the administrators.
+
+   Any plan for responding to security incidents should be guided by
+   local policies and regulations.  Government and private sites that
+   deal with classified material have specific rules that they must
+   follow.
+
+   The policies chosen by your site on how it reacts to incidents will
+   shape your response.  For example, it may make little sense to create
+
+
+
+Site Security Working Group                                    [Page 33]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   mechanisms to monitor and trace intruders if your site does not plan
+   to take action against the intruders if they are caught.  Other
+   organizations may have policies that affect your plans.  Telephone
+   companies often release information about telephone traces only to
+   law enforcement agencies.
+
+5.2  Notification and Points of Contact
+
+   It is important to establish contacts with various personnel before a
+   real incident occurs.  These contacts are either local, other system
+   responsible or administrative contacts administrators elsewhere on
+   the Internet or are investigative agencies.  Working with these
+   contacts appropriately will help to make your incident handling
+   process more efficient.
+
+   Communication may need to be established with various "Points of
+   Contact" (POC).  These may be technical or administrative in nature
+   and may include legal or investigative agencies as well as Service
+   Providers and vendors.  It is important to decide how much
+   information will be shared, especially with the wider community of
+   users at a site, with the public (the press) and with other sites.
+
+   Settling these issues are especially important for the local person
+   responsible for handling the incident, since that is the person
+   responsible for the actual notification of others.  A list of
+   contacts in each of these categories is an important time saver for
+   this person during an incident.  It can be quite difficult to find an
+   appropriate person during an incident when many urgent events are
+   ongoing.  Including relevant telephone numbers (also electronic mail
+   addresses and fax numbers) in the site security policy is strongly
+   recommended.  It is especially important to know how to contact
+   individuals who will be directly involved in handling a security
+   incident.
+
+5.2.1  Local Managers and Personnel
+
+   When an incident is under way, a major issue is deciding who is in
+   charge of coordinating the activity of the multitude of players.  A
+   major mistake that can be made is to have a number of POCs who are
+   not pulling their efforts together.  This will only add to the
+   confusion of the event and will probably lead to wasted or
+   ineffective effort.
+
+   The single POC may or may not be the person responsible for handling
+   the incident.  There are two distinct roles to fill when deciding who
+   shall be the POC and who will be the person in charge of the
+   incident.  The person in charge of the incident will make decisions
+   as to the interpretation of policy applied to the event.  In
+   contrast, the POC must coordinate the effort of all the parties
+   involved with handling the event.
+
+   The POC must be a person with the technical expertise to successfully
+   coordinate the effort of the system managers and users involved in
+   monitoring and reacting to the attack.  Often the management
+
+
+
+Site Security Working Group                                    [Page 34]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   structure of a site is such that the administrator of a set of
+   resources is not a technically competent person with regard to
+   handling the details of the operations of the computers, but is
+   ultimately responsible for the use of these resources.
+
+   Another important function of the POC is to maintain contact with law
+   enforcement and other external agencies to assure that multi-agency
+   involvement occurs.  The level of involvement will be determined by
+   management decisions as well as legal constraints.
+
+   Finally, if legal action in the form of prosecution is involved, the
+   POC may be asked to speak for the site in court.  The alternative is
+   to have multiple witnesses whose input may be hard to coordinate in a
+   legal sense.  This may lead to a weakening of any case against the
+   attackers.  A single POC may also be the single person in charge of
+   collecting evidence, which will keep the number of people accounting
+   for evidence to a minimum.  As a rule of thumb, the more people that
+   touch a potential piece of evidence, the greater the possibility that
+   it will be inadmissible in court.
+
+   One of the most critical tasks for the POC is the coordination of all
+   relevant processes.  As responsibilities might be distributed over
+   the whole site, which may well consist of multiple independent
+   departments or groups, a well coordinate effort is crucial for
+   overall success.  The situation get even worse if multiple sites are
+   involved.  In many cases, no single POC in one site can coordinate
+   the handling of an entire incident.  The appropriate incident
+   response teams are more suitable, if multiple sites are involved.
+
+   The incident handling process should provide some escalation
+   mechanisms.  The POC might change; the impact of the incident force
+   the management to take the lead instead of giving the technical
+   administrator the responsibility.  Other reasons for changing the POC
+   are the emergence of conflicts of interest, or changing priorities or
+   responsibilities.  Regardless of why the POC is changed, all involved
+   parties must be informed.  Arrangements should be made to allow the
+   new POC to contact the old one, to ensure an adequate briefing of
+   background information.
+
+5.2.2  Law Enforcement and Investigative Agencies
+
+   In the event of an incident that has legal consequences, it is
+   important to establish contact with investigative agencies (e.g, the
+   FBI and Secret Service in the U.S.) as soon as possible.  Local law
+   enforcement, local security offices, and campus police departments
+   should also be informed as appropriate.
+
+   A primary reason is that once a major attack is in progress, there is
+   little time to call these agencies to determine exactly who the
+   correct point of contact is.  Another reason is that it is important
+   to cooperate with these agencies in a manner that will foster a good
+   working relationship, and that will be in accordance with the working
+   procedures of these agencies.  Knowing the working procedures in
+   advance and the expectations of your point of contact is a big step
+
+
+
+Site Security Working Group                                    [Page 35]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   in this direction.  For example, it is important to gather evidence
+   that will be admissible in a court of law, requiring prior knowledge
+   of how to gather such evidence.  A final reason for establishing
+   contacts as soon as possible is that it is impossible to know the
+   particular agency that will assume jurisdiction in any given
+   incident.  Making contacts and finding the proper channels early will
+   make responding to an incident go considerably more smoothly.
+
+   If your organization or site has a legal counsel, you need to notify
+   this office soon after you learn that an incident is in progress.  At
+   a minimum, your legal counsel needs to be involved to protect the
+   legal and financial interests of your site or organization.  There
+   are many legal and practical issues, a few of which are:
+
+   (1)  Whether your site or organization is willing to risk negative
+        publicity or exposure to cooperate with legal prosecution efforts.
+
+   (2)  Downstream liability--if you leave a compromised system as is so
+        it can be monitored and another computer is damaged because the
+        attack originated from your system, your site or organization
+        may be liable for damages incurred.
+
+   (3)  Distribution of information--if your site or organization distribu=
+tes
+        information about an attack in which another site or organization =
+may
+        be involved or the vulnerability in a product that may affect abil=
+ity
+        to market that product, your site or organization may again be lia=
+ble
+        for any damages (including damage of reputation).
+
+   (4)  Liabilities due to monitoring--your site or organization may be su=
+ed
+        if users at your site or elsewhere discover that your site is
+        monitoring account activity without informing users.
+
+   Unfortunately, there are no clear precedents yet on the liabilities
+   or responsibilities of organizations involved in a security incident
+   or who might be involved in supporting an investigative effort.
+   Investigators will often encourage organizations to help trace and
+   monitor intruders.  Indeed, most investigators cannot pursue computer
+   intrusions without extensive support from the organizations involved.
+   However, investigators cannot provide protection from liability
+   claims, and these kinds of efforts may drag out for months and may
+   take a lot of effort.
+
+   On the other hand, an organization's legal council may advise extreme
+   caution and suggest that tracing activities be halted and an intruder
+   shut out of the system.  This, in itself, may not provide protection
+   from liability, and may prevent investigators from identifying the
+   perpetrator.
+
+   The balance between supporting investigative activity and limiting
+   liability is tricky. You'll need to consider the advice of your legal
+   counsel and the damage the intruder is causing (if any) when making
+   your decision about what to do during any particular incident.
+
+   Your legal counsel should also be involved in any decision to contact
+
+
+
+Site Security Working Group                                    [Page 36]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   investigative agencies when an incident occurs at your site.  The
+   decision to coordinate efforts with investigative agencies is most
+   properly that of your site or organization.  Involving your legal
+   counsel will also foster the multi-level coordination between your
+   site and the particular investigative agency involved, which in turn
+   results in an efficient division of labor.  Another result is that
+   you are likely to obtain guidance that will help you avoid future
+   legal mistakes.
+
+   Finally, your legal counsel should evaluate your site's written
+   procedures for responding to incidents.  It is essential to obtain a
+   "clean bill of health" from a legal perspective before you actually
+   carry out these procedures.
+
+   It is vital, when dealing with investigative agencies, to verify that
+   the person who calls asking for information is a legitimate
+   representative from the agency in question.  Unfortunately, many well
+   intentioned people have unknowingly leaked sensitive details about
+   incidents, allowed unauthorized people into their systems, etc.,
+   because a caller has masqueraded as a representative of a government
+   agency.
+
+   A similar consideration is using a secure means of communication.
+   Because many network attackers can easily re-route electronic mail,
+   avoid using electronic mail to communicate with other agencies (as
+   well as others dealing with the incident at hand). Non-secured phone
+   lines (the phones normally used in the business world) are also
+   frequent targets for tapping by network intruders, so be careful!
+
+   There is no established set of rules for responding to an incident
+   when the local government becomes involved.  Normally, except by
+   court order, no agency can force you to monitor, to disconnect from
+   the network, to avoid telephone contact with the suspected attackers,
+   etc.  As discussed before, you should consult the matter with your
+   legal counsel, especially before taking an action that your
+   organization has never taken.
+
+   The particular agency involved may ask you to leave an attacked
+   machine on and to monitor activity.  Complying with this request will
+   ensure continued cooperation of the agency.  This is usually the best
+   route towards finding the source of the network attacks and,
+   ultimately, terminating the attacks.  Additionally, you may need
+   information or a favor from the agency involved.  You are likely to
+   get what you need only if you have been cooperative.  It is
+   particularly important to avoid unnecessary or unauthorized
+   disclosure of information about the incident, including any
+   information furnished by the agency involved.  In other words, don't
+   compromise the case the agency is trying to build.  And remember, if
+   you do not cooperate with an agency, you will be less likely to
+   receive help from that agency in the future.
+
+   Sometimes your needs and the needs of an investigative agency will
+   differ.  Your site may want to get back to normal business by closing
+   an attack route, but the investigative agency may want you to keep
+
+
+
+Site Security Working Group                                    [Page 37]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   this route open.  Similarly, your site may want to close a
+   compromised system down to avoid the possibility of negative
+   publicity, but again the investigative agency may want you to
+   continue monitoring.  When there is such a conflict, there may be a
+   complex set of tradeoffs (e.g., interests of your site's management,
+   amount of resources you can devote to the problem, jurisdictional
+   boundaries, etc.).  An important guiding principle is related to what
+   might be called "Internet citizenship" and its responsibilities.  See
+   section 5.6.
+
+5.2.3  Computer Security Incident Handling Teams
+
+   There now exists a number of Computer Security Incident Response
+   teams (CSIRTs) such as the CERT Coordination Center and the CIAC or
+   other teams around the globe.  Teams exist for many major government
+   agencies and large corporations.  If such a team is available,
+   notifying it should be of primary importance during the early stages
+   of an incident.  These teams are responsible for coordinating
+   computer security incidents over a range of sites and larger
+   entities.  Even if the incident is believed to be contained within a
+   single site, it is possible that the information available through a
+   response team could help in closing out the incident.
+
+   If it is determined that the breach occurred due to a flaw in the
+   system's hardware or software, the vendor (or supplier) and a
+   Computer Security Incident Handling team should be notified as soon
+   as possible.  This is especially important because many other systems
+   are vulnerable, too.
+
+   In setting up a site policy for incident handling, it may be
+   desirable to create a subgroup, much like those teams that already
+   exist, that will be responsible for handling computer security
+   incidents for the site (or organization).  If such a team is created,
+   it is essential that communication lines be opened between this team
+   and other teams.  Once an incident is under way, it is difficult to
+   open a trusted dialogue between other teams if none has existed
+   before.
+
+5.2.4  Affected and Involved Sites
+
+   If an incident has an impact on other sites, it is good practice to
+   inform them.  It may be obvious from the beginning that the incident
+   is not limited to the local site, or it may emerge only after further
+   analysis.
+
+   Each site might choose to contact other sites directly or they can
+   pass the information to an appropriate incident response team, to
+   which the involved site belongs.  As it is often very difficult to
+   find the responsible POC at remote sites, the involvement of an
+   incident response team will facilitate contact by making use of
+   already established channels.
+
+   The legal and liability issues arising from a security incident may
+   differ from site to site.  It is important to define a policy for the
+
+
+
+Site Security Working Group                                    [Page 38]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   sharing and logging of information about other sites before an
+   incident occurs.  This policy should be crafted in consultation with
+   legal counsel.
+
+   Information about specific people is especially sensitive, and may be
+   subject to privacy laws.  To avoid problems in this area, irrelevant
+   information should be deleted and a statement of how to handle the
+   remaining information should be included.  A clear statement of how
+   this information is to be used is essential.  No one who informs a
+   site of a security incident wants to read about it in the public
+   press.  Incident response teams are valuable in this respect.  When
+   they pass information to responsible POCs, they are able to protect
+   the anonymity of the original source. But, be aware that, in many
+   cases, the analysis of logs and information at other sites will
+   reveal addresses of your site.
+
+   All the problems discussed above should be not taken as reasons not
+   to involve other sites.  In fact, the experiences of existing teams
+   reveal that most sites informed about security problems are not even
+   aware that their site had been compromised.  Without timely
+   information, other sites are often unable to take action against
+   intruders.
+
+5.2.5  Public Relations - Press Releases
+
+   One of the most important issues to consider is when, who, and how
+   much to release to the general public through the press.  There are
+   many issues to consider when deciding this particular issue.  First
+   and foremost, if a public relations office exists for the site, it is
+   important to use this office as liaison to the press.  The public
+   relations office is trained in the type and wording of information
+   released, and will help to assure that the image of the site is
+   protected during and after the incident (if possible).  A public
+   relations office has the advantage that you can communicate candidly
+   with them, and provide a buffer between the constant press attention
+   and the need of the POC to maintain control over the incident.
+
+   If a public relations office is not available, the information
+   released to the press must be carefully considered.  If the
+   information is sensitive, it may be advantageous to provide only
+   minimal or overview information to the press.  It is quite possible
+   that any information provided to the press will be quickly reviewed
+   by the perpetrator of the incident.  Also note that misleading the
+   press can often backfire and cause more damage than releasing
+   sensitive information.
+
+   While it is difficult to determine in advance what level of detail to
+   provide to the press, some guidelines to keep in mind are:
+
+   (1)  Keep the technical level of detail low.  Detailed
+        information about the incident may provide enough
+        information for copy-cat events or even damage the
+        site's ability to prosecute once the event is over.
+
+
+
+
+Site Security Working Group                                    [Page 39]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   (2)  Keep the speculation out of press statements.
+        Speculation of who is causing the incident or the
+        motives are very likely to be in error and may cause
+        an inflamed view of the incident.
+
+   (3)  Work with law enforcement professionals to assure that
+        evidence is protected.  If prosecution is involved,
+        assure that the evidence collected is not divulged to
+        the press.
+
+   (4)  Try not to be forced into a press interview before you are
+        prepared.  The popular press is famous for the "2 am"
+        interview, where the hope is to catch the interviewee off
+        guard and obtain information otherwise not available.
+
+   (5)  Do not allow the press attention to detract from the
+        handling of the event.  Always remember that the successful
+        closure of an incident is of primary importance.
+
+5.3  Identifying an Incident
+
+5.3.1  Is it real?
+
+   This stage involves determining if a problem really exists.  Of
+   course many if not most signs often associated with virus infection,
+   system intrusions, malicious users, etc., are simply anomalies such
+   as hardware failures or suspicious system/user behavior.  To assist
+   in identifying whether there really is an incident, it is usually
+   helpful to obtain and use any detection software which may be
+   available.  Audit information is also extremely useful, especially in
+   determining whether there is a network attack.  It is extremely
+   important to obtain a system snapshot as soon as one suspects that
+   something is wrong.  Many incidents cause a dynamic chain of events
+   to occur, and an initial system snapshot may be the most valuable
+   tool for identifying the problem and any source of attack.  Finally,
+   it is important to start a log book.  Recording system events,
+   telephone conversations, time stamps, etc., can lead to a more rapid
+   and systematic identification of the problem, and is the basis for
+   subsequent stages of incident handling.
+
+   There are certain indications or "symptoms" of an incident which
+   deserve special attention:
+
+   (1)   System crashes.
+   (2)   New user accounts (the account RUMPLESTILTSKIN has been
+         unexpectedly created), or high activity on a previously
+         low usage account.
+   (3)   New files (usually with novel or strange file names,
+         such as data.xx or k or .xx ).
+   (4)   Accounting discrepancies (in a UNIX system you might
+         notice the shrinking of an accounting file called
+         /usr/admin/lastlog, something that should make you very
+         suspicious that there may be an intruder).
+   (5)   Changes in file lengths or dates (a user should be
+
+
+
+Site Security Working Group                                    [Page 40]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+         suspicious if .EXE files in an MS DOS computer have
+         unexplainedly grown by over 1800 bytes).
+   (6)   Attempts to write to system (a system manager notices
+         that a privileged user in a VMS system is attempting to
+         alter RIGHTSLIST.DAT).
+   (7)   Data modification or deletion (files start to disappear).
+   (8)   Denial of service (a system manager and all other users
+         become locked out of a UNIX system, now in single user mode).
+   (9)   Unexplained, poor system performance
+   (10)  Anomalies ("GOTCHA" is displayed on the console or there
+         are frequent unexplained "beeps").
+   (11)  Suspicious probes (there are numerous unsuccessful login
+         attempts from another node).
+   (12)  Suspicious browsing (someone becomes a root user on a UNIX
+         system and accesses file after file on many user accounts.)
+
+   By no means is this list comprehensive; we have just listed a number
+   of common indicators.  It is best to collaborate with other technical
+   and computer security personnel to make a decision as a group about
+   whether an incident is occurring.
+
+5.3.2  Types and Scope of Incidents
+
+   Along with the identification of the incident is the evaluation of
+   the scope and impact of the problem.  It is important to correctly
+   identify the boundaries of the incident in order to effectively deal
+   with it and prioritize responses.
+
+   In order to identify the scope and impact a set of criteria should be
+   defined which is appropriate to the site and to the type of
+   connections available.  Some of the issues include:
+
+   (1)  Is this a multi-site incident?
+   (2)  Are many computers at your site affected by this incident?
+   (3)  Is sensitive information involved?
+   (4)  What is the entry point of the incident (network,
+        phone line, local terminal, etc.)?
+   (5)  Is the press involved?
+   (6)  What is the potential damage of the incident?
+   (7)  What is the estimated time to close out the incident?
+   (8)  What resources could be required to handle the incident?
+   (9)  Is law enforcement involved?
+
+5.3.3  Assessing the Damage and Extent
+
+   The analysis of the damage and extent of the incident can be quite
+   time consuming, but should lead to some insight into the nature of
+   the incident, and aid investigation and prosecution.  As soon as the
+   breach has occurred, the entire system and all of its components
+   should be considered suspect.  System software is the most probable
+   target.  Preparation is key to be able to detect all changes for a
+   possibly tainted system.  This includes checksumming all tapes from
+   the vendor using a algorithm which is resistant to tampering.  (See
+   sections 4.3)
+
+
+
+Site Security Working Group                                    [Page 41]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   Assuming original vendor distribution tapes are available, an
+   analysis of all system files should commence, and any irregularities
+   should be noted and referred to all parties involved in handling the
+   incident.  It can be very difficult, in some cases, to decide which
+   backup tapes are showing a correct system status. Consider, for
+   example, that the incident may have continued for months or years
+   before discovery, and the suspect may be an employee of the site, or
+   otherwise have intimate knowledge or access to the systems.  In all
+   cases, the pre-incident preparation will determine what recovery is
+   possible.
+
+   If the system supports centralized logging (most do), go back over
+   the logs and look for abnormalities.  If process accounting and
+   connect time accounting is enabled, look for patterns of system
+   usage.  To a lesser extent, disk usage may shed light on the
+   incident.  Accounting can provide much helpful information in an
+   analysis of an incident and subsequent prosecution.  Your ability to
+   address all aspects of a specific incident strongly depends on the
+   success of this analysis.
+
+5.4  Handling an Incident
+
+   Certain steps are necessary to take during the handling of an
+   incident.  In all security related activities, the most important
+   point to be made is:  One should have policies in place.  Without
+   defined goals, activities undertaken will remain without focus. The
+   goals should be defined by management and legal counsel in advance.
+
+   One of the most fundamental objectives is to restore control of the
+   affected systems and to limit the impact and damage.  In the worst
+   case scenario, shutting down the system, or disconnecting the system
+   from the network, may the only practical solution.
+
+   As the activities involved are complex, try to get as much help as
+   necessary.  While trying to solve the problem alone, real damage
+   might occur due to delays or missing information.  Most system
+   administrators take the discovery of an intruder as personal
+   challenge.  By proceeding this way, other objectives as outlined in
+   the local policies may not always be considered.  Trying to catch
+   intruders may be a very low priority, compared to system integrity,
+   for example.  Monitoring a hacker's activity is useful, but it might
+   not be considered worth the risk to allow continued access.
+
+5.4.1  Types of notification, Exchange of information
+
+   When you have confirmed that an incident is occurring, the
+   appropriate personnel must be notified.  How this notification is
+   achieved is very important to keeping the event under control both
+   from a technical and emotional standpoint. The circumstances should
+   be described in as much detail as possible, in order to aid prompt
+   acknowledgment and understanding of the problem.  Great care should
+   be taken when determining to which groups detailed technical
+   information is given during the notification.  For example, it is
+   helpful to pass this kind of information to an incident handling team
+
+
+
+Site Security Working Group                                    [Page 42]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   as they can assist you by providing helpful hints for eradicating the
+   vulnerabilities involved in an incident.  On the other hand, putting
+   the critical knowledge into the public domain (e.g., via USENET
+   newsgroups or mailing lists) may potentially put a large number of
+   systems at risk of intrusion.  It is invalid to assume that all
+   administrators reading a particular newsgroup have access to
+   operating system source code, or can even understand an advisory well
+   enough to take adequate steps.
+
+   First of all, any notification to either local or off-site personnel
+   must be explicit.  This requires that any statement (be it an
+   electronic mail message, phone call, or fax) providing information
+   about the incident be clear, concise, and fully qualified.  When you
+   are notifying others that will help you handle an event, a "smoke
+   screen" will only divide the effort and create confusion.  If a
+   division of labor is suggested, it is helpful to provide information
+   to each participant about what is being accomplished in other
+   efforts.  This will not only reduce duplication of effort, but allow
+   people working on parts of the problem to know where to obtain
+   information relevant to their part of the incident.
+
+   Another important consideration when communicating about the incident
+   is to be factual.  Attempting to hide aspects of the incident by
+   providing false or incomplete information may not only prevent a
+   successful resolution to the incident, but may even worsen the
+   situation.
+
+   The choice of language used when notifying people about the incident
+   can have a profound effect on the way that information is received.
+   When you use emotional or inflammatory terms, you raise the potential
+   for damage and negative outcomes of the incident.  It is important to
+   remain calm both in written and spoken communications.
+
+   Another consideration is that not all people speak the same language.
+   Due to this fact, misunderstandings and delay may arise, especially
+   if it is a multi-national incident. Other international concerns
+   include differing legal implications of a security incident and
+   cultural differences.  However, cultural differences do not only
+   exist between countries.  They even exist within countries, between
+   different social or user groups.  For example, an administrator of a
+   university system might be very relaxed about attempts to connect to
+   the system via telnet, but the administrator of a military system is
+   likely to consider the same action as a possible attack.
+
+   Another issue associated with the choice of language is the
+   notification of non-technical or off-site personnel.  It is important
+   to accurately describe the incident without generating undue alarm or
+   confusion.  While it is more difficult to describe the incident to a
+   non-technical audience, it is often more important.  A non-technical
+   description may be required for upper-level management, the press, or
+   law enforcement liaisons.  The importance of these communications
+   cannot be underestimated and may make the difference between
+   resolving the incident properly and escalating to some higher level
+   of damage.
+
+
+
+Site Security Working Group                                    [Page 43]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   If an incident response team becomes involved, it might be necessary
+   to fill out a template for the information exchange.  Although this
+   may seem to be an additional burden and adds a certain delay, it
+   helps the team to act on this minimum set of information.  The
+   response team may be able to respond to aspects of the incident of
+   which the local administrator is unaware. If information is given out
+   to someone else, the following minimum information should be
+   provided:
+
+   (1)  timezone of logs, ... in GMT or local time
+   (2)  information about the remote system, including host names,
+        IP addresses and (perhaps) user IDs
+   (3)  all log entries relevant for the remote site
+   (4)  type of incident (what happened, why should you care)
+
+   If local information (i.e., local user IDs) is included in the log
+   entries, it might be necessary to sanitize the entries beforehand to
+   avoid privacy issues.  In general, all information which might assist
+   a remote site in resolving an incident should be given out, unless
+   local policies prohibit this.
+
+5.4.2  Protecting Evidence and Activity Logs
+
+   When you respond to an incident, document all details related to the
+   incident.  This will provide valuable information to yourself and
+   others as you try to unravel the course of events.  Documenting all
+   details will ultimately save you time.  If you don't document every
+   relevant phone call, for example, you are likely to forget a
+   significant portion of information you obtain, requiring you to
+   contact the source of information again.  At the same time, recording
+   details will provide evidence for prosecution efforts, providing the
+   case moves in that direction.  Documenting an incident will also help
+   you perform a final assessment of damage (something your management,
+   as well as law enforcement officers, will want to know), and will
+   provide the basis for later phases of the handling process:
+   eradication, recovery, and follow-up "lessons learned."
+
+   During the initial stages of an incident, it is often infeasible to
+   determine whether prosecution is viable, so you should document as if
+   you are gathering evidence for a court case.  At a minimum, you
+   should record:
+
+   (1)  all system events (audit records)
+   (2)  all actions you take (time tagged)
+   (3)  all phone conversations (including the person with whom
+        you talked, the date and time, and the content of the
+        conversation)
+
+   The most straightforward way to maintain documentation is keeping a
+   log book.  This allows you to go to a centralized, chronological
+   source of information when you need it, instead of requiring you to
+   page through individual sheets of paper.  Much of this information is
+   potential evidence in a court of law.  Thus, when you initially
+   suspect that an incident will result in prosecution or when an
+
+
+
+Site Security Working Group                                    [Page 44]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   investigative agency becomes involved, you need to:
+
+   (1)  Regularly (e.g., every day) turn in photocopied, signed
+        copies of your logbook (as well as media you use to record
+        system events) to a document custodian.
+   (2)  The custodian should store these copied pages in a secure
+        place (e.g., a safe).
+   (3)  When you submit information for storage, you should
+        receive a signed, dated receipt from the document
+        custodian.
+
+   Failure to observe these procedures can result in invalidation of any
+   evidence you obtain in a court of law.
+
+5.4.3  Containment
+
+   The purpose of containment is to limit the extent of an attack.  An
+   essential part of containment is decision making (e.g., determining
+   whether to shut a system down, disconnect from a network, monitor
+   system or network activity, set traps, disable functions such as
+   remote file transfer, etc.).
+
+   Sometimes this decision is trivial; shut the system down if the
+   information is classified, sensitive, or proprietary.  Bear in mind
+   that removing all access while an incident is in progress obviously
+   notifies all users, including the alleged problem users, that the
+   administrators are aware of a problem; this may have a deleterious
+   effect on an investigation.  In some cases, it is prudent to remove
+   all access or functionality as soon as possible, then restore normal
+   operation in limited stages.  In other cases, it is worthwhile to
+   risk some damage to the system if keeping the system up might enable
+   you to identify an intruder.
+
+   This stage should involve carrying out predetermined procedures.
+   Your organization or site should, for example, define acceptable
+   risks in dealing with an incident, and should prescribe specific
+   actions and strategies accordingly.  This is especially important
+   when a quick decision is necessary and it is not possible to first
+   contact all involved parties to discuss the decision.  In the absence
+   of predefined procedures, the person in charge of the incident will
+   often not have the power to make difficult management decisions (like
+   to lose the results of a costly experiment by shutting down a
+   system).  A final activity that should occur during this stage of
+   incident handling is the notification of appropriate authorities.
+
+5.4.4  Eradication
+
+   Once the incident has been contained, it is time to eradicate the
+   cause.  But before eradicating the cause, great care should be taken
+   to collect all necessary information about the compromised system(s)
+   and the cause of the incident as they will likely be lost when
+   cleaning up the system.
+
+   Software may be available to help you in the eradication process,
+
+
+
+Site Security Working Group                                    [Page 45]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   such as anti-virus software for small systems.  If any bogus files
+   have been created archive them before deleting them.  In the case of
+   virus infections, it is important to clean and reformat any disks
+   containing infected files.  Finally, ensure that all backups are
+   clean.  Many systems infected with viruses become periodically re-
+   infected simply because people do not systematically eradicate the
+   virus from backups.  After eradication, a new backup should be taken.
+
+   Removing all vulnerabilities once an incident has occurred is
+   difficult.  The key to removing vulnerabilities is knowledge and
+   understanding of the breach.
+
+   It may be necessary to go back to the original distribution tapes and
+   re-customize the system.  To facilitate this worst case scenario, a
+   record of the original system setup and each customization change
+   should be maintained.  In the case of a network-based attack, it is
+   important to install patches for each operating system vulnerability
+   which was exploited.
+
+   As discussed in section 5.4.2, a security log can be most valuable
+   during this phase of removing vulnerabilities. The logs showing how
+   the incident was discovered and contained can be used later to help
+   determine how extensive the damage was from a given incident.  The
+   steps taken can be used in the future to make sure the problem does
+   not resurface.  Ideally, one should automate and regularly apply the
+   same test as was used to detect the security incident.
+
+   If a particular vulnerability is isolated as having been exploited,
+   the next step is to find a mechanism to protect your system.  The
+   security mailing lists and bulletins would be a good place to search
+   for this information, and you can get advice from incident response
+   teams.
+
+5.4.5  Recovery
+
+   Once the cause of an incident has been eradicated, the recovery phase
+   defines the next stage of action.  The goal of recovery is to return
+   the system to normal.  In general, bringing up services in the order
+   of demand to allow a minimum of user inconvenience is the best
+   practice.  Understand that the proper recovery procedures for the
+   system are extremely important and should be specific to the site.
+
+5.4.6  Follow-Up
+
+   Once you believe that a system has been restored to a "safe" state,
+   it is still possible that holes, and even traps, could be lurking in
+   the system.  One of the most important stages of responding to
+   incidents is also the most often omitted, the follow-up stage.  In
+   the follow-up stage, the system should be monitored for items that
+   may have been missed during the cleanup stage.  It would be prudent
+   to utilize some of the tools mentioned in section xxx (e.g., xxx) as
+   a start.  Remember, these tools don't replace continual system
+   monitoring and good systems administration practices.
+
+
+
+
+Site Security Working Group                                    [Page 46]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   The most important element of the follow-up stage is performing a
+   postmortem analysis.  Exactly what happened, and at what times?  How
+   well did the staff involved with the incident perform?  What kind of
+   information did the staff need quickly, and how could they have
+   gotten that information as soon as possible?  What would the staff do
+   differently next time?
+
+   After an incident, it is prudent to write a report describing the
+   exact sequence of events: the method of discovery, correction
+   procedure, monitoring procedure, and a summary of lesson learned.
+   This will aid in the clear understanding of the problem.  Creating a
+   formal chronology of events (including time stamps) is also important
+   for legal reasons.
+
+   A follow-up report is valuable for many reasons.  It provides a
+   reference to be used in case of other similar incidents.  It is also
+   important to, as quickly as possible obtain a monetary estimate of
+   the amount of damage the incident caused. This estimate should
+   include costs associated with any loss of software and files
+   (especially the value of proprietary data that may have been
+   disclosed), hardware damage, and manpower costs to restore altered
+   files, reconfigure affected systems, and so forth.  This estimate may
+   become the basis for subsequent prosecution activity.  The report can
+   also help justify an organization's computer security effort to
+   management.
+
+5.5  Aftermath of an Incident
+
+   In the wake of an incident, several actions should take place.  These
+   actions can be summarized as follows:
+
+   (1)  An inventory should be taken of the systems' assets,
+        (i.e., a careful examination should determine how the
+        system was affected by the incident).
+
+   (2)  The lessons learned as a result of the incident
+        should be included in revised security plan to
+        prevent the incident from re-occurring.
+
+   (3)  A new risk analysis should be developed in light of the
+        incident.
+
+   (4)  An investigation and prosecution of the individuals
+        who caused the incident should commence, if it is
+        deemed desirable.
+
+   If an incident is based on poor policy, and unless the policy is
+   changed, then one is doomed to repeat the past.  Once a site has
+   recovered from and incident, site policy and procedures should be
+   reviewed to encompass changes to prevent similar incidents.  Even
+   without an incident, it would be prudent to review policies and
+   procedures on a regular basis.  Reviews are imperative due to today's
+   changing computing environments.
+
+
+
+
+Site Security Working Group                                    [Page 47]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   The whole purpose of this post mortem process is to improve all
+   security measures to protect the site against future attacks.  As a
+   result of an incident, a site or organization should gain practical
+   knowledge from the experience.  A concrete goal of the post mortem is
+   to develop new proactive methods.  Another important facet of the
+   aftermath may be end user and administrator education to prevent a
+   reoccurrence of the security problem.
+
+5.6  Responsibilities
+
+5.6.1  Not crossing the line
+
+   It is one thing to protect one's own network, but quite another to
+   assume that one should protect other networks.  During the handling
+   of an incident, certain system vulnerabilities of one's own systems
+   and the systems of others become apparent.  It is quite easy and may
+   even be tempting to pursue the intruders in order to track them.
+   Keep in mind that at a certain point it is possible to "cross the
+   line," and, with the best of intentions, become no better than the
+   intruder.
+
+   The best rule when it comes to propriety is to not use any facility
+   of remote sites which is not public.  This clearly excludes any entry
+   onto a system (such as a remote shell or login session) which is not
+   expressly permitted.  This may be very tempting; after a breach of
+   security is detected, a system administrator may have the means to
+   "follow it up," to ascertain what damage is being done to the remote
+   site.  Don't do it!  Instead, attempt to reach the appropriate point
+   of contact for the affected site.
+
+5.6.2  Good Internet Citizenship
+
+   During a security incident there are two choices one can make.
+   First, a site can choose to watch the intruder in the hopes of
+   catching him; or, the site can go about cleaning up after the
+   incident and shut the intruder out of the systems.  This is a
+   decision that must be made very thoughtfully, as there may be legal
+   liabilities if you choose to leave your site open, knowing that an
+   intruder is using your site as a launching pad to reach out to other
+   sites.  Being a good Internet citizen means that you should try to
+   alert other sites that may have been impacted by the intruder.  These
+   affected sites may be readily apparent after a thorough review of
+   your log files.
+
+5.6.3  Administrative Response to Incidents
+
+   When a security incident involves a user, the site's security policy
+   should describe what action is to be taken.  The transgression should
+   be taken seriously, but it is very important to be sure of the role
+   the user played.  Was the user naive?  Could there be a mistake in
+   attributing the security breach to the user?  Applying administrative
+   action that assumes the user intentionally caused the incident may
+   not be appropriate for a user who simply made a mistake.  It may be
+   appropriate to include sanctions more suitable for such a situation
+
+
+
+Site Security Working Group                                    [Page 48]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   in your policies (e.g., education or reprimand of a user) in addition
+   to more stern measures for intentional acts of intrusion and system
+   misuse.
+
+6.  Ongoing Activities
+
+   At this point in time, your site has hopefully developed a complete
+   security policy and developed procedures to assist in the
+   configuration and management of your technology in support of those
+   policies.  How nice it would be if you could sit back and relax at
+   this point and know that you were finished with the job of security.
+   Unfortunately, that isn't the case.  Your systems and networks are
+   not a static environment, so you will need to review policies and
+   procedures on a regular basis.  There are a number of steps you can
+   take to help you keep up with the changes around you so that you can
+   initiate corresponding actions to address those changes.  The
+   following is a starter set and you may add others as appropriate for
+   your site.
+
+   (1)  Subscribe to advisories that are issued by various security incide=
+nt
+        response teams, like those of the CERT Coordination Center [ref], =
+and
+        update your systems against those threats that apply to your site'=
+s
+        technology.
+
+   (2)  Monitor security patches that are produced by the vendors of your
+        equipment, and obtain and install all that apply.
+
+   (3)  Actively watch the configurations of your systems to identify any
+        changes that may have occurred, then investigate all anomalies.
+
+   (4)  Review all security policies and procedures annually (at a minimum=
+)
+
+   (5)  Read appropriate mailing lists and USENET newsgroups to keep up to
+        date with the latest information being shared by fellow
+        administrators.
+
+   (6)  Regularly check for compliance to policies and procedures.  This
+        audit should be performed by someone other than the people who
+        define or implement the policies and procedures.
+
+7.  Tools and Locations
+
+   This section provides a brief overview of publicly available security
+   technology which can be downloaded from the Internet.  Many of the
+   items described below will undoubtedly be surpassed or made obsolete
+   before this document is published.  This section is divided into two
+   major subsections, applications and tools.  The applications heading
+   will include all end user programs (clients) and their supporting
+   system infrastructure (servers).  The tools heading will deal with
+   the tools that a general user will never see or need to use, but
+   which may be part of or used by applications, used to troubleshoot
+   security problems or guard against intruders by system and network
+   administrators.
+
+
+
+
+Site Security Working Group                                    [Page 49]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   The emphasis will be on UNIX applications and tools, but other
+   platforms, particularly PC's and Macintoshes, will be mentioned where
+   information is available.
+
+   Most of the tools and applications described below can be found in
+   one of the following two archive sites:
+
+   (1)  CERT Coordination Center
+        ftp://info.cert.org:/pub/tools
+   (2)  DFN-CERT
+        ftp://ftp.cert.dfn.de/pub/tools/
+   (3)  Computer Operations, Audit, and Security Tools (COAST)
+        coast.cs.purdue.edu:/pub/tools
+
+   Any references to CERT or COAST will refer to these two locations.
+   These two sites act as repositories for most tools, exceptions will
+   be noted in the text.  *** It is important to note that many sites,
+   including CERT and COAST are mirrored throughout the Internet.  Be
+   careful to use a "well known" mirror site to retrieve software and to
+   use whatever verification tools possible, checksums, md5 checksums,
+   etc... to validate that software.  A clever cracker might advertise
+   security software with designed flaws in order to gain access to data
+   or machines. ***
+
+Applications
+
+   The sad truth is that there are very few security conscious
+   applications currently available.  The real reason is the need for a
+   security infrastructure which must be first put into place for most
+   applications to operate securely.  There is considerable effort
+   currently taking place to place this infrastructure so that
+   applications can take advantage of secure communications.
+
+Unix based applications
+
+   COPS
+   DES
+   Drawbridge
+   identd (not really a security tool)
+   ISS
+   Kerberos
+   logdaemon
+   lsof
+   MD5
+   PEM
+   PGP
+   rpcbind/portmapper replacement
+   SATAN
+   sfingerd
+   S/KEY
+   smrsh
+   ssh
+   swatch
+   TCP-Wrapper
+
+
+
+Site Security Working Group                                    [Page 50]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   tiger
+   Tripwire
+   TROJAN.PL
+
+8.  Mailing Lists and Other Resources
+
+   It would be impossible to list all of the mail-lists and other
+   resources dealing with site security. However, these are some "jump-
+   points"  from which the reader can begin. All of these references are
+   for the "INTERNET" constituency. More specific (vendor and
+   geographical) resources can be found through these references.
+
+   Mailing Lists
+
+   (1)  CERT Advisory
+        Send mail to:  cert-advisory-request@cert.org
+        Message Body:  subscribe cert <FIRST NAME> <LAST NAME>
+
+        A CERT advisory provides information on how to obtain a patch or
+        details of a workaround for a known computer security problem.
+        The CERT Coordination Center works with vendors to produce a
+        workaround or a patch for a problem, and does not publish
+        vulnerability information until a workaround or a patch is
+        available. A CERT advisory may also be a warning to our
+        constituency about ongoing attacks (e.g.,
+        "CA-91:18.Active.Internet.tftp.Attacks").
+
+
+        CERT advisories are also published on the USENET newsgroup:
+                     comp.security.announce
+
+        CERT advisory archives are available via anonymous FTP from
+        info.cert.org in the /pub/cert_advisories directory.
+
+   (2)  CERT Tools Mailing List
+        Send mail to:  cert-tools-request@cert.sei.cmu.edu
+        Message Body:  subscribe cert-tools FIRSTNAME LASTNAME
+
+        The purpose of this moderated mailing list is to
+        encourage the exchange of information on security
+        tools and techniques.  The list should not be used
+        for security problem reports.
+
+   (3)  VIRUS-L List
+        Send mail to:  listserv%lehiibm1.bitnet@mitvma.mit.edu
+        Message Body:  subscribe virus-L FIRSTNAME LASTNAME
+
+        VIRUS-L is a moderated mailing list with a focus
+        on computer virus issues.  For more information,
+        including a copy of the posting guidelines, see
+        the file "virus-l.README", available by anonymous
+        FTP from cs.ucr.edu.
+
+   (4)  Academic Firewalls
+
+
+
+Site Security Working Group                                    [Page 51]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+        Send mail to:  majordomo@greatcircle.com
+        Message Body:  subscribe firewalls user@host
+
+        The Firewalls mailing list is a discussion forum for
+        firewall administrators and implementors.
+
+   USENET newsgroups
+
+   (1)  comp.security.announce
+        The comp.security.announce newsgroup is moderated
+        and is used solely for the distribution of CERT
+        advisories.
+
+   (2)  comp.security.misc
+        The comp.security.misc is a forum for the
+        discussion of computer security, especially as it
+        relates to the UNIX(r) Operating System.
+
+   (3)  alt.security
+        The alt.security newsgroup is also a forum for the
+        discussion of computer security, as well as other
+        issues such as car locks and alarm systems.
+
+   (4)  comp.virus
+        The comp.virus newsgroup is a moderated newsgroup
+        with a focus on computer virus issues.  For more
+        information, including a copy of the posting
+        guidelines, see the file "virus-l.README",
+        available via anonymous FTP on info.cert.org
+        in the /pub/virus-l directory.
+
+   (5)  comp.risks
+        The comp.risks newsgroup is a moderated forum on
+        the risks to the public in computers and related
+        systems.
+
+   World-Wide Web Pages
+
+   (1)  http://www.first.org/
+
+        Computer Security Resource Clearinghouse. The main focus is on
+        crisis response information; information on computer
+        security-related threats, vulnerabilities, and solutions. At the
+        same time, the Clearinghouse strives to be a general index to
+        computer security information on a broad variety of subjects,
+        including general risks, privacy, legal issues, viruses,
+        assurance, policy, and training.
+
+   (2)  http://www.telstra.com.au/info/security.html
+
+        This Reference Index contains a list of links to information
+        sources on Network and Computer Security. There is no implied
+        fitness to the Tools, Techniques and Documents contained within th=
+is
+        archive. Many if not all of these items work well, but we do
+
+
+
+Site Security Working Group                                    [Page 52]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+        not guarantee that this will be so. This information is for the
+        education and legitimate use of computer security techniques only.
+
+   (3)  http://www.alw.nih.gov/Security/security.html
+
+        This page features general information about computer security.
+        Information is organized by source and each section is organized
+        by topic. Recent modifications are noted in What's New page.
+
+
+9.  References
+
+   [Appelman, et. al., 1995] Appelman, Heller, Ehrman, White, and
+   McAuliffe, "The Law and The Internet", USENIX 1995 Technical
+   Conference on UNIX and Advanced Computing, New Orleans, LA, January
+   16-20, 1995.
+
+   [ABA, 1989] American Bar Association, Section of Science and
+   Technology, "Guide to the Prosecution of Telecommunication Fraud by
+   the Use of Computer Crime Statutes", American Bar Association, 1989.
+
+   [Aucoin, 1989] R. Aucoin, "Computer Viruses: Checklist for Recovery",
+   Computers in  Libraries, Vol. 9, No. 2, Pg. 4, February 1989.
+
+   [Barrett, 1996] D. Barrett, "Bandits on the Information
+   Superhighway", O'Reilly & Associates, Sebastopol, CA, 1996.
+
+   [Bates, 1992] R. Bates, "Disaster Recovery Planning: Networks,
+   Telecommunications and Data Communications", McGraw-Hill, 1992.
+
+   [Bellovin, 1989] S. Bellovin, "Security Problems in the TCP/IP
+   Protocol Suite", Computer Communication Review, Vol 19, 2, pp. 32-48,
+   April 1989.
+
+   [Bellovin, 1990] S. Bellovin, and M. Merritt, "Limitations of the
+   Kerberos Authentication System", Computer Communications Review,
+   October 1990.
+
+   [Bellovin, 1992] S. Bellovin, "There Be Dragon", USENIX: Proceedings
+   of the Third Usenix Security Symposium, Baltimore, MD. September,
+   1992.
+
+   [Bender, 1894] D. Bender, "Computer Law: Evidence and Procedure", M.
+   Bender, New York, NY, 1978-present.
+
+   [Bloombecker, 1990] B. Bloombecker, "Spectacular Computer Crimes",
+   Dow Jones- Irwin, Homewood, IL. 1990.
+
+   [Brand, 1990] R. Brand, "Coping with the Threat of Computer Security
+   Incidents: A Primer from Prevention through Recovery", R. Brand, 8
+   June 1990.
+
+   [Brock, 1989] J. Brock, "November 1988 Internet Computer Virus and
+   the Vulnerability of National Telecommunications Networks to Computer
+
+
+
+Site Security Working Group                                    [Page 53]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   Viruses", GAO/T-IMTEC-89-10, Washington, DC, 20 July 1989.
+
+   [BS 7799] British Standard, BS Tech Cttee BSFD/12, Info. Sec. Mgmt,
+   "BS 7799 : 1995 Code of Practice for Information Security
+   Management", British Standards Institution, London, 54, Effective 15
+   February 1995.
+
+   [Caelli, 1988] W. Caelli, Editor, "Computer Security in the Age of
+   Information", Proceedings of the Fifth IFIP International Conference
+   on Computer Security, IFIP/Sec '88.
+
+   [Carroll, 1987] J. Carroll, "Computer Security", 2nd Edition,
+   Butterworth Publishers, Stoneham, MA, 1987.
+
+   [Cavazos and Morin, 1995] E. Cavazos and G. Morin, "Cyber-Space and
+   The Law", MIT Press, Cambridge, MA, 1995.
+
+   [CCH, 1989] Commerce Clearing House, "Guide to Computer Law",
+   (Topical Law Reports), Chicago, IL., 1989.
+
+   [Chapman, 1992] B. Chapman, "Network(In) Security Through IP Packet
+   Filtering", USSENIX: Proceedings of the Thrid UNIX Security
+   Symposium, Baltimore, MD, September 1992.
+
+   [Chapman and Zwicky, 1995] B. Chapman and E. Zwicky, "Building
+   Internet Firewalls", O'Reilly and Associates, Sebastopol, CA, 1995.
+
+   [Cheswick, 1990] B. Cheswick, "The Design of a Secure Internet
+   Gateway", Proceedings of the Summer Usenix Conference, Anaheim, CA,
+   June 1990.
+
+   [Cheswick1] W. Cheswick, "An Evening with Berferd In Which a Cracker
+   is Lured, Endured, and Studied", AT&T Bell Laboratories.
+
+   [Cheswick and Bellovin, 1994] W. Cheswick and S. Bellovin, "Firewalls
+   and Internet Security:  Repelling the Wily Hacker", Addison-Wesley,
+   Reading, MA, 1994.
+
+   [Conly, 1989] C. Conly, "Organizing for Computer Crime Investigation
+   and Prosecution", U.S. Dept. of Justice, Office of Justice Programs,
+   Under Contract  Number OJP-86-C-002, National Institute of Justice,
+   Washington, DC, July 1989.
+
+   [Cooper, 1989] J. Cooper, "Computer and Communications Security:
+   Strategies for the 1990s", McGraw-Hill, 1989.
+
+   [CPSR, 1989] Computer Professionals for Social Responsibility, "CPSR
+   Statement on the Computer Virus", CPSR, Communications of the ACM,
+   Vol. 32, No. 6, Pg. 699, June 1989.
+
+   [CSC-STD-002-85, 1985] Department of Defense, "Password Management
+   Guideline", CSC-STD-002-85, 12 April 1985, 31 pages.
+
+   [Curry, 1990] D. Curry, "Improving the Security of Your UNIX System",
+
+
+
+Site Security Working Group                                    [Page 54]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   SRI International Report ITSTD-721-FR-90-21, April 1990.
+
+   [Curry, 1992] D. Curry, "UNIX System Security: A Guide for Users and
+   Systems Administrators", Addision-Wesley, Reading, MA, 1992.
+
+   [DDN88] Defense Data Network, "BSD 4.2 and 4.3 Software Problem
+   Resolution", DDN MGT Bulletin #43, DDN Network Information Center, 3
+   November 1988.
+
+   [DDN89] DCA DDN Defense Communications System, "DDN Security Bulletin
+   03", DDN Security Coordination Center, 17 October 1989.
+
+   [Denning, 1990] P. Denning, Editor, "Computers Under Attack:
+   Intruders, Worms, and Viruses", ACM Press, 1990.
+
+   [Eichin and Rochlis, 1989] M. Eichin, and J. Rochlis, "With
+   Microscope and Tweezers:  An Analysis of the Internet Virus of
+   November 1988", Massachusetts Institute of Technology, February 1989.
+
+   [Eisenberg, et. al., 89] T. Eisenberg, D. Gries, J. Hartmanis, D.
+   Holcomb, M. Lynn, and T. Santoro, "The Computer Worm", Cornell
+   University, 6 February 1989.
+
+   [Ermann, Willians, and Gutierrez, 1990] D. Ermann, M. Williams, and
+   C. Gutierrez, Editors, "Computers, Ethics, and Society", Oxford
+   University Press, NY, 1990.  (376 pages, includes bibliographical
+   references).
+
+   [Farmer and Spafford, 1990] D. Farmer and E. Spafford, "The COPS
+   Security Checker System", Proceedings of the Summer 1990 USENIX
+   Conference, Anaheim, CA, Pgs. 165-170, June 1990.
+
+   [Farrow, 1991] Rik Farrow, "UNIX Systems Security", Addison-Wesley,
+   Reading, MA, 1991.
+
+   [Fenwick, 1985] W. Fenwick, Chair, "Computer Litigation, 1985: Trial
+   Tactics and Techniques", Litigation Course Handbook Series No. 280,
+   Prepared for distribution at the Computer Litigation, 1985: Trial
+   Tactics and Techniques Program, February-March 1985.
+
+   [Fites, Kratz, and Brebner, 1989] M. Fites, P. Kratz, and A. Brebner,
+   "Control and Security of Computer Information Systems", Computer
+   Science Press, 1989.
+
+   [Fites, Johnson, and Kratz, 1992] Fites, Johnson, and Kratz, "The
+   Computer Virus Crisis", Van Hostrand Reinhold, 2nd edition, 1992.
+
+   [Forester and Morrison, 1990] T. Forester, and P. Morrison, "Computer
+   Ethics: Tales and Ethical Dilemmas in Computing", MIT Press,
+   Cambridge, MA, 1990.
+
+   [Foster and Morrision, 1990] T. Forester, and P. Morrison, "Computer
+   Ethics: Tales and Ethical Dilemmas in Computing", MIT Press,
+   Cambridge, MA, 1990.  (192 pages including index.)
+
+
+
+Site Security Working Group                                    [Page 55]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   [GAO/IMTEX-89-57, 1989] U.S. General Accounting Office, "Computer
+   Security - Virus Highlights Need for Improved Internet Management",
+   United States General Accounting Office, Washington, DC, 1989.
+
+   [Garfinkel and Spafford, 1991] S. Garfinkel, and E. Spafford,
+   "Practical Unix Security", O'Reilly & Associates, ISBN 0-937175-72-2,
+   May 1991.
+
+   [Garfinkel, 1995] S. Garfinkel, "PGP:Pretty Good Privacy", O'Reilly &
+   Associates, Sebastopol, CA, 1996.
+
+   [Garfinkel and Spafford, 1996] S. Garfinkel and E. Spafford,
+   "Practical UNIX and Internet Security", O'Reilly & Associates,
+   Sebastopol, CA, 1996.
+
+   [Gemignani, 1989] M. Gemignani, "Viruses and Criminal Law",
+   Communications of the ACM, Vol. 32, No. 6, Pgs. 669-671, June 1989.
+
+   [Goodell, 1996] J. Goodell, "The Cyberthief and the Samurai: The True
+   Story of Kevin Mitnick-And The Man Who Hunted Him Down", Dell
+   Publishing, 328pp, 1996.
+
+   [Gould, 1989] C. Gould, Editor, "The Information Web: Ethical and
+   Social Implications of Computer Networking", Westview Press, Boulder,
+   CO, 1989.
+
+   [Greenia, 1989] M. Greenia, "Computer Security Information
+   Sourcebook", Lexikon Services, Sacramento, CA, 1989.
+
+   [Hafner and Markoff, 1991] K. Hafner and J. Markoff, "Cyberpunk:
+   Outlaws and Hackers on the Computer Frontier", Touchstone, Simon &
+   Schuster, 1991.
+
+   [Hess, Safford, and Pooch] D. Hess, D. Safford, and U. Pooch, "A Unix
+   Network Protocol Security Study: Network Information Service", Texas
+   A&M University.
+
+   [Hoffman, 1990] L. Hoffman, "Rogue Programs: Viruses, Worms, and
+   Trojan Horses", Van Nostrand Reinhold, NY, 1990.  (384 pages,
+   includes bibliographical references and index.)
+
+   [Howard, 1995] G. Howard, "Introduction to Internet Security: From
+   Basics to Beyond", Prima Publishing, Rocklin, CA, 1995.
+
+   [Huband and Shelton, 1986] F. Huband, and R. Shelton, Editors,
+   "Protection of Computer Systems and Software: New Approaches for
+   Combating Theft of Software and Unauthorized Intrusion", Papers
+   presented at a workshop sponsored by the National Science Foundation,
+   1986.
+
+   [Hughes, 1995] L. Hughes Jr., "Actually Useful: Internet Security
+   Techniques", New Riders Publishing, Indianapolis, IN, 1995.
+
+   [IAB-RFC1087, 89] Internet Activities Board, "Ethics and the
+
+
+
+Site Security Working Group                                    [Page 56]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   Internet", RFC 1087, IAB, January 1989.  Also appears in the
+   Communications of the ACM, Vol. 32, No. 6, Pg. 710, June 1989.
+
+   [Icove, Seger, and VonStorch, 1995] D. Icove, K. Seger, and W.
+   VonStorch, "Computer Crime: A Crimefighter's Handbook", O'Reilly &
+   Associates, Sebastopol, CA, 1995.
+
+   [IVPC, 1996] IVPC, "International Virus Prevention Conference '96
+   Proceedings", NCSA, 1996.
+
+   [Johnson and Podesta] D. Johnson, and J. Podesta, "Formulating A
+   Company Policy on Access to and Use and Disclosure of Electronic Mail
+   on Company Computer Systems".
+
+   [Kane, 1994] P. Kane, "PC Security and Virus Protection Handbook: The
+   Ongoing War Against Information Sabotage", M&T Books, 1994.
+
+   [Kaufman, Perlman, and Speciner, 1995] C. Kaufman, R. Perlman, and M.
+   Speciner, "Network Security:  PRIVATE Communication in a PUBLIC
+   World", Prentice Hall, Englewood Cliffs, NJ, 1995.
+
+   [Kent, 1990] S. Kent, "E-Mail Privacy for the Internet: New Software
+   and Strict Registration Procedures will be Implemented this Year",
+   Business Communications Review, Vol. 20, No. 1, Pg. 55, 1 January
+   1990.
+
+   [Levy, 1984] S. Levy, "Hacker: Heroes of the Computer Revolution",
+   Delta, 1984.
+
+   [Lewis, 1996] S. Lewis, "Disaster Recovery Yellow Pages", The Systems
+   Audit Group, 1996.
+
+   [Littleman, 1996] J. Littleman, "The Fugitive Game: Online with Kevin
+   Mitnick", Little, Brown, Boston, MA. 333p, 1996.
+
+   [Lu and Sundareshan, 1989] W. Lu and M. Sundareshan, "Secure
+   Communication in Internet Environments: A Hierarchical Key Management
+   Scheme for End-to-End Encryption", IEEE Transactions on
+   Communications, Vol. 37, No. 10, Pg. 1014, 1 October 1989.
+
+   [Lu and Sundareshan, 1990] W. Lu and M. Sundareshan, "A Model for
+   Multilevel Security in Computer Networks", IEEE Transactions on
+   Software Engineering, Vol. 16, No. 6, Page 647, 1 June 1990.
+
+   [Martin and Schinzinger, 1989] M. Martin, and R. Schinzinger, "Ethics
+   in Engineering", McGraw Hill, 2nd Edition, 1989.
+
+   [Merkle] R. Merkle, "A Fast Software One Way Hash Function", Journal
+   of Cryptology, Vol. 3, No. 1.
+
+   [McEwen, 1989] J. McEwen, "Dedicated Computer Crime Units", Report
+   Contributors: D. Fester and H. Nugent, Prepared for the National
+   Institute of Justice, U.S. Department of Justice, by Institute for
+   Law and Justice, Inc., under contract number OJP-85-C-006,
+
+
+
+Site Security Working Group                                    [Page 57]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   Washington, DC, 1989.
+
+   [MIT, 1989] Massachusetts Institute of Technology, "Teaching Students
+   About Responsible Use of Computers", MIT, 1985-1986.  Also reprinted
+   in the Communications of the ACM, Vol. 32, No. 6, Pg. 704, Athena
+   Project, MIT, June 1989.
+
+   [Mogel, 1989] Mogul, J., "Simple and Flexible Datagram Access
+   Controls for UNIX-based Gateways", Digital Western Research
+   Laboratory Research Report 89/4, March 1989.
+
+   [Muffett, 1992] A. Muffett, "Crack Version 4.1: A Sensible Password
+   Checker for Unix"
+
+   [NCSA1, 1995] NCSA, "NCSA Firewall Policy Guide", 1995.
+
+   [NCSA2, 1995] NCSA, "NCSA's Corporate Computer Virus Prevention
+   Policy Model", NCSA, 1995.
+
+   [NCSA, 1996] NCSA, "Firewalls & Internet Security Conference '96
+   Proceedings", 1996.
+
+   [NCSC-89-660-P, 1990] National Computer Security Center, "Guidelines
+   for Formal Verification Systems", Shipping list no.: 89-660-P, The
+   Center, Fort George G. Meade, MD, 1 April 1990.
+
+   [NCSC-89-254-P, 1988] National Computer Security Center, "Glossary of
+   Computer Security Terms", Shipping list no.: 89-254-P, The Center,
+   Fort George G. Meade, MD, 21 October 1988.
+
+   [NCSC-C1-001-89, 1989] Tinto, M., "Computer Viruses: Prevention,
+   Detection, and Treatment", National Computer Security Center C1
+   Technical Report C1-001-89, June 1989.
+
+   [NCSC Conference, 1989] National Computer Security Conference, "12th
+   National Computer Security Conference: Baltimore Convention Center,
+   Baltimore, MD, 10-13 October, 1989: Information Systems Security,
+   Solutions for Today - Concepts for Tomorrow", National Institute of
+   Standards and National Computer Security Center, 1989.
+
+   [NCSC-CSC-STD-003-85, 1985] National Computer Security Center,
+   "Guidance for Applying the Department of Defense Trusted Computer
+   System Evaluation Criteria in Specific Environments", CSC-STD-003-85,
+   NCSC, 25 June 1985.
+
+   [NCSC-STD-004-85, 1985] National Computer Security Center, "Technical
+   Rationale Behind CSC-STD-003-85: Computer Security Requirements",
+   CSC-STD-004-85, NCSC, 25 June 1985.
+
+   [NCSC-STD-005-85, 1985] National Computer Security Center, "Magnetic
+   Remanence Security Guideline", CSC-STD-005-85, NCSC, 15 November
+   1985.
+
+   [NCSC-TCSEC, 1985] National Computer Security Center, "Trusted
+
+
+
+Site Security Working Group                                    [Page 58]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   Computer System Evaluation Criteria", DoD 5200.28-STD, CSC-STD-001-
+   83, NCSC, December 1985.
+
+   [NCSC-TG-003, 1987] NCSC, "A Guide to Understanding DISCRETIONARY
+   ACCESS CONTROL in Trusted Systems", NCSC-TG-003, Version-1, 30
+   September 1987, 29 pages.
+
+   [NCSC-TG-001, 1988] NCSC, "A Guide to Understanding AUDIT in Trusted
+   Systems", NCSC-TG-001, Version-2, 1 June 1988, 25 pages.
+
+   [NCSC-TG-004, 1988] National Computer Security Center, "Glossary of
+   Computer Security Terms", NCSC-TG-004, NCSC, 21 October 1988.
+
+   [NCSC-TG-005, 1987] National Computer Security Center, "Trusted
+   Network Interpretation", NCSC-TG-005, NCSC, 31 July 1987.
+
+   [NCSC-TG-006, 1988] NCSC, "A Guide to Understanding CONFIGURATION
+   MANAGEMENT in Trusted Systems", NCSC-TG-006, Version-1, 28 March
+   1988, 31 pages.
+
+   [NCSC-TRUSIX, 1990] National Computer Security Center, "Trusted UNIX
+   Working Group (TRUSIX) rationale for selecting access control list
+   features for the UNIX system", Shipping list no.:  90-076-P, The
+   Center, Fort George G. Meade, MD, 1990.
+
+   [NRC, 1991] National Research Council, "Computers at Risk: Safe
+   Computing in the Information Age", National Academy Press, 1991.
+
+   [Nemeth, et. al, 1995] E. Nemeth, G. Snyder, S. Seebass, and T. Hein,
+   "UNIX Systems Administration Handbook", Prentice Hall PTR, Englewood
+   Cliffs, NJ, 2ed. 1995.
+
+   [NIST, 1989] National Institute of Standards and Technology,
+   "Computer Viruses and Related Threats: A Management Guide", NIST
+   Special Publication 500-166, August 1989.
+
+   [NSA] National Security Agency, "Information Systems Security
+   Products and Services Catalog", NSA, Quarterly Publication.
+
+   [NSF, 1988] National Science Foundation, "NSF Poses Code of
+   Networking Ethics", Communications of the ACM, Vol. 32, No. 6, Pg.
+   688, June 1989.  Also appears in the minutes of the regular meeting
+   of the Division Advisory Panel for Networking and Communications
+   Research and Infrastructure, Dave Farber, Chair, November 29-30,
+   1988.
+
+   [NTISSAM, 1987] NTISS, "Advisory Memorandum on Office Automation
+   Security Guideline", NTISSAM CONPUSEC/1-87, 16 January 1987, 58
+   pages.
+
+   [OTA-CIT-310, 1987] United States Congress, Office of Technology
+   Assessment, "Defending Secrets, Sharing Data: New Locks and Keys for
+   Electronic Information", OTA-CIT-310, October 1987.
+
+
+
+
+Site Security Working Group                                    [Page 59]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   [OTA-TCT-606] Congress of the United States, Office of Technology
+   Assessment, "Information Security and Privacy in Network
+   Environments", OTA-TCT-606, September 1994.
+
+   [Palmer and Potter, 1989] I. Palmer, and G. Potter, "Computer
+   Security Risk Management", Van Nostrand Reinhold, NY, 1989.
+
+   [Parker, 1989] D. Parker, "Computer Crime: Criminal Justice Resource
+   Manual", U.S. Dept. of Justice, National Institute of Justice, Office
+   of Justice Programs, Under Contract Number OJP-86-C-002, Washington,
+   D.C., August 1989.
+
+   [Parker, Swope, and Baker, 1990] D. Parker, S. Swope, and B. Baker,
+   "Ethical Conflicts:  Information and Computer Science, Technology and
+   Business", QED Information Sciences, Inc., Wellesley, MA. (245
+   pages).
+
+   [Pfleeger, 1989] C. Pfleeger, "Security in Computing", Prentice-Hall,
+   Englewood Cliffs, NJ, 1989.
+
+   [Quarterman, 1990] J. Quarterman, J., "The Matrix: Computer Networks
+   and Conferencing Systems Worldwide", Digital Press, Bedford, MA,
+   1990.
+
+   [Ranum1, 1992] M. Ranum, "An Internet Firwall", Proceedings of World
+   Conference on Systems Management and Security, 1992.
+
+   [Ranum2, 1992] M. Ranum, "A Network Firewall", Digital Equipment
+   Corporation Washington Open Systems Resource Center, June 12, 1992.
+
+   [Ranum, 1993] M. Ranum, "Thinking About Firewalls", 1993.
+
+   [Ranum and Avolio, 1994] M. Ranum and F. Avolio, "A Toolkit and
+   Methods for Internet Firewalls", Trustest Information Systems, 1994.
+
+   [Reinhardt, 1992] R. Reinhardt, "An Architectural Overview of UNIX
+   Network Security"
+
+   [Reinhardt, 1993] R. Reinhardt, "An Architectural Overview of UNIX
+   Network Security", ARINC Research Corporation, February 18, 1993.
+
+   [Reynolds-RFC1135, 1989] The Helminthiasis of the Internet, RFC 1135,
+   USC/Information Sciences Institute, Marina del Rey, CA, December
+   1989.
+
+   [Russell and Gangemi, 1991] D. Russell and G. Gangemi, "Computer
+   Security Basics" O'Reilly & Associates, Sebastopol, CA, 1991.
+
+   [Schneier 1996] B. Schneier, "Applied Cryptography: Protocols,
+   Algorithms, and Source Code in C", John Wiley & Sons, New York,
+   second edition, 1996.
+
+   [Seeley, 1989] D. Seeley, "A Tour of the Worm", Proceedings of 1989
+   Winter USENIX Conference, Usenix Association, San Diego, CA, February
+
+
+
+Site Security Working Group                                    [Page 60]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   1989.
+
+   [Shaw, 1986] E. Shaw Jr., "Computer Fraud and Abuse Act of 1986",
+   Congressional Record (3 June 1986), Washington, D.C., 3 June 1986.
+
+   [Shimomura, 1996] T. Shimomura with J. Markoff, "Takedown:The Pursuit
+   and Capture of Kevin Mitnick, America's Most Wanted Comptuer Outlaw-
+   by the Man Who Did It", Hyperion, 324p, 1996.
+
+   [Shirey, 1990] R. Shirey, "Defense Data Network Security
+   Architecture", Computer Communication Review, Vol. 20, No. 2, Page
+   66, 1 April 1990.
+
+   [Slatalla and Quittner, 1995] M. Slatalla and J. Quittner, "Masters
+   of Deception: The Gang that Ruled Cyberspace", Harper Collins
+   Publishers, 1995.
+
+   [Smith, 1989] M. Smith, "Commonsense Computer Security: Your
+   Practical Guide to Preventing Accidental and Deliberate Electronic
+   Data Loss", McGraw-Hill, New York, NY, 1989.
+
+   [Smith, 1995] D. Smith, "Forming an Incident Response Team", Sixth
+   Annual Computer Security Incident Handling Workshop, Boston, MA, July
+   25-29, 1995.
+
+   [Spafford, 1988] E. Spafford, "The Internet Worm Program: An
+   Analysis", Computer Communication Review, Vol. 19, No. 1, ACM SIGCOM,
+   January 1989.  Also issued as Purdue CS Technical Report CSD-TR-823,
+   28 November 1988.
+
+   [Spafford, 1989] G. Spafford, "An Analysis of the Internet Worm",
+   Proceedings of the European Software Engineering Conference 1989,
+   Warwick England, September 1989.  Proceedings published by Springer-
+   Verlag as: Lecture Notes in Computer Science #387.  Also issued as
+   Purdue Technical Report #CSD-TR-933.
+
+   [Spafford, Keaphy, and Ferbrache, 1989] E. Spafford, K. Heaphy, and
+   D. Ferbrache, "Computer Viruses: Dealing with Electronic Vandalism
+   and Programmed Threats", ADAPSO, 1989. (109 pages.)
+
+   [Stallings1, 1995] W. Stallings, "Internet Security Handbook", IDG
+   Books, Foster City CA, 1995.
+
+   [Stallings2, 1995] W. Stallings, "Network and InterNetwork Security",
+   Prentice Hall, , 1995.
+
+   [Stallings3, 1995] W. Stallings, "Protect Your Privacy: A Guide for
+   PGP Users"  PTR Prentice Hall, 1995.
+
+   [Stoll, 1988] C. Stoll, "Stalking the Wily Hacker", Communications of
+   the ACM, Vol. 31, No. 5, Pgs. 484-497, ACM, New York, NY, May 1988.
+
+   [Stoll, 1989] C. Stoll, "The Cuckoo's Egg", ISBN 00385-24946-2,
+   Doubleday, 1989.
+
+
+
+Site Security Working Group                                    [Page 61]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   [Treese and Wolman, 1993] G. Treese and A. Wolman, "X Through the
+   Firewall, and Other Applications Relays", Digital Equipment
+   Corporation, Cambridge Research Laboratory, CRL 93/10, May 3, 1993.
+
+   [Trible, 1986] P. Trible, "The Computer Fraud and Abuse Act of 1986",
+   U.S. Senate Committee on the Judiciary, 1986.
+
+   [Venema] W. Venema, "TCP WRAPPER: Network monitoring, access control,
+   and booby traps", Mathematics and Computing Science, Eindhoven
+   University of Technology, The Netherlands.
+
+   [USENIX, 1988] USENIX, "USENIX Proceedings: UNIX Security Workshop",
+   Portland, OR, August 29-30, 1988.
+
+   [USENIX, 1990] USENIX, "USENIX Proceedings: UNIX Security II
+   Workshop", Portland, OR, August 27-28, 1990.
+
+   [USENIX, 1992] USENIX, "USENIX Symposium Proceedings: UNIX Security
+   III", Baltimore, MD, September 14-16, 1992.
+
+   [USENIX, 1993] USENIX, "USENIX Symposium Proceedings: UNIX Security
+   IV", Santa Clara, CA, October 4-6, 1993.
+
+   [USENIX, 1995] USENIX, "The Fifth USENIX UNIX Security Symposium",
+   Salt Lake City, UT, June 5-7, 1995.
+
+   [Wood, et.al., 1987] C. Wood, W. Banks, S. Guarro, A. Garcia, V.
+   Hampel, and H. Sartorio, "Computer Security:  A Comprehensive
+   Controls Checklist", John Wiley and Sons, Interscience Publication,
+   1987.
+
+   [Wrobel, 1993] L. Wrobel, "Writing Disaster Recovery Plans for
+   Telecommunications Networks and LANS", Artech House, 1993.
+
+   [Vallabhaneni, 1989] S. Vallabhaneni, "Auditing Computer Security: A
+   Manual with Case Studies", Wiley, New York, NY, 1989.
+
+10.  Annotated Bibliography
+
+   The intent of this annotated bibliography is to offer a
+   representative collection of resources of information that will help
+   the user of this handbook.  It is meant provide a starting point for
+   further research in the security area.  Included are references to
+   other sources of information for those who wish to pursue issues of
+   the computer security environment.
+
+10.1  Computer Law
+
+   [Appelman, et. al., 1995] Appelman, Heller, Ehrman, White, and
+   McAuliffe, "The Law and The Internet", USENIX 1995 Technical
+   Conference on UNIX and Advanced Computing, New Orleans, LA, January
+   16-20, 1995.
+
+   [ABA, 1989] American Bar Association, Section of Science and
+
+
+
+Site Security Working Group                                    [Page 62]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   Technology, "Guide to the Prosecution of Telecommunication Fraud by
+   the Use of Computer Crime Statutes", American Bar Association, 1989.
+
+   [Bender, 1894] D. Bender, "Computer Law: Evidence and Procedure", M.
+   Bender, New York, NY, 1978-present.
+
+   Kept up to date with supplements.  Years covering 1978-1984 focuses
+   on: Computer law, evidence and procedures.  The years 1984 to the
+   current focus on general computer law.  Bibliographical references
+   and index included.
+
+   [Bloombecker, 1990] B. Bloombecker, "Spectacular Computer Crimes",
+   Dow Jones- Irwin, Homewood, IL. 1990.
+
+   [Cavazos and Morin, 1995] E. Cavazos and G. Morin, "Cyber-Space and
+   The Law", MIT Press, Cambridge, MA, 1995.
+
+   [CCH, 1989] Commerce Clearing House, "Guide to Computer Law",
+   (Topical Law Reports), Chicago, IL., 1989.
+
+   Court cases and decisions rendered by federal and state courts
+   throughout the United States on federal and state computer law.
+   Includes Case Table and Topical Index.
+
+   [Conly, 1989] C. Conly, "Organizing for Computer Crime Investigation
+   and Prosecution", U.S. Dept. of Justice, Office of Justice Programs,
+   Under Contract  Number OJP-86-C-002, National Institute of Justice,
+   Washington, DC, July 1989.
+
+   [Fenwick, 1985] W. Fenwick, Chair, "Computer Litigation, 1985: Trial
+   Tactics and Techniques", Litigation Course Handbook Series No. 280,
+   Prepared for distribution at the Computer Litigation, 1985: Trial
+   Tactics and Techniques Program, February-March 1985.
+
+   [Gemignani, 1989] M. Gemignani, "Viruses and Criminal Law",
+   Communications of the ACM, Vol. 32, No. 6, Pgs. 669-671, June 1989.
+
+   [Huband and Shelton, 1986] F. Huband, and R. Shelton, Editors,
+   "Protection of Computer Systems and Software: New Approaches for
+   Combating Theft of Software and Unauthorized Intrusion", Papers
+   presented at a workshop sponsored by the National Science Foundation,
+   1986.
+
+   [McEwen, 1989] J. McEwen, "Dedicated Computer Crime Units", Report
+   Contributors: D. Fester and H. Nugent, Prepared for the National
+   Institute of Justice, U.S. Department of Justice, by Institute for
+   Law and Justice, Inc., under contract number OJP-85-C-006,
+   Washington, DC, 1989.
+
+   [Parker, 1989] D. Parker, "Computer Crime: Criminal Justice Resource
+   Manual", U.S. Dept. of Justice, National Institute of Justice, Office
+   of Justice Programs, Under Contract Number OJP-86-C-002, Washington,
+   D.C., August 1989.
+
+
+
+
+Site Security Working Group                                    [Page 63]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   [Shaw, 1986] E. Shaw Jr., "Computer Fraud and Abuse Act of 1986,
+   Congressional Record (3 June 1986), Washington, D.C., 3 June 1986.
+
+   [Trible, 1986] P. Trible, "The Computer Fraud and Abuse Act of 1986",
+   U.S. Senate Committee on the Judiciary, 1986.
+
+
+10.2  Computer and Network Security
+
+   [Brand, 1990] Brand, R., "Coping with the Threat of Computer Security
+   Incidents: A Primer from Prevention through Recovery", R. Brand,
+   available on-line from: cert.sei.cmu.edu:/pub/info/primer, 8 June
+   1990.
+
+   [Bellovin, 1989] S. Bellovin, "Security Problems in the TCP/IP
+   Protocol Suite", Computer Communication Review, Vol 19, 2, pp. 32-48,
+   April 1989.
+
+   [Bellovin, 1990] S. Bellovin, and M. Merritt, "Limitations of the
+   Kerberos Authentication System", Computer Communications Review,
+   October 1990.
+
+   [BS 7799] British Standard, BS Tech Cttee BSFD/12, Info. Sec. Mgmt,
+   "BS 7799 : 1995 Code of Practice for Information Security
+   Management", British Standards Institution, London, 54, Effective 15
+   February 1995.
+
+   Based on PD 0003:  Price c. GBP 35
+
+   The code is divided into 10 sections: security policy, security
+   organization, assets classification and control, personnel security,
+   physical and environmental security, computer and network management,
+   system and access control, system development and maintenance,
+   business continuity planning, and compliance.
+
+   [Caelli, 1988] W. Caelli, Editor, "Computer Security in the Age of
+   Information", Proceedings of the Fifth IFIP International Conference
+   on Computer Security, IFIP/Sec '88.
+
+   [Carroll, 1987] J. Carroll, "Computer Security", 2nd Edition,
+   Butterworth Publishers, Stoneham, MA, 1987.
+
+   [Cooper, 1989] J. Cooper, "Computer and Communications Security:
+   Strategies for the 1990s", McGraw-Hill, 1989.
+
+   [Brand, 1990] R. Brand, "Coping with the Threat of Computer Security
+   Incidents: A Primer from Prevention through Recovery", R. Brand, 8
+   June 1990.
+
+   As computer security becomes a more important issue in modern
+   society, it begins to warrant a systematic approach.  The vast
+   majority of the computer security problems and the costs associated
+   with them can be prevented with simple inexpensive measures.  The
+   most important and cost effective of these measures are available in
+
+
+
+Site Security Working Group                                    [Page 64]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   the prevention and planning phases.  These methods are presented in
+   this paper, followed by a simplified guide to incident handling and
+   recovery.  Available on-line from:
+   cert.sei.cmu.edu:/pub/info/primer.
+
+   [Cheswick, 1990] B. Cheswick, "The Design of a Secure Internet
+   Gateway", Proceedings of the Summer Usenix Conference, Anaheim, CA,
+   June 1990.
+
+   Brief abstract (slight paraphrase from the original abstract): AT&T
+   maintains a large internal Internet that needs to be protected from
+   outside attacks, while providing useful services between the two.
+   This paper describes AT&T's Internet gateway.  This gateway passes
+   mail and many of the common Internet services between AT&T internal
+   machines and the Internet.  This is accomplished without IP
+   connectivity using a pair of machines: a trusted internal machine and
+   an untrusted external gateway.  These are connected by a private
+   link.  The internal machine provides a few carefully-guarded services
+   to the external gateway.  This configuration helps protect the
+   internal internet even if the external machine is fully compromised.
+
+   This is a very useful and interesting design.  Most firewall gateway
+   systems rely on a system that, if compromised, could allow access to
+   the machines behind the firewall.  Also, most firewall systems
+   require users who want access to Internet services to have accounts
+   on the firewall machine.  AT&T's design allows AT&T internal internet
+   users access to the standard services of TELNET and FTP from their
+   own workstations without accounts on the firewall machine.  A very
+   useful paper that shows how to maintain some of the benefits of
+   Internet connectivity while still maintaining strong security.
+
+   [Curry, 1992] D. Curry, "UNIX System Security: A Guide for Users and
+   Systems Administrators", Addision-Wesley, Reading, MA, 1992.
+
+   [Curry, 1990] D. Curry, "Improving the Security of Your UNIX System",
+   SRI International Report ITSTD-721-FR-90-21, April 1990.
+
+   This paper describes measures that you, as a system administrator can
+   take to make your UNIX system(s) more secure.  Oriented primarily at
+   SunOS 4.x, most of the information covered applies equally well to
+   any Berkeley UNIX system with or without NFS and/or Yellow Pages
+   (NIS).  Some of the information can also be applied to System V,
+   although this is not a primary focus of the paper.  A very useful
+   reference, this is also available on the Internet in various
+   locations, including the directory cert.sei.cmu.edu:/pub/info.
+
+   [Farmer and Spafford, 1990] D. Farmer and E. Spafford, "The COPS
+   Security Checker System", Proceedings of the Summer 1990 USENIX
+   Conference, Anaheim, CA, Pgs. 165-170, June 1990.
+
+   [Farrow, 1991] Rik Farrow, "UNIX Systems Security", Addison-Wesley,
+   Reading, MA, 1991.
+
+   [Fites, Kratz, and Brebner, 1989] M. Fites, P. Kratz, and A. Brebner,
+
+
+
+Site Security Working Group                                    [Page 65]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   "Control and Security of Computer Information Systems", Computer
+   Science Press, 1989.
+
+   This book serves as a good guide to the issues encountered in forming
+   computer security policies and procedures.  The book is designed as a
+   textbook for an introductory course in information systems security.
+
+   The book is divided into five sections: Risk Management (I),
+   Safeguards: security and control measures, organizational and
+   administrative (II), Safeguards: Security and Control Measures,
+   Technical (III), Legal Environment and Professionalism (IV), and CICA
+   Computer Control Guidelines (V).
+
+   The book is particularly notable for its straight-forward approach to
+   security, emphasizing that common sense is the first consideration in
+   designing a security program.  The authors note that there is a
+   tendency to look to more technical solutions to security problems
+   while overlooking organizational controls which are often cheaper and
+   much more effective.  298 pages, including references and index.
+
+   [Forester and Morrison, 1990] T. Forester, and P. Morrison, "Computer
+   Ethics: Tales and Ethical Dilemmas in Computing", MIT Press,
+   Cambridge, MA, 1990.
+
+   [Garfinkel and Spafford, 1991] S. Garfinkel, and E. Spafford,
+   "Practical Unix Security", O'Reilly & Associates, ISBN 0-937175-72-2,
+   May 1991.
+
+   Approx 450 pages, $29.95.  Orders: 1-800-338-6887 (US & Canada),
+   1-707-829-0515 (Europe), email: nuts@ora.com
+
+   This is one of the most useful books available on Unix security.  The
+   first part of the book covers standard Unix and Unix security basics,
+   with particular emphasis on passwords.  The second section covers
+   enforcing security on the system.  Of particular interest to the
+   Internet user are the sections on network security, which address
+   many of the common security problems that afflict Internet Unix
+   users.  Four chapters deal with handling security incidents, and the
+   book concludes with discussions of encryption, physical security, and
+   useful checklists and lists of resources.  The book lives up to its
+   name; it is filled with specific references to possible security
+   holes, files to check, and things to do to improve security.  This
+   book is an excellent complement to this handbook.
+
+   [Garfinkel, 1995] S. Garfinkel, "PGP:Pretty Good Privacy", O'Reilly &
+   Associates, Sebastopol, CA, 1996.
+
+   [Garfinkel and Spafford, 1996] S. Garfinkel and E. Spafford,
+   "Practical UNIX and Internet Security", O'Reilly & Associates,
+   Sebastopol, CA, 1996.
+
+   If you thought that the first edition was good, well this is better.
+
+   [Greenia, 1989] M. Greenia, "Computer Security Information
+
+
+
+Site Security Working Group                                    [Page 66]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   Sourcebook", Lexikon Services, Sacramento, CA, 1989.
+
+   A manager's guide to computer security.  Contains a sourcebook of key
+   reference materials including access control and computer crimes
+   bibliographies.
+
+   [Hess, Safford, and Pooch] D. Hess, D. Safford, and U. Pooch, "A Unix
+   Network Protocol Security Study: Network Information Service", Texas
+   A&M University.
+
+   [Hoffman, 1990] L. Hoffman, "Rogue Programs: Viruses, Worms, and
+   Trojan Horses", Van Nostrand Reinhold, NY, 1990.  (384 pages,
+   includes bibliographical references and index.)
+
+   [Hughes, 1995] L. Hughes Jr., "Actually Useful: Internet Security
+   Techniques", New Riders Publishing, Indianapolis, IN, 1995.
+
+   [Howard, 1995] G. Howard, "Introduction to Internet Security: From
+   Basics to Beyond", Prima Publishing, Rocklin, CA, 1995.
+
+   [Icove, Seger, and VonStorch, 1995] D. Icove, K. Seger, and W.
+   VonStorch, "Computer Crime: A Crimefighter's Handbook", O'Reilly &
+   Associates, Sebastopol, CA, 1995.
+
+   [Johnson and Podesta] D. Johnson, and J. Podesta, "Formulating A
+   Company Policy on Access to and Use and Disclosure of Electronic Mail
+   on Company Computer Systems".
+
+   A white paper prepared for the EMA, written by two experts in privacy
+   law.  Gives background on the issues, and presents some policy
+   options.
+
+   Available from: The Electronic Mail Association (EMA) 1555 Wilson
+   Blvd, Suite 555, Arlington, VA, 22209.  (703) 522-7111.
+
+   [Kaufman, Perlman, and Speciner, 1995] C. Kaufman, R. Perlman, and M.
+   Speciner, "Network Security:  PRIVATE Communication in a PUBLIC
+   World", Prentice Hall, Englewood Cliffs, NJ, 1995.
+
+   A comprehensive guide to the latest advances in computer network
+   security protocols.  504 pages.
+
+   [Kent, 1990] S. Kent, "E-Mail Privacy for the Internet: New Software
+   and Strict Registration Procedures will be Implemented this Year",
+   Business Communications Review, Vol. 20, No. 1, Pg. 55, 1 January
+   1990.
+
+   [Lu and Sundareshan, 1989] W. Lu and M. Sundareshan, "Secure
+   Communication in Internet Environments: A Hierarchical Key Management
+   Scheme for End-to-End Encryption", IEEE Transactions on
+   Communications, Vol. 37, No. 10, Pg. 1014, 1 October 1989.
+
+   [Lu and Sundareshan, 1990] W. Lu and M. Sundareshan, "A Model for
+   Multilevel Security in Computer Networks", IEEE Transactions on
+
+
+
+Site Security Working Group                                    [Page 67]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   Software Engineering, Vol. 16, No. 6, Page 647, 1 June 1990.
+
+   [Merkle] R. Merkle, "A Fast Software One Way Hash Function", Journal
+   of Cryptology, Vol. 3, No. 1.
+
+   [Mogel, 1989] Mogul, J., "Simple and Flexible Datagram Access
+   Controls for UNIX-based Gateways", Digital Western Research
+   Laboratory Research Report 89/4, March 1989.
+
+   [Muffett, 1992] A. Muffett, "Crack Version 4.1: A Sensible Password
+   Checker for Unix"
+
+   [NRC, 1991] National Research Council, "Computers at Risk: Safe
+   Computing int the Information Age", National Academy Press, 1991.
+
+   [Nemeth, et. al, 1995] E. Nemeth, G. Snyder, S. Seebass, and T. Hein,
+   "UNIX Systems Administration Handbook", Prentice Hall PTR, Englewood
+   Cliffs, NJ, 2ed. 1995.
+
+   Best book on UNIX System Administration.  Also addresses UNIX
+   security in easy understandable way.
+
+   [NSA] National Security Agency, "Information Systems Security
+   Products and Services Catalog", NSA, Quarterly Publication.
+
+   NSA's catalogue contains chapter on: Endorsed Cryptographic Products
+   List; NSA Endorsed Data Encryption Standard (DES) Products List;
+   Protected Services List; Evaluated Products List; Preferred Products
+   List; and Endorsed Tools List.
+
+   The catalogue is available from the Superintendent of Documents, U.S.
+   Government Printing Office, Washington, D.C.  One may place telephone
+   orders by calling:  (202) 783-3238.
+
+   [OTA-CIT-310, 1987] United States Congress, Office of Technology
+   Assessment, "Defending Secrets, Sharing Data: New Locks and Keys for
+   Electronic Information", OTA-CIT-310, October 1987.
+
+   This report, prepared for congressional committee considering Federal
+   policy on the protection of electronic information, is interesting
+   because of the issues it raises regarding the impact of technology
+   used to protect information.  It also serves as a reasonable
+   introduction to the various encryption and information protection
+   mechanisms.  185 pages.  Available from the U.S. Government Printing
+   Office.
+
+   [OTA-TCT-606] Congress of the United States, Office of Technology
+   Assessment, "Information Security and Privacy in Network
+   Environments", OTA-TCT-606, September 1994.
+
+   "This report was prepared in response to a request by the Senate
+   Committee on Governmental Affairs and the House Subcommittee on
+   Telecommunications and Finance.  The report focuses on policy issues
+   in three areas: 1)national cryptography policy, including federal
+
+
+
+Site Security Working Group                                    [Page 68]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   information processing standards and export controls; 2)guidance on
+   safeguarding unclassified information in federal agencies; and
+   3)legal issues and information security, including electronic
+   commerce, privacy, and intellectual property."  244 pages.  Available
+   from the U.S. Government Printing Office.
+
+   [Palmer and Potter, 1989] I. Palmer, and G. Potter, "Computer
+   Security Risk Management", Van Nostrand Reinhold, NY, 1989.
+
+   [Pfleeger, 1989] C. Pfleeger, "Security in Computing", Prentice-Hall,
+   Englewood Cliffs, NJ, 1989.
+
+   A general textbook in computer security, this book provides an
+   excellent and very readable introduction to classic computer security
+   problems and solutions, with a particular emphasis on encryption.
+   The encryption coverage serves as a good introduction to the subject.
+   Other topics covered include building secure programs and systems,
+   security of database, personal computer security, network and
+   communications security, physical security, risk analysis and
+   security planning, and legal and ethical issues.  538 pages including
+   index and bibliography.
+
+   [Quarterman, 1990] J. Quarterman, J., "The Matrix: Computer Networks
+   and Conferencing Systems Worldwide", Digital Press, Bedford, MA,
+   1990.
+
+   [Reinhardt, 1992] R. Reinhardt, "An Architectural Overview of UNIX
+   Network Security"
+
+   More details in USENIX Thrid UNIX Security Symposium, September 14-16
+   1992.
+
+   [Reinhardt, 1993] R. Reinhardt, "An Architectural Overview of UNIX
+   Network Security", ARINC Research Corporation, February 18, 1993.
+
+   [Russell and Gangemi, 1991] D. Russell and G. Gangemi, "Computer
+   Security Basics" O'Reilly & Associates, Sebastopol, CA, 1991.
+
+   [Shirey, 1990] R. Shirey, "Defense Data Network Security
+   Architecture", Computer Communication Review, Vol. 20, No. 2, Page
+   66, 1 April 1990.
+
+   [Smith, 1994] D. Smith, "Forming an Incident Response Team", Sixth
+   Annual Computer Security Incident Handling Workshop, Boston, MA, July
+   25-29, 1995.
+
+   [Smith, 1989] M. Smith, "Common Sense Computer Security: Your
+   Practical Guide to Preventing Accidental and Deliberate Electronic
+   Data Loss", McGraw-Hill, New York, NY, 1989.
+
+   A general text on computer security and how to access actual effort
+   based on need.
+
+   [Spafford, Keaphy, and Ferbrache, 1989] E. Spafford, K. Heaphy, and
+
+
+
+Site Security Working Group                                    [Page 69]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   D. Ferbrache, "Computer Viruses: Dealing with Electronic Vandalism
+   and Programmed Threats", ADAPSO, 1989. (109 pages.)
+
+   This is a good general reference on computer viruses and related
+   concerns.  In addition to describing viruses in some detail, it also
+   covers more general security issues, legal recourse in case of
+   security problems, and includes lists of laws, journals focused on
+   computers security, and other security-related resources.
+
+   Available from: ADAPSO, 1300 N. 17th St, Suite 300, Arlington VA
+   22209.  (703) 522-5055.
+
+   [Stallings1, 1995] W. Stallings, "Internet Security Handbook", IDG
+   Books, Foster City CA, 1995.
+
+   [Stallings2, 1995] W. Stallings, "Network and InterNetwork Security",
+   Prentice Hall, , 1995.
+
+   [Stallings3, 1995] W. Stallings, "Protect Your Privacy: A Guide for
+   PGP Users"  PTR Prentice Hall, 1995.
+
+   [Stool, 1988] C. Stoll, "Stalking the Wily Hacker", Communications of
+   the ACM, Vol. 31, No. 5, Pgs. 484-497, ACM, New York, NY, May 1988.
+
+   This article describes some of the technical means used to trace the
+   intruder that was later chronicled in "Cuckoo's Egg" (see below).
+
+   [Stool, 1989] C. Stoll, "The Cuckoo's Egg", ISBN 00385-24946-2,
+   Doubleday, 1989.
+
+   Clifford Stoll, an astronomer turned UNIX System Administrator,
+   recounts an exciting, true story of how he tracked a computer
+   intruder through the maze of American military and research networks.
+   This book is easy to understand and can serve as an interesting
+   introduction to the world of networking.  Jon Postel says in a book
+   review, "[this book] ... is absolutely essential reading for anyone
+   that uses or operates any computer connected to the Internet or any
+   other computer network."
+
+   [USENIX, 1988] USENIX, "USENIX Proceedings: UNIX Security Workshop",
+   Portland, OR, August 29-30, 1988.
+
+   [USENIX, 1990] USENIX, "USENIX Proceedings: UNIX Security II
+   Workshop", Portland, OR, August 27-28, 1990.
+
+   [USENIX, 1992] USENIX, "USENIX Symposium Proceedings: UNIX Security
+   III", Baltimore, MD, September 14-16, 1992.
+
+   [USENIX, 1993] USENIX, "USENIX Symposium Proceedings: UNIX Security
+   IV", Santa Clara, CA, October 4-6, 1993.
+
+   [USENIX, 1995] USENIX, "The Fifth USENIX UNIX Security Symposium",
+   Salt Lake City, UT, June 5-7, 1995.
+
+
+
+
+Site Security Working Group                                    [Page 70]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   [Vallabhaneni, 1989] S. Vallabhaneni, "Auditing Computer Security: A
+   Manual with Case Studies", Wiley, New York, NY, 1989.
+
+
+10.3  Ethics
+
+   [CPSR, 1989] Computer Professionals for Social Responsibility, "CPSR
+   Statement on the Computer Virus", CPSR, Communications of the ACM,
+   Vol. 32, No. 6, Pg. 699, June 1989.
+
+   This memo is a statement on the Internet Computer Virus by the
+   Computer Professionals for Social Responsibility (CPSR).
+
+   [Denning, 1990] P. Denning, Editor, "Computers Under Attack:
+   Intruders, Worms, and Viruses", ACM Press, 1990.
+
+   A collection of 40 pieces divided into six sections: the emergence of
+   worldwide computer networks, electronic break-ins, worms, viruses,
+   counterculture (articles examining the world of the "hacker"), and
+   finally a section discussing social, legal, and ethical
+   considerations.
+
+   A thoughtful collection that addresses the phenomenon of attacks on
+   computers.  This includes a number of previously published articles
+   and some new ones.  The previously published ones are well chosen,
+   and include some references that might be otherwise hard to obtain.
+   This book is a key reference to computer security threats that have
+   generated much of the concern over computer security in recent years.
+
+   [Ermann, Willians, and Gutierrez, 1990] D. Ermann, M. Williams, and
+   C. Gutierrez, Editors, "Computers, Ethics, and Society", Oxford
+   University Press, NY, 1990.  (376 pages, includes bibliographical
+   references).
+
+   [Foster and Morrision, 1990] T. Forester, and P. Morrison, "Computer
+   Ethics: Tales and Ethical Dilemmas in Computing", MIT Press,
+   Cambridge, MA, 1990.  (192 pages including index.)
+
+   From the preface: "The aim of this book is two-fold: (1) to describe
+   some of the problems created by society by computers, and (2) to show
+   how these problems present ethical dilemmas for computers
+   professionals and computer users.
+
+   The problems created by computers arise, in turn, from two main
+   sources: from hardware and software malfunctions and from misuse by
+   human beings.  We argue that computer systems by their very nature
+   are insecure, unreliable, and unpredictable -- and that society has
+   yet to come to terms with the consequences.  We also seek to show how
+   society has become newly vulnerable to human misuse of computers in
+   the form of computer crime, software theft, hacking, the creation of
+   viruses, invasions of privacy, and so on."
+
+   The eight chapters include "Computer Crime", "Software Theft",
+   "Hacking and Viruses", "Unreliable Computers", "The Invasion of
+
+
+
+Site Security Working Group                                    [Page 71]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   Privacy", "AI and Expert Systems", and "Computerizing the Workplace."
+   Includes extensive notes on sources and an index.
+
+   [Gould, 1989] C. Gould, Editor, "The Information Web: Ethical and
+   Social Implications of Computer Networking", Westview Press, Boulder,
+   CO, 1989.
+
+   [IAB-RFC1087, 89] Internet Activities Board, "Ethics and the
+   Internet", RFC 1087, IAB, January 1989.  Also appears in the
+   Communications of the ACM, Vol. 32, No. 6, Pg. 710, June 1989.
+
+   This memo is a statement of policy by the Internet Activities Board
+   (IAB) concerning the proper use of the resources of the Internet.
+   Available on-line on host ftp.nisc.sri.com, directory rfc, filename
+   rfc1087.txt.  Also available on host nis.nsf.net, directory RFC,
+   filename RFC1087.TXT-1.
+
+   [Martin and Schinzinger, 1989] M. Martin, and R. Schinzinger, "Ethics
+   in Engineering", McGraw Hill, 2nd Edition, 1989.
+
+   [MIT, 1989] Massachusetts Institute of Technology, "Teaching Students
+   About Responsible Use of Computers", MIT, 1985-1986.  Also reprinted
+   in the Communications of the ACM, Vol. 32, No. 6, Pg. 704, Athena
+   Project, MIT, June 1989.  This memo is a statement of policy by the
+   Massachusetts Institute of Technology (MIT) on the responsible use of
+   computers.
+
+   [NIST, 1989] National Institute of Standards and Technology,
+   "Computer Viruses and Related Threats: A Management Guide", NIST
+   Special Publication 500-166, August 1989.
+
+   [NSF, 1988] National Science Foundation, "NSF Poses Code of
+   Networking Ethics", Communications of the ACM, Vol. 32, No. 6, Pg.
+   688, June 1989.  Also appears in the minutes of the regular meeting
+   of the Division Advisory Panel for Networking and Communications
+   Research and Infrastructure, Dave Farber, Chair, November 29-30,
+   1988.
+
+   This memo is a statement of policy by the National Science Foundation
+   (NSF) concerning the ethical use of the Internet.
+
+   [Parker, Swope, and Baker, 1990] D. Parker, S. Swope, and B. Baker,
+   "Ethical Conflicts:  Information and Computer Science, Technology and
+   Business", QED Information Sciences, Inc., Wellesley, MA. (245
+   pages).
+
+   Additional publications on Ethics:
+
+   The University of New Mexico (UNM)
+
+      The UNM has a collection of ethics documents.  Included are
+      legislation from several states and policies from many
+      institutions.
+
+
+
+
+Site Security Working Group                                    [Page 72]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+         Access is via FTP, IP address ariel.umn.edu.  Look in the
+         directory /ethics.
+
+
+10.4  Firewalls
+
+   [Bellovin, 1992] S. Bellovin, "There Be Dragon", USENIX: Proceedings
+   of the Third Usenix Security Symposium, Baltimore, MD. September,
+   1992.
+
+   [Chapman, 1992] B. Chapman, "Network(In) Security Through IP Packet
+   Filtering", USSENIX: Proceedings of the Thrid UNIX Security
+   Symposium, Balimore, MD, September 1992.
+
+   [Chapman and Zwicky, 1995] B. Chapman and E. Zwicky, "Building
+   Internet Firewalls", O'Reilly and Associates, Sebastopol, CA, 1995.
+
+   [Cheswick1] W. Cheswick, "An Evening with Berferd In Which a Cracker
+   is Lured, Endured, and Studied", AT&T Bell Laboratories.
+
+   [Cheswick2] W. Cheswick, "The Design of a Secure Internet Gateway",
+   Proceedings of the Summer Usenix Conference, Anaheim, CA, June 1990.
+
+   [Cheswick and Bellovin, 1994] W. Cheswick and S. Bellovin, "Firewalls
+   and Internet Security:  Repelling the Wily Hacker", Addision-Wesley,
+   Reading, MA, 1994.
+
+   Landmark book on Firewalls.  A must for anyone designing, installing,
+   managing firewalls.
+
+   [NCSA, 1995] NCSA, "NCSA Firewall Policy Guide", 1995.
+
+   [NCSA, 1996] NCSA, "Firewalls & Internet Security Conference '96
+   Proceedings", 1996.
+
+   [Ranum, 1992] M. Ranum, "A Network Firewall", Digital Equipment
+   Corporation Washington Open Systems Resource Center, June 12, 1992.
+
+   [Ranum, 1992] M. Ranum, "An Internet Firwall", Proceedings of World
+   Conference on Systems Management and Security, 1992.
+
+   Available ftp://decuac.dec.com/pub/docs/firewall/firewall.ps
+
+   [Ranum, 1993] M. Ranum, "Thinking About Firewalls", 1993.
+
+   A good start for those implementing or installing firewalls.
+   Available ftp://ftp.tis.com
+
+   [Ranum and Avolio, 1994] M. Ranum and F. Avolio, "A Toolkit and
+   Methods for Internet Firewalls", Trustest Information Systems, 1994.
+
+   Available ftp://ftp.tis.com
+
+   [Treese and Wolman, 1993] G. Treese and A. Wolman, "X Through the
+
+
+
+Site Security Working Group                                    [Page 73]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   Firewall, and Other Applications Relays", Digital Equipment
+   Corporation, Cambridge Research Laboratory, CRL 93/10, May 3, 1993.
+
+   [Venema] W. Venema, "TCP WRAPPER: Network monitoring, access control,
+   and booby traps", Mathematics and Computing Science, Eindhoven
+   University of Technology, The Netherlands.
+
+   Available ftp://ftp.win.tue.nl/pub/security
+
+10.5  Internet Worms, Hackers, Computer Viruses, etc
+
+   [Barrett, 1996] D. Barrett, "Bandits on the Information
+   Superhighway", O'Reilly & Associates, Sebastopol, CA, 1996.
+
+   [Brock, 1989] J. Brock, "November 1988 Internet Computer Virus and
+   the Vulnerability of National Telecommunications Networks to Computer
+   Viruses", GAO/T-IMTEC-89-10, Washington, DC, 20 July 1989.
+
+   Testimonial statement of Jack L. Brock, Director, U. S.  Government
+   Information before the Subcommittee on Telecommunications and
+   Finance, Committee on Energy and
+    Commerce, House of Representatives.
+
+   [Eichin and Rochlis, 1989] M. Eichin, and J. Rochlis, "With
+   Microscope and Tweezers:  An Analysis of the Internet Virus of
+   November 1988", Massachusetts Institute of Technology, February 1989.
+
+   Provides a detailed dissection of the worm program.  The paper
+   discusses the major points of the worm program then reviews
+   strategies, chronology, lessons and open issues, Acknowledgments;
+   also included are a detailed appendix on the worm program subroutine
+   by subroutine, an appendix on the cast of characters, and a reference
+   section.
+
+   [Eisenbery, et. al., 89] T. Eisenberg, D. Gries, J. Hartmanis, D.
+   Holcomb, M. Lynn, and T. Santoro, "The Computer Worm", Cornell
+   University, 6 February 1989.
+
+   A Cornell University Report presented to the Provost of the
+   University on 6 February 1989 on the Internet Worm.
+
+   [Fites, Johnson, and Kratz, 1992] Fites, Johnson, and Kratz, "The
+   Computer Virus Crisis", Van Hostrand Reinhold, 2nd edition, 1992.
+
+   [GAO/IMTEX-89-57, 1989] U.S. General Accounting Office, "Computer
+   Security - Virus Highlights Need for Improved Internet Management",
+   United States General Accounting Office, Washington, DC, 1989.
+
+   This 36 page report (GAO/IMTEC-89-57), by the U.S.  Government
+   Accounting Office, describes the Internet worm and its effects.  It
+   gives a good overview of the various U.S. agencies involved in the
+   Internet today and their concerns vis-a-vis computer security and
+   networking.
+
+
+
+
+Site Security Working Group                                    [Page 74]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   Available on-line on host nnsc.nsf.net, directory pub, filename
+   GAO_RPT; and on nis.nsf.net, directory nsfnet, filename GAO_RPT.TXT.
+
+   [Goodell, 1996] J. Goodell, "The Cyberthief and the Samurai: The True
+   Story of Kevin Mitnick-And The Man Who Hunted Him Down", Dell
+   Publishing, 328pp, 1996.
+
+   [Hafner and Markoff, 1991] K. Hafner and J. Markoff, "Cyberpunk:
+   Outlaws and Hackers on the Computer Frontier", Touchstone, Simon &
+   Schuster, 1991.
+
+   [Kane, 1994] P. Kane, "PC Security and Virus Protection Handbook: The
+   Ongoing War Against Information Sabotage", M&T Books, 1994.
+
+   [IVPC, 1996] IVPC, "International Virus Prevention Conference '96
+   Proceedings", NCSA, 1996.
+
+   [Levy, 1984] S. Levy, "Hacker: Heroes of the Computer Revolution",
+   Delta, 1984.
+
+   The Original.
+
+   [NCSA, 1995] NCSA, "NCSA's Corporate Computer Virus Prevention Policy
+   Model", NCSA, 1995.
+
+   [Littleman, 1996] J. Littleman, "The Fugitive Game: Online with Kevin
+   Mitnick", Little, Brown, Boston, MA. 333p, 1996.
+
+   [Reynolds-RFC1135, 1989] The Helminthiasis of the Internet, RFC 1135,
+   USC/Information Sciences Institute, Marina del Rey, CA, December
+   1989.
+
+   This report looks back at the helminthiasis (infestation with, or
+   disease caused by parasitic worms) of the Internet that was unleashed
+   the evening of 2 November 1988.  This document provides a glimpse at
+   the infection,its festering, and cure.  The impact of the worm on the
+   Internet community, ethics statements, the role of the news media,
+   crime in the computer world, and future prevention is discussed.  A
+   documentation review presents four publications that describe in
+   detail this particular parasitic computer program.  Reference and
+   bibliography sections are also included.  Available on-line on host
+   ftp.nisc.sri.com directory rfc, filename rfc1135.txt.  Also available
+   on host nis.nsf.net, directory RFC, filename RFC1135.TXT-1.
+
+   [Seeley, 1989] D. Seeley, "A Tour of the Worm", Proceedings of 1989
+   Winter USENIX Conference, Usenix Association, San Diego, CA, February
+   1989.
+
+   Details are presented as a "walk through" of this particular worm
+   program.  The paper opened with an abstract, introduction, detailed
+   chronology of events upon the discovery of the worm, an overview, the
+   internals of the worm, personal opinions, and conclusion.
+
+   [Shimomura, 1996] T. Shimomura with J. Markoff, "Takedown:The Pursuit
+
+
+
+Site Security Working Group                                    [Page 75]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   and Capture of Kevin Mitnick, America's Most Wanted Computer Outlaw-
+   by the Man Who Did It", Hyperion, 324p, 1996.
+
+   [Slatalla and Quittner, 1995] M. Slatalla and J. Quittner, "Masters
+   of Deception: The Gang that Ruled Cyberspace", Harper Collins
+   Publishers, 1995.
+
+   [Spafford, 1988] E. Spafford, "The Internet Worm Program: An
+   Analysis", Computer Communication Review, Vol. 19, No. 1, ACM SIGCOM,
+   January 1989.  Also issued as Purdue CS Technical Report CSD-TR-823,
+   28 November 1988.
+
+   Describes the infection of the Internet as a worm program that
+   exploited flaws in utility programs in UNIX based systems.  The
+   report gives a detailed description of the components of the worm
+   program:  data and functions.  Spafford focuses his study on two
+   completely independent reverse-compilations of the worm and a version
+   disassembled to VAX assembly language.
+
+   [Spafford, 1989] G. Spafford, "An Analysis of the Internet Worm",
+   Proceedings of the European Software Engineering Conference 1989,
+   Warwick England, September 1989.  Proceedings published by Springer-
+   Verlag as: Lecture Notes in Computer Science #387.  Also issued as
+   Purdue Technical Report #CSD-TR-933.
+
+
+10.6  National Computer Security Center (NCSC)
+
+   All NCSC publications, approved for public release, are available
+   from the NCSC Superintendent of Documents.
+
+   NCSC =3D National Computer Security Center 9800 Savage Road Ft Meade,
+   MD 20755-6000
+
+   CSC =3D Computer Security Center:  an older name for the NCSC
+
+   NTISS =3D National Telecommunications and Information Systems Security
+   NTISS Committee, National Security Agency Ft Meade, MD 20755-6000
+
+   [CSC-STD-002-85, 1985] Department of Defense, "Password Management
+   Guideline", CSC-STD-002-85, 12 April 1985, 31 pages.
+
+   The security provided by a password system depends on the passwords
+   being kept secret at all times.  Thus, a password is vulnerable to
+   compromise whenever it is used, stored, or even known.  In a
+   password-based authentication mechanism implemented on an ADP system,
+   passwords are vulnerable to compromise due to five essential aspects
+   of the password system: 1) a password must be initially assigned to a
+   user when enrolled on the ADP system; 2) a user's password must be
+   changed periodically; 3) the ADP system must maintain a 'password
+   database'; 4) users must remember their passwords; and 5) users must
+   enter their passwords into the ADP system at authentication time.
+   This guideline prescribes steps to be taken to minimize the
+   vulnerability of passwords in each of these circumstances.
+
+
+
+Site Security Working Group                                    [Page 76]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   [NCSC-TG-001, 1988] NCSC, "A Guide to Understanding AUDIT in Trusted
+   Systems", NCSC-TG-001, Version-2, 1 June 1988, 25 pages.
+
+   Audit trails are used to detect and deter penetration of a computer
+   system and to reveal usage that identifies misuse.  At the discretion
+   of the auditor, audit trails may be limited to specific events or may
+   encompass all of the activities on a system.  Although not required
+   by the criteria, it should be possible for the target of the audit
+   mechanism to be either a subject or an object.  That is to say, the
+   audit mechanism should be capable of monitoring every time John
+   accessed the system as well as every time the nuclear reactor file
+   was accessed; and likewise every time John accessed the nuclear
+   reactor file.
+
+   [NCSC-TG-003, 1987] NCSC, "A Guide to Understanding DISCRETIONARY
+   ACCESS CONTROL in Trusted Systems", NCSC-TG-003, Version-1, 30
+   September 1987, 29 pages.
+
+   Discretionary control is the most common type of access control
+   mechanism implemented in computer systems today.  The basis of this
+   kind of security is that an individual user, or program operating on
+   the user's behalf, is allowed to specify explicitly the types of
+   access other users (or programs executing on their behalf) may have
+   to information under the user's control.  [...]  Discretionary
+   controls are not a replacement for mandatory controls.  In any
+   environment in which information is protected, discretionary security
+   provides for a finer granularity of control within the overall
+   constraints of the mandatory policy.
+
+   [NCSC-TG-006, 1988] NCSC, "A Guide to Understanding CONFIGURATION
+   MANAGEMENT in Trusted Systems", NCSC-TG-006, Version-1, 28 March
+   1988, 31 pages.
+
+   Configuration management consists of four separate tasks:
+   identification, control, status accounting, and auditing.  For every
+   change that is made to an automated data processing (ADP) system, the
+   design and requirements of the changed version of the system should
+   be identified.  The control task of configuration management is
+   performed by subjecting every change to documentation, hardware, and
+   software/firmware to review and approval by an authorized authority.
+   Configuration status accounting is responsible for recording and
+   reporting on the configuration of the product throughout the change.
+   Finally, though the process of a configuration audit, the completed
+   change can be verified to be functionally correct, and for trusted
+   systems, consistent with the security policy of the system.
+
+   [NTISSAM, 1987] NTISS, "Advisory Memorandum on Office Automation
+   Security Guideline", NTISSAM CONPUSEC/1-87, 16 January 1987, 58
+   pages.
+
+   This document provides guidance to users, managers, security
+   officers, and procurement officers of Office Automation Systems.
+   Areas addressed include: physical security, personnel security,
+   procedural security, hardware/software security, emanations security
+
+
+
+Site Security Working Group                                    [Page 77]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   (TEMPEST), and communications security for stand-alone OA Systems, OA
+   Systems used as terminals connected to mainframe computer systems,
+   and OA Systems used as hosts in a Local Area Network (LAN).
+   Differentiation is made between those Office Automation Systems
+   equipped with removable storage media only (e.g., floppy disks,
+   cassette tapes, removable hard disks) and those Office Automation
+   Systems equipped with fixed media (e.g., Winchester disks).
+
+   Additional NCSC Publications:
+
+   [NCSC-TG-004, 1988] National Computer Security Center, "Glossary of
+   Computer Security Terms", NCSC-TG-004, NCSC, 21 October 1988.
+
+   [NCSC-TCSEC, 1985] National Computer Security Center, "Trusted
+   Computer System Evaluation Criteria", DoD 5200.28-STD, CSC-STD-001-
+   83, NCSC, December 1985.
+
+   [NCSC-CSC-STD-003-85, 1985] National Computer Security Center,
+   "Guidance for Applying the Department of Defense Trusted Computer
+   System Evaluation Criteria in Specific Environments", CSC-STD-003-85,
+   NCSC, 25 June 1985.
+
+   [NCSC-STD-004-85, 1985] National Computer Security Center, "Technical
+   Rationale Behind CSC-STD-003-85: Computer Security Requirements",
+   CSC-STD-004-85, NCSC, 25 June 1985.
+
+   [NCSC-STD-005-85, 1985] National Computer Security Center, "Magnetic
+   Remanence Security Guideline", CSC-STD-005-85, NCSC, 15 November
+   1985.
+
+   This guideline is tagged as a "For Official Use Only" exemption under
+   Section 6, Public Law 86-36 (50 U.S. Code 402).  Distribution
+   authorized of U.S. Government agencies and their contractors to
+   protect unclassified technical, operational, or administrative data
+   relating to operations of the National Security Agency.
+
+   [NCSC-89-660-P, 1990] National Computer Security Center, "Guidelines
+   for Formal Verification Systems", Shipping list no.: 89-660-P, The
+   Center, Fort George G. Meade, MD, 1 April 1990.
+
+   [NCSC-89-254-P, 1988] National Computer Security Center, "Glossary of
+   Computer Security Terms", Shipping list no.: 89-254-P, The Center,
+   Fort George G. Meade, MD, 21 October 1988.
+
+   [NCSC-TRUSIX, 1990] National Computer Security Center, "Trusted UNIX
+   Working Group (TRUSIX) rationale for selecting access control list
+   features for the UNIX system", Shipping list no.:  90-076-P, The
+   Center, Fort George G. Meade, MD, 1990.
+
+   [NCSC-TG-005, 1987] National Computer Security Center, "Trusted
+   Network Interpretation", NCSC-TG-005, NCSC, 31 July 1987.
+
+   [NCSC-C1-001-89, 1989] Tinto, M., "Computer Viruses: Prevention,
+   Detection, and Treatment", National Computer Security Center C1
+
+
+
+Site Security Working Group                                    [Page 78]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   Technical Report C1-001-89, June 1989.
+
+   [NCSC Conference, 1989] National Computer Security Conference, "12th
+   National Computer Security Conference: Baltimore Convention Center,
+   Baltimore, MD, 10-13 October, 1989: Information Systems Security,
+   Solutions for Today - Concepts for Tomorrow", National Institute of
+   Standards and National Computer Security Center, 1989.
+
+
+10.7  Security Checklists
+
+   [Aucion, 1989] R. Aucoin, "Computer Viruses: Checklist for Recovery",
+   Computers in  Libraries, Vol. 9, No. 2, Pg. 4, 1 February 1989.
+
+   [Wood, et.al., 1987] C. Wood, W. Banks, S. Guarro, A. Garcia, V.
+   Hampel, and H. Sartorio, "Computer Security:  A Comprehensive
+   Controls Checklist", John Wiley and Sons, Interscience Publication,
+   1987.
+
+10.8  Disaster Recovery
+
+   [Bates, 1992] R. Bates, "Disaster Recovery Planning: Networks,
+   Telecommunications and Data Communications", McGraw-Hill, 1992.
+
+   [Lewis, 1996] S. Lewis, "Disaster Recovery Yellow Pages", The Systems
+   Audit Group, 1996.
+
+   [Wrobel, 1993] L. Wrobel, "Writing Disaster Recovery Plans for
+   Telecommunications Networks and LANS", Artech House, 1993.
+
+10.9  Additional Publications
+
+10.9.1  Defense Data Network's Network Information Center (DDN NIC)
+
+   The DDN NIC maintains DDN Security bulletins and DDN Management
+   bulletins online on the machine: NIC.DDN.MIL.  They are available via
+   anonymous FTP.  The DDN Security bulletins are in the directory: SCC,
+   and the DDN Management bulletins are in the directory: DDN-NEWS.
+
+   For additional information, you may send a message to:
+   NIC@NIC.DDN.MIL, or call the DDN NIC at: 1-800-235-3155.
+
+   [DDN88] Defense Data Network, "BSD 4.2 and 4.3 Software Problem
+   Resolution", DDN MGT Bulletin #43, DDN Network Information Center, 3
+   November 1988.
+
+   A Defense Data Network Management Bulletin announcement on the 4.2bsd
+   and 4.3bsd software fixes to the Internet worm.
+
+   [DDN89] DCA DDN Defense Communications System, "DDN Security Bulletin
+   03", DDN Security Coordination Center, 17 October 1989.
+
+10.9.2  IEEE Proceedings
+
+
+
+
+Site Security Working Group                                    [Page 79]
+
+
+
+
+
+Internet Draft           Site Security Handbook                 May 1996
+
+
+   [IEEE] "Proceedings of the IEEE Symposium on Security and Privacy",
+   published annually.
+
+   IEEE Proceedings are available from:
+
+   Computer Society of the IEEE P.O. Box 80452 Worldway Postal Center
+   Los Angeles, CA  90080
+
+10.9.3  Other Publications:
+
+   Computer Law and Tax Report Computers and Security Security
+   Management Magazine Journal of Information Systems Management Data
+   Processing & Communications Security SIG Security, Audit & Control
+   Review
+
+   Editor Information
+
+   Barbara Y. Fraser
+   Software Engineering Institute
+   Carnegie Mellon University
+   5000 Forbes Avenue
+   Pittsburgh, PA 15213
+
+   Phone: (412) 268-5010
+   Fax:   (412) 268-6989
+   email: byf@cert.org
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Site Security Working Group                                    [Page 80]
+
+
diff --git a/reports/rfc/draft-ietf-userglos-glossary2-01.txt b/reports/rfc/draft-ietf-userglos-glossary2-01.txt
new file mode 100644 (file)
index 0000000..8daa19c
--- /dev/null
@@ -0,0 +1,3472 @@
+
+
+
+
+draft-ietf-userglos-glossary2-01.txt          G. Malkin / Xylogics, Inc.
+Obsoletes RFC 1392 (FYI 18)                                     May 1996
+
+                        Internet Users' Glossary
+
+
+Status of this Memo
+
+   This document is an Internet-Draft.  Internet-Drafts are working
+   documents of the Internet Engineering Task Force (IETF), its areas,
+   and its working groups.  Note that other groups may also distribute
+   working documents as Internet-Drafts.
+
+   Internet-Drafts are draft documents valid for a maximum of six months
+   and may be updated, replaced, or obsoleted by other documents at any
+   time.  It is inappropriate to use Internet-Drafts as reference
+   material or to cite them other than as "work in progress."
+
+   To learn the current status of any Internet-Draft, please check the
+   "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
+   Directories on ds.internic.net (US East Coast), nic.nordu.net
+   (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific
+   Rim).
+
+
+Abstract
+
+   There are many networking glossaries in existence.  This glossary
+   concentrates on terms which are specific to the Internet.  Naturally,
+   there are entries for some basic terms and acronyms because other
+   entries refer to them.
+
+
+Acknowledgements
+
+   This document is the work of the User Glossary Working Group of the
+   User Services Area of the Internet Engineering Task Force.  I would
+   especially like to thank Ryan Moats/InterNIC for his careful review
+   and many contributions to this document.
+
+
+Table of Contents
+
+   non-letter  . .  3      I . . . . . . . 26      R . . . . . . . 46
+   A . . . . . . .  3      J . . . . . . . 33      S . . . . . . . 49
+   B . . . . . . .  8      K . . . . . . . 33      T . . . . . . . 52
+   C . . . . . . . 11      L . . . . . . . 33      U . . . . . . . 55
+   D . . . . . . . 15      M . . . . . . . 35      V . . . . . . . 57
+
+
+
+Malkin                      Expires: 2Nov96                     [Page 1]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   E . . . . . . . 18      N . . . . . . . 39      W . . . . . . . 57
+   F . . . . . . . 20      O . . . . . . . 43      X . . . . . . . 59
+   G . . . . . . . 23      P . . . . . . . 43      Y . . . . . . . 60
+   H . . . . . . . 24      Q . . . . . . . 46      Z . . . . . . . 60
+
+   References  . . . . . . . . . . . . . . . . . . . . . . . . . . 61
+   Security Considerations . . . . . . . . . . . . . . . . . . . . 62
+   Editors' Addresses  . . . . . . . . . . . . . . . . . . . . . . 62
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Malkin                      Expires: 2Nov96                     [Page 2]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+Glossary
+
+   10Base2
+      A physical layer communications specification for 10Mbps, baseband
+      data transmission over a coaxial cable (Thinnet) with a maximum
+      cable segment length of 200 meters.
+
+   10Base5
+      A physical layer communications specification for 10Mbps, baseband
+      data transmission over a coaxial cable (Thicknet) with a maximum
+      cable segment length of 500 meters.
+
+   10BaseF
+      A physical layer communications specification for 10Mbps, baseband
+      data transmission over a fiber-optic cable.
+
+   10BaseT
+      A physical layer communications specification for 10Mbps, baseband
+      data transmission over a twisted-pair copper wire.
+
+   802.x
+      The set of IEEE standards for the definition of LAN protocols.
+      See also: IEEE.
+
+   822
+      See: RFC 822
+
+   :-)
+      This odd symbol is one of the ways a person can portray "mood" in
+      the very flat medium of computers--by using "smiley faces".  This
+      is "metacommunication", and there are literally hundreds of such
+      symbols, from the obvious to the obscure.  This particular example
+      expresses "happiness".  Don't see it?  Tilt your head to the left
+      90 degrees.  Smiles are also used to denote sarcasm.
+      [Source: ZEN]
+
+   abstract syntax
+      A description of a data structure that is independent of machine-
+      oriented structures and encodings.
+      [Source: RFC1208]
+
+   Abstract Syntax Notation One (ASN.1)
+      The language used by the OSI protocols for describing abstract
+      syntax.  This language is also used to encode SNMP packets.  ASN.1
+      is defined in ISO documents 8824.2 and 8825.2.  See also: Basic
+      Encoding Rules.
+
+
+
+
+
+Malkin                      Expires: 2Nov96                     [Page 3]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   Acceptable Use Policy (AUP)
+      Many transit networks have policies which restrict the use to
+      which the network may be put.  For example, some networks may only
+      be used for non-commercial purposes.  Some AUPs limit the type of
+      material which can be made available to the public (e.g.,
+      pornographic material).  Enforcement of AUPs varies with the
+      network.  See also: netiquette.
+
+   Access Control List (ACL)
+      Most network security systems operate by allowing selective use of
+      services.  An Access Control List is the usual means by which
+      access to, and denial of, services is controlled.  It is simply a
+      list of the services available, each with a list of the hosts
+      permitted to use the service.
+
+   ACK
+      See: Acknowledgment
+
+   acknowledgment (ACK)
+      A type of message sent to indicate that a block of data arrived at
+      its destination without error.  See also: Negative
+      Acknowledgement.
+      [Source: NNSC]
+
+   ACL
+      See: Access Control List
+
+   AD
+      See: Administrative Domain
+
+   address
+      There are four types of addresses in common use within the
+      Internet.  They are email address; IP, internet or Internet
+      address; hardware or MAC address; and URL.  See also: email
+      address, IP address, internet address, MAC address, Uniform
+      Resource Locator.
+
+   address mask
+      A bit mask used to identify which bits in an IP address correspond
+      to the network and subnet portions of the address.  This mask is
+      often referred to as the subnet mask because the network portion
+      of the address (i.e., the network mask) can be determined by the
+      encoding inherent in an IP address.  See also: Classless Inter-
+      domain Routing.
+
+   address resolution
+      Conversion of a network-layer address (e.g. IP address) into the
+      corresponding physical address (e.g., MAC address).  See also: IP
+
+
+
+Malkin                      Expires: 2Nov96                     [Page 4]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      address, MAC address.
+
+   Address Resolution Protocol (ARP)
+      Used to dynamically discover the low level physical network
+      hardware address that corresponds to the high level IP address for
+      a given host.  ARP is limited to physical network systems that
+      support broadcast packets that can be heard by all hosts on the
+      network.  See also: proxy ARP, Reverse Address Resolution
+      Protocol.
+
+   Administrative Domain (AD)
+      A collection of hosts and routers, and the interconnecting
+      network(s), managed by a single administrative authority.
+
+   Advanced Research Projects Agency (ARPA)
+      An agency of the U.S. Department of Defense responsible for the
+      development of new technology for use by the military.  ARPA
+      (formerly known as DARPA, nee ARPA) was responsible for funding
+      much of the development of the Internet we know today, including
+      the Berkeley version of Unix and TCP/IP.
+      [Source: NNSC]
+
+   Advanced Research Projects Agency Network (ARPANET)
+      A pioneering longhaul network funded by ARPA.  Now retired, it
+      served as the basis for early networking research as well as a
+      central backbone during the development of the Internet.  The
+      ARPANET consisted of individual packet switching computers
+      interconnected by leased lines.  See also: Advanced Research
+      Projects Agency.
+      [Source: FYI4]
+
+   agent
+      In the client-server model, the part of the system that performs
+      information preparation and exchange on behalf of a client or
+      server application.
+      [Source: RFC1208]
+
+   alias
+      A name, usually short and easy to remember, that is translated
+      into another name, usually long and difficult to remember.
+
+   American National Standards Institute (ANSI)
+      This organization is responsible for approving U.S. standards in
+      many areas, including computers and communications.  Standards
+      approved by this organization are often called ANSI standards
+      (e.g., ANSI C is the version of the C language approved by ANSI).
+      ANSI is a member of ISO.  See also: International Organization for
+      Standardization.
+
+
+
+Malkin                      Expires: 2Nov96                     [Page 5]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      [Source: NNSC]
+
+   American Standard Code for Information Interchange (ASCII)
+      A standard character-to-number encoding widely used in the
+      computer industry.  See also: EBCDIC.
+
+   anonymous FTP
+      Anonymous FTP allows a user to retrieve documents, files,
+      programs, and other archived data from anywhere in the Internet
+      without having to establish a userid and password.  By using the
+      special userid of "anonymous" the network user will bypass local
+      security checks and will have access to publicly accessible files
+      on the remote system.  See also: archive site, File Transfer
+      Protocol, World Wide Web.
+
+   ANSI
+      See: American National Standards Institute
+
+   API
+      See: Application Program Interface
+
+   Appletalk
+      A networking protocol developed by Apple Computer for
+      communication between Apple Computer products and other computers.
+      This protocol is independent of the network layer on which it is
+      run.  Current implementations exist for Localtalk, a 235Kb/s local
+      area network; and Ethertalk, a 10Mb/s local area network.
+      [Source: NNSC]
+
+   application
+      A program that performs a function directly for a user.  FTP, mail
+      and Telnet clients are examples of network applications.
+
+   application layer
+      The top layer of the network protocol stack.  The application
+      layer is concerned with the semantics of work (e.g. formatting
+      electronic mail messages).  How to represent that data and how to
+      reach the foreign node are issues for lower layers of the network.
+      [Source: MALAMUD]
+
+   Application Program Interface (API)
+      A set of calling conventions which define how a service is invoked
+      through a software package.
+      [Source: RFC1208]
+
+   archie
+      A system to automatically gather, index and serve information on
+      the Internet.  The initial implementation of archie provided an
+
+
+
+Malkin                      Expires: 2Nov96                     [Page 6]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      indexed directory of filenames from all anonymous FTP archives on
+      the Internet.  Later versions provide other collections of
+      information.  See also: archive site, Gopher, Prospero, Wide Area
+      Information Servers.
+
+   archive site
+      A machine that provides access to a collection of files across the
+      Internet.  For example, an anonymous FTP archive site provides
+      access to arcived material via the FTP protocol.  WWW servers can
+      also serve as archive sites.  See also: anonymous FTP, archie,
+      Gopher, Prospero, Wide Area Information Servers, World Wide Web.
+
+   ARP
+      See: Address Resolution Protocol
+
+   ARPA
+      See: Advanced Research Projects Agency
+
+   ARPANET
+      See: Advanced Research Projects Agency Network
+
+   AS
+      See: Autonomous System
+
+   ASCII
+      See: American Standard Code for Information Interchange
+
+   ASN.1
+      See: Abstract Syntax Notation One
+
+   assigned numbers
+      The RFC [STD2] which documents the currently assigned values from
+      several series of numbers used in network protocol
+      implementations.  This RFC is updated periodically and, in any
+      case, current information can be obtained from the Internet
+      Assigned Numbers Authority (IANA).  If you are developing a
+      protocol or application that will require the use of a link,
+      socket, port, protocol, etc., please contact the IANA to receive a
+      number assignment.  See also: Internet Assigned Numbers Authority,
+      STD.
+      [Source: STD2]
+
+   Asynchronous Transfer Mode (ATM)
+      A standard which defines high-load, high-speed (1.544Mbps through
+      1.2Gbps), fixed-size packet (cell) switching with dynamic
+      bandwidth allocation.  ATM is also known as "fast packet."
+
+
+
+
+
+Malkin                      Expires: 2Nov96                     [Page 7]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   ATM
+      See: Asynchronous Transfer Mode
+
+   AUP
+      See: Acceptable Use Policy
+
+   authentication
+      The verification of the identity of a person or process.
+      [Source: MALAMUD]
+
+   Autonomous System (AS)
+      A collection of routers under a single administrative authority
+      using a common Interior Gateway Protocol for routing packets.
+
+   backbone
+      The top level in a hierarchical network.  Stub and transit
+      networks which connect to the same backbone are guaranteed to be
+      interconnected.  See also: stub network, transit network.
+
+   bandwidth
+      Technically, the difference, in Hertz (Hz), between the highest
+      and lowest frequencies of a transmission channel.  However, as
+      typically used, the amount of data that can be sent through a
+      given communications circuit.
+
+   bang path
+      A series of machine names used to direct electronic mail from one
+      user to another, typically by specifying an explicit UUCP path
+      through which the mail is to be routed.  See also: email address,
+      mail path, UNIX-to-UNIX CoPy.
+
+   baseband
+      A transmission medium through which digital signals are sent
+      without complicated frequency shifting.  In general, only one
+      communication channel is available at any given time.  Ethernet is
+      an example of a baseband network.  See also: broadband, Ethernet.
+      [Source: NNSC]
+
+   Basic Encoding Rules (BER)
+      Standard rules for encoding data units described in ASN.1.
+      Sometimes incorrectly lumped under the term ASN.1, which properly
+      refers only to the abstract syntax description language, not the
+      encoding technique.  See also: Abstract Syntax Notation One.
+      [Source: NNSC]
+
+   BBS
+      See: Bulletin Board System
+
+
+
+
+Malkin                      Expires: 2Nov96                     [Page 8]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   BCNU
+      Be Seein' You
+
+   BCP
+      The newest subseries of RFCs which are written to describe Best
+      Current Practices in the Internet.  Rather than specifying a
+      protocol, these documents specify the best ways to use the
+      protocols and the best ways to configure options to ensure
+      interoperability between various vendors' products.  BCPs carry
+      the endorsement of the IESG.  See also: Request For Comments,
+      Internet Engineering Steering Group.
+
+   BER
+      See: Basic Encoding Rules
+
+   Berkeley Internet Name Domain (BIND)
+      Implementation of a DNS server developed and distributed by the
+      University of California at Berkeley.  Many Internet hosts run
+      BIND, and it is the ancestor of many commercial BIND
+      implementations.  See also: Domain Name System.
+
+   Berkeley Software Distribution (BSD)
+      Implementation of the UNIX operating system and its utilities
+      developed and distributed by the University of California at
+      Berkeley.  "BSD" is usually preceded by the version number of the
+      distribution, e.g., "4.3 BSD" is version 4.3 of the Berkeley UNIX
+      distribution.  Many Internet hosts run BSD software, and it is the
+      ancestor of many commercial UNIX implementations.
+      [Source: NNSC]
+
+   BGP
+      See: Border Gateway Protocol
+
+   big-endian
+      A format for storage or transmission of binary data in which the
+      most significant bit (or byte) comes first.  The term comes from
+      "Gulliver's Travels" by Jonathan Swift.  The Lilliputians, being
+      very small, had correspondingly small political problems.  The
+      Big-Endian and Little-Endian parties debated over whether soft-
+      boiled eggs should be opened at the big end or the little end.
+      See also: little-endian.
+      [Source: RFC1208]
+
+   binary
+      11001001
+
+   BIND
+      See: Berkeley Internet Name Domain
+
+
+
+Malkin                      Expires: 2Nov96                     [Page 9]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   Birds Of a Feather (BOF)
+      A Birds Of a Feather (flocking together) is an informal discussion
+      group.  It is formed, often ad hoc, to consider a specific issue
+      and, therefore, has a narrow focus.  See also: Working Group.
+
+   Bitnet
+      An academic computer network that provides interactive electronic
+      mail and file transfer services, using a store-and-forward
+      protocol, based on IBM Network Job Entry protocols.  Bitnet-II
+      encapsulates the Bitnet protocol within IP packets and depends on
+      the Internet to route them.
+
+   BOF
+      See: Birds Of a Feather
+
+   BOOTP
+      The Bootstrap Protocol, described in RFC 1542, is used for booting
+      diskless nodes.  See also: Dynamic Host Configuration Protocol,
+      Reverse Address Resolution Protocol.
+
+   Border Gateway Protocol (BGP)
+      The Border Gateway Protocol is an exterior gateway protocol
+      defined in RFC 1771.  It's design is based on experience gained
+      with EGP, as defined in RFC 904, and EGP usage in the NSFNET
+      Backbone, as described in RFCs 1092 and 1093.  See also: Exterior
+      Gateway Protocol.
+
+   bounce
+      The return of a piece of mail because of an error in its delivery.
+      [Source: ZEN]
+
+   bridge
+      A device which forwards traffic between network segments based on
+      datalink layer information.  These segments would have a common
+      network layer address.  See also: gateway, router.
+
+   broadband
+      A transmission medium capable of supporting a wide range of
+      frequencies.  It can carry multiple signals by dividing the total
+      capacity of the medium into multiple, independent bandwidth
+      channels, where each channel operates only on a specific range of
+      frequencies.  See also: baseband.
+
+   broadcast
+      A special type of multicast packet which all nodes on the network
+      are always willing to receive.  See also: multicast, unicast.
+
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 10]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   broadcast storm
+      An incorrect packet broadcast onto a network that causes multiple
+      hosts to respond all at once, typically with equally incorrect
+      packets which causes the storm to grow exponentially in severity.
+      See also: Ethernet meltdown.
+
+   brouter
+      A device which bridges some packets (i.e. forwards based on
+      datalink layer information) and routes other packets (i.e.
+      forwards based on network layer information).  The bridge/route
+      decision is based on configuration information.  See also: bridge,
+      router.
+
+   BSD
+      See: Berkeley Software Distribution
+
+   BTW
+      By The Way
+
+   Bulletin Board System (BBS)
+      A computer, and associated software, which typically provides
+      electronic messaging services, archives of files, and any other
+      services or activities of interest to the bulletin board system's
+      operator.  Although BBS's have traditionally been the domain of
+      hobbyists, an increasing number of BBS's are connected directly to
+      the Internet, and many BBS's are currently operated by government,
+      educational, and research institutions.  See also: Electronic
+      Mail, Internet, Usenet.
+      [Source: NWNET]
+
+   Campus Wide Information System (CWIS)
+      A CWIS makes information and services publicly available on campus
+      via kiosks, and makes interactive computing available via kiosks,
+      interactive computing systems and campus networks. Services
+      routinely include directory information, calendars, bulletin
+      boards, databases.
+
+   CCIRN
+      See: Coordinating Committee for Intercontinental Research Networks
+
+   CCITT
+      See: Comite Consultatif International de Telegraphique et
+      Telephonique
+
+   CERT
+      See: Computer Emergency Response Team
+
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 11]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   checksum
+      A computed value which is dependent upon the contents of a packet.
+      This value is sent along with the packet when it is transmitted.
+      The receiving system computes a new checksum based upon the
+      received data and compares this value with the one sent with the
+      packet.  If the two values are the same, the receiver has a high
+      degree of confidence that the data was received correctly.  See
+      also: Cyclic Redundancy Check.
+      [Source: NNSC]
+
+   CIDR
+      See: Classless Inter-domain Routing
+
+   circuit switching
+      A communications paradigm in which a dedicated communication path
+      is established between two hosts, and on which all packets travel.
+      The telephone system is an example of a circuit switched network.
+      See also: connection-oriented, connectionless, packet switching.
+
+   Classless Inter-domain Routing (CIDR)
+      A proposal, set forth in RFC 1519, to allocate IP addresses so as
+      to allow the addresses to be aggregated when advertised as routes.
+      It is based on the elimination of intrinsic IP network addresses;
+      that is, the determination of the network address based on the
+      first few bits of the IP address.  See also: IP address, network
+      address, supernet.
+
+   client
+      A computer system or process that requests a service of another
+      computer system or process.  A workstation requesting the contents
+      of a file from a file server is a client of the file server.  See
+      also: client-server model, server.
+      [Source: NNSC]
+
+   client-server model
+      A common way to describe the paradigm of many network protocols.
+      Examples include the name-server/name-resolver relationship in DNS
+      and the file-server/file-client relationship in NFS.  See also:
+      client, server, Domain Name System, Network File System.
+
+   CNI
+      See: Coalition for Networked Information
+
+   Coalition for Networked Information (CNI)
+      A consortium formed by American Research Libraries, CAUSE, and
+      EDUCOM (no, they are not acronyms) to promote the creation of, and
+      access to, information resources in networked environments in
+      order to enrich scholarship and enhance intellectual productivity.
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 12]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   Comite Consultatif International de Telegraphique et Telephonique (
+      CCITT)
+      This organization is now part of the International
+      Telecommunications Union and is responsible for making technical
+      recommendations about telephone and data communications systems.
+      Every four years CCITT holds plenary sessions where they adopt new
+      standards; the most recent was in 1992.  Recently, the ITU
+      reorganized and CCITT was renamed the ITU-TSS.  See also:
+      International Telecommunications Union - Telecommunications
+      Standards Sector.
+
+   Computer Emergency Response Team (CERT)
+      The CERT was formed by ARPA in November 1988 in response to the
+      needs exhibited during the Internet worm incident.  The CERT
+      charter is to work with the Internet community to facilitate its
+      response to computer security events involving Internet hosts, to
+      take proactive steps to raise the community's awareness of
+      computer security issues, and to conduct research targeted at
+      improving the security of existing systems.  CERT products and
+      services include 24-hour technical assistance for responding to
+      computer security incidents, product vulnerability assistance,
+      technical documents, and tutorials.  In addition, the team
+      maintains a number of mailing lists (including one for CERT
+      Advisories), and provides an anonymous FTP server, at "cert.org",
+      where security-related documents and tools are archived.  The CERT
+      may be reached by email at "cert@cert.org" and by telephone at
+      +1-412-268-7090 (24-hour hotline).  See also: Advanced Research
+      Projects Agency, worm.
+
+   congestion
+      Congestion occurs when the offered load exceeds the capacity of a
+      data communication path.
+
+   connection-oriented
+      The data communication method in which communication proceeds
+      through three well-defined phases: connection establishment, data
+      transfer, connection release.  TCP is a connection-oriented
+      protocol.  See also: circuit switching, connectionless, packet
+      switching, Transmission Control Protocol.
+
+   connectionless
+      The data communication method in which communication occurs
+      between hosts with no previous setup.  Packets between two hosts
+      may take different routes, as each is independent of the other.
+      UDP is a connectionless protocol.  See also: circuit switching,
+      connection-oriented, packet switching, User Datagram Protocol.
+
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 13]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   Coordinating Committee for Intercontinental Research Networks (CCIRN)
+      A committee that includes the United States FNC and its
+      counterparts in North America and Europe.  Co-chaired by the
+      executive directors of the FNC and the European Association of
+      Research Networks (RARE), the CCIRN provides a forum for
+      cooperative planning among the principal North American and
+      European research networking bodies.  See also: Federal Networking
+      Council, RARE.
+      [Source: MALAMUD]
+
+   core gateway
+      Historically, one of a set of gateways (routers) operated by the
+      Internet Network Operations Center at Bolt, Beranek and Newman
+      (BBN).  The core gateway system formed a central part of Internet
+      routing in that all groups must advertise paths to their networks
+      from a core gateway.
+      [Source: MALAMUD]
+
+   Corporation for Research and Educational Networking (CREN)
+      This organization was formed in October 1989, when Bitnet and
+      CSNET (Computer + Science NETwork) were combined under one
+      administrative authority.  CSNET is no longer operational, but
+      CREN still runs Bitnet.  See also: Bitnet.
+      [Source: NNSC]
+
+   cracker
+      A cracker is an individual who attempts to access computer systems
+      without authorization.  These individuals are often malicious, as
+      opposed to hackers, and have many means at their disposal for
+      breaking into a system.  See also: hacker, Computer Emergency
+      Response Team, Trojan Horse, virus, worm.
+
+   CRC
+      See: cyclic redundancy check
+
+   CREN
+      See: Corporation for Research and Educational Networking
+
+   CU-SeeMe
+      Pronnounced "See you, See me," CU-SeeMe is a publicly available
+      videoconferencing program developed at Cornell University.  It
+      allows anyone with audio/video capabilites and an Internet
+      connection to videoconference with anyone else with the same
+      capabilities.  It also allows multiple people to tie into the same
+      videoconference.
+
+   CWIS
+      See: Campus Wide Information system
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 14]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   Cyberspace
+      A term coined by William Gibson in his fantasy novel Neuromancer
+      to describe the "world" of computers, and the society that gathers
+      around them.
+      [Source: ZEN]
+
+   Cyclic Redundancy Check (CRC)
+      A number derived from a set of data that will be transmitted.  By
+      recalculating the CRC at the remote end and comparing it to the
+      value originally transmitted, the receiving node can detect some
+      types of transmission errors.  See also: checksum.
+      [Source: MALAMUD]
+
+   DANTE
+      A non-profit company founded in July 1993 to help the European
+      research community enhance their networking facilities.  It
+      focuses on the establishment of a high-speed computer network
+      infrastructure.
+
+   DARPA
+      Defense Advanced Research Projects Agency
+      See: Advanced Research Projects Agency
+
+   Data Encryption Key (DEK)
+      Used for the encryption of message text and for the computation of
+      message integrity checks (signatures).  See also: encryption.
+
+   Data Encryption Standard (DES)
+      A popular, standard encryption scheme.  See also: encryption,
+      Pretty Good Privacy, RSA.
+
+   datagram
+      A self-contained, independent entity of data carrying sufficient
+      information to be routed from the source to the destination
+      computer without reliance on earlier exchanges between this source
+      and destination computer and the transporting network.  See also:
+      frame, packet.
+      [Source: J. Postel]
+
+   DCA
+      See: Defense Information Systems Agency
+
+   DCE
+      Data Circuit-terminating Equipment
+
+   DCE
+      See: Distributed Computing Environment
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 15]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   DDN
+      See: Defense Data Network
+
+   DDN NIC
+      See: Defense Data Network Network Information Center
+
+   DECnet
+      A proprietary network protocol designed by Digital Equipment
+      Corporation.  The functionality of each Phase of the
+      implementation, such as Phase IV and Phase V, is different.
+
+   default route
+      A routing table entry which is used to direct packets addressed to
+      networks not explicitly listed in the routing table.
+      [Source: MALAMUD]
+
+   Defense Data Network (DDN)
+      A global communications network serving the US Department of
+      Defense composed of MILNET, other portions of the Internet, and
+      classified networks which are not part of the Internet.  The DDN
+      is used to connect military installations and is managed by the
+      Defense Information Systems Agency.  See also: Defense Information
+      Systems Agency.
+
+   Defense Data Network Network Information Center (DDN NIC)
+      Previously called "The NIC", the DDN NIC's primary responsibility
+      was the assignment of Internet network addresses and Autonomous
+      System numbers, the administration of the root domain, and
+      providing information and support services to the Internet for the
+      DDN.  Since the creation of the InterNIC, the DDN NIC performs
+      these functions only for the DDN.  See also: Autonomous System,
+      network address, Internet Registry, InterNIC, Network Information
+      Center, Request For Comments.
+
+   Defense Information Systems Agency (DISA)
+      Formerly called the Defense Communications Agency (DCA), this is
+      the government agency responsible for managing the DDN portion of
+      the Internet, including the MILNET.  Currently, DISA administers
+      the DDN, and supports the user assistance services of the DDN NIC.
+      See also: Defense Data Network.
+
+   DEK
+      See: Data Encryption Key
+
+   DES
+      See: Data Encryption Standard
+
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 16]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   dialup
+      A temporary, as opposed to dedicated, connection between machines
+      established over a phone line (analog or ISDN).  See also:
+      Integrated Services Digital Network.
+
+   Directory Access Protocol
+      X.500 protocol used for communication between a Directory User
+      Agent and a Directory System Agent.
+      [Source: MALAMUD]
+
+   Directory System Agent (DSA)
+      The software that provides the X.500 Directory Service for a
+      portion of the directory information base.  Generally, each DSA is
+      responsible for the directory information for a single
+      organization or organizational unit.
+      [Source: RFC1208]
+
+   Directory User Agent (DUA)
+      The software that accesses the X.500 Directory Service on behalf
+      of the directory user.  The directory user may be a person or
+      another software element.
+      [Source: RFC1208]
+
+   DISA
+      See: Defense Information Systems Agency
+
+   Distributed Computing Environment (DCE)
+      An architecture of standard programming interfaces, conventions,
+      and server functionalities (e.g., naming, distributed file system,
+      remote procedure call) for distributing applications transparently
+      across networks of heterogeneous computers.  Promoted and
+      controlled by the Open Software Foundation (OSF), a consortium led
+      by Digital, IBM and Hewlett Packard.
+      [Source: RFC1208]
+
+   distributed database
+      A collection of several different data repositories that looks
+      like a single database to the user.  A prime example in the
+      Internet is the Domain Name System.
+
+   DIX Ethernet
+      See: Ethernet
+
+   DNS
+      See: Domain Name System
+
+   domain
+      "Domain" is a heavily overused term in the Internet.  It can be
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 17]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      used in the Administrative Domain context, or the Domain Name
+      context.  See also: Administrative Domain, Domain Name System.
+
+   Domain Name System (DNS)
+      The DNS is a general purpose distributed, replicated, data query
+      service.  The principal use is the lookup of host IP addresses
+      based on host names.  The style of host names now used in the
+      Internet is called "domain name", because they are the style of
+      names used to look up anything in the DNS.  Some important domains
+      are: .COM (commercial), .EDU (educational), .NET (network
+      operations), .GOV (U.S. government), and .MIL (U.S. military).
+      Most countries also have a domain.  The country domain names are
+      based on ISO 3166.  For example, .US (United States), .UK (United
+      Kingdom), .AU (Australia).  See also: Fully Qualified Domain Name,
+      Mail Exchange Record.
+
+   dot address (dotted decimal notation)
+      Dot address refers to the common notation for IP addresses of the
+      form A.B.C.D; where each letter represents, in decimal, one byte
+      of a four byte IP address.  See also: IP address.
+      [Source: FYI4]
+
+   DSA
+      See: Directory System Agent
+
+   DTE
+      Data Terminal Equipment
+
+   DUA
+      See: Directory User Agent
+
+   dynamic adaptive routing
+      Automatic rerouting of traffic based on a sensing and analysis of
+      current actual network conditions.  NOTE: this does not include
+      cases of routing decisions taken on predefined information.
+      [Source: J. Postel]
+
+   E1
+      The basic building block for European multi-megabit data rates,
+      with a bandwidth of 2.048Mbps.  See also: T1.
+
+   E3
+      A European standard for transmitting data at 57.344Mbps.  See
+      also: T3.
+
+   EARN
+      European Academic and Research Network.  See: Trans-European
+      Research and Education Networking Association.
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 18]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   EBCDIC
+      See: Extended Binary Coded Decimal Interchange Code
+
+   Ebone
+      A pan-European backbone service.
+
+   EFF
+      See: Electronic Frontier Foundation
+
+   EGP
+      See: Exterior Gateway Protocol
+
+   Electronic Frontier Foundation (EFF)
+      A foundation established to address social and legal issues
+      arising from the impact on society of the increasingly pervasive
+      use of computers as a means of communication and information
+      distribution.
+
+   Electronic Mail (email)
+      A system whereby a computer user can exchange messages with other
+      computer users (or groups of users) via a communications network.
+      Electronic mail is one of the most popular uses of the Internet.
+      [Source: NNSC]
+
+   email
+      See: Electronic mail
+
+   email address
+      The domain-based or UUCP address that is used to send electronic
+      mail to a specified destination.  For example an editor's address
+      is "gmalkin@xylogics.com".  See also: bang path, mail path, UNIX-
+      to-UNIX CoPy.
+      [Source: ZEN]
+
+   encapsulation
+      The technique used by layered protocols in which a layer adds
+      header information to the protocol data unit (PDU) from the layer
+      above.  For example, in Internet terminology, a packet would
+      contain a header from the physical layer, followed by a header
+      from the datalink layer (e.g.  Ethernet), followed by a header
+      from the network layer (IP), followed by a header from the
+      transport layer (e.g. TCP), followed by the application protocol
+      data.
+      [Source: RFC1208]
+
+   encryption
+      Encryption is the manipulation of a packet's data in order to
+      prevent any but the intended recipient from reading that data.
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 19]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      There are many types of data encryption, and they are the basis of
+      network security.  See also: Data Encryption Standard.
+
+   error checking
+      The examination of received data for transmission errors.  See
+      also: checksum, Cyclic Redundancy Check.
+
+   Ethernet
+      A 10-Mb/s standard for LANs, initially developed by Xerox, and
+      later refined by Digital, Intel and Xerox (DIX).  All hosts are
+      connected to a coaxial cable where they contend for network access
+      using a Carrier Sense Multiple Access with Collision Detection
+      (CSMA/CD) paradigm.  See also: 802.x, Local Area Network, token
+      ring.
+
+   Ethernet meltdown
+      An event that causes saturation, or near saturation, on an
+      Ethernet.  It usually results from illegal or misrouted packets
+      and typically lasts only a short time.  See also: broadcast storm.
+      [Source: COMER]
+
+   Extended Binary Coded Decimal Interchange Code (EBCDIC)
+      A standard character-to-number encoding used primarily by IBM
+      computer systems.  See also: ASCII.
+
+   Exterior Gateway Protocol (EGP)
+      A protocol which distributes routing information to the routers
+      which connect autonomous systems.  The term "gateway" is
+      historical, as "router" is currently the preferred term.  There is
+      also a routing protocol called EGP defined in RFC 904.  See also:
+      Autonomous System, Border Gateway Protocol, Interior Gateway
+      Protocol.
+
+   eXternal Data Representation (XDR)
+      A standard for machine independent data structures developed by
+      Sun Microsystems and defined in RFCs 1014 and 1832.  It is similar
+      to ASN.1.  See also: Abstract Syntax Notation One.
+      [Source: RFC1208]
+
+   FARNET
+      A non-profit corporation, established in 1987, whose mission is to
+      advance the use of computer networks to improve research and
+      education.
+
+   FAQ
+      Frequently Asked Question
+
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 20]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   FDDI
+      See: Fiber Distributed Data Interface
+
+   Federal Information Exchange (FIX)
+      One of the connection points between the American governmental
+      internets and the Internet.
+      [Source: SURA]
+
+   Federal Networking Council (FNC)
+      The coordinating group of representatives from those federal
+      agencies involved in the development and use of federal
+      networking, especially those networks using TCP/IP and the
+      Internet.  Current members include representatives from DOD, DOE,
+      ARPA, NSF, NASA, and HHS.  See also: Advanced Research Projects
+      Agency, National Science Foundation.
+
+   Fiber Distributed Data Interface (FDDI)
+      A high-speed (100Mb/s) LAN standard.  The underlying medium is
+      fiber optics, and the topology is a dual-attached, counter-
+      rotating token ring.  See also: Local Area Network, token ring.
+      [Source: RFC1208]
+
+   file transfer
+      The copying of a file from one computer to another over a computer
+      network.  See also: File Transfer Protocol, Kermit, Gopher, World
+      Wide Web.
+
+   File Transfer Protocol (FTP)
+      A protocol which allows a user on one host to access, and transfer
+      files to and from, another host over a network.  Also, FTP is
+      usually the name of the program the user invokes to execute the
+      protocol.  See also: anonymous FTP.
+
+   finger
+      A protocol, defined in RFC 1288, that allows information about a
+      system or user on a system to be retrived.  Finger also refers to
+      the commonly used program which retrieves this information.
+      Information about all logged in users, as well is information
+      about specific users may be retrieved from local or remote
+      systems.  Some sites consider finger to be a security risk and
+      have either disabled it, or replaced it with a simple message.
+
+   FIX
+      See: Federal Information Exchange
+
+   flame
+      A strong opinion and/or criticism of something, usually as a frank
+      inflammatory statement, in an electronic mail message.  It is
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 21]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      common to precede a flame with an indication of pending fire (i.e.
+      FLAME ON!).  Flame Wars occur when people start flaming other
+      people for flaming when they shouldn't have.  See also: Electronic
+      Mail, Usenet.
+
+   FLEA
+      See: Four Letter Extended Acronym
+
+   FNC
+      See: Federal Networking Council
+
+   Four Letter Extended Acronym (FLEA)
+      A recognition of the fact that there are far too many TLAs.  See
+      also: Three Letter Acronym.
+
+   FQDN
+      See: Fully Qualified Domain Name
+
+   fragment
+      A piece of a packet.  When a router is forwarding an IP packet to
+      a network that has a maximum transmission unit smaller than the
+      packet size, it is forced to break up that packet into multiple
+      fragments.  These fragments will be reassembled by the IP layer at
+      the destination host.  See also: Maximum Transmission Unit.
+
+   fragmentation
+      The IP process in which a packet is broken into smaller pieces to
+      fit the requirements of a physical network over which the packet
+      must pass.  See also: reassembly.
+
+   frame
+      A frame is a datalink layer "packet" which contains the header and
+      trailer information required by the physical medium.  That is,
+      network layer packets are encapsulated to become frames.  See
+      also: datagram, encapsulation, packet.
+
+   freenet
+      Community-based bulletin board system with email, information
+      services, interactive communications, and conferencing.  Freenets
+      are funded and operated by individuals and volunteers -- in one
+      sense, like public television.  They are part of the National
+      Public Telecomputing Network (NPTN), an organization based in
+      Cleveland, Ohio, devoted to making computer telecommunication and
+      networking services as freely available as public libraries.
+      [Source: LAQUEY]
+
+   FTP
+      See: File Transfer Protocol
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 22]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   Fully Qualified Domain Name (FQDN)
+      The FQDN is the full name of a system, rather than just its
+      hostname.  For example, "venera" is a hostname and
+      "venera.isi.edu" is an FQDN.  See also: hostname, Domain Name
+      System.
+
+   FYI
+      For Your Information
+
+   FYI
+      A subseries of RFCs that are not technical standards or
+      descriptions of protocols.  FYIs convey general information about
+      topics related to TCP/IP or the Internet.  See also: Request For
+      Comments.
+
+   gated
+      Gatedaemon.  A program which supports multiple routing protocols
+      and protocol families.  It may be used for routing, and makes an
+      effective platform for routing protocol research.  The software is
+      freely available by anonymous FTP from "gated.cornell.edu".
+      Pronounced "gate-dee".  See also: Exterior Gateway Protocol, Open
+      Shortest-Path First, Routing Information Protocol, routed.
+
+   gateway
+      The term "router" is now used in place of the original definition
+      of "gateway".  Currently, a gateway is a communications
+      device/program which passes data between networks having similar
+      functions but dissimilar implementations.  This should not be
+      confused with a protocol converter.  By this definition, a router
+      is a layer 3 (network layer) gateway, and a mail gateway is a
+      layer 7 (application layer) gateway.  See also: mail gateway,
+      router, protocol converter.
+
+   Gopher
+      A distributed information service, developed at the University of
+      Minnesota, that makes hierarchical collections of information
+      available across the Internet.  Gopher uses a simple protocol,
+      defined in RFC 1436, that allows a single Gopher client to access
+      information from any accessible Gopher server, providing the user
+      with a single "Gopher space" of information.  Public domain
+      versions of the client and server are available.  See also:
+      archie, archive site, Prospero, Wide Area Information Servers.
+
+   GOSIP
+      See: Government OSI Profile
+
+   Government OSI Profile (GOSIP)
+      A subset of OSI standards specific to U.S. Government
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 23]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      procurements, designed to maximize interoperability in areas where
+      plain OSI standards are ambiguous or allow excessive options.
+
+   hacker
+      A person who delights in having an intimate understanding of the
+      internal workings of a system, computers and computer networks in
+      particular.  The term is often misused in a pejorative context,
+      where "cracker" would be the correct term.  See also: cracker.
+
+   header
+      The portion of a packet, preceding the actual data, containing
+      source and destination information. It may also error checking and
+      other fields.  A header is also the part of an electronic mail
+      message which precedes the body of a message and contains, among
+      other things, the message originator, date and time.  See also:
+      Electronic Mail, packet, error checking.
+
+   heterogeneous network
+      A network running multiple network layer protocols.  See also:
+      DECnet, IP, IPX, XNS, homogeneous network.
+
+   hierarchical routing
+      The complex problem of routing on large networks can be simplified
+      by reducing the size of the networks.  This is accomplished by
+      breaking a network into a hierarchy of networks, where each level
+      is responsible for its own routing.  The Internet has, basically,
+      three levels: the backbones, the mid-levels, and the stub
+      networks.  The backbones know how to route between the mid-levels,
+      the mid-levels know how to route between the sites, and each site
+      (being an autonomous system) knows how to route internally.  See
+      also: Autonomous System, Exterior Gateway Protocol, Interior
+      Gateway Protocol, stub network, transit network.
+
+   High Performance Computing and Communications (HPCC)
+      High performance computing encompasses advanced computing,
+      communications, and information technologies, including scientific
+      workstations, supercomputer systems, high speed networks, special
+      purpose and experimental systems, the new generation of large
+      scale parallel systems, and application and systems software with
+      all components well integrated and linked over a high speed
+      network.
+      [Source: HPCC]
+
+   High Performance Parallel Interface (HIPPI)
+      An emerging ANSI standard which extends the computer bus over
+      fairly short distances at speeds of 800 and 1600 Mb/s.  HIPPI is
+      often used in a computer room to connect a supercomputer to
+      routers, frame buffers, mass-storage peripherals, and other
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 24]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      computers.  See also: American National Standards Institute
+      [Source: MALAMUD]
+
+   HIPPI
+      See: High Performance Parallel Interface
+
+   HTML
+      See: Hypertext Markup Language
+
+   homogeneous network
+      A network running a single network layer protocol.  See also:
+      DECnet, IP, IPX, XNS, heterogeneous network.
+
+   hop
+      A term used in routing.  A path to a destination on a network is a
+      series of hops, through routers, away from the origin.
+
+   host
+      A computer that allows users to communicate with other host
+      computers on a network.  Individual users communicate by using
+      application programs, such as electronic mail, Telnet and FTP.
+      [Source: NNSC]
+
+   host address
+      See: internet address
+
+   hostname
+      The name given to a machine.  See also: Fully Qualified Domain
+      Name.
+      [Source: ZEN]
+
+   host number
+      See: host address
+
+   HPCC
+      See: High Performance Computing and Communications
+
+   HTTP
+      See: Hypertext Transfer Protocol
+
+   hub
+      A device connected to several other devices.  In ARCnet, a hub is
+      used to connect several computers together.  In a message handling
+      service, a hub is used for the transfer of messages across the
+      network.
+      [Source: MALAMUD]
+
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 25]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   hyperlink
+      A pointer within a hypertext document which points (links) to
+      another document, which may or may not also be a hypertext
+      document.  See also: hypertext.
+
+   hypertext
+      A document, written in HTML, which contains hyperlinks to other
+      documents, which may or may not also be hypertext documents.
+      Hypertext documents are usually retrieved using WWW.  See also:
+      hyperlink, Hypertext Markup Language, World Wide Web.
+
+   Hypertext Markup Language (HTML)
+      The language used to create hypertext documents.  It is a subset
+      of SGML and includes the mechanisms to establish hyperlinks to
+      other documents.  See also: hypertext, hyperlink, Standardized
+      General Markup Language.
+
+   Hypertext Transfer Protocol (HTTP)
+      The protocol used by WWW to transfer HTML files.  A formal
+      standard is still under development in the IETF.  See also:
+      hyperlink, hypertext, Hypertext Markup Language, World Wide Web.
+
+   I-D
+      See: Internet-Draft
+
+   IAB
+      See: Internet Architecture Board
+
+   IANA
+      See: Internet Assigned Numbers Authority
+
+   ICMP
+      See: Internet Control Message Protocol
+
+   IEEE
+      Institute of Electrical and Electronics Engineers
+
+   IEEE 802
+      See: 802.x
+
+   IEN
+      See: Internet Experiment Note
+
+   IEPG
+      See: Internet Engineering Planning Group
+
+   IESG
+      See: Internet Engineering Steering Group
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 26]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   IETF
+      See: Internet Engineering Task Force
+
+   IINREN
+      See: Interagency Interim National Research and Education Network
+
+   IGP
+      See: Interior Gateway Protocol
+
+   IMHO
+      In My Humble Opinion
+
+   IMR
+      See: Internet Monthly Report
+
+   Integrated Services Digital Network (ISDN)
+      An emerging technology which is beginning to be offered by the
+      telephone carriers of the world.  ISDN combines voice and digital
+      network services in a single medium, making it possible to offer
+      customers digital data services as well as voice connections
+      through a single "wire."  The standards that define ISDN are
+      specified by CCITT.  See also: CCITT.
+      [Source: RFC1208]
+
+   Interagency Interim National Research and Education Network (IINREN)
+      An evolving operating network system.  Near term (1992-1996)
+      research and development activities will provide for the smooth
+      evolution of this networking infrastructure into the future
+      gigabit NREN.
+      [Source: HPCC]
+
+   Interior Gateway Protocol (IGP)
+      A protocol which distributes routing information to the routers
+      within an autonomous system.  The term "gateway" is historical, as
+      "router" is currently the preferred term.  See also: Autonomous
+      System, Exterior Gateway Protocol, Open Shortest-Path First,
+      Routing Information Protocol.
+
+   Intermediate System (IS)
+      An OSI system which performs network layer forwarding.  It is
+      analogous to an IP router.  See also: Open Systems
+      Interconnection, router.
+
+   Intermediate System-Intermediate System (IS-IS)
+      The OSI IGP.  See also: Open Systems Interconnection, Interior
+      Gateway Protocol.
+
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 27]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   International Organization for Standardization (ISO)
+      A voluntary, nontreaty organization founded in 1946 which is
+      responsible for creating international standards in many areas,
+      including computers and communications.  Its members are the
+      national standards organizations of the 89 member countries,
+      including ANSI for the U.S.  See also: American National Standards
+      Institute, Open Systems Interconnection.
+      [Source: TAN]
+
+   International Telecommunications Union (ITU)
+      An agency of the United Nations which coordinates the various
+      national telecommunications standards so that people in one
+      country can communicate with people in another country.
+
+   International Telecommunications Union -
+           Telecommunications Standards Sector (ITU-TSS)
+      The new name for CCITT since the ITU reorganization. The function
+      is the same; only the name has been changed
+
+   internet
+      While an internet is a network, the term "internet" is usually
+      used to refer to a collection of networks interconnected with
+      routers.  See also: network.
+
+   Internet
+      (note the capital "I") The Internet is the largest internet in the
+      world.  Is a three level hierarchy composed of backbone networks
+      (e.g. Ultranet), mid-level networks (e.g., NEARnet) and stub
+      networks.  The Internet is a multiprotocol internet.  See also:
+      backbone, mid-level network, stub network, transit network,
+      Internet Protocol.
+
+   internet address
+      A IP address that uniquely identifies a node on an internet.  An
+      Internet address (capital "I"), uniquely identifies a node on the
+      Internet.  See also: internet, Internet, IP address.
+
+   Internet Architecture Board (IAB)
+
+      The IAB has been many things over the years.  Originally the
+      Internet Activities Board, it was responsible for the development
+      of the protocols which make up the Internet.  It later changed its
+      name and charter to become the group most responsible for the
+      architecture of the Internet, leaving the protocol details to the
+      IESG.  In June of 1992, it was chartered as a component of the
+      Internet Society; this is the charter it holds today.  The IAB is
+      responsible for approving nominations to the IESG, architectural
+      oversight for Internet Standard Protocols, IETF standards process
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 28]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      oversight and appeals, IANA and RFC activities, and liaison to
+      peer standards groups (e.g., ISO).  See also: Internet Engineering
+      Task Force, Internet Research Task Force, Internet Engineering
+      Steering Group, Internet Assigned Numbers Authority, Request for
+      Comments.
+
+   Internet Assigned Numbers Authority (IANA)
+      The central registry for various Internet protocol parameters,
+      such as port, protocol and enterprise numbers, and options, codes
+      and types.  The currently assigned values are listed in the
+      "Assigned Numbers" document [STD2].  To request a number
+      assignment, contact the IANA at "iana@isi.edu".  See also:
+      assigned numbers, STD.
+
+   Internet Control Message Protocol (ICMP)
+      ICMP is an extension to the Internet Protocol.  It allows for the
+      generation of error messages, test packets and informational
+      messages related to IP.
+      [Source: FYI4]
+
+   Internet-Draft (I-D)
+      Internet-Drafts are working documents of the IETF, its Areas, and
+      its Working Groups.   As the name implies, Internet-Drafts are
+      draft documents.  They are valid for a maximum of six months and
+      may be updated, replaced, or obsoleted by other documents at any
+      time.  Very often, I-Ds are precursors to RFCs.  See also:
+      Internet Engineering Task Force, Request For Comments.
+
+   Internet Engineering Planning Group (IEPG)
+      A group, primarily composed of Internet service operators, whose
+      goal is to promote a globally coordinated Internet operating
+      environment.  Membership is open to all.
+
+   Internet Engineering Steering Group (IESG)
+      The IESG is composed of the IETF Area Directors and the IETF
+      Chair.  It provides the first technical review of Internet
+      standards and is responsible for day-to-day "management" of the
+      IETF.  See also: Internet Engineering Task Force.
+
+   Internet Engineering Task Force (IETF)
+      The IETF is a large, open community of network designers,
+      operators, vendors, and researchers whose purpose is to coordinate
+      the operation, management and evolution of the Internet, and to
+      resolve short-range and mid-range protocol and architectural
+      issues.  It is a major source of proposals for protocol standards
+      which are submitted to the IAB for final approval.  The IETF meets
+      three times a year and extensive minutes are included in the IETF
+      Proceedings.  See also: Internet, Internet Architecture Board.
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 29]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      [Source: FYI4]
+
+   Internet Experiment Note (IEN)
+      A series of reports pertinent to the Internet.  IENs were
+      published in parallel to RFCs and were intended to be  "working
+      documents."  They have been replaced by Internet-Drafts and are
+      currently of historic value only.  See also: Internet-Draft,
+      Request For Comments.
+
+   Internet Monthly Report (IMR)
+      Published monthly, the purpose of the Internet Monthly Reports is
+      to communicate to the Internet Research Group the accomplishments,
+      milestones reached, or problems discovered by the participating
+      organizations.
+
+   internet number
+      See: internet address
+
+   Internet Protocol (IP, IPv4)
+      The Internet Protocol (version 4), defined in RFC 791, is the
+      network layer for the TCP/IP Protocol Suite.  It is a
+      connectionless, best-effort packet switching protocol.  See also:
+      packet switching, TCP/IP Protocol Suite, Internet Protocol Version
+      6.
+
+   Internet Protocol Version 6 (IPng, IPv6)
+      IPv6 (version 5 is a stream protocol used for special
+      applications) is a new version of the Internet Protocol which is
+      designed to be an evolutionary step from its predecessor, version
+      4.  There are many RFCs defining various portions of the protocol,
+      its auxiliary protocols, and the transition plan from IPv4.  The
+      core RFCs are 1883 through 1886.  The name IPng (IP next
+      generation) is a nod to STNG (Star Trek Next Generation).
+
+   Internet Registry (IR)
+      The IANA has the discretionary authority to delegate portions of
+      its responsibility and, with respect to network address and
+      Autonomous System identifiers, has lodged this responsibility with
+      an IR.  The IR function is performed by the DDN NIC.  See also:
+      Autonomous System, network address, Defense Data Network...,
+      Internet Assigned Numbers Authority.
+
+   Internet Relay Chat (IRC)
+      A world-wide "party line" protocol that allows one to converse
+      with others in real time.  IRC is structured as a network of
+      servers, each of which accepts connections from client programs,
+      one per user.  See also: talk.
+      [Source: HACKER]
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 30]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   Internet Research Steering Group (IRSG)
+      The "governing body" of the IRTF.  See also: Internet Research
+      Task Force.
+      [Source: MALAMUD]
+
+   Internet Research Task Force (IRTF)
+      The IRTF is chartered by the IAB to consider long-term Internet
+      issues from a theoretical point of view.  It has Research Groups,
+      similar to IETF Working Groups, which are each tasked to discuss
+      different research topics.  Multi-cast audio/video conferencing
+      and privacy enhanced mail are samples of IRTF output.  See also:
+      Internet Architecture Board, Internet Engineering Task Force,
+      Privacy Enhanced Mail.
+
+   Internet Society (ISOC)
+      The Internet Society is a non-profit, professional membership
+      organization which facilitates and supports the technical
+      evolution of the Internet, stimulates interest in and educates the
+      scientific and academic communities, industry and the public about
+      the technology, uses and applications of the Internet, and
+      promotes the development of new applications for the system.  The
+      Society provides a forum for discussion and collaboration in the
+      operation and use of the global Internet infrastructure.  The
+      Internet Society publishes a quarterly newsletter, the Internet
+      Society News, and holds an annual conference, INET.  The
+      development of Internet technical standards takes place under the
+      auspices of the Internet Society with substantial support from the
+      Corporation for National Research Initiatives under a cooperative
+      agreement with the US Federal Government.
+      [Source: V. Cerf]
+
+   Internetwork Packet eXchange (IPX)
+      Novell's protocol used by Netware.  A router with IPX routing can
+      interconnect LANs so that Novell Netware clients and servers can
+      communicate.  See also: Local Area Network.
+
+   InterNIC
+      A five year project, partially supported by the National Science
+      Foundation, to provide network information services to the
+      networking community.  The InterNIC began operations in April of
+      1993 and is now a collaborative project of two organizations:
+      AT&T, which provides Directory and Database Services from South
+      Plainsfield, NJ; and Network Solutions, Inc., which provides
+      Registration Services from their headquarters in Herndon, VA.
+      Services are provided via the Internet, and by telephone, FAX, and
+      hardcopy.
+
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 31]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   interoperability
+      The ability of software and hardware on multiple machines from
+      multiple vendors to communicate meaningfully.
+
+   IP (IPv4)
+      See: Internet Protocol
+
+   IPng (IPv6)
+      See: Internet Protocol Version 6
+
+   IP address
+      The 32-bit address defined by the Internet Protocol in RFC 791.
+      It is usually represented in dotted decimal notation.  See also:
+      dot address, internet address, Internet Protocol, network address,
+      subnet address, host address.
+
+   IP datagram
+      See: datagram
+
+   IPX
+      See: Internetwork Packet eXchange
+
+   IR
+      See: Internet Registry
+
+   IRC
+      See: Internet Relay Chat
+
+   IRSG
+      See: Internet Research Steering Group
+
+   IRTF
+      See: Internet Research Task Force
+
+   IS
+      See: Intermediate System
+
+   IS-IS
+      See: Intermediate System-Intermediate System
+
+   ISDN
+      See: Integrated Services Digital Network
+
+   ISO
+      See: International Organization for Standardization
+
+   ISO Development Environment (ISODE)
+      Software that allows OSI services to use a TCP/IP network.
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 32]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      Pronounced eye-so-dee-eee.  See also: Open Systems
+      Interconnection, TCP/IP Protocol Suite.
+
+   ISOC
+      See: Internet Society
+
+   ISODE
+      See: ISO Development Environment
+
+   ITU
+      See: International Telecommunications Union -
+           Telecommunications Standards Sector
+
+   ITU-TSS
+      See: International Telecommunications Union
+
+   JKREY
+      Joyce K. Reynolds
+
+   KA9Q
+      A popular implementation of TCP/IP and associated protocols for
+      amateur packet radio systems.  See also: TCP/IP Protocol Suite.
+      [Source: RFC1208]
+
+   Kerberos
+      Kerberos is the security system of MIT's Project Athena.  It is
+      based on symmetric key cryptography.  See also: encryption.
+
+   Kermit
+      A popular file transfer protocol developed by Columbia University.
+      Because Kermit runs in most operating environments, it provides an
+      easy method of file transfer.  Kermit is NOT the same as FTP.  See
+      also: File Transfer Protocol
+      [Source: MALAMUD]
+
+   Knowbot
+      A "Knowledge Robot" is a program which seeks out information based
+      on specified criteria.  "Knowbot," as trademarked by CNRI, refers
+      specifically to the search engine for Knowbot Information
+      Services.  See also: Corporation for National Research
+      Initiatives, X.500, white pages, whois, netfind.
+
+   Knowbot Information Services
+      An experimental directory service.  See also: white pages, whois,
+      X.500.
+
+   LAN
+      See: Local Area Network
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 33]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   layer
+      Communication networks for computers may be organized as a set of
+      more or less independent protocols, each in a different layer
+      (also called level).  The lowest layer governs direct host-to-host
+      communication between the hardware at different hosts; the highest
+      consists of user applications.  Each layer builds on the layer
+      beneath it.  For each layer, programs at different hosts use
+      protocols appropriate to the layer to communicate with each other.
+      TCP/IP has five layers of protocols; OSI has seven.  The
+      advantages of different layers of protocols is that the methods of
+      passing information from one layer to another are specified
+      clearly as part of the protocol suite, and changes within a
+      protocol layer are prevented from affecting the other layers.
+      This greatly simplifies the task of designing and maintaining
+      communication programs.  See also: Open Systems Interconnection,
+      TCP/IP Protocol Suite.
+
+   LDAP
+      See: Lightweight Directory Access Protocol
+
+   Lightweight Directory Access Protocol
+      This protocol provides access for management and browser
+      applications that provide read/write interactive access to the
+      X.500 Directory.  See also: X.500.
+
+   link
+      A pointer which may be used to retreive the file or data to which
+      the pointer points.
+
+   list server
+      An automated mailing list distribution system.  List servers
+      handle the administrivia of mailing list maintenance, such as the
+      adding and deleting of list members.
+
+   little-endian
+      A format for storage or transmission of binary data in which the
+      least significant byte (bit) comes first.  See also: big-endian.
+      [Source: RFC1208]
+
+   LLC
+      See: Logical Link Control
+
+   Local Area Network (LAN)
+      A data network intended to serve an area of only a few square
+      kilometers or less.  Because the network is known to cover only a
+      small area, optimizations can be made in the network signal
+      protocols that permit data rates up to 100Mb/s.  See also:
+      Ethernet, Fiber Distributed Data Interface, token ring,
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 34]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      Metropolitan Area Network, Wide Area Network.
+      [Source: NNSC]
+
+   Logical Link Control (LLC)
+      The upper portion of the datalink layer, as defined in IEEE 802.2.
+      The LLC sublayer presents a uniform interface to the user of the
+      datalink service, usually the network layer.  Beneath the LLC
+      sublayer is the MAC sublayer.  See also: 802.x, layer, Media
+      Access Control.
+
+   Lurking
+      No active participation on the part of a subscriber to an mailing
+      list or USENET newsgroup.  A person who is lurking is just
+      listening to the discussion.  Lurking is encouraged for beginners
+      who need to get up to speed on the history of the group.  See
+      also: Electronic Mail, mailing list, Usenet.
+      [Source: LAQUEY]
+
+   Lycos
+      Lycos, Inc. is a new venture formed in late June 1995, to develop
+      and market the Lycos technology originally developed under the
+      direction of Dr. Michael ("Fuzzy") Mauldin at Carnegie Mellon
+      University.  The part of Lycos you see when you do a search is the
+      search engine.  "Lycos" comes from Lycosidae, a cosmopolitan
+      family of relatively large active ground spiders (Wolf Spiders)
+      that catch their prey by pursuit, rather than in a web.
+      [Source: Lycos's FAQ]
+
+   MAC
+      See: Media Access Control
+
+   MAC address
+      The hardware address of a device connected to a shared media.  See
+      also: Media Access Control, Ethernet, token ring.
+      [Source: MALAMUD]
+
+   mail bridge
+      A mail gateway that forwards electronic mail between two or more
+      networks while ensuring that the messages it forwards meet certain
+      administrative criteria.  A mail bridge is simply a specialized
+      form of mail gateway that enforces an administrative policy with
+      regard to what mail it forwards.  See also: Electronic Mail, mail
+      gateway.
+      [Source: NNSC]
+
+   Mail Exchange Record (MX Record)
+      A DNS resource record type indicating which host can handle mail
+      for a particular domain.  See also: Domain Name System, Electronic
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 35]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      Mail.
+      [Source: MALAMUD]
+
+   mail exploder
+      Part of an electronic mail delivery system which allows a message
+      to be delivered to a list of addresses.  Mail exploders are used
+      to implement mailing lists.  Users send messages to a single
+      address and the mail exploder takes care of delivery to the
+      individual mailboxes in the list.  See also: Electronic Mail,
+      email address, mailing list.
+      [Source: RFC1208]
+
+   mail gateway
+      A machine that connects two or more electronic mail systems
+      (including dissimilar mail systems) and transfers messages between
+      them.  Sometimes the mapping and translation can be quite complex,
+      and it generally requires a store-and-forward scheme whereby the
+      message is received from one system completely before it is
+      transmitted to the next system, after suitable translations.  See
+      also: Electronic Mail.
+      [Source: RFC1208]
+
+   mail path
+      A series of machine names used to direct electronic mail from one
+      user to another.  This system of email addressing has been used
+      primarily in UUCP networks which are trying to eliminate its use
+      altogether.  See also: bang path, email address, UNIX-to-UNIX
+      CoPy.
+
+   mail server
+      A software program that distributes files or information in
+      response to requests sent via email.  Internet examples include
+      Almanac and netlib.  Mail servers have also been used in Bitnet to
+      provide FTP-like services.  See also: Bitnet, Electronic Mail,
+      FTP.
+      [Source: NWNET]
+
+   mailing list
+      A list of email addresses, used by a mail exploder, to forward
+      messages to groups of people.  Generally, a mailing list is used
+      to discuss certain set of topics, and different mailing lists
+      discuss different topics.  A mailing list may be moderated.  This
+      means that messages sent to the list are actually sent to a
+      moderator who determines whether or not to send the messages on to
+      everyone else.  Requests to subscribe to, or leave, a mailing list
+      should ALWAYS be sent to the list's "-request" address (e.g.
+      ietf-request@cnri.reston.va.us for the IETF mailing list) or
+      majordomo server.  See also: Electronic Mail, mail exploder, email
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 36]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      address, moderator, majordomo.
+
+   majordomo
+      A program which handles mailing list maintenance (affectionately
+      known as administrivia) such as adding and removing addresses from
+      mailing lists.  See also: email address, mailing list.
+
+   MAN
+      See: Metropolitan Area Network
+
+   Management Information Base (MIB)
+      The set of parameters an SNMP management station can query or set
+      in the SNMP agent of a network device (e.g. router).  Standard,
+      minimal MIBs have been defined, and vendors often have Private
+      enterprise MIBs.  In theory, any SNMP manager can talk to any SNMP
+      agent with a properly defined MIB.  See also: client-server model,
+      Simple Network Management Protocol.
+      [Source: BIG-LAN]
+
+   Martian
+      A humorous term applied to packets that turn up unexpectedly on
+      the wrong network because of bogus routing entries.  Also used as
+      a name for a packet which has an altogether bogus (non-registered
+      or ill-formed) internet address.
+      [Source: RFC1208]
+
+   Maximum Transmission Unit (MTU)
+      The largest frame length which may be sent on a physical medium.
+      See also: frame, fragment, fragmentation.
+
+   mbone
+      The Multicast Backbone is based on IP multicasting using class-D
+      addresses.  The mbone concept was adopted at the March 1992 IETF
+      in San Diego, during which it was used to audiocast to 40 people
+      throughout the world.  At the following meeting, in Cambridge, the
+      name mbone was adopted.  Since then the audiocast has become full
+      two-way audio/video conferencing using two video channels, four
+      audio channels, and involving hundreds of remote users.  See also:
+      multicast, Internet Engineering Task Force.
+
+   MD-2, MD-4, MD-5
+      See: Message Digest
+
+   Media Access Control (MAC)
+      The lower portion of the datalink layer.  The MAC differs for
+      various physical media.  See also: MAC Address, Ethernet, Logical
+      Link Control, token ring.
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 37]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   Message Digest (MD-2, MD-4, MD-5)
+      Message digests are algorithmic operations, generally performed on
+      text, which produce a unique signature for that text.  MD-2,
+      described in RFC 1319; MD-4, described in RFC 1320; and MD-5,
+      described in RFC 1321 all produce a 128-bit signature.  They
+      differ in their operating speed and resistance to crypto-analytic
+      attack.  Generally, one must be traded off for the other.
+
+   message switching
+      See: packet switching
+
+   Metropolitan Area Network (MAN)
+      A data network intended to serve an area approximating that of a
+      large city.  Such networks are being implemented by innovative
+      techniques, such as running fiber cables through subway tunnels.
+      A popular example of a MAN is SMDS.  See also: Local Area Network,
+      Switched Multimegabit Data Service, Wide Area Network.
+      [Source: NNSC]
+
+   MIB
+      See: Management Information Base
+
+   Microcom Networking Protocol (MNP)
+      A series of protocols built into most modems which error-check or
+      compress data being transmitted over a phone line.
+
+   mid-level network
+      Mid-level networks (a.k.a. regionals) make up the second level of
+      the Internet hierarchy.  They are the transit networks which
+      connect the stub networks to the backbone networks.  See also:
+      backbone, Internet, stub network, transit network.
+
+   MIME
+      See: Multipurpose Internet Mail Extensions
+
+   MNP
+      See: Microcom Networking Protocol
+
+   moderator
+      A person, or small group of people, who manage moderated mailing
+      lists and newsgroups.  Moderators are responsible for determining
+      which email submissions are passed on to list.  See also:
+      Electronic Mail, mailing list, Usenet.
+
+   MOSPF
+      Multicast Open Shortest-Path First. See: Open Shortest-Path First.
+
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 38]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   MTU
+      See: Maximum Transmission Unit
+
+   MUD
+      See: Multi-User Dungeon
+
+   multicast
+      A packet with a special destination address which multiple nodes
+      on the network may be willing to receive.  See also: broadcast,
+      unicast.
+
+   multihomed host
+      A host which has more than one connection to a network.  The host
+      may send and receive data over any of the links but will not route
+      traffic for other nodes.  See also: host, router.
+      [Source: MALAMUD]
+
+   Multipurpose Internet Mail Extensions (MIME)
+      An extension to Internet email which provides the ability to
+      transfer non-textual data, such as graphics, audio and fax.  See
+      also: Electronic Mail
+
+   Multi-User Dungeon (MUD)
+      Adventure, role playing games, or simulations played on the
+      Internet.  Devotees call them "text-based virtual reality
+      adventures."  The games can feature fantasy combat, booby traps
+      and magic.  Players interact in real time and can change the
+      "world" in the game as they play it.  Most MUDs are based on the
+      Telnet protocol.  See also: Telnet.
+      [Source: LAQUEY]
+
+   MX Record
+      See: Mail Exchange Record
+
+   NAK
+      See: Negative Acknowledgment
+
+   name resolution
+      The process of mapping a name into its corresponding address.  See
+      also: Domain Name System.
+      [Source: RFC1208]
+
+   namespace
+      A commonly distributed set of names in which all names are unique.
+      [Source: MALAMUD]
+
+   National Institute of Standards and Technology (NIST)
+      United States governmental body that provides assistance in
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 39]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      developing standards.  Formerly the National Bureau of Standards.
+      [Source: MALAMUD]
+
+   National Research and Education Network (NREN)
+      The NREN is the realization of an interconnected gigabit computer
+      network devoted to Hign Performance Computing and Communications.
+      See also: HPPC, IINREN.
+      [Source: HPCC]
+
+   National Science Foundation (NSF)
+      A U.S. government agency whose purpose is to promote the
+      advancement of science.  NSF funds science researchers, scientific
+      projects, and infrastructure to improve the quality of scientific
+      research.  The NSFNET, funded by NSF, was once an essential part
+      of academic and research communications.  It was a highspeed,
+      hierarchical "network of networks."  At the highest level, it had
+      a backbone network of nodes, interconnected with T3 (45Mbps)
+      facilities which spaned the continental United States.  Attached
+      to that were mid-level networks, and attached to the mid-levels
+      were campus and local networks.  See also: backbone network, mid-
+      level network.
+
+   Negative Acknowledgment (NAK)
+      Response to the receipt of either a corrupted or unnexpected
+      packet of information.  See also: Acknowledgement.
+
+   netfind
+      A research prototype to provide a simple Internet "white pages"
+      user directory.  Developed at the University of Colorado, Boulder,
+      it tries to locate telephone and email information given a
+      person's name and a rough description of where the person works.
+      See also: Knowbot, whois, white pages, X.500.
+      [Source: Ryan Moats]
+
+   netiquette
+      A pun on "etiquette" referring to proper behavior on a network.
+      RFC 1855 (FYI 28) contains a netiquette guide produced by the User
+      Services area of the IETF.  See also: Acceptable Use Policy,
+      Internet Engineering Task Force.
+
+   Netnews
+      See: Usenet
+
+   network
+      A computer network is a data communications system which
+      interconnects computer systems at various different sites.  A
+      network may be composed of any combination of LANs, MANs or WANs.
+      See also: Local Area Network, Metropolitan Area Network, Wide Area
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 40]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      Network, internet.
+
+   network address
+      The network portion of an IP address.  For a class A network, the
+      network address is the first byte of the IP address.  For a class
+      B network, the network address is the first two bytes of the IP
+      address.  For a class C network, the network address is the first
+      three bytes of the IP address.  In each case, the remainder is the
+      host address.  In the Internet, assigned network addresses are
+      globally unique.  See also: Internet, IP address, subnet address,
+      host address, Internet Registry.
+
+   Network File System (NFS)
+      A protocol developed by Sun Microsystems, and defined in RFC 1094
+      (RFC 1813 defines Version 3), which allows a computer system to
+      access files over a network as if they were on its local disks.
+      This protocol has been incorporated in products by more than two
+      hundred companies, and is now a de facto Internet standard.
+      [Source: NNSC]
+
+   Network Information Center (NIC)
+      A NIC provides information, assistance and services to network
+      users.  See also: Network Operations Center.
+
+   Network Information Services (NIS)
+      A set of services, generally provided by a NIC, to assist users in
+      using the network.  See also: Network Information Center.
+
+   Network News Transfer Protocol (NNTP)
+      A protocol, defined in RFC 977, for the distribution, inquiry,
+      retrieval, and posting of news articles.  See also: Usenet.
+
+   network mask
+      See: address mask
+
+   network number
+      See: network address
+
+   Network Operations Center (NOC)
+      A location from which the operation of a network or internet is
+      monitored.  Additionally, this center usually serves as a
+      clearinghouse for connectivity problems and efforts to resolve
+      those problems.  See also: Network Information Center.
+      [Source: NNSC]
+
+   Network Time Protocol (NTP)
+      A protocol that assures accurate local timekeeping with reference
+      to radio and atomic clocks located on the Internet.  This protocol
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 41]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      is capable of synchronizing distributed clocks within milliseconds
+      over long time periods.  See also: Internet.
+      [Source: NNSC]
+
+   NFS
+      See: Network File System
+
+   NIC
+      See: Network Information Center
+
+   NIC.DDN.MIL
+      This is the domain name of the DDN NIC.  See also: Defense Data
+      Network, Domain Name System, Network Information Center.
+
+   NIS
+      See: Network Information Services
+
+   NIST
+      See: National Institute of Standards and Technology
+
+   NNTP
+      See: Network News Transfer Protocol
+
+   NOC
+      See: Network Operations Center
+
+   Nodal Switching System (NSS)
+      Main routing nodes in the NSFnet backbone.  See also: backbone,
+      National Science Foundation.
+      [Source: MALAMUD]
+
+   node
+      An addressable device attached to a computer network.  See also:
+      host, router.
+
+   NREN
+      See: National Research and Education Network
+
+   NSF
+      See: National Science Foundation
+
+   NSS
+      See: Nodal Switching System
+
+   NTP
+      See: Network Time Protocol
+
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 42]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   OCLC
+      See: Online Computer Library Catalog
+
+   octet
+      An octet is 8 bits.  This term is used in networking, rather than
+      byte, because some systems have bytes that are not 8 bits long.
+
+   Online Computer Library Catalog
+      OCLC is a nonprofit membership organization offering computer-
+      based services to libraries, educational organizations, and their
+      users.  The OCLC library information network connects more than
+      10,000 libraries worldwide.  Libraries use the OCLC System for
+      cataloging, interlibrary loan, collection development,
+      bibliographic verification, and reference searching.
+      [Source: OCLC]
+
+   Open Shortest-Path First (OSPF)
+      A link state, as opposed to distance vector, routing protocol.  It
+      is an Internet standard IGP defined in RFCs 1583 and 1793.  The
+      multicast version, MOSPF, is defined in RFC 1584.  See also:
+      Interior Gateway Protocol, Routing Information Protocol.
+
+   Open Systems Interconnection (OSI)
+      A suite of protocols, designed by ISO committees, to be the
+      international standard computer network architecture.  See also:
+      International Organization for Standardization.
+
+   OSI
+      See: Open Systems Interconnection
+
+   OSI Reference Model
+      A seven-layer structure designed to describe computer network
+      architectures and the way that data passes through them.  This
+      model was developed by the ISO in 1978 to clearly define the
+      interfaces in multivendor networks, and to provide users of those
+      networks with conceptual guidelines in the construction of such
+      networks.  See also: International Organization for
+      Standardization.
+      [Source: NNSC]
+
+   OSPF
+      See: Open Shortest-Path First
+
+   packet
+      The unit of data sent across a network.  "Packet" a generic term
+      used to describe unit of data at all levels of the protocol stack,
+      but it is most correctly used to describe application data units.
+      See also: datagram, frame.
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 43]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   Packet InterNet Groper (PING)
+      A program used to test reachability of destinations by sending
+      them an ICMP echo request and waiting for a reply.  The term is
+      used as a verb: "Ping host X to see if it is up!"  See also:
+      Internet Control Message Protocol.
+      [Source: RFC1208]
+
+   Packet Switch Node (PSN)
+      A dedicated computer whose purpose is to accept, route and forward
+      packets in a packet switched network.  See also: packet switching,
+      router.
+      [Source: NNSC]
+
+   packet switching
+      A communications paradigm in which packets (messages) are
+      individually routed between hosts, with no previously established
+      communication path.  See also: circuit switching, connection-
+      oriented, connectionless.
+
+   PD
+      Public Domain
+
+   PDU
+      See: Protocol Data Unit
+
+   PEM
+      See: Privacy Enhanced Mail
+
+   PGP
+      See: Pretty Good Privacy
+
+   PING
+      See: Packet INternet Groper
+
+   Point Of Presence (POP)
+      A site where there exists a collection of telecommunications
+      equipment, usually digital leased lines and multi-protocol
+      routers.
+
+   Point-to-Point Protocol (PPP)
+      The Point-to-Point Protocol, defined in RFC 1661, provides a
+      method for transmitting packets over serial point-to-point links.
+      There are many other RFCs which define extensions to the basic
+      protocol.  See also: Serial Line IP.
+      [Source: FYI4]
+
+   POP
+      See: Post Office Protocol and Point Of Presence
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 44]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   port
+      A port is a transport layer demultiplexing value.  Each
+      application has a unique port number associated with it.  See
+      also: Transmission Control Protocol, User Datagram Protocol.
+
+   Post Office Protocol (POP)
+      A protocol designed to allow single user hosts to read electronic
+      mail from a server.  Version 3, the most recent and most widely
+      used, is defined in RFC 1725.  See also: Electronic Mail.
+
+   Postal Telegraph and Telephone (PTT)
+      Outside the USA, PTT refers to a telephone service provider, which
+      is usually a monopoly, in a particular country.
+
+   postmaster
+      The person responsible for taking care of electronic mail
+      problems, answering queries about users, and other related work at
+      a site.  See also: Electronic Mail.
+      [Source: ZEN]
+
+   PPP
+      See: Point-to-Point Protocol
+
+   Pretty Good Privacy (PGP)
+      A program, developed by Phil Zimmerman, which cryptographically
+      protects files and electronic mail from being read by others.  It
+      may also be used to digitally sign a document or message, thus
+      authenticating the creator.  See also: encryption, Data Encryption
+      Standard, RSA.
+
+   Privacy Enhanced Mail (PEM)
+      Internet email which provides confidentiality, authentication and
+      message integrity using various encryption methods.  See also:
+      Electronic Mail, encryption.
+
+   Prospero
+      A distributed filesystem which provides the user with the ability
+      to create multiple views of a single collection of files
+      distributed across the Internet.  Prospero provides a file naming
+      system, and file access is provided by existing access methods
+      (e.g. anonymous FTP and NFS).  The Prospero protocol is also used
+      for communication between clients and servers in the archie
+      system.  See also: anonymous FTP, archie, archive site, Gopher,
+      Network File System, Wide Area Information Servers.
+
+   protocol
+      A formal description of message formats and the rules two
+      computers must follow to exchange those messages.  Protocols can
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 45]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      describe low-level details of machine-to-machine interfaces (e.g.,
+      the order in which bits and bytes are sent across a wire) or
+      high-level exchanges between allocation programs (e.g., the way in
+      which two programs transfer a file across the Internet).
+      [Source: MALAMUD]
+
+   protocol converter
+      A device/program which translates between different protocols
+      which serve similar functions (e.g. TCP and TP4).
+
+   Protocol Data Unit (PDU)
+      "PDU" is internationalstandardscomitteespeak for packet.  See
+      also: packet.
+
+   protocol stack
+      A layered set of protocols which work together to provide a set of
+      network functions.  See also: layer, protocol.
+
+   proxy ARP
+      The technique in which one machine, usually a router, answers ARP
+      requests intended for another machine.  By "faking" its identity,
+      the router accepts responsibility for routing packets to the
+      "real" destination.  Proxy ARP allows a site to use a single IP
+      address with two physical networks.  Subnetting would normally be
+      a better solution.  See also: Address Resolution Protocol
+      [Source: RFC1208]
+
+   PSN
+      See: Packet Switch Node.
+
+   PTT
+      See: Postal, Telegraph and Telephone
+
+   queue
+      A backup of packets awaiting processing.
+
+   RARE
+      Reseaux Associes pour la Recherche Europeenne.  See: Trans-
+      European Research and Education Networking Association.
+
+   RARP
+      See: Reverse Address Resolution Protocol
+
+   RBOC
+      Regional Bell Operating Company
+
+
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 46]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   Read The F*cking Manual (RTFM)
+      This acronym is often used when someone asks a simple or common
+      question.
+
+   Read The Source Code (RTSC)
+      This acronym is often used when a software developer asks a
+      question about undocumented code.
+
+   reassembly
+      The IP process in which a previously fragmented packet is
+      reassembled before being passed to the transport layer.  See also:
+      fragmentation.
+
+   recursive
+      See: recursive
+
+   regional
+      See: mid-level network
+
+   remote login
+      Operating on a remote computer, using a protocol over a computer
+      network, as though locally attached.  See also: Telnet.
+
+   Remote Procedure Call (RPC)
+      An easy and popular paradigm for implementing the client-server
+      model of distributed computing.  In general, a request is sent to
+      a remote system to execute a designated procedure, using arguments
+      supplied, and the result returned to the caller.  There are many
+      variations and subtleties in various implementations, resulting in
+      a variety of different (incompatible) RPC protocols.
+      [Source: RFC1208]
+
+   repeater
+      A device which propagates electrical signals from one cable to
+      another.  See also: bridge, gateway, router.
+
+   Request For Comments (RFC)
+      The document series, begun in 1969, which describes the Internet
+      suite of protocols and related experiments.  Not all (in fact very
+      few) RFCs describe Internet standards, but all Internet standards
+      are written up as RFCs.  The RFC series of documents is unusual in
+      that the proposed protocols are forwarded by the Internet research
+      and development community, acting on their own behalf, as opposed
+      to the formally reviewed and standardized protocols that are
+      promoted by organizations such as CCITT and ANSI.  See also: BCP,
+      FYI, STD.
+
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 47]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   Reseaux IP Europeenne (RIPE)
+      A collaboration between European networks which use the TCP/IP
+      protocol suite.
+
+   Reverse Address Resolution Protocol (RARP)
+      A protocol, defined in RFC 903, which provides the reverse
+      function of ARP.  RARP maps a hardware (MAC) address to an
+      internet address.  It is used primarily by diskless nodes when
+      they first initialize to find their internet address.  See also:
+      Address Resolution Protocol, BOOTP, internet address, MAC address.
+
+   RFC
+      See: Request For Comments
+
+   RFC 822
+      The Internet standard format for electronic mail message headers.
+      Mail experts often refer to "822 messages."  The name comes from
+      RFC 822, which contains the specification.  822 format was
+      previously known as 733 format.  See also: Electronic Mail.
+      [Source: COMER]
+
+   RIP
+      See: Routing Information Protocol
+
+   RIPE
+      See: Reseaux IP Europeenne
+
+   Round-Trip Time (RTT)
+      A measure of the current delay on a network.
+      [Source: MALAMUD]
+
+   route
+      The path that network traffic takes from its source to its
+      destination.  Also, a possible path from a given host to another
+      host or destination.
+
+   routed
+      Route Daemon.  A program which runs under 4.2BSD/4.3BSD UNIX
+      systems (and derived operating systems) to propagate routes among
+      machines on a local area network, using the RIP protocol.
+      Pronounced "route-dee".  See also: Routing Information Protocol,
+      gated.
+
+   router
+      A device which forwards traffic between networks.  The forwarding
+      decision is based on network layer information and routing tables,
+      often constructed by routing protocols.  See also: bridge,
+      gateway, Exterior Gateway Protocol, Interior Gateway Protocol.
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 48]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   routing
+      The process of selecting the correct interface and next hop for a
+      packet being forwarded.  See also: hop, router, Exterior Gateway
+      Protocol, Interior Gateway Protocol.
+
+   routing domain
+      A set of routers exchanging routing information within an
+      administrative domain.  See also: Administrative Domain, router.
+
+   Routing Information Protocol (RIP)
+      A distance vector, as opposed to link state, routing protocol.  It
+      is an Internet standard IGP defined in RFC 1058.  See also:
+      Interior Gateway Protocol, Open Shortest-Path First.
+
+   RPC
+      See: Remote Procedure Call
+
+   RSA
+      A public-key cryptographic system which may be used for encryption
+      and authentication.  It was invented in 1977 and named for its
+      inventors: Ron Rivest, Adi Shamir, and Leonard Adleman.  See also:
+      encryption, Data Encryption Standard, Pretty Good Privacy.
+
+   RTFM
+      See: Read The F*cking Manual
+
+   RTSC
+      See: Read The Source Code
+
+   RTT
+      See: Round-Trip Time
+
+   SDH
+      See: Synchronous Digital Hierarchy
+
+   Serial Line IP (SLIP)
+      A protocol used to run IP over serial lines, such as telephone
+      circuits or RS-232 cables, interconnecting two systems.  SLIP is
+      defined in RFC 1055, but is not an Internet Standard.  It is being
+      replaced by PPP.  See also: Point-to-Point Protocol.
+
+   server
+      A provider of resources (e.g. file servers and name servers).  See
+      also: client, Domain Name System, Network File System.
+
+   SGML
+      See: Standardized Generalized Markup Language
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 49]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   SIG
+      Special Interest Group
+
+   signature
+      The three or four line message at the bottom of a piece of email
+      or a Usenet article which identifies the sender.  Large signatures
+      (over five lines) are generally frowned upon.  See also:
+      Electronic Mail, Usenet.
+
+   Simple Mail Transfer Protocol (SMTP)
+      A protocol used to transfer electronic mail between computers.  It
+      is specified in RFC 821, with extensions specified in many other
+      RFCs.  It is a server to server protocol, so other protocols are
+      used to access the messages.  See also: Electronic Mail, Post
+      Office Protocol, RFC 822.
+
+   Simple Network Management Protocol (SNMP)
+      The Internet standard protocol developed to manage nodes on an IP
+      network.  The first version is defined in RFC 1157 (STD 15).
+      SNMPv2 (version 2) is defined in too many RFCs to list.  It is
+      currently possible to manage wiring hubs, toasters, jukeboxes,
+      etc.  See also: Management Information Base.
+
+   SLIP
+      See: Serial Line IP
+
+   SMDS
+      See: Switched Multimegabit Data Service
+
+   SMI
+      See: Structure of Management Information
+
+   SMTP
+      See: Simple Mail Transfer Protocol
+
+   SNA
+      See: Systems Network Architecture
+
+   snail mail
+      A pejorative term referring to the U.S. postal service.
+
+   SNMP
+      See: Simple Network Management Protocol
+
+   SONET
+      See: Synchronous Optical NETwork
+
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 50]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   Standardized Generalized Markup Language (SGML)
+      An international standard for the definition of system-
+      independent, device-independent methods of representing text in
+      electronic form.  See also: Hypertext Markup Language.
+
+   STD
+      A subseries of RFCs that specify Internet standards.  The official
+      list of Internet standards is in STD 1.  See also: Request For
+      Comments.
+
+   stream-oriented
+      A type of transport service that allows its client to send data in
+      a continuous stream.  The transport service will guarantee that
+      all data will be delivered to the other end in the same order as
+      sent and without duplicates.  See also: Transmission Control
+      Protocol.
+      [Source: MALAMUD]
+
+   Structure of Management Information (SMI)
+      The rules used to define the objects that can be accessed via a
+      network management protocol.  These rules are defined in RFC 1155
+      (STD 17).  The acronym is pronounced "Ess Em Eye."  See also:
+      Management Information Base.  .br [Source: RFC1208]
+
+   stub network
+      A stub network only carries packets to and from local hosts.  Even
+      if it has paths to more than one other network, it does not carry
+      traffic for other networks.  See also: backbone, transit network.
+
+   subnet
+      A portion of a network, which may be a physically independent
+      network segment, which shares a network address with other
+      portions of the network and is distinguished by a subnet number.
+      A subnet is to a network what a network is to an internet.  See
+      also: internet, network.
+      [Source: FYI4]
+
+   subnet address
+      The subnet portion of an IP address.  In a subnetted network, the
+      host portion of an IP address is split into a subnet portion and a
+      host portion using an address (subnet) mask.  See also: address
+      mask, IP address, network address, host address.
+
+   subnet mask
+      See: address mask
+
+   subnet number
+      See: subnet address
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 51]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+  supernet
+      An aggregation of IP network addresses advertised as a single
+      classless network address.  For example, given four Class C IP
+      networks: 192.0.8.0, 192.0.9.0, 192.0.10.0 and 192.0.11.0, each
+      having the intrinsic network mask of 255.255.255.0; one can
+      advertise the address 192.0.8.0 with a subnet mask of
+      255.255.252.0.  See also: IP address, network address, network
+      mask, Classless Inter-domain Routing.
+
+   Switched Multimegabit Data Service (SMDS)
+      An emerging high-speed datagram-based public data network service
+      developed by Bellcore and expected to be widely used by telephone
+      companies as the basis for their data networks.  See also:
+      Metropolitan Area Network.
+      [Source: RFC1208]
+
+   Synchronous Digital Hierarchy (SDH)
+      The European standard for high-speed data communications over
+      fiber-optic media.  The transmission rates range from 155.52Mbps
+      to 2.5Gbps.
+
+   Synchronous Optical NETwork (SONET)
+      SONET is an international standard for high-speed data
+      communications over fiber-optic media.  The transmission rates
+      range from 51.84Mbps to 2.5Gbps.
+
+   Systems Network Architecture (SNA)
+      A proprietary networking architecture used by IBM and IBM-
+      compatible mainframe computers.
+      [Source: NNSC]
+
+   T1
+      A term for a digital carrier facility used to transmit a DS-1
+      formatted digital signal at 1.544 megabits per second.
+
+   T3
+      A term for a digital carrier facility used to transmit a DS-3
+      formatted digital signal at 44.746 megabits per second.
+      [Source: FYI4]
+
+   TAC
+      See: Terminal Access Controller (TAC)
+
+   talk
+      A protocol which allows two people on remote computers to
+      communicate in a real-time fashion.  See also: Internet Relay
+      Chat.
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 52]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   TCP
+      See: Transmission Control Protocol
+
+   TCP/IP Protocol Suite
+      Transmission Control Protocol over Internet Protocol.  This is a
+      common shorthand which refers to the suite of transport and
+      application protocols which runs over IP.  See also: IP, ICMP,
+      TCP, UDP, FTP, Telnet, SMTP, SNMP.
+
+   TELENET
+      The original name for what is now SprintNet.  It should not be
+      confused with the Telnet protocol or application program.
+
+   Telnet
+      Telnet is the Internet standard protocol for remote terminal
+      connection service.  It is defined in RFC 854 and extended with
+      options by many other RFCs.
+
+   TERENA
+      See: Trans-European Research and Education Networking Association
+
+   Terminal Access Controller (TAC)
+      A device which was once used to connect terminals to the Internet,
+      usually using dialup modem connections and the TACACS protocol.
+      While the device is no longer in use, TACACS+ is a protocol in
+      current use.
+
+   terminal emulator
+      A program that allows a computer to emulate a terminal.  The
+      workstation thus appears as a terminal to the remote host.
+      [Source: MALAMUD]
+
+   terminal server
+      A device which connects many terminals to a LAN through one
+      network connection.  A terminal server can also connect many
+      network users to its asynchronous ports for dial-out capabilities
+      and printer access.  See also: Local Area Network.
+
+   Three Letter Acronym (TLA)
+      A tribute to the use of acronyms in the computer field.  See also:
+      Extended Four Letter Acronym.
+
+   Time to Live (TTL)
+      A field in the IP header which indicates how long this packet
+      should be allowed to survive before being discarded.  It is
+      primarily used as a hop count.  See also: Internet Protocol.
+      [Source: MALAMUD]
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 53]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   TLA
+      See: Three Letter Acronym
+
+   TN3270
+      A variant of the Telnet program that allows one to attach to IBM
+      mainframes and use the mainframe as if you had a 3270 or similar
+      terminal.
+      [Source: BIG-LAN]
+
+   token ring
+      A token ring is a type of LAN with nodes wired into a ring.  Each
+      node constantly passes a control message (token) on to the next;
+      whichever node has the token can send a message.  Often, "Token
+      Ring" is used to refer to the IEEE 802.5 token ring standard,
+      which is the most common type of token ring.  See also: 802.x,
+      Local Area Network.
+
+   topology
+      A network topology shows the computers and the links between them.
+      A network layer must stay abreast of the current network topology
+      to be able to route packets to their final destination.
+      [Source: MALAMUD]
+
+   traceroute
+      A program available on many systems which traces the path a packet
+      takes to a destination.  It is mostly used to debug routing
+      problems between hosts.  There is also a traceroute protocol
+      defined in RFC 1393.
+
+   Trans-European Research and Education Networking Association (TERENA)
+      TERENA was formed in October 1994 by the merger of RARE and EARN
+      to promote and participate in the development of a high quality
+      international information and telecommunications infrastructure
+      for the benefit of research and education.  See also: Reseaux
+      Associes pour la Recherche Europeenne, European Academic and
+      Research Network.
+      [Source: TERENA Statutes]
+
+   transceiver
+      Transmitter-receiver.  The physical device that connects a host
+      interface to a local area network, such as Ethernet.  Ethernet
+      transceivers contain electronics that apply signals to the cable
+      and sense collisions.
+      [Source: RFC1208]
+
+   transit network
+      A transit network passes traffic between networks in addition to
+      carrying traffic for its own hosts.  It must have paths to at
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 54]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      least two other networks.  See also: backbone, stub network.
+
+   Transmission Control Protocol (TCP)
+      An Internet Standard transport layer protocol defined in RFC 793.
+      It is connection-oriented and stream-oriented, as opposed to UDP.
+      See also: connection-oriented, stream-oriented, User Datagram
+      Protocol.
+
+   Trojan Horse
+      A computer program which carries within itself a means to allow
+      the creator of the program access to the system using it.  See
+      also: virus, worm.
+
+   TTFN
+      Ta-Ta For Now
+
+   TTL
+      See: Time to Live
+
+   tunnelling
+      Tunnelling refers to encapsulation of protocol A within protocol
+      B, such that A treats B as though it were a datalink layer.
+      Tunnelling is used to get data between administrative domains
+      which use a protocol that is not supported by the internet
+      connecting those domains.  See also: Administrative Domain.
+
+   twisted pair
+      A type of cable in which pairs of conductors are twisted together
+      to produce certain electrical properties.
+
+   UDP
+      See: User Datagram Protocol
+
+   unicast
+      An address which only one host will recognize.  See also:
+      broadcast, multicast.
+
+   Uniform Resource Locators (URL)
+      A URL is a compact (most of the time) string representation for a
+      resource available on the Internet.  URLs are primarily used to
+      retrieve information using WWW.  The syntax and semantics for URLs
+      are defined in RFC 1738.  See also: World Wide Web.
+
+   Universal Time Coordinated (UTC)
+      This is Greenwich Mean Time.
+      [Source: MALAMUD]
+
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 55]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   UNIX-to-UNIX CoPy (UUCP)
+      This was initially a program run under the UNIX operating system
+      that allowed one UNIX system to send files to another UNIX system
+      via dial-up phone lines.  Today, the term is more commonly used to
+      describe the large international network which uses the UUCP
+      protocol to pass news and electronic mail.  See also: Electronic
+      Mail, Usenet.
+
+   urban legend
+      A story, which may have started with a grain of truth, that has
+      been embroidered and retold until it has passed into the realm of
+      myth.  It is an interesting phenonmenon that these stories get
+      spread so far, so fast and so often.  Urban legends never die,
+      they just end up on the Internet!  Some legends that periodically
+      make their rounds include "The Infamous Modem Tax," "Craig
+      Shergold/Brain Tumor/Get Well Cards," and "The $250 Cookie
+      Recipe."
+      [Source: LAQUEY]
+
+   URL
+      See: Uniform Resource Locators
+
+   Usenet
+      A collection of thousands of topically named newsgroups, the
+      computers which run the protocols, and the people who read and
+      submit Usenet news.  Not all Internet hosts subscribe to Usenet
+      and not all Usenet hosts are on the Internet.  See also: Network
+      News Transfer Protocol, UNIX-to-UNIX CoPy.
+      [Source: NWNET]
+
+   User Datagram Protocol (UDP)
+      An Internet Standard transport layer protocol defined in RFC 768.
+      It is a connectionless protocol which adds a level of reliability
+      and multiplexing to IP.  See also: connectionless, Transmission
+      Control Protocol.
+
+   UTC
+      See: Universal Time Coordinated
+
+   UUCP
+      See: UNIX-to-UNIX CoPy
+
+   uudecode
+      A program which reverses the effect of uuencode.  See also:
+      uuencode.
+
+   uuencode
+      A program which reversibly converts a binary file in ASCII.  It is
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 56]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      used to send binary files via email, which generally does not
+      allow (or garbles) the transmission of binary information.  The
+      original binary can be restored with uudecode.  The encoding
+      process generally creates an ASCII file larger than the original
+      binary, so compressing the binary before running uuencode is
+      highly recommended.
+
+   Veronica
+      A Gopher utility which effectively searches Gopher servers based
+      on a user's list of keywords.  The name was chosen to be a "mate"
+      to another utility named "Archie."  It later became an acronym for
+      Very Easy Rodent Oriented Netwide Index to Computer Archives.  See
+      also: archie, Gopher.
+
+   virtual circuit
+      A network service which provides connection-oriented service
+      without necessarily doing circuit-switching.  See also:
+      connection-oriented.
+
+   virus
+      A program which replicates itself on computer systems by
+      incorporating itself into other programs which are shared among
+      computer systems.  See also: Trojan Horse, worm.
+
+   W3
+      See: World Wide Web
+
+   WAIS
+      See: Wide Area Information Servers
+
+   WAN
+      See: Wide area network
+
+   WebCrawler
+      A WWW search engine.  The aim of the WebCrawler Project is to
+      provide a high-quality, fast, and free Internet search service.
+      The WebCrawler may be reached at "http://webcrawler.com/".
+      [Source: WebCrawler's "WebCrawler Facts"]
+
+   WG
+      See: Working Group
+
+   white pages
+      The Internet supports several databases that contain basic
+      information about users, such as e-mail addresses, telephone
+      numbers, and postal addresses.  These databases can be searched to
+      get information about particular individuals.  Because they serve
+      a function akin to the telephone book, these databases are often
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 57]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      referred to as "white pages."  See also: Knowbot, netfind, whois,
+      X.500, InterNIC.
+
+   whois
+      An Internet program which allows users to query a database of
+      people and other Internet entities, such as domains, networks, and
+      hosts.  The primary database is kept at the InterNIC.  The
+      information stored includes a person's company name, address,
+      phone number and email address.  The latest version of the
+      protocol, WHOIS++, is defined in RFCs 1834 and 1835.  See also:
+      InterNIC, white pages, Knowbot, netfind, X.500.
+
+   Wide Area Information Servers (WAIS)
+      A distributed information service which offers simple natural
+      language input, indexed searching for fast retrieval, and a
+      "relevance feedback" mechanism which allows the results of initial
+      searches to influence future searches.  Public domain
+      implementations are available.  See also: archie, Gopher,
+      Prospero.
+
+   Wide Area Network (WAN)
+      A network, usually constructed with serial lines, which covers a
+      large geographic area.  See also: Local Area Network, Metropolitan
+      Area Network.
+
+   Working Group (WG)
+      A working group, within the IETF, is a group of people who work
+      under a charter to achieve a certain goal.  That goal may be the
+      creation of an Informational document, the creation of a protocol
+      specification, or the resolution of problems in the Internet.
+      Most working groups have a finite lifetime.  That is, once a
+      working group has achieved its goal, it disbands.  There is no
+      official membership for a working group.  Unofficially, a working
+      group member is somebody who is on that working group's mailing
+      list; however, anyone may attend a working group meeting.  See
+      also: Internet Engineering Task Force, Birds Of a Feather.
+
+   World Wide Web (WWW, W3)
+      A hypertext-based, distributed information system created by
+      researchers at CERN in Switzerland.  Users may create, edit or
+      browse hypertext documents.  The clients and servers are freely
+      available.
+
+   worm
+      A computer program which replicates itself and is self-
+      propagating.  Worms, as opposed to viruses, are meant to spawn in
+      network environments.  Network worms were first defined by Shoch &
+      Hupp of Xerox in ACM Communications (March 1982).  The Internet
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 58]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+      worm of November 1988 is perhaps the most famous; it successfully
+      propagated itself on over 6,000 systems across the Internet.  See
+      also: Trojan Horse, virus.
+
+   WRT
+      With Respect To
+
+   WWW
+      See: World Wide Web
+
+   WYSIWYG
+      What You See is What You Get
+
+   X
+      X is the name for TCP/IP based network-oriented window systems.
+      Network window systems allow a program to use a display on a
+      different computer.   The most widely-implemented window system is
+      X11 - a component of MIT's Project Athena.
+
+   X.25
+      A data communications interface specification developed to
+      describe how data passes into and out of public data
+      communications networks.  The CCITT and ISO approved protocol
+      suite defines protocol layers 1 through 3.
+
+   X.400
+      The CCITT and ISO standard for electronic mail.  It is widely used
+      in Europe and Canada.
+
+   X.500
+      The CCITT and ISO standard for electronic directory services.  See
+      also: white pages, Knowbot, whois.
+
+   XDR
+      See: eXternal Data Representation
+
+   Xerox Network System (XNS)
+      A protocol suite developed by Xerox Corporation to run on LAN and
+      WAN networks, where the LANs are typically Ethernet.
+      Implementations exist for both Xerox's workstations and 4.3BSD,
+      and 4.3BSD-derived, systems.  XNS denotes not only the protocol
+      stack, but also an architecture of standard programming
+      interfaces, conventions, and service functions for authentication,
+      directory, filing, email, and remote procedure call.  XNS is also
+      the name of Xerox's implementation.  See also: Ethernet, Berkeley
+      Software Distribution, Local Area Network, Wide Area Network.
+      [Source: Jeff Hodges]
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 59]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+   XNS
+      See: Xerox Network System
+
+   Yahoo!
+
+      Yahoo! is a hierarchical subject-oriented guide for the World Wide
+      Web and Internet.  Yahoo! lists sites and categorizes them into
+      appropriate subject categories.  Yahoo! may be reached at
+      "http://www.yahoo.com/".
+      [Source: Yahoo's "What is Yahoo?"]
+
+   Yellow Pages (YP)
+      A historic (i.e., no longer in use) service used by UNIX
+      administrators to manage databases distributed across a network.
+
+   YP
+      See: Yellow Pages
+
+   zone
+      A logical group of network devices.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 60]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+References
+
+   BIG-LAN "BIG-LAN Frequently Asked Questions Memo", BIG-LAN DIGEST
+           V4:I8, February 14, 1992.
+
+   COMER   Comer, Douglas, "Internetworking with TCP/IP: Principles,
+           Protocols and Architecture", Prentice Hall, Englewood Cliffs,
+           NJ, 1991.
+
+   FYI4    Malkin, G., A. Marine, "FYI on Questions and Answers: Answers
+           to Commonly asked "New Internet User" Questions", RFC 1325
+           (FYI 4), Xylogics, SRI, May 1992.
+
+   HACKER  "THIS IS THE JARGON FILE", Version 2.9.8, January 1992.
+
+   HPCC    "Grand Challenges 1993: High Performance Computing and
+           Communications", Committee on Physical, Mathmatical and
+           Engineering Sciences of the Federal Coordinating Council for
+           Science, Engineering and Technology.
+
+   MALAMUD Malamud, Carl, "Analyzing Sun Networks", Van Nostrand
+           Reinhold, New York, NY, 1992.
+
+   NNSC    "NNSC's Hypercard Tour of the Internet".
+
+   LAQUEY  LaQuey, Tracy, with Jeanne C. Ryer, "The Internet Companion:
+           A Beginner's Guide to Global Networking", Addison-Wesley,
+           Reading, MA, 1992.
+
+   NWNET   Kochmer, Jonathan, and NorthWestNet, "The Internet Passport:
+           NorthWestNets Guide to Our World Online", NorthWestNet,
+           Bellevue, WA, 1992.
+
+   RFC1208 Jacobsen, O., D. Lynch, "A Glossary of Networking Terms", RFC
+           1208, Interop, Inc., March 1991.
+
+   STD1    Postel, J., "INTERNET OFFICIAL PROTOCOL STANDARDS", RFC 1920
+           (STD 1), March 1996.
+
+   STD2    Reynolds, J., J. Postel, "ASSIGNED NUMBERS", RFC 1700 (STD
+           2), ISI, October 1994.
+
+   TAN     Tanenbaum, Andrew S., "Computer Networks; 2nd ed.", Prentice
+           Hall, Englewood Cliffs, NJ, 1989.
+
+   ZEN     Kehoe, Brendan P., "Zen and the Art of the Internet",
+           February 1992.
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 61]
+\f
+Internet Draft                  Glossary                        May 1996
+
+
+Security Considerations
+
+   While security is not explicitly discussed in this document, some of
+   the glossary's entries are security related.  See the entries for
+   Access Control List (ACL), authentication, Computer Emergency
+   Response Team (CERT), cracker, Data Encryption Key (DEK), Data
+   Encryption Standard (DES), encryption, Kerberos, Message Digest (MD-
+   2, MD-4, MD-5), Pretty Good Privacy (PGP), Privacy Enhanced Mail
+   (PEM), RSA, Trojan Horse, virus, and worm.
+
+
+Editor's Address
+
+   Gary Scott Malkin
+   Xylogics, Inc.
+   53 Third Avenue
+   Burlington, MA 01803
+
+   Phone:  (617) 238-6237
+   EMail:  gmalkin@Xylogics.COM
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Malkin                      Expires: 2Nov96                    [Page 62]
diff --git a/reports/rfc/draft-newman-datetime-00.txt b/reports/rfc/draft-newman-datetime-00.txt
new file mode 100644 (file)
index 0000000..f36726d
--- /dev/null
@@ -0,0 +1,505 @@
+
+
+
+
+Network Working Group                                          C. Newman
+Internet Draft: Date and Time on the Internet                   Innosoft
+Document: draft-newman-datetime-00.txt                     December 1996
+
+
+                     Date and Time on the Internet
+
+
+Status of this memo
+
+     This document is an Internet Draft.  Internet Drafts are working
+     documents of the Internet Engineering Task Force (IETF), its Areas,
+     and its Working Groups.  Note that other groups may also distribute
+     working documents as Internet Drafts.
+
+     Internet Drafts are draft documents valid for a maximum of six
+     months.  Internet Drafts may be updated, replaced, or obsoleted by
+     other documents at any time.  It is not appropriate to use Internet
+     Drafts as reference material or to cite them other than as a
+     ``working draft'' or ``work in progress``.
+
+     To learn the current status of any Internet-Draft, please check the
+     1id-abstracts.txt listing contained in the Internet-Drafts Shadow
+     Directories on ds.internic.net, nic.nordu.net, ftp.isi.edu, or
+     munnari.oz.au.
+
+     A revised version of this draft document will be submitted to the
+     IESG as a Proposed Standard for the Internet Community.  Discussion
+     and suggestions for improvement are requested.  This document will
+     expire six months after publication.  Distribution of this draft is
+     unlimited.
+
+
+
+1. Introduction
+
+     Date and time formats cause a lot of confusion and interoperability
+     problems on the Internet.  This document will address many of the
+     problems encountered and make recommendations to improve
+     consistancy and interoperability when representing and using date
+     and time in Internet protocols.
+
+     This document includes an Internet profile of the ISO 8601
+     [ISO8601] standard for representation of dates and times.
+
+     [More detail work is needed, but I wanted to get this out before I
+     go on vacation to see if it meets the basic requirements coming
+     from the ASID and CALSCH working groups.  Places needing work are
+
+
+
+Newman                                                          [Page 1]
+\f
+Internet Draft               Date and Time                 December 1996
+
+
+     marked with XXX]
+
+
+2. Definitions
+
+     UTC  Coordinated Universal Time as maintained by the Bureau
+          Internaational de l'Heure (International Time Bureau).
+
+     [XXX definitely need more definitions here.  It would be nice to
+     reference a good time standard to define seconds, leap years, etc.]
+
+3. Two or Three Digit Years
+
+     Two digit years are expected to cause great expense to many as the
+     year 2000 approaches.  Many existing computer programs simply add
+     or subtract 1900 from a two digit year.  Such programs will clearly
+     stop functioning on the year 2000 and will have to be upgraded,
+     possibly at great expense [XXX - ref to Wall Street Journal article
+     on IRS year 2000 problems would be cool].  The following
+     requirements are made of Internet protocols to address this
+     problem:
+
+     o  Internet Protocols MUST generate four digit years in dates.
+
+     o  If a two digit year is received, the values 00-49 SHOULD be
+     interpreted as referring to the 21st century (add 2000) and the
+     values 50-99 SHOULD be interpreted as referring to the 20th century
+     (add 1900).
+
+     o  Three digit years MUST be interpreted by adding 1900.
+
+
+4. Local Time
+
+4.1. Coordinated Universal Time (UTC)
+
+     Because the daylight rules for local timezones are so convoluted
+     [XXX-ref], true interoperability is best achieved by using
+     Coordinated Universal Time (UTC) [XXX-ref].
+
+
+4.2. Local Offsets
+
+     The offset between local time and UTC is often useful information.
+     For example, in electronic mail [IMAIL] the local offset provides a
+     useful heuristic to determine the probability of a prompt response.
+     Attempts to label local offsets with alphabetic strings have met
+     with poor interoperability results in the past [IMAIL], [HOST-REQ].
+
+
+
+Newman                                                          [Page 2]
+\f
+Internet Draft               Date and Time                 December 1996
+
+
+     Therefore numeric offsets are now REQUIRED.  When the local offset
+     is unknown, the offset "-00:00" MAY be used to indicate that the
+     time is in UTC and the local offset is unknown.
+
+
+4.3. Unqualified Local Time
+
+     A number of devices currently connected to the Internet run their
+     internal clocks in local time and are unaware of UTC.  While the
+     Internet does have a tradition of accepting reality when creating
+     specifications, this should not be done at the expense of
+     interoperability.  Since interpretation of an unqualified local
+     timezone will fail in approximately 23/24 of the globe, the
+     interoperability problems of unqualified local time are deemed
+     unacceptable for the Internet.  Devices which are unaware of the
+     time in UTC MUST use one of the following techniques when
+     communicating on the Internet:
+
+     o  Use Network Time Protocol [NTP] to obtain the time in UTC.
+
+     o  Use another host in the same local timezone as a gateway to the
+     Internet.  This host MUST correct unqualified local times before
+     they are transmitted to other hosts.
+
+     o  Prompt the user for the local timezone if it is aware of the
+     daylight rules.  One technique to do this is by having the user
+     select a major city in their timezone.  An alternative would be to
+     show a list of the timezone labels defined in [section XXX].
+
+
+5. Date and Time formats
+
+     The date and time format defined in [IMAIL] and as amended by
+     [HOST-REQ] may be referred to as "the Internet Mail Date/Time
+     Format".  The profile of ISO 8601 defined in this section may be
+     referred to as "the Internet Date/Time Format".  The following
+     sections describe useful properties of a date and time format for
+     interchange on the Internet.
+
+
+5.1. Ordering
+
+     If date and time components are ordered from least precise to most
+     precise, then a useful property is achieved.  Assuming that the
+     timezones of the dates and times are the same (e.g. all in UTC),
+     then the date and time strings may be sorted as strings (e.g. using
+     the strcmp() function in C) and a time-ordered sequence will
+     result.  The presence of optional punctuation would violate this
+
+
+
+Newman                                                          [Page 3]
+\f
+Internet Draft               Date and Time                 December 1996
+
+
+     characteristic.
+
+
+5.2. Human Readability
+
+     Human readability has proved to be a valuable feature of Internet
+     protocols.  Human readable protocols greatly reduce the costs of
+     debugging since telnet often suffices as a test client and network
+     analysers need not be modified with knowledge of the protocol.  On
+     the other hand, human readability sometimes results in
+     interoperability problems.  For example, the date format
+     "10/11/1996" is completely unsuitable for global interchange
+     because it is interpreted differently in different countries.  In
+     addition, the date format in [IMAIL] has resulted in
+     interoperability problems when people assumed it was simply a text
+     string and translated the three letter abbreviations to other
+     languages or substituted date formats which were easier to generate
+     (e.g. the format used by the C function ctime).  For this reason, a
+     balance must be struck between human readability and
+     interoperability.
+
+     Because no date and time format is readable according to the
+     conventions of all countries, Internet clients SHOULD be prepared
+     to transform dates into a display format suitable for the locality.
+     This includes translating UTC to local time.
+
+
+5.3. Simplicity
+
+     The complete set of date and time formats specified in ISO 8601
+     [ISO8601] is quite complex in an attempt to provide multiple
+     representations and partial representations.  Appendix A contains
+     an attempt to translate the complete syntax of ISO 8601 into ABNF
+     as defined in [IMAIL].  Internet protocols have somewhat different
+     requirements and simplicity has proved to be an important
+     characteristic.  In addition, Internet protocols usually need
+     complete specification of data in order to achieve true
+     interoperability.  Therefore, the complete grammar for ISO 8601 is
+     deemed too complex for most Internet protocols.
+
+     The following section defines an profile of ISO 8601 for use on the
+     Internet.  It is a conformant subset of the ISO 8601 extended
+     format.  Simplicity is achieved by making most fields and
+     punctuation mandatory.
+
+
+5.4. Internet Date/Time Format
+
+
+
+
+Newman                                                          [Page 4]
+\f
+Internet Draft               Date and Time                 December 1996
+
+
+     The following profile of ISO 8601 [ISO8601] dates SHOULD be used in
+     new protocols on the Internet.  This is specified using ABNF as
+     defined in [IMAIL].
+
+     date-fullyear   = 4DIGIT
+     date-month      = 2DIGIT  ; 01-12
+     date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on month/year
+     time-hour       = 2DIGIT  ; 00-24
+     time-minute     = 2DIGIT  ; 00-59
+     time-second     = 2DIGIT  ; 00-60
+     time-secfrac    = "," 1*DIGIT
+     time-numzone    = ("+" / "-") time-hour ":" time-minute
+     time-zone       = "Z" / time-numzone
+
+     full-date       = date-fullyear "-" date-month "-" date-mday
+     full-time       = time-hour ":" time-minute ":" time-second
+                       [time-secfrac] time-zone
+
+     date-time       = full-date "T" full-time
+
+
+5.5 Examples
+
+     Here are two examples of this date and time format.
+
+     1985-04-12T23:20:50,5Z
+
+     This represents 20 minutes and 50.5 seconds after 11 PM on April
+     12th, 1985 in UTC.
+
+     1996-12-19T16:39:57-08:00
+
+     This represents 39 minutes and 57 seconds after 4 PM on December
+     19th, 1996 with an offset of -08:00 from UTC (Pacific Standard
+     Time).
+
+
+6. IANA Registry of Timezone Names
+
+     [XXX - put good stuff here]
+
+
+7. References
+
+[ISO8601] "Data elements and interchange formats -- Information
+interchange -- Representation of dates and times", ISO 8601:1988(E),
+International Organization for Standardization, June, 1988.
+
+
+
+
+Newman                                                          [Page 5]
+\f
+Internet Draft               Date and Time                 December 1996
+
+
+[IMAIL] Crocker, D., "Standard for the Format of Arpa Internet Text
+ Messages", RFC 822, University of Delaware, August 1982.
+
+    <ftp://ds.internic.net/rfc/rfc822.txt>
+
+[HOST-REQ] Braden, R., "Requirements for Internet Hosts -- Application
+ and Support", RFC 1123, Internet Engineering Task Force, October 1989.
+
+    <ftp://ds.internic.net/rfc/rfc1123.txt>
+
+[NTP] Mills, D., "Network Time Protocol version 2 specification and
+ implementation", RFC 1119, September 1989.
+
+    <ftp://ds.internic.net/rfc/rfc1119.ps>
+
+
+8. Security Considerations
+
+     Since the local time zone of a site may be useful for determining a
+     time when systems are less likely to be monitored and might be more
+     susceptible to a security probe, some sites may wish to emit times
+     in UTC only.  Others might consider this to be loss of useful
+     functionality at the hands of paranoia.
+
+
+9. Author's Address
+
+Chris Newman
+Innosoft International, Inc.
+1050 East Garvey Ave. South
+West Covina, CA 91790 USA
+
+Email: chris.newman@innosoft.com
+
+APPENDIX
+
+A. ISO 8601 Collected ABNF
+
+     ISO 8601 does not specify a formal grammar for the date and time
+     formats it defines.  The following is an attempt to create a formal
+     grammar from ISO 8601.  This is informational only and may contain
+     errors.  ISO 8601 remains the authoratative reference for the
+     complete syntax.
+
+     date-century      = 2DIGIT  ; 00-99
+     date-decade       =  DIGIT  ; 0-9
+     date-subdecade    =  DIGIT  ; 0-9
+     date-year         = date-decade date-subdecade
+
+
+
+Newman                                                          [Page 6]
+\f
+Internet Draft               Date and Time                 December 1996
+
+
+     date-fullyear     = date-century date-year
+     date-month        = 2DIGIT  ; 01-12
+     date-wday         =  DIGIT  ; 1-7  ; 1 is Monday, 7 is Sunday
+     date-mday         = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on month/year
+     date-yday         = 3DIGIT  ; 001-365, 001-366 based on year
+     date-week         = 2DIGIT  ; 01-52, 01-53 based on year
+
+     datepart-fullyear = [date-century] date-year ["-"]
+     datepart-ptyear   = "-" [date-subdecade ["-"]]
+     datepart-wkyear   = datepart-ptyear / datepart-fullyear
+
+     dateopt-century   = "-" / date-century
+     dateopt-fullyear  = "-" / datepart-fullyear
+     dateopt-year      = "-" / (date-year ["-"])
+     dateopt-month     = "-" / (date-month ["-"])
+     dateopt-week      = "-" / (date-week ["-"])
+
+     datespec-full     = datepart-fullyear date-month ["-"] date-mday
+     datespec-year     = date-century / dateopt-century date-year
+     datespec-month    = "-" dateopt-year date-month [["-"] date-mday]
+     datespec-mday     = "--" dateopt-month date-mday
+     datespec-week     = datepart-wkyear "W" (date-week / dateopt-week date-wday)
+     datespec-wday     = "---" date-wday
+     datespec-yday     = dateopt-fullyear date-yday
+
+     date              = datespec-full / datespec-year / datespec-month /
+          datespec-mday / datespec-week / datespec-wday / datespec-yday
+
+     Time:
+
+     time-hour         = 2DIGIT ; 00-24
+     time-minute       = 2DIGIT ; 00-59
+     time-second       = 2DIGIT ; 00-60
+     time-fraction     = ("," / ".") 1*DIGIT
+     time-numzone      = ("+" / "-") time-hour [[":"] time-minute]
+     time-zone         = "Z" / time-numzone
+
+     timeopt-hour      = "-" / (time-hour [":"])
+     timeopt-minute    = "-" / (time-minute [":"])
+
+     timespec-hour     = time-hour [[":"] time-minute [[":"] time-second]]
+     timespec-minute   = timeopt-hour time-minute [[":"] time-second]
+     timespec-second   = "-" timeopt-minute time-second
+     timespec-base     = timespec-hour / timespec-minute / timespec-second
+
+     time              = timespec-base [time-fraction] [time-zone]
+
+     iso-date-time     = date "T" time
+
+
+
+Newman                                                          [Page 7]
+\f
+Internet Draft               Date and Time                 December 1996
+
+
+     Durations (periods):
+
+     dur-second        = 1*DIGIT "S" dur-minute        = 1*DIGIT "M"
+     [dur-second] dur-hour          = 1*DIGIT "H" [dur-minute] dur-time
+     = "T" (dur-hour / dur-minute / dur-second) dur-day           =
+     1*DIGIT "D" dur-week          = 1*DIGIT "W" dur-month         =
+     1*DIGIT "M" [dur-day] dur-year          = 1*DIGIT "Y" [dur-month]
+     dur-date          = (dur-day / dur-month / dur-year) [dur-time]
+
+     duration          = "P" (dur-date / dur-time / dur-week)
+
+     Periods:
+
+     period-explicit   = date-time "/" date-time period-start      =
+     date-time "/" duration period-end        = duration "/" date-time
+
+     period            = period-explicit / period-start / period-end
+
+
+B. Zeller's Congruence [XXX-ref]
+
+     The following is sample C code which may be used to obtain the day
+     of the week:
+
+     char *dayofweek[] = {
+         "Sunday", "Monday", "Tuesday", "Wednesday",
+         "Thursday", "Friday", "Saturday"
+     };
+
+     void main()
+     {
+         int cent, year, day, month;
+
+         printf("Enter the year (4 digits): ");
+         scanf("%d", &year);
+         printf("\nEnter the month (1-12): ");
+         scanf("%d", &month);
+         printf("\nEnter the day of the month (1-31): ");
+         scanf("%d", &day);
+         month -= 2;
+         if (month < 1) {
+             month += 12;
+             year--;
+         }
+         cent = year / 100;
+         year %= 100;
+         printf("The day of the week is: %s\n",
+                dayofweek[((26 * month - 2) / 10 + day + year
+
+
+
+Newman                                                          [Page 8]
+\f
+Internet Draft               Date and Time                 December 1996
+
+
+                           + year / 4 + cent / 4 - 2 * cent) % 7]);
+     }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Newman                                                          [Page 9]
+\f
diff --git a/reports/rfc/draft-vixie-ops-stdaddr-00.txt b/reports/rfc/draft-vixie-ops-stdaddr-00.txt
new file mode 100644 (file)
index 0000000..59221f9
--- /dev/null
@@ -0,0 +1,317 @@
+
+   Operational Requirements Area                          Paul Vixie (ISC)
+   INTERNET-DRAFT                                                May, 1996
+   <draft-vixie-ops-stdaddr-00.txt>
+
+
+          Standard Electronic Mail Addresses For Internet Operations
+
+
+   Status of this Memo
+
+      This document is an Internet-Draft.  Internet-Drafts are working
+      documents of the Internet Engineering Task Force (IETF), its areas,
+      and its working groups.  Note that other groups may also distribute
+      working documents as Internet-Drafts.
+
+      Internet-Drafts are draft documents valid for a maximum of six months
+      and may be updated, replaced, or obsoleted by other documents at any
+      time.  It is inappropriate to use Internet-Drafts as reference
+      material or to cite them other than as ``work in progress.''
+
+      To learn the current status of any Internet-Draft, please check the
+      ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
+      Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
+      munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
+      ftp.isi.edu (US West Coast).
+
+
+   Abstract
+
+      This draft enumerates and describes standard electronic mail
+      addresses to be used when contacting the operations personnel of an
+      arbitrary domain.
+
+      As an operational standard, the recommendations herein pertain to
+      vendors only inasmuch as their end user documentation should
+      recommend that these mail addresses be aliased to appropriate end
+      user personnel.
+
+      This document should be advanced as a Best Current Practice, since it
+      describes what the current practice is and should be.
+
+
+
+
+
+
+
+
+   Expires November 1996                                           [Page 1]
+\f
+   INTERNET-DRAFT                  STD ADDR                        May 1996
+
+
+   1 - Rationale and Scope
+
+   1.1. Several previous RFC documents have specified electronic mail
+   addresses to be used when reaching the operators of the new service; for
+   example, [RFC822 6.3, C.6] requires the presence of a
+   <POSTMASTER@domain> address on all hosts that have an SMTP server.
+
+   1.2. Other protocols have defacto standards for well known addresses,
+   such as <USENET@domain> for NNTP (see [RFC977]), and <WEBMASTER@domain>
+   for HTTP (see [HTTP]).
+
+   1.3. Defacto standards also exist for well known addresses which have
+   nothing to do with a particular protocol, e.g., <ABUSE@domain> and
+   <TROUBLE@domain>.
+
+   1.4. The purpose of this draft is to collect all of these well known
+   addresses in one place, add a few new ones, and ultimately recommend
+   that IANA carry these addresses in future editions of its Defined
+   Numbers periodical.
+
+   2 - Definitions and Invariants
+
+   2.1. The scope of a well known mail address is its domain name.  Thus,
+   the mail exchangers (see [RFC974]) for a domain must handle well known
+   addresses even though some of these addresses might pertain to services
+   not offered by the mail exchanger hosts.  So, for example, if an NNTP
+   server advertises the organization's top level domain in ``Path:''
+   headers (see [RFC977]), the mail exchangers for that top level domain
+   must accept mail to <USENET@domain> even if the mail exchanger hosts do
+   not serve the NNTP protocol.
+
+   2.2. A host is not required to run its own SMTP server, but every host
+   that implements a protocol covered by a well known mail address should
+   have an MX RRset (see [RFC974]) and the mail exchangers specified by
+   this RRset should recognize this host's domain name as ``local'' for the
+   purpose of accepting mail bound for a well known address.  Note that
+   this is true even if the advertised domain name is not the same as the
+   host's domain name; for example, if an NNTP server's host name is
+   DATA.RAMONA.VIX.COM yet it advertises the domain name VIX.COM in its
+   ``Path:'' headers, then mail must be deliverable to both
+   <USENET@VIX.COM> and <USENET@DATA.RAMONA.VIX.COM>.
+
+
+
+
+
+
+
+   Expires November 1996                                           [Page 2]
+\f
+   INTERNET-DRAFT                  STD ADDR                        May 1996
+
+
+   2.3. For well known addresses that are not related to protocols, only
+   the organization's top level domain name need be valid.  For example, if
+   an Internet service provider's domain name is NETCOM.COM, then the
+   <ABUSE@NETCOM.COM> address must be deliverable, even though the
+   customers whose activity generates complaints use hosts with more
+   specific domain names like SHELL1.NETCOM.COM.
+
+   2.4. Well known addresses ought to be recognized independent of
+   character case.  For example, POSTMASTER, postmaster, Postmaster,
+   PostMaster, and even PoStMaStEr should all be deliverable and should all
+   be delivered to the same mailbox.
+
+   2.5. Most domains do not need the full set of well known addresses,
+   since not every domain will implement the protocols or offer the service
+   described by every well known address.  If a given service is offerred,
+   then the relevant well known address(es) ought to be deliverable at all
+   advertised domain names.
+
+   3 - Well Known Addresses
+
+   3.1. Protocol Related Addresses
+
+      Address      Protocol   Standard(s)
+      --------------------------------------------------------
+      POSTMASTER   SMTP       [RFC821], [RFC822]
+      HOSTMASTER   DNS        [RFC1033], [RFC1034], [RFC1035]
+      USENET       NNTP       [RFC977]
+      WEBMASTER    HTTP       [HTTP]
+      UUCP         UUCP       [RFC976]
+      FTP          FTP        [RFC959]
+
+
+   3.2. Protocol Independent Addresses
+
+      Address    Operations Area      Example Usage
+      ---------------------------------------------------------------
+      ABUSE      Customer Relations   Inappropriate public behaviour
+      NOC        Network Operations   Network infrastructure problem
+      SUPPORT    Customer Support     Product or service not working
+      SECURITY   Network Security     Security bulletins or queries
+
+
+
+
+
+
+
+
+   Expires November 1996                                           [Page 3]
+\f
+   INTERNET-DRAFT                  STD ADDR                        May 1996
+
+
+   3.3. Optional, Less Well Known Addresses
+
+      Address     Purpose
+      --------------------------------------------------------------
+      NIC         DNS service (usually a synonym for HOSTMASTER)
+      WWW         HTTP service (usually a synonym for WEBMASTER)
+      NEWS        NNTP service (usually a synonym for USENET)
+      FTP-ADMIN   FTP service (usually a synonym for FTP)
+      LISTOWNER   Mailing list administration (prefer *-REQUEST)
+      TROUBLE     Network operations (usually a synonym for NOC)
+      ROUTING     Network operations (usually a synonym for NOC)
+      HELP        Customer service (usually a synonym for SUPPORT)
+      ROOT        Customer service (usually a synonym for SUPPORT)
+
+
+   4 - Other Well Known Addresses
+
+   4.1. Many mailing lists have an administrative address to which add/drop
+   requests and other metaqueries can be sent.  For a mailing list whose
+   submission address is <LIST@DOMAIN>, the usual administrative address is
+   <LIST-REQUEST@DOMAIN>.  With the advent of list management software such
+   as MajorDomo, this convention is becoming less common and its absence
+   for any given mailing list should be treated as a standards violation.
+   Make sure that your lists each have a *-REQUEST address and complain to
+   remote POSTMASTERs when you discover remote lists without *-REQUEST
+   addresses.
+
+   4.2. Several Internet registries implement mailing lists for Autonomous
+   System contacts.  So, for example, mail sent to <AS3557@RA.NET> will at
+   the time of this writing reach the technical contact for Autonomous
+   System 3557 in the BGP4 (see [RFC1654], [RFC1655] and [RFC1656]).  Not
+   all Autonomous Systems are registered with all registries, however, and
+   so undeliverable addresses under this scheme should be treated as an
+   inconvenience rather than as an error or a standards violation.
+
+   4.3. In DNS (see [RFC1033], [RFC1034] and [RFC1035]), the Start Of
+   Authority record (SOA RR) has a field for specifying the mail address of
+   the zone's administrator.  This field should be a simple word without
+   metacharacters (such as ``%'' or ``!'' or ``::''), and a transport level
+   alias should be used on the relevant mail exchanger hosts to direct zone
+   administration mail to the appropriate mailbox.  For simplicity and
+   regularity, it is hereby recommended that the well known address
+   HOSTMASTER always be used.
+
+
+
+
+
+   Expires November 1996                                           [Page 4]
+\f
+   INTERNET-DRAFT                  STD ADDR                        May 1996
+
+
+   5 - Security Considerations
+
+   Denial of service attacks (flooding a mailbox with junk) will be easier
+   after this document becomes a standard.
+
+   6 - References
+
+   [RFC821]
+      J. Postel, "Simple Mail Transfer Protocol", RFC 821, Information
+      Sciences Institute, 08/01/1982
+
+   [RFC822]
+      D. Crocker, "Standard for the format of ARPA Internet text messages",
+      RFC 822, University of Delaware, 08/13/1982.
+
+   [RFC959]
+      J. Postel (et al), "File Transfer Protocol (FTP)", RFC 959,
+      Information Sciences Institute, October 1985.
+
+   [RFC974]
+      C. Partridge, "Mail routing and the domain system", RFC 974, CSNET
+      CIC BBN Laboratories Inc, 01/01/1986.
+
+   [RFC976]
+      M. Horton, "UUCP mail interchange format standard", RFC 976, Bell
+      Laboratories, 02/01/1986.
+
+   [RFC977]
+      B. Kantor (et al), "Network News Transfer Protocol: A Proposed
+      Standard for the Stream-Based Transmission of News", RFC 977,
+      University of California, February 1986.
+
+   [RFC1033]
+      M. Lottor, "Domain administrators operations guide", RFC 1033, SRI
+      International, 11/01/1987.
+
+   [RFC1034]
+      P. Mockapetris, "Domain names - concepts and facilities", RFC 1035,
+      USC/Information Sciences Institute, 11/01/1987.
+
+   [RFC1035]
+      P. Mockapetris, ``Domain Names - Implementation and Specification,''
+      RFC 1035, USC/Information Sciences Institute, November 1987.
+
+
+
+
+
+   Expires November 1996                                           [Page 5]
+\f
+   INTERNET-DRAFT                  STD ADDR                        May 1996
+
+
+   [RFC1654]
+      Y. Rekhter (et al), "A Border Gateway Protocol 4 (BGP-4)", RFC 1654,
+      T.J. Watson Research Center, IBM Corp., 07/21/1994.
+
+   [RFC1655]
+      Y. Rekhter (et al), "Application of the Border Gateway Protocol in
+      the Internet", RFC 1655, T.J. Watson Research Center, IBM Corp.,
+      07/21/1994.
+
+   [RFC1656]
+      P. Traina, "BGP-4 Protocol Document Roadmap and Implementation
+      Experience", RFC 1656, cisco Systems, July 1994.
+
+   [HTTP]
+      T. Berners-Lee (et al), "Hypertext Transfer Protocol -- HTTP/1.0",
+      <draft-ietf-http-v10-spec-05.txt>, February 19, 1996.
+
+   7 - Acknowledgements
+
+   Thanks to Stan Barber, Michael Dillon, James Aldridge, J. D. Falk, Peter
+   Kaminski, and Brett Watson for their comments on this document.
+
+   8 - Author's Address
+
+      Paul Vixie
+         Internet Software Consortium
+         Star Route Box 159A
+         Woodside, CA 94062
+         +1 415 747 0204
+         <paul@vix.com>
+
+
+   $Id: draft-vixie-ops-stdaddr-00.txt,v 1.1 2004/01/15 16:02:43 pere Exp $
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+   Expires November 1996                                           [Page 6]
+\f
+
diff --git a/reports/rfc/draft-vixie-ops-stdaddr-01.txt b/reports/rfc/draft-vixie-ops-stdaddr-01.txt
new file mode 100644 (file)
index 0000000..1b494c5
--- /dev/null
@@ -0,0 +1,369 @@
+
+   Operational Requirements Area                          Paul Vixie (ISC)
+   INTERNET-DRAFT                                                May, 1996
+   <draft-vixie-ops-stdaddr-01.txt>
+
+
+          Standard Electronic Mail Addresses For Internet Operations
+
+
+   Status of this Memo
+
+      This document is an Internet-Draft.  Internet-Drafts are working
+      documents of the Internet Engineering Task Force (IETF), its areas,
+      and its working groups.  Note that other groups may also distribute
+      working documents as Internet-Drafts.
+
+      Internet-Drafts are draft documents valid for a maximum of six months
+      and may be updated, replaced, or obsoleted by other documents at any
+      time.  It is inappropriate to use Internet-Drafts as reference
+      material or to cite them other than as ``work in progress.''
+
+      To learn the current status of any Internet-Draft, please check the
+      ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
+      Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
+      munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
+      ftp.isi.edu (US West Coast).
+
+
+   Abstract
+
+      This draft enumerates and describes standard electronic mail
+      addresses to be used when contacting the operations personnel of an
+      arbitrary domain.
+
+      As an operational standard, the recommendations herein pertain to
+      vendors only inasmuch as their end user documentation should
+      recommend that these mail addresses be aliased to appropriate end
+      user personnel.
+
+      This document should be advanced as a Best Current Practice, since it
+      describes what the current practice is and should be.
+
+
+
+
+
+
+
+
+   Expires November 1996                                           [Page 1]
+\f
+   INTERNET-DRAFT                  STD ADDR                        May 1996
+
+
+   1 - Rationale and Scope
+
+   1.1. Several previous RFC documents have specified electronic mail
+   addresses to be used when reaching the operators of the new service; for
+   example, [RFC822 6.3, C.6] requires the presence of a
+   <POSTMASTER@domain> address on all hosts that have an SMTP server.
+
+   1.2. Other protocols have defacto standards for well known addresses,
+   such as <USENET@domain> for NNTP (see [RFC977]), and <WEBMASTER@domain>
+   for HTTP (see [HTTP]).
+
+   1.3. Defacto standards also exist for well known addresses which have
+   nothing to do with a particular protocol, e.g., <ABUSE@domain> and
+   <TROUBLE@domain>.
+
+   1.4. The purpose of this draft is to collect all of these well known
+   addresses in one place, add a few new ones, and ultimately recommend
+   that IANA carry these addresses in future editions of its Defined
+   Numbers periodical.
+
+   2 - Definitions and Invariants
+
+   2.1. The scope of a well known mail address is its domain name.  Thus,
+   the mail exchangers (see [RFC974]) for a domain must handle well known
+   addresses even though some of these addresses might pertain to services
+   not offered by the mail exchanger hosts.  So, for example, if an NNTP
+   server advertises the organization's top level domain in ``Path:''
+   headers (see [RFC977]), the mail exchangers for that top level domain
+   must accept mail to <USENET@domain> even if the mail exchanger hosts do
+   not serve the NNTP protocol.
+
+   2.2. A host is not required to run its own SMTP server, but every host
+   that implements a protocol covered by a well known mail address should
+   have an MX RRset (see [RFC974]) and the mail exchangers specified by
+   this RRset should recognize this host's domain name as ``local'' for the
+   purpose of accepting mail bound for a well known address.  Note that
+   this is true even if the advertised domain name is not the same as the
+   host's domain name; for example, if an NNTP server's host name is
+   DATA.RAMONA.VIX.COM yet it advertises the domain name VIX.COM in its
+   ``Path:'' headers, then mail must be deliverable to both
+   <USENET@VIX.COM> and <USENET@DATA.RAMONA.VIX.COM>, even though these
+   addresses might be delivered to different final destinations.
+
+
+
+
+
+
+   Expires November 1996                                           [Page 2]
+\f
+   INTERNET-DRAFT                  STD ADDR                        May 1996
+
+
+   2.3. For well known addresses that are not related to protocols, only
+   the organization's top level domain name need be valid.  For example, if
+   an Internet service provider's domain name is NETCOM.COM, then the
+   <ABUSE@NETCOM.COM> address must be deliverable, even though the
+   customers whose activity generates complaints use hosts with more
+   specific domain names like SHELL1.NETCOM.COM.
+
+   2.4. Well known addresses ought to be recognized independent of
+   character case.  For example, POSTMASTER, postmaster, Postmaster,
+   PostMaster, and even PoStMaStEr should all be deliverable and should all
+   be delivered to the same mailbox.
+
+   2.5. Most domains do not need the full set of well known addresses,
+   since not every domain will implement the protocols or offer the service
+   described by every well known address.  If a given service is offerred,
+   then the relevant well known address(es) ought to be deliverable at all
+   advertised domain names.
+
+   2.6. Implementations of these well known addresses ought to take account
+   of the expectations of the senders who will use them.  Sending back an
+   automatic e-mail acknowledgement would be a kindness (though we suggest
+   caution against the possibility of ``duelling mail robots'' and the
+   resulting mail loops).  Some of these addresses can be satisfied by
+   same-day problem resolution (for example, FTP and WEBMASTER), whereas
+   some should be read and handled in real time by a redundant team (for
+   example, CERT and ABUSE).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+   Expires November 1996                                           [Page 3]
+\f
+   INTERNET-DRAFT                  STD ADDR                        May 1996
+
+
+   3 - Well Known Addresses
+
+   3.1. Protocol Related Addresses
+
+      Address      Protocol   Standard(s)
+      --------------------------------------------------------
+      POSTMASTER   SMTP       [RFC821], [RFC822]
+      HOSTMASTER   DNS        [RFC1033], [RFC1034], [RFC1035]
+      USENET       NNTP       [RFC977]
+      WEBMASTER    HTTP       [HTTP]
+      UUCP         UUCP       [RFC976]
+      FTP          FTP        [RFC959]
+
+
+   3.2. Protocol Independent Addresses
+
+      Address    Operations Area      Usage
+      --------------------------------------------------------------------
+      ABUSE      Customer Relations   Inappropriate public behaviour
+      TROUBLE    Operations           General/miscellaneous emergency
+      ROUTING    Network Operations   Network infrastructure emergency
+      NOC        Network Operations   Network infrastructure nonemergency
+      CERT       Network Security     Security emergencies in progress
+      SECURITY   Network Security     Security bulletins or queries
+
+
+   3.3. Optional, Less Well Known Addresses
+
+      Address     Operations Area    Usage
+      -----------------------------------------------------------------------
+      NIC         DNS service        Usually a synonym for HOSTMASTER
+      WWW         HTTP service       Usually a synonym for WEBMASTER
+      NEWS        NNTP service       Usually a synonym for USENET
+      FTP-ADMIN   FTP service        Usually a synonym for FTP
+      LISTOWNER   E-mail service     Add/drop requests (prefer *-REQUEST)
+      SUPPORT     Customer Service   Product or service not working
+      HELP        Customer Service   Usually a synonym for SUPPORT
+      ROOT        Customer Service   Usually a synonym for SUPPORT
+      INFO        Marketing          Usually an e-mail autoresponder
+      SALES       Sales              ``Please sign me up for your service.''
+
+
+
+
+
+
+
+
+   Expires November 1996                                           [Page 4]
+\f
+   INTERNET-DRAFT                  STD ADDR                        May 1996
+
+
+   4 - Other Well Known Addresses
+
+   4.1. Many mailing lists have an administrative address to which add/drop
+   requests and other metaqueries can be sent.  For a mailing list whose
+   submission address is <LIST@DOMAIN>, the usual administrative address is
+   <LIST-REQUEST@DOMAIN>.  With the advent of list management software such
+   as MajorDomo, this convention is becoming less common and its absence
+   for any given mailing list should be treated as a standards violation.
+   Make sure that your lists each have a *-REQUEST address and complain to
+   remote POSTMASTERs when you discover remote lists without *-REQUEST
+   addresses.
+
+   4.2. Several Internet registries implement mailing lists for Autonomous
+   System contacts.  So, for example, mail sent to <AS3557@RA.NET> will at
+   the time of this writing reach the technical contact for Autonomous
+   System 3557 in the BGP4 (see [RFC1654], [RFC1655] and [RFC1656]).  Not
+   all Autonomous Systems are registered with all registries, however, and
+   so undeliverable addresses under this scheme should be treated as an
+   inconvenience rather than as an error or a standards violation.
+
+   4.3. In DNS (see [RFC1033], [RFC1034] and [RFC1035]), the Start Of
+   Authority record (SOA RR) has a field for specifying the mail address of
+   the zone's administrator.  This field should be a simple word without
+   metacharacters (such as ``%'' or ``!'' or ``::''), and a transport level
+   alias should be used on the relevant mail exchanger hosts to direct zone
+   administration mail to the appropriate mailbox.  For simplicity and
+   regularity, it is hereby recommended that the well known address
+   HOSTMASTER always be used.
+
+   5 - Security Considerations
+
+   Denial of service attacks (flooding a mailbox with junk) will be easier
+   after this document becomes a standard.
+
+   6 - References
+
+   [RFC821]
+      J. Postel, "Simple Mail Transfer Protocol", RFC 821, Information
+      Sciences Institute, 08/01/1982
+
+   [RFC822]
+      D. Crocker, "Standard for the format of ARPA Internet text messages",
+      RFC 822, University of Delaware, 08/13/1982.
+
+
+
+
+
+   Expires November 1996                                           [Page 5]
+\f
+   INTERNET-DRAFT                  STD ADDR                        May 1996
+
+
+   [RFC959]
+      J. Postel (et al), "File Transfer Protocol (FTP)", RFC 959,
+      Information Sciences Institute, October 1985.
+
+   [RFC974]
+      C. Partridge, "Mail routing and the domain system", RFC 974, CSNET
+      CIC BBN Laboratories Inc, 01/01/1986.
+
+   [RFC976]
+      M. Horton, "UUCP mail interchange format standard", RFC 976, Bell
+      Laboratories, 02/01/1986.
+
+   [RFC977]
+      B. Kantor (et al), "Network News Transfer Protocol: A Proposed
+      Standard for the Stream-Based Transmission of News", RFC 977,
+      University of California, February 1986.
+
+   [RFC1033]
+      M. Lottor, "Domain administrators operations guide", RFC 1033, SRI
+      International, 11/01/1987.
+
+   [RFC1034]
+      P. Mockapetris, "Domain names - concepts and facilities", RFC 1035,
+      USC/Information Sciences Institute, 11/01/1987.
+
+   [RFC1035]
+      P. Mockapetris, ``Domain Names - Implementation and Specification,''
+      RFC 1035, USC/Information Sciences Institute, November 1987.
+
+   [RFC1654]
+      Y. Rekhter (et al), "A Border Gateway Protocol 4 (BGP-4)", RFC 1654,
+      T.J. Watson Research Center, IBM Corp., 07/21/1994.
+
+   [RFC1655]
+      Y. Rekhter (et al), "Application of the Border Gateway Protocol in
+      the Internet", RFC 1655, T.J. Watson Research Center, IBM Corp.,
+      07/21/1994.
+
+   [RFC1656]
+      P. Traina, "BGP-4 Protocol Document Roadmap and Implementation
+      Experience", RFC 1656, cisco Systems, July 1994.
+
+   [HTTP]
+      T. Berners-Lee (et al), "Hypertext Transfer Protocol -- HTTP/1.0",
+      <draft-ietf-http-v10-spec-05.txt>, February 19, 1996.
+
+
+
+   Expires November 1996                                           [Page 6]
+\f
+   INTERNET-DRAFT                  STD ADDR                        May 1996
+
+
+   7 - Acknowledgements
+
+   Thanks to Stan Barber, Michael Dillon, James Aldridge, J. D. Falk, Peter
+   Kaminski, Brett Watson, Russ Wright, Neal McBurnett, and Ed Morin for
+   their comments on this document.
+
+   8 - Author's Address
+
+      Paul Vixie
+         Internet Software Consortium
+         Star Route Box 159A
+         Woodside, CA 94062
+         +1 415 747 0204
+         <paul@vix.com>
+
+
+   $Id: draft-vixie-ops-stdaddr-01.txt,v 1.1 2004/01/15 16:02:43 pere Exp $
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+   Expires November 1996                                           [Page 7]
+\f
diff --git a/reports/rfc/rfc1942.txt b/reports/rfc/rfc1942.txt
new file mode 100644 (file)
index 0000000..9d7d2d9
--- /dev/null
@@ -0,0 +1,1683 @@
+
+
+
+
+
+
+Network Working Group                                         D. Raggett
+Request for Comments: 1942                                           W3C
+Category: Experimental                                          May 1996
+
+
+                              HTML Tables
+
+Status of this Memo
+
+   This memo defines an Experimental Protocol for the Internet
+   community.  This memo does not specify an Internet standard of any
+   kind.  Discussion and suggestions for improvement are requested.
+   Distribution of this memo is unlimited.
+
+Abstract
+
+   The HyperText Markup Language (HTML) is a simple markup language used
+   to create hypertext documents that are portable from one platform to
+   another. HTML documents are SGML documents with generic semantics
+   that are appropriate for representing information from a wide range
+   of applications. This specification extends HTML to support a wide
+   variety of tables. The model is designed to work well with associated
+   style sheets, but does not require them. It also supports rendering
+   to braille, or speech, and exchange of tabular data with databases
+   and spreadsheets. The HTML table model embodies certain aspects of
+   the CALS table model, e.g. the ability to group table rows into
+   thead, tbody and tfoot sections, plus the ability to specify cell
+   alignment compactly for sets of cells according to the context.
+
+Table of Contents
+
+   Recent Changes  ................................................. 1
+   Brief Introduction  ............................................. 2
+   Design Rationale  ............................................... 5
+   Walkthrough of the Table DTD  ................................... 8
+   Recommended Layout Algorithms  ................................. 23
+   HTML Table DTD  ................................................ 26
+   References  .................................................... 29
+   Security Considerations  ....................................... 30
+   Author's Address  .............................................. 30
+
+Recent Changes
+
+   This specification extends HTML to support tables. The table model
+   has grown out of early work on HTML+ and the initial draft of HTML3.
+   The earlier model has been been extended in response to requests from
+   information providers for improved control over the presentation of
+   tabular information:
+
+
+
+Raggett                       Experimental                      [Page 1]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+   *   alignment on designated characters such as "." and ":"
+       e.g. aligning a column of numbers on the decimal point
+
+   *   more flexibility in specifying table frames and rules
+
+   *   incremental display for large tables as data is received
+
+   *   the ability to support scrollable tables with fixed headers plus
+       better support for breaking tables across pages for printing
+
+   *   optional column based defaults for alignment properties
+
+   In addition, a major goal has been to provide backwards compatibility
+   with the widely deployed Netscape implementation of tables. A
+   subsidiary goal has been to simplify importing tables conforming to
+   the SGML CALS model. The latest draft makes the ALIGN attribute
+   compatible with the latest Netscape and Microsoft browsers. Some
+   clarifications have been made to the role of the DIR attribute and
+   recommended behaviour when absolute and relative column widths are
+   mixed.
+
+   A new element COLGROUP has been introduced to allow sets of columns
+   be grouped with different width and alignment properties specified by
+   one or more COL elements. The semantics of COLGROUP have been
+   clarified over previous drafts, and RULES=BASIC replaced by
+   RULES=GROUPS.
+
+   The FRAME and RULES attributes have been modified to avoid SGML name
+   clashes with each other, and to avoid clashes with the ALIGN and
+   VALIGN attributes. These changes were additionally motivated by the
+   desire to avoid future problems if this specification is extended to
+   allow FRAME and RULES attributes with other table elements.
+
+A Brief Introduction to HTML Tables
+
+   Tables start with an optional caption followed by one or more rows.
+   Each row is formed by one or more cells, which are differentiated
+   into header and data cells. Cells can be merged across rows and
+   columns, and include attributes assisting rendering to speech and
+   braille, or for exporting table data into databases. The model
+   provides limited support for control over appearence, for example
+   horizontal and vertical alignment of cell contents, border styles and
+   cell margins. You can further affect this by grouping rows and
+   columns together. Tables can contain a wide range of content, such as
+   headers, lists, paragraphs, forms, figures, preformatted text and
+   even nested tables.
+
+
+
+
+
+Raggett                       Experimental                      [Page 2]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+Example
+
+   <TABLE BORDER>
+     <CAPTION>A test table with merged cells</CAPTION>
+     <TR><TH ROWSPAN=2><TH COLSPAN=2>Average
+         <TH ROWSPAN=2>other<BR>category<TH>Misc
+     <TR><TH>height<TH>weight
+     <TR><TH ALIGN=LEFT>males<TD>1.9<TD>0.003
+     <TR><TH ALIGN=LEFT ROWSPAN=2>females<TD>1.7<TD>0.002
+   </TABLE>
+
+   On a dumb terminal, this would be rendered something like:
+
+                 A test table with merged cells
+       /--------------------------------------------------\
+       |          |      Average      |  other   |  Misc  |
+       |          |-------------------| category |--------|
+       |          |  height |  weight |          |        |
+       |-----------------------------------------|--------|
+       | males    | 1.9     | 0.003   |          |        |
+       |-----------------------------------------|--------|
+       | females  | 1.7     | 0.002   |          |        |
+       \--------------------------------------------------/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Raggett                       Experimental                      [Page 3]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+   Next, a richer example with grouped rows and columns (adapted from
+   "Developing International Software" by Nadine Kano). First here is
+   what the table looks like on paper:
+
+                     CODE-PAGE SUPPORT IN MICROSOFT WINDOWS
+========================================================================
+Code-Page| Name                      |ACP OEMCP| Windows Windows Windows
+    ID   |                           |         |  NT 3.1 NT 3.51    95
+------------------------------------------------------------------------
+   1200  |Unicode (BMP of ISO 10646) |         |     X       X       *
+   1250  |Windows 3.1 East. Europe   |  X      |     X       X       X
+   1251  |Windows 3.1 Cyrillic       |  X      |     X       X       X
+   1252  |Windows 3.1 US (ANSI)      |  X      |     X       X       X
+   1253  |Windows 3.1 Greek          |  X      |     X       X       X
+   1254  |Windows 3.1 Turkish        |  X      |     X       X       X
+   1255  |Hebrew                     |  X      |                     X
+   1256  |Arabic                     |  X      |                     X
+   1257  |Baltic                     |  X      |                     X
+   1361  |Korean (Johab)             |  X      |             **      X
+------------------------------------------------------------------------
+    437  |MS-DOS United States       |     X   |     X       X       X
+    708  |Arabic (ASMO 708)          |     X   |                     X
+    709  |Arabic (ASMO 449+, BCON V4)|     X   |                     X
+    710  |Arabic (Transparent Arabic)|     X   |                     X
+    720  |Arabic (Transparent ASMO)  |     X   |                     X
+========================================================================
+
+   The markup for this uses COLGROUP elements to group columns and to
+   set default column alignment. TBODY elements are used to group rows.
+   The FRAME and RULES attributes are used to select which borders to
+   render.
+
+   <table border=2 frame=hsides rules=groups>
+   <caption>CODE-PAGE SUPPORT IN MICROSOFT WINDOWS</caption>
+   <colgroup align=center>
+   <colgroup align=left>
+   <colgroup align=center span=2>
+   <colgroup align=center span=3>
+   <thead valign=top>
+   <tr>
+   <th>Code-Page<br>ID
+   <th>Name
+   <th>ACP
+   <th>OEMCP
+   <th>Windows<br>NT 3.1
+   <th>Windows<br>NT 3.51
+   <th>Windows<br>95
+   <tbody>
+
+
+
+Raggett                       Experimental                      [Page 4]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+   <tr><td>1200<td>Unicode (BMP of ISO 10646)<td><td><td>X<td>X<TD>*
+   <tr><td>1250<td>Windows 3.1 Eastern European<td>X<td><td>X<td>X<TD>X
+   <tr><td>1251<td>Windows 3.1 Cyrillic<td>X<td><td>X<td>X<TD>X
+   <tr><td>1252<td>Windows 3.1 US (ANSI)<td>X<td><td>X<td>X<TD>X
+   <tr><td>1253<td>Windows 3.1 Greek<td>X<td><td>X<td>X<TD>X
+   <tr><td>1254<td>Windows 3.1 Turkish<td>X<td><td>X<td>X<TD>X
+   <tr><td>1255<td>Hebrew<td>X<td><td><td><td>X
+   <tr><td>1256<td>Arabic<td>X<td><td><td><td>X
+   <tr><td>1257<td>Baltic<td>X<td><td><td><td>X
+   <tr><td>1361<td>Korean (Johab)<td>X<td><td><td>**<td>X
+   <tbody>
+   <tr><td>437<td>MS-DOS United States<td><td>X<td>X<td>X<TD>X
+   <tr><td>708<td>Arabic (ASMO 708)<td><td>X<td><td><td>X
+   <tr><td>709<td>Arabic (ASMO 449+, BCON V4)<td><td>X<td><td><td>X
+   <tr><td>710<td>Arabic (Transparent Arabic)<td><td>X<td><td><td>X
+   <tr><td>720<td>Arabic (Transparent ASMO)<td><td>X<td><td><td>X
+   </table>
+
+Design Rationale
+
+   The HTML table model has evolved from studies of existing SGML tables
+   models, the treatment of tables in common word processing packages,
+   and looking at a wide range of tabular layout in magazines, books and
+   other paper-based documents. The model was chosen to allow simple
+   tables to be expressed simply with extra complexity only when needed.
+   This makes it practical to create the markup for HTML tables with
+   everyday text editors and reduces the learning curve for getting
+   started. This feature has been very important to the success of HTML
+   to date.
+
+   Increasingly people are using filters from other document formats or
+   direct wysiwyg editors for HTML. It is important that the HTML table
+   model fits well with these routes for authoring HTML. This affects
+   how the representation handles cells which span multiple rows or
+   columns, and how alignment and other presentation properties are
+   associated with groups of cells.
+
+   A major consideration for the HTML table model is that the fonts and
+   window sizes etc. in use with browsers are not under the author's
+   control. This makes it risky to rely on column widths specified in
+   terms of absolute units such as picas or pixels. Instead, tables can
+   be dynamically sized to match the current window size and fonts.
+   Authors can provide guidance as to the relative widths of columns,
+   but user agents should to ensure that columns are wide enough to
+   render the width of the largest single element of the cell's content.
+   If the author's specification must be overridden, it is preferred
+   that the relative widths of individual columns are not changed
+   drastically.
+
+
+
+Raggett                       Experimental                      [Page 5]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+   For large tables or slow network connections, it is desirable to be
+   able to start displaying the table before all of the data has been
+   received. The default window width for most user agents shows about
+   80 characters, and the graphics for many HTML pages are designed with
+   these defaults in mind. Authors can provide a hint to user agents to
+   activate incremental display of table contents. This feature requires
+   the author to specify the number of columns, and includes provision
+   for control of table width and the widths of different columns in
+   relative or absolute terms.
+
+   For incremental display, the browser needs the number of columns and
+   their widths. The default width of the table is the current window
+   size (width="100%"). This can be altered by including a WIDTH
+   attribute in the TABLE start tag. By default all columns have the
+   same width, but you can specify column widths with one or more COL
+   elements before the table data starts.
+
+   The remaining issue is the number of columns. Some people have
+   suggested waiting until the first row of the table has been received,
+   but this could take a long time if the cells have a lot of content.
+   On the whole it makes more sense, when incremental display is
+   desired, to get authors to explicitly specify the number of columns
+   in the TABLE start tag.
+
+   Authors still need a way of informing the browser whether to use
+   incremental display or to automatically size the table to match the
+   cell contents. For the two pass auto sizing mode, the number of
+   columns is determined by the first pass, while for the incremental
+   mode, the number of columns needs to be stated up front. So it seems
+   to that COLS=_nn_ would be better for this purpose than a LAYOUT
+   attribute such as LAYOUT=FIXED or LAYOUT=AUTO.
+
+   It is generally held useful to consider documents from two
+   perspectives: Structural idioms such as headers, paragraphs, lists,
+   tables, and figures; and rendering idioms such as margins, leading,
+   font names and sizes. The wisdom of past experience encourages us to
+   separate the structural information in documents from rendering
+   information. Mixing them together ends up causing increased cost of
+   ownership for maintaining documents, and reduced portability between
+   applications and media.
+
+   For tables, the alignment of text within table cells, and the borders
+   between cells are, from the purist's point of view, rendering
+   information. In practice, though, it is useful to group these with
+   the structural information, as these features are highly portable
+   from one application to the next. The HTML table model leaves most
+   rendering information to associated style sheets. The model is
+   designed to take advantage of such style sheets but not to require
+
+
+
+Raggett                       Experimental                      [Page 6]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+   them.
+
+   This specification provides a superset of the simpler model presented
+   in earlier work on HTML+. Tables are considered as being formed from
+   an optional caption together with a sequence of rows, which in turn
+   consist of a sequence of table cells. The model further
+   differentiates header and data cells, and allows cells to span
+   multiple rows and columns.
+
+   Following the CALS table model, this specification allows table rows
+   to be grouped into head and body and foot sections. This simplifies
+   the representation of rendering information and can be used to repeat
+   table head and foot rows when breaking tables across page boundaries,
+   or to provide fixed headers above a scrollable body panel. In the
+   markup, the foot section is placed before the body sections. This is
+   an optimization shared with CALS for dealing with very long tables.
+   It allows the foot to be rendered without having to wait for the
+   entire table to be processed.
+
+   For the visually impaired, HTML offers the hope of setting to rights
+   the damage caused by the adoption of windows based graphical user
+   interfaces. The HTML table model includes attributes for labeling
+   each cell, to support high quality text to speech conversion. The
+   same attributes can also be used to support automated import and
+   export of table data to databases or spreadsheets.
+
+   Current desktop publishing packages provide very rich control over
+   the rendering of tables, and it would be impractical to reproduce
+   this in HTML, without making HTML into a bulky rich text format like
+   RTF or MIF. This specification does, however, offer authors the
+   ability to choose from a set of commonly used classes of border
+   styles. The FRAME attribute controls the appearence of the border
+   frame around the table while the RULES attribute determines the
+   choice of rulings within the table.
+
+   During the development of this specification, a number of avenues
+   were investigated for specifying the ruling patterns for tables. One
+   issue concerns the kinds of statements that can be made. Including
+   support for edge subtraction as well as edge addition leads to
+   relatively complex algorithms. For instance work on allowing the full
+   set of table elements to include the FRAME and RULES attributes led
+   to an algorithm involving some 24 steps to determine whether a
+   particular edge of a cell should be ruled or not. Even this
+   additional complexity doesn't provide enough rendering control to
+   meet the full range of needs for tables. The current specification
+   deliberately sticks to a simple intuitive model, sufficient for most
+   purposes. Further experimental work is needed before a more complex
+   approach is standardized.
+
+
+
+Raggett                       Experimental                      [Page 7]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+A walk through the table DTD
+
+   The table document type definition provides the formal definition of
+   the allowed syntax for html tables. The following is an annotated
+   listing of the DTD. The complete listing appears at the end of this
+   document.
+
+   Note that the TABLE element is a block-like element rather a
+   character-level element. As such it is a peer of other HTML block-
+   like elements such as paragraphs, lists and headers.
+
+Common Attributes
+
+   The following attributes occur in several of the elements and are
+   defined here for brevity. In general, all attribute names and values
+   in this specification are case insensitive, except where noted
+   otherwise. The ID, CLASS and attributes are required for use with
+   style sheets, while LANG and DIR are needed for internationalization.
+
+   <!ENTITY % attrs
+          "id      ID       #IMPLIED  -- element identifier --
+           class   NAMES    #IMPLIED  -- for subclassing elements --
+           lang    NAME     #IMPLIED  -- as per RFC 1766 --
+           dir   (ltr|rtl)  #IMPLIED  -- I18N text direction --">
+
+   ID
+       Used to define a document-wide identifier. This can be used for
+       naming positions within documents as the destination of a
+       hypertext link. It may also be used by style sheets for
+       rendering an element in a unique style. An ID attribute value is
+       an SGML NAME token. NAME tokens are formed by an initial letter
+       followed by letters, digits, "-" and "." characters. The letters
+       are restricted to A-Z and a-z.
+
+   CLASS
+       A space separated list of SGML NAME tokens. CLASS names specify
+       that the element belongs to the corresponding named classes. It
+       allows authors to distinguish different roles played by the same
+       tag. The classes may be used by style sheets to provide
+       different renderings as appropriate to these roles.
+
+   LANG
+       A LANG attribute identifies the natural language used by the
+       content of the associated element.The syntax and registry of
+       language values are defined by RFC 1766. In summary the language
+       is given as a primary tag followed by zero or more subtags,
+       separated by "-". White space is not allowed and all tags are
+       case insensitive. The name space of tags is administered by
+
+
+
+Raggett                       Experimental                      [Page 8]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+       IANA. The two letter primary tag is an ISO 639 language
+       abbreviation, while the initial subtag is a two letter ISO 3166
+       country code. Example values for LANG include:
+
+             en, en-US, en-uk, i-cherokee, x-pig-latin.
+
+   DIR
+       Human writing systems are grouped into scripts, which determine
+       amongst other things, the direction the characters are written.
+       Elements of the Latin script are nominally left to right, while
+       those of the Arabic script are nominally right to left. These
+       characters have what is called strong directionality. Other
+       characters can be directionally neutral (spaces) or weak
+       (punctuation).
+
+       The DIR attribute specifies an encapsulation boundary which
+       governs the interpretation of neutral and weakly directional
+       characters. It does not override the directionality of strongly
+       directional characters. The DIR attribute value is one of LTR
+       for left to right, or RTL for right to left, e.g. DIR=RTL.
+
+       When applied to TABLE, it indicates the geometric layout of rows
+       (i.e. row 1 is on right if DIR=RTL, but on the left if DIR=LTR)
+       and it indicates a default base directionality for any text in
+       the table's content if no other DIR attribute applies to that
+       text.
+
+Horizontal and Vertical Alignment Attributes
+
+   The alignment of cell contents can be specified on a cell by cell
+   basis, or inherited from enclosing elements, such as the row, column
+   or the table element itself.
+
+   ALIGN
+       This specifies the horizontal alignment of cell contents.
+
+   <!-- horizontal alignment attributes for cell contents -->
+   <!ENTITY % cell.halign
+           "align  (left|center|right|justify|char) #IMPLIED
+            char    CDATA   #IMPLIED -- alignment char, e.g. char=':' --
+            charoff CDATA   #IMPLIED -- offset for alignment char --"
+           >
+
+       The attribute value should be one of LEFT, CENTER, RIGHT,
+       JUSTIFY and CHAR. User agents may treat JUSTIFY as left
+       alignment if they lack support for text justification.
+       ALIGN=CHAR is used for aligning cell contents on a particular
+       character.
+
+
+
+Raggett                       Experimental                      [Page 9]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+       For cells spanning multiple rows or columns, where the alignment
+       property is inherited from the row or column, the initial row
+       and column for the cell determines the appropriate alignment
+       property to use.
+
+       Note that an alignment attribute on elements within the cell,
+       e.g. on a P element, overrides the normal alignment value for
+       the cell.
+
+   CHAR
+       This is used to specify an alignment character for use with
+       align=char, e.g. char=":". The default character is the decimal
+       point for the current language, as set by the LANG attribute.
+       The CHAR attribute value is case sensitive.
+
+   CHAROFF
+       Specifies the offset to the first occurrence of the alignment
+       character on each line. If a line doesn't include the alignment
+       character, it should be horizontally shifted to end at the
+       alignment position. The resolved direction of the cell, as
+       determined by the inheritance of the DIR attribute, is used to
+       set whether the offset is from the left or right margin of the
+       cell. For Latin scripts, the offset will be from the left
+       margin, while for Arabic scripts, it will be from the right
+       margin. In addition to standard units, the "%" sign may be used
+       to indicate that the value specifies the alignment position as a
+       percentage offset of the current cell, e.g. CHAROFF="30%"
+       indicates the alignment character should be positioned 30%
+       through the cell.
+
+       When using the two pass layout algorithm, the default alignment
+       position in the absence of an explicit or inherited CHAROFF
+       attribute can be determined by choosing the position that would
+       center lines for which the width before and after the alignment
+       character are at the maximum values for any of the lines in the
+       column for which ALIGN=CHAR. For incremental table layout the
+       suggested default is CHAROFF="50%". If several cells in
+       different rows for the same column use character alignment, then
+       by default, all such cells should line up, regardless of which
+       character is used for alignment. Rules for handling objects too
+       large for column apply when the explicit or implied alignment
+       results in a situation where the data exceeds the assigned width
+       of the column.
+
+   VALIGN
+       Defines whether the cell contents are aligned with the top,
+       middle or bottom of the cell.
+
+
+
+
+Raggett                       Experimental                     [Page 10]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+       <!-- vertical alignment attributes for cell contents -->
+       <!ENTITY % cell.valign
+               "valign  (top|middle|bottom|baseline)  #IMPLIED"
+               >
+
+       If present, the value of the attribute should be one of: TOP,
+       MIDDLE, BOTTOM or BASELINE. All cells in the same row with
+       valign=baseline should be vertically positioned so that the
+       first text line in each such cell occur on a common baseline.
+       This constraint does not apply to subsequent text lines in these
+       cells.
+
+Inheritance Order
+
+   Alignment properties can be included with most of the table elements:
+   COL, THEAD, TBODY, TFOOT, TR, TH and TD. When rendering cells,
+   horizontal alignment is determined by columns in preference to rows,
+   while for vertical alignment, the rows are more important than the
+   columns. The following table gives the detailed precedence order for
+   each attribute, where X > Y denotes that X takes precedence over Y:
+
+   ALIGN, CHAR and CHAROFF:
+
+   cells > columns > column groups > rows > row groups > default
+
+   VALIGN, LANG, and DIR:
+
+   cells > rows > row groups > columns > column groups > table > default
+
+   Where cells are defined by TH and TD elements; rows by TR elements;
+   row groups by THEAD, TBODY and TFOOT elements, columns by COL
+   elements; and column groups by COLGROUP and COL elements. Note that
+   there is no inheritance mechanism for the CLASS attribute.
+
+   Properties defined on cells take precedence over inherited
+   properties, but are in turn over-ridden by alignment properties on
+   elements within cells. In the absence of an ALIGN attribute along the
+   inheritance path, the recommended default alignment for table cell
+   contents is ALIGN=LEFT for table data and ALIGN=CENTER for table
+   headers. The recommended default for vertical alignment is
+   VALIGN=MIDDLE. These defaults are chosen to match the behaviour of
+   the widely deployed Netscape implementation.
+
+Standard Units for Widths
+
+   Several attributes specify widths as a number followed by an optional
+   suffix. The units for widths are specified by the suffix: pt denotes
+   points, pi denotes picas, in denotes inches, cm denotes centimeters,
+
+
+
+Raggett                       Experimental                     [Page 11]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+   mm denotes millimeters, em denotes em units (equal to the height of
+   the default font), and px denotes screen pixels. The default units
+   are screen pixels (chosen for backwards compatibility). The number is
+   an integer value or a real valued number such as "2.5". Exponents, as
+   in "1.2e2", are not allowed.  White space is not allowed between the
+   number and the suffix.
+
+   The above set of suffices is augmented for certain elements: "%" is
+   used for the WIDTH attribute for the TABLE element. It indicates that
+   the attribute specifies the percentage width of the space between the
+   current left and right margins, e.g. width="50%". For the COL
+   element, "*" is used with the WIDTH attribute to specify relative
+   column widths, e.g. width="3*", using the same representation as the
+   CALS table model.
+
+The TABLE element
+
+<!ENTITY % Where "(left|center|right)">
+
+<!ELEMENT table - - (caption?, (col*|colgroup*), thead?, tfoot?, tbody+)>
+
+<!ATTLIST table                    -- table element --
+        %attrs;                    -- id, lang, dir and class --
+        align   %Where;  #IMPLIED  -- table position relative to --
+                                   -- window --
+        width   CDATA    #IMPLIED  -- table width relative to window --
+        cols    NUMBER   #IMPLIED  -- used for immediate display mode --
+        border  CDATA    #IMPLIED  -- controls frame width around --
+                                   -- table --
+        frame   %Frame;  #IMPLIED  -- which parts of table frame to --
+                                   -- include --
+        rules   %Rules;  #IMPLIED  -- controls rules between cells --
+        cellspacing CDATA #IMPLIED -- spacing between cells --
+        cellpadding CDATA #IMPLIED -- spacing within cells --
+        >
+
+   The TABLE element requires both start and end tags. Table elements
+   start with an optional CAPTION element, optionally followed by either
+   one or more COL elements, or one or more COLGROUP elements, then an
+   optional THEAD, an optional TFOOT, and finally one or more TBODY
+   elements.
+
+   ID, CLASS, LANG and DIR
+       See earlier description of common attributes.
+
+   ALIGN
+       Defines the horizontal position of the table relative to the
+       current left and right margins. ALIGN=CENTER centers the table
+
+
+
+Raggett                       Experimental                     [Page 12]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+       midway between the left and right margins. ALIGN=LEFT positions
+       the table at the left margin, while ALIGN=RIGHT positions the
+       table at the right margin. User agents may flow text around the
+       right handside of the table for ALIGN=LEFT, or the left handside
+       for ALIGN=RIGHT.
+
+       Note you can use <BR CLEAR=LEFT> after the table element if you
+       want to avoid text flowing along side the table when you have
+       specified ALIGN=LEFT, or <BR CLEAR=RIGHT> for a right aligned
+       table. To prevent a right aligned table flowing around something
+       else, use <BR CLEAR=RIGHT> before the table etc. Greater control
+       over textflow is possible using style sheets.
+
+   WIDTH
+       Specifies the desired width of the table. In addition to the
+       standard units, the "%" sign may used to indicate that the width
+       specifies the percentage width of the space between the current
+       left and right margins, e.g. width="50%". In the absence of this
+       attribute, the table width can be determined by the layout
+       algorithm given later on.
+
+       It is recommended that the table width be increased beyond the
+       value indicated by the WIDTH attribute as needed to avoid any
+       overflow of cell contents. Such increases should try to avoid
+       drastic changes to relative column widths specified by the
+       author. To avoid the need for excessive horizontal scrolling, or
+       when such scrolling is impractical or undesired, it may be
+       appropriate to split words across lines.
+
+   COLS
+       Specifies the number of columns for the table. If present the
+       user agent may render the table dynamically as data is received
+       from the network without waiting for the complete table to be
+       received. If the WIDTH attribute is missing, a default of "100%"
+       may be assumed for this purpose. If the COLS attribute is
+       absent, a prepass through the table's contents is needed to
+       determine the number of columns together with suitable values
+       for the widths of each column.
+
+   BORDER
+       Specifies the width of the border framing the table, see
+       standard units.
+
+   FRAME
+       Specifies which sides of the frame to render.
+
+       <!ENTITY % Frame
+          "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
+
+
+
+Raggett                       Experimental                     [Page 13]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+       VOID
+           Don't render any sides of the frame.
+
+       ABOVE
+           The top side of the frame
+
+       BELOW
+           The bottom side of the frame
+
+       HSIDES
+           The top and bottom sides of the frame
+
+       LHS
+           The left hand side of the frame
+
+       RHS
+           The right hand side of the frame
+
+       VSIDES
+           The left and right sides of the frame
+
+       BOX
+           All four sides of the frame
+
+       BORDER
+           All four sides of the frame
+
+       The value "Border" is included for backwards compatibility with
+       deployed browsers. If a document includes <TABLE BORDER> the
+       user agent will see FRAME=BORDER and BORDER=_implied_. If the
+       document includes <TABLE BORDER=_n_> then the user agent should
+       treat this as FRAME=BORDER except if _n=0_ for which FRAME=VOID
+       is appropriate.
+
+       Note: it would have been preferable to choose values for FRAME
+       consistent with the RULES attribute and the values used for
+       alignment. For instance: none, top, bottom, topbot, left, right,
+       leftright, all. Unfortunately, SGML requires enumerated
+       attribute values to be unique for each element, independent of
+       the attribute name. This causes immediate problems for "none",
+       "left", "right" and "all". The values for FRAME have been chosen
+       to avoid clashes with the RULES, ALIGN and VALIGN attributes.
+       This provides a measure of future proofing, as it is anticipated
+       that that the FRAME and RULES attributes will be added to other
+       table elements in future revisions to this specification. An
+       alternative would be to make FRAME a CDATA attribute. The
+       consensus of the HTML-WG was that the benefits of being able to
+       use SGML validation tools to check attributes based on
+
+
+
+Raggett                       Experimental                     [Page 14]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+       enumerated values outweighs the need for consistent names.
+
+   RULES
+       Specifies where to draw rules within the table interior.
+
+       <!ENTITY % Rules "(none | groups | rows | cols | all)">
+
+       NONE
+           Suppresses internal rulings.
+
+       GROUPS
+           The THEAD, TFOOT and TBODY elements divide the table into
+           groups of rows, while COLGROUP elements divide the table
+           into groups of columns. This choice places a horizontal rule
+           between each row group and a vertical rule between each
+           column group. Note that every table has at least one row and
+           one column group.
+
+       ROWS
+           As RULES=GROUPS plus horizontal rules between all rows. User
+           agents may choose to use a heavier rule between groups of
+           rows and columns for emphasis.
+
+       COLS
+           As RULES=GROUPS plus vertical rules between all columns.
+           User agents may choose to use a heavier rule between groups
+           of rows and columns for emphasis.
+
+       ALL
+           Place rules between all rows and all columns. User agents
+           may choose to use a heavier rule between groups of rows and
+           columns for emphasis.
+
+       If a document includes <TABLE BORDER> or <TABLE BORDER=_n_> then
+       the default for the table element is RULES=ALL, except if _n=0_
+       for which RULES=NONE is appropriate.
+
+   CELLSPACING
+       This attribute is intended for backwards compatibility with
+       deployed user agents. It specifies the space between the table
+       frame and the first or last cell border for each row or column,
+       and between other cells in the table. See standard units.
+       Greater control will be possible using style sheet languages.
+
+   CELLPADDING
+       This attribute is intended for backwards compatibility with
+       deployed user agents. It specifies the amount of space between
+       the border of the cell and its contents both above/below, and
+
+
+
+Raggett                       Experimental                     [Page 15]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+       left//right. See standard units. Greater control will be
+       possible using style sheet languages.
+
+   If a fixed width is set for the table or column, the CELLSPACING and
+   CELLPADDING may demand more space than assigned. Current practice is
+   for the latter to take precedence over WIDTH attributes when a
+   conflict occurs, although this isn't required by this specification.
+
+Table Captions
+
+   <!ELEMENT caption - - (%text;)+>
+
+   <!ENTITY % Caption "(top|bottom|left|right)">
+
+   <!ATTLIST caption                  -- table caption --
+           %attrs;                    -- id, lang, dir and class --
+           align   %Caption; #IMPLIED -- relative to table --
+           >
+
+   The optional CAPTION element is used to provide a caption for the
+   table. Both start and end tags are required.
+
+   ID, CLASS, LANG and DIR
+       See earlier description of common attributes.
+
+   ALIGN
+       This may be used to control the placement of captions relative
+       to the table. When present, the ALIGN attribute should have one
+       of the values: TOP, BOTTOM, LEFT and RIGHT. It is recommended
+       that the caption is made to fit within the width or height of
+       the table as appropriate. The default position of the caption is
+       deliberately unspecified.
+
+       Note the ALIGN attribute is overused in HTML, but is retained
+       here for compatibility with currently deployed browsers.
+
+The COLGROUP Element
+
+   <!ELEMENT colgroup - O (col*)>
+
+   <!ATTLIST colgroup
+           %attrs;                    -- id, lang, dir and class --
+           span    NUMBER   1         -- default number of columns in --
+                                      -- group --
+           width   CDATA    #IMPLIED  -- default width for enclosed --
+                                      -- COLs --
+           %cell.halign;              -- horizontal alignment in --
+                                      -- cells --
+
+
+
+Raggett                       Experimental                     [Page 16]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+           %cell.valign;              -- vertical alignment in cells --
+           >
+
+
+   The COLGROUP element acts as a container for a group of columns, and
+   allows you to set default properties for these columns. In the
+   absence of a COLGROUP element, all columns in the table are assumed
+   to belong to a single column group. Each COLGROUP element can
+   contain zero or more COL elements. COLGROUP requires a start tag,
+   but the end tag may be omitted. This is useful when defining a
+   sequence of COLGROUP elements, e.g.
+
+       <TABLE FRAME=BOX RULES=COLS>
+         <COLGROUP>
+           <COL WIDTH="1*">
+           <COL WIDTH="2*">
+         <COLGROUP>
+           <COL WIDTH="1*">
+           <COL WIDTH="3*">
+         <THEAD>
+           <TR> ...
+       </TABLE>
+
+   COLGROUP elements can be used with the following attributes:
+
+   ID, CLASS, LANG and DIR
+       See earlier description of common attributes.
+
+   SPAN
+       A positive integer value that specifies a default for how many
+       columns are in this group. This attribute should be ignored if
+       the COLGROUP element contains one or more COL elements. It
+       provides a convenient way of grouping columns without the need
+       to supply COL elements.
+
+   WIDTH
+       Specifies a default width for each of the grouped columns, see
+       standard units. In addition, the "*" suffix denotes relative
+       widths, e.g.
+
+            width=64        width in screen pixels
+            width=0.5*      a relative width of 0.5
+
+       Relative widths act as constraints on the relative widths of
+       different columns. If a COLGROUP element specifies a relative
+       width of zero, all of the columns in the group should be set to
+       their minimum widths, unless they are associated with a COL
+       element with an overriding WIDTH attribute. When widths are
+
+
+
+Raggett                       Experimental                     [Page 17]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+       given in absolute units, the user agent can use these to
+       constrain the width of the table. The "*" suffix is used to
+       simplify importing tables from the CALS representation.
+
+   ALIGN, CHAR, CHAROFF and VALIGN
+       Specify values for horizontal and vertical alignment within
+       table cells. See inheritance order of alignment properties.
+
+The COL Element
+
+   <!ELEMENT col - O EMPTY>
+
+   <!ATTLIST col                      -- column groups and --
+                                      -- properties --
+           %attrs;                    -- id, lang, dir and class --
+           span    NUMBER   1         -- number of columns spanned --
+                                      -- by group --
+           width   CDATA    #IMPLIED  -- column width specification --
+           %cell.halign;              -- horizontal alignment in --
+                                      -- cells --
+           %cell.valign;              -- vertical alignment in cells --
+           >
+
+   This optional element is used to specify column based defaults for
+   table properties. It is an empty element, and as such has no
+   content, and shouldn't be given an end tag. Several COL elements may
+   be given in succession. COL attributes override those of the parent
+   COLGROUP element.
+
+   ID, CLASS, LANG and DIR
+       See earlier description of common attributes.
+
+   SPAN
+       A positive integer value that specifies how many columns this
+       element applies to, defaulting to one. In the absence of SPAN
+       attributes the first COL element applies to the first column,
+       the second COL element to the second column and so on. If the
+       second COL element had SPAN=2, it would apply to the second and
+       third column. The next COL element would then apply to the
+       fourth column and so on. SPAN=0 has a special significance and
+       implies that the COL element spans all columns from the current
+       column up to and including the last column. Note that a COL SPAN
+       does not define a group. It is merely a way to share attribute
+       definitions.
+
+
+
+
+
+
+
+Raggett                       Experimental                     [Page 18]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+   WIDTH
+       Specifies the width of the columns, see standard units. If the
+       element spans several columns then the WIDTH attribute specifies
+       the width for each of the individual columns - not the width of
+       the span. In addition, the "*" suffix denotes relative widths,
+
+       e.g.
+
+            width=64        width in screen pixels
+            width=0.5*      a relative width of 0.5
+
+       Relative widths act as constraints on the relative widths of
+       different columns. If a COL element specifies a relative width
+       of zero, the column should always be set to its minimum width.
+       When widths are given in absolute units, the user agent can use
+       these to constrain the width of the table. The "*" suffix is
+       used to simplify importing tables from the CALS representation.
+
+   ALIGN, CHAR, CHAROFF and VALIGN
+       Specify values for horizontal and vertical alignment within
+       table cells. See inheritance order of alignment properties.
+
+Table Head, Foot and Body Elements
+
+   <!ELEMENT thead - O tr+>
+   <!ELEMENT tfoot - O tr+>
+   <!ELEMENT tbody O O tr+>
+
+   <!ATTLIST (thead|tbody|tfoot)      -- table section --
+           %attrs;                    -- id, lang, dir and class --
+           %cell.halign;              -- horizontal alignment in --
+                                      -- cells --
+           %cell.valign;              -- vertical alignment in cells --
+           >
+
+   Tables may be divided up into head and body sections. The THEAD and
+   TFOOT elements are optional, but one or more TBODY elements are
+   always required. If the table only consists of a TBODY section, the
+   TBODY start and end tags may be omitted, as the parser can infer
+   them. If a THEAD element is present, the THEAD start tag is
+   required, but the end tag can be omitted, provided a TFOOT or TBODY
+   start tag follows. The same applies to TFOOT.
+
+   Note: This definition provides compatibility with tables created
+   for the older model, as well as allowing the end tags for THEAD,
+   TFOOT and TBODY to be omitted.
+
+
+
+
+
+Raggett                       Experimental                     [Page 19]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+   The THEAD, TFOOT and TBODY elements provide a convenient means for
+   controlling rendering. If the table has a large number of rows in
+   the body, user agents may choose to use a scrolling region for the
+   table body sections. When rendering to a paged device, tables will
+   often have to be broken across page boundaries. The THEAD, TFOOT and
+   TBODY elements allow the user agent to repeat the table foot at the
+   bottom of the current page, and then the table head at the top of
+   the new page before continuing on with the table body.
+
+   TFOOT is placed before the TBODY in the markup sequence, so that
+   browsers can render the foot before receiving all of the table data.
+   This is useful when very long tables are rendered with scrolling
+   body sections, or for paged output, involving breaking the table
+   over many pages.
+
+   Each THEAD, TFOOT and TBODY element must contain one or more TR
+   elements.
+
+   ID, CLASS, LANG and DIR
+       See earlier description of common attributes.
+
+   ALIGN, CHAR, CHAROFF and VALIGN
+       Specify values for horizontal and vertical alignment within
+       table cells. See inheritance order of alignment properties.
+
+Table Row (TR) elements
+
+   <!ELEMENT tr - O (th|td)+>
+
+   <!ATTLIST tr                       -- table row --
+           %attrs;                    -- id, lang, dir and class --
+           %cell.halign;              -- horizontal alignment in --
+                                      -- cells --
+           %cell.valign;              -- vertical alignment in cells --
+           >
+
+   The TR or table row element acts as a container for a row of table
+   cells. The end tag may be omitted.
+
+   ID, CLASS, LANG and DIR
+       See earlier description of common attributes.
+
+   ALIGN, CHAR, CHAROFF and VALIGN
+       Specify values for horizontal and vertical alignment within
+       table cells. See inheritance order of alignment properties.
+
+
+
+
+
+
+Raggett                       Experimental                     [Page 20]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+Table Cells: TH and TD
+
+   <!ELEMENT (th|td) - O %body.content>
+
+   <!ATTLIST (th|td)                  -- header or data cell --
+           %attrs;                    -- id, lang, dir and class --
+           axis    CDATA    #IMPLIED  -- defaults to cell content --
+           axes    CDATA    #IMPLIED  -- list of axis names --
+           nowrap (nowrap)  #IMPLIED  -- suppress word wrap --
+           rowspan NUMBER   1         -- number of rows spanned by --
+                                      -- cell --
+           colspan NUMBER   1         -- number of cols spanned by --
+                                      -- cell --
+           %cell.halign;              -- horizontal alignment in --
+                                      -- cells --
+           %cell.valign;              -- vertical alignment in cells --
+           >
+
+   TH elements are used to represent header cells, while TD elements
+   are used to represent data cells. This allows user agents to render
+   header and data cells distinctly, even in the absence of style
+   sheets.
+
+   Cells can span multiple rows and columns, and may be empty. Cells
+   spanning rows contribute to the column count on each of the spanned
+   rows, but only appear in the markup once (in the first row spanned).
+   The row count is determined by the number of TR elements. Any rows
+   implied by cells spanning rows beyond this should be ignored.
+
+   If the column count for the table is greater than the number of
+   cells for a given row (after including cells for spanned rows), the
+   missing cells are treated as occurring on the right hand side of the
+   table and rendered as empty cells. If the language context indicates
+   a right to left writing order, then the missing cells should be
+   placed on the left hand side.
+
+   It is possible to create tables with overlapping cells, for
+   instance:
+
+       <table border>
+       <tr><td rowspan=2>1<td>2<td>3
+       <tr><td rowspan=2>4
+       <tr><td colspan=2>5<td>6
+       </table>
+
+
+
+
+
+
+
+Raggett                       Experimental                     [Page 21]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+   which might look something like:
+
+       /-----------\
+       | 1 | 2 | 3 |
+       |   |-------|
+       |   | 4 |   |
+       |---|...|---|
+       | 5 :   | 6 |
+       \-----------/
+
+   In this example, the cells labelled 4 and 5 overlap. In such cases,
+   the rendering is implementation dependent.
+
+   The AXIS and AXES attributes for cells provide a means for defining
+   concise labels for cells. When rendering to speech, these attributes
+   may be used to provide abbreviated names for the headers relevant to
+   each cell. Another application is when you want to be able to later
+   process table contents to enter them into a database. These
+   attributes are then used to give database field names. The table's
+   class attribute should be used to let the software recognize which
+   tables can be treated in this way.
+
+   ID, CLASS, LANG and DIR
+       See earlier description of common attributes.
+
+   AXIS
+       This defines an abbreviated name for a header cell, e.g. which
+       can be used when rendering to speech. It defaults to the cell's
+       content.
+
+   AXES
+       This is a comma separated list of axis names which together
+       identify the row and column headers that pertain to this cell.
+       It is used for example when rendering to speech to identify the
+       cell's position in the table. If missing the user agent can try
+       to follow up columns and left along rows (right for some
+       languages) to find the corresponding header cells.
+
+   NOWRAP, e.g. <TD NOWRAP>
+       The presence of this attribute disables automatic wrapping of
+       text lines for this cell. If used uncautiously, it may result in
+       excessively wide cells. This attribute is defined for backwards
+       compatibility with deployed user agents. Greater control is
+       possible with associated style sheet languages (for example for
+       control over overflow handling).
+
+
+
+
+
+
+Raggett                       Experimental                     [Page 22]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+   ROWSPAN, e.g. <TD ROWSPAN=2>
+       A positive integer value that defines how may rows this cell
+       spans. The default ROWSPAN is 1. ROWSPAN=0 has a special
+       significance and implies that the cell spans all rows from the
+       current row up to the last row of the table.
+
+   COLSPAN, e.g. <TD COLSPAN=2>
+       A positive integer value that defines how may columns this cell
+       spans. The default COLSPAN is 1. COLSPAN=0 has a special
+       significance and implies that the cell spans all columns from
+       the current column up to the last column of the table.
+
+   ALIGN, CHAR, CHAROFF and VALIGN
+       Specify values for horizontal and vertical alignment within
+       table cells. See inheritance order of alignment properties.
+
+   Note: It is recommended that implementors provide support for the
+   Netscape 1.1 WIDTH attribute for TH and TD, although this isn't part
+   of the current specification. Document authors are advised to use
+   the width attribute for the COL element instead.
+
+Recommended Layout Algorithms
+
+   If the COLS attribute on the TABLE element specifies the number of
+   columns, then the table may be rendered using a fixed layout,
+   otherwise the autolayout algorithm described below should be used.
+
+Fixed Layout Algorithm
+
+   For this algorithm, it is assumed that the number of columns is
+   known. The column widths by default should be set to the same size.
+   Authors may override this by specifying relative or absolute column
+   widths, using the COLGROUP or COL elements. The default table width
+   is the space between the current left and right margins, but may be
+   overridden by the WIDTH attribute on the TABLE element, or determined
+   from absolute column widths. To deal with mixtures of absolute and
+   relative column widths, the first step is to allocate space from the
+   table width to columns with absolute widths. After this, the space
+   remaining is divided up between the columns with relative widths.
+
+   The table syntax alone is insufficient to guarantee the consistency
+   of attribute values. For instance, the number of columns specified by
+   the COLS attribute may be inconsistent with the number of columns
+   implied by the COL elements. This in turn, may be inconsistent with
+   the number of columns implied by the table cells. A further problem
+   occurs when the columns are too narrow to avoid overflow of cell
+   contents. The width of the table as specified by the TABLE element or
+   COL elements may result in overflow of cell contents. It is
+
+
+
+Raggett                       Experimental                     [Page 23]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+   recommended that user agents attempt to recover gracefully from these
+   situations, e.g. by hyphenating words and resorting to splitting
+   words if hyphenation points are unknown.
+
+   In the event that an indivisible element causes cell overflow, the
+   user agent may consider adjusting column widths and re-rendering the
+   table. In the worst case clipping may be considered if column width
+   adjustments and/or scrollable cell content are not feasible. In any
+   case if cell content is split or clipped this should be indicated to
+   the user in an appropriate manner.
+
+Autolayout Algorithm
+
+   If the COLS attribute is missing from the table start tag, then the
+   user agent should use the following autolayout algorithm. It uses two
+   passes through the table data and scales linearly with the size of
+   the table.
+
+   In the first pass, line wrapping is disabled, and the user agent
+   keeps track of the minimum and maximum width of each cell. The
+   maximum width is given by the widest line. As line wrap has been
+   disabled, paragraphs are treated as long lines unless broken by <BR>
+   elements. The minimum width is given by the widest word or image etc.
+   taking into account leading indents and list bullets etc. In other
+   words, if you were to format the cell's content in a window of its
+   own, determine the minimum width you could make the window before the
+   cell begins to overflow. Allowing user agents to split words will
+   minimize the need for horizontal scrolling or in the worst case
+   clipping of cell contents.
+
+   This process also applies to any nested tables occuring in cell
+   content. The minimum and maximum widths for cells in nested tables
+   are used to determine the minimum and maximum widths for these tables
+   and hence for the parent table cell itself. The algorithm is linear
+   with aggregate cell content, and broadly speaking independent of the
+   depth of nesting.
+
+   To cope with character alignment of cell contents, the algorithm
+   keeps three running min/max totals for each column: Left of align
+   char, right of align char and un-aligned. The minimum width for a
+   column is then: max(min_left + min_right, min_non-aligned).
+
+   The minimum and maximum cell widths are then used to determine the
+   corresponding minimum and maximum widths for the columns. These in
+   turn, are used to find the minimum and maximum width for the table.
+   Note that cells can contain nested tables, but this doesn't
+   complicate the code significantly. The next step is to assign column
+   widths according to the available space (i.e. the space between the
+
+
+
+Raggett                       Experimental                     [Page 24]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+   current left and right margins).
+
+   For cells which span multiple columns, a simple approach, as used by
+   Arena, is to evenly apportion the min/max widths to each of the
+   constituent columns. A slightly more complex approach is to use the
+   min/max widths of unspanned cells to weight how spanned widths are
+   apportioned. Experimental study suggests a blend of the two
+   approaches will give good results for a wide range of tables.
+
+   The table borders and intercell margins need to be included in
+   assigning column widths. There are three cases:
+
+   1.  The minimum table width is equal to or wider than the available
+       space. In this case, assign the minimum widths and allow the
+       user to scroll horizontally. For conversion to braille, it will
+       be necessary to replace the cells by references to notes
+       containing their full content. By convention these appear before
+       the table.
+
+   2.  The maximum table width fits within the available space. In this
+       case, set the columns to their maximum widths.
+
+   3.  The maximum width of the table is greater than the available
+       space, but the minimum table width is smaller. In this case,
+       find the difference between the available space and the minimum
+       table width, lets call it W. Lets also call D the difference
+       between maximum and minimum width of the table.
+
+       For each column, let d be the difference between maximum and
+       minimum width of that column. Now set the column's width to the
+       minimum width plus d times W over D. This makes columns with
+       large differences between minimum and maximum widths wider than
+       columns with smaller differences.
+
+   This assignment step is then repeated for nested tables using the
+   minimum and maximum widths derived for all such tables in the first
+   pass. In this case, the width of the parent (i.e. enclosing) table
+   cell plays the role of the current window size in the above
+   description. This process is repeated recursively for all nested
+   tables. The topmost table is then rendered using the assigned widths.
+   Nested tables are subsequently rendered as part of the parent table's
+   cell contents.
+
+   If the table width is specified with the WIDTH attribute, the user
+   agent attempts to set column widths to match. The WIDTH attribute is
+   not binding if this results in columns having less than their minimum
+   (i.e. indivisible) widths.
+
+
+
+
+Raggett                       Experimental                     [Page 25]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+   If relative widths are specified with the COL element, the algorithm
+   is modified to increase column widths over the minimum width to meet
+   the relative width constraints. The COL elements should be taken as
+   hints only, so columns shouldn't be set to less than their minimum
+   width. Similarly, columns shouldn't be made so wide that the table
+   stretches well beyond the extent of the window. If a COL element
+   specifies a relative width of zero, the column should always be set
+   to its minimum width.
+
+HTML Table DTD
+
+   The DTD or document type definition provides the formal definition of
+   the allowed syntax for HTML tables.
+
+<!-- Content model entities imported from parent DTD:
+
+  %body.content; allows table cells to contain headers, paras,
+  lists, form elements and even arbitrarily nested tables.
+
+  %text; is text characters, including character entities and
+  character emphasis elements, IMG and anchors
+-->
+
+<!ENTITY % attrs
+       "id      ID       #IMPLIED  -- element identifier --
+        class   NAMES    #IMPLIED  -- for subclassing elements --
+        lang    NAME     #IMPLIED  -- as per RFC 1766 --
+        dir   (ltr|rtl)  #IMPLIED  -- I18N text direction --">
+
+<!--
+ The BORDER attribute sets the thickness of the frame around the
+ table. The default units are screen pixels.
+
+ The FRAME attribute specifies which parts of the frame around
+ the table should be rendered. The values are not the same as
+ CALS to avoid a name clash with the VALIGN attribute.
+
+ The value "border" is included for backwards compatibility with
+  <TABLE BORDER> which yields frame=border and border=implied
+  For <TABLE BORDER=1> you get border=1 and frame=implied. In this
+ case, its appropriate to treat this as frame=border for backwards
+ compatibility with deployed browsers.
+-->
+
+<!ENTITY % Frame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
+
+
+
+
+
+
+Raggett                       Experimental                     [Page 26]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+<!--
+ The RULES attribute defines which rules to draw between cells:
+
+ If RULES is absent then assume:
+     "none" if BORDER is absent or BORDER=0 otherwise "all"
+-->
+
+<!ENTITY % Rules "(none | groups | rows | cols | all)">
+
+<!-- horizontal placement of table relative to window -->
+<!ENTITY % Where "(left|center|right)">
+
+<!-- horizontal alignment attributes for cell contents -->
+<!ENTITY % cell.halign
+        "align  (left|center|right|justify|char) #IMPLIED
+         char    CDATA   #IMPLIED -- alignment char, e.g. char=':' --
+         charoff CDATA   #IMPLIED -- offset for alignment char --"
+        >
+
+<!-- vertical alignment attributes for cell contents -->
+<!ENTITY % cell.valign
+        "valign  (top|middle|bottom|baseline)  #IMPLIED"
+        >
+
+<!ELEMENT table - - (caption?, (col*|colgroup*), thead?, tfoot?, t
+                    body+)>
+<!ELEMENT caption - - (%text;)+>
+<!ELEMENT thead - O (tr+)>
+<!ELEMENT tfoot - O (tr+)>
+<!ELEMENT tbody O O (tr+)>
+<!ELEMENT colgroup - O (col*)>
+<!ELEMENT col - O EMPTY>
+<!ELEMENT tr - O (th|td)+>
+<!ELEMENT (th|td) - O %body.content>
+
+<!ATTLIST table                    -- table element --
+        %attrs;                    -- id, lang, dir and class --
+        align   %Where;  #IMPLIED  -- table position relative to --
+                                   -- window --
+        width   CDATA    #IMPLIED  -- table width relative to window --
+        cols    NUMBER   #IMPLIED  -- used for immediate display mode --
+        border  CDATA    #IMPLIED  -- controls frame width around --
+                                   -- table --
+        frame   %Frame;  #IMPLIED  -- which parts of table frame to --
+                                   -- include --
+        rules   %Rules;  #IMPLIED  -- rulings between rows and cols --
+        cellspacing CDATA #IMPLIED -- spacing between cells --
+        cellpadding CDATA #IMPLIED -- spacing within cells --
+
+
+
+Raggett                       Experimental                     [Page 27]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+        >
+
+<!-- ALIGN is used here for compatibility with deployed browsers -->
+<!ENTITY % Caption "(top|bottom|left|right)">
+
+<!ATTLIST caption                  -- table caption --
+        %attrs;                    -- id, lang, dir and class --
+        align  %Caption; #IMPLIED  -- relative to table --
+        >
+
+<!--
+COLGROUP groups a set of COL elements. It allows you to group
+several columns together.
+-->
+<!ATTLIST colgroup
+        %attrs;                    -- id, lang, dir and class --
+        span    NUMBER   1         -- default number of columns in --
+                                   -- group --
+        width   CDATA    #IMPLIED  -- default width for enclosed COLs --
+        %cell.halign;              -- horizontal alignment in cells --
+        %cell.valign;              -- vertical alignment in cells --
+        >
+
+<!--
+ COL elements define the alignment properties for cells in a given
+ column or spanned columns. The WIDTH attribute specifies the
+ width of the columns, e.g.
+
+     width=64        width in screen pixels
+     width=0.5*      relative width of 0.5
+-->
+
+<!ATTLIST col                      -- column groups and properties --
+        %attrs;                    -- id, lang, dir and class --
+        span    NUMBER   1         -- number of columns spanned by --
+                                   -- group --
+        width   CDATA    #IMPLIED  -- column width specification --
+        %cell.halign;              -- horizontal alignment in cells --
+        %cell.valign;              -- vertical alignment in cells --
+        >
+
+<!--
+    Use THEAD to duplicate headers when breaking table
+    across page boundaries, or for static headers when
+    body sections are rendered in scrolling panel.
+
+    Use TFOOT to duplicate footers when breaking table
+    across page boundaries, or for static footers when
+
+
+
+Raggett                       Experimental                     [Page 28]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+    body sections are rendered in scrolling panel.
+
+    Use multiple TBODY sections when rules are needed
+    between groups of table rows.
+-->
+<!ATTLIST (thead|tbody|tfoot)      -- table section --
+        %attrs;                    -- id, lang, dir and class --
+        %cell.halign;              -- horizontal alignment in cells --
+        %cell.valign;              -- vertical alignment in cells --
+        >
+
+<!ATTLIST tr                       -- table row --
+        %attrs;                    -- id, lang, dir and class --
+        %cell.halign;              -- horizontal alignment in cells --
+        %cell.valign;              -- vertical alignment in cells --
+        >
+
+<!ATTLIST (th|td)                  -- header or data cell --
+        %attrs;                    -- id, lang, dir and class --
+        axis    CDATA    #IMPLIED  -- defaults to cell content --
+        axes    CDATA    #IMPLIED  -- list of axis names --
+        nowrap (nowrap)  #IMPLIED  -- suppress word wrap --
+        rowspan NUMBER   1         -- number of rows spanned by cell --
+        colspan NUMBER   1         -- number of cols spanned by cell --
+        %cell.halign;              -- horizontal alignment in cells --
+        %cell.valign;              -- vertical alignment in cells --
+        >
+
+References
+
+   Arena
+       W3C's HTML3 browser, see http://www.w3.org/pub/WWW/Arena/.
+       Arena was originally created as a proof of concept demo for
+       ideas in the HTML+ specification that preceded HTML3. The
+       browser is now being re-implemented to provide a reference
+       implementation of HTML3 along with support for style sheets and
+       client-side scripting.
+
+   CALS
+       Continuous Acquisition and Life-Cycle Support (formerly
+       Computer-aided Acquisition and Logistics Support) (CALS) is a
+       Department of Defense (DoD) strategy for achieving effective
+       creation, exchange, and use of digital data for weapon systems
+       and equipment. More information can be found from the US Navy
+       CALS home page at http://navysgml.dt.navy.mil/cals.html
+
+
+
+
+
+
+Raggett                       Experimental                     [Page 29]
+\f
+RFC 1942                      HTML Tables                       May 1996
+
+
+   HTML 2.0 (RFC1866)
+       Hypertext Markup Language Specification Version 2.0 by T.
+       Berners-Lee and D. Connolly, November 1995. Further information
+       can be found at http://www.w3.org/pub/WWW/MarkUp/ or at
+       ftp://ds.internic.net/rfc/rfc1866.txt
+
+   HTML 3.0
+       Hypertext Markup Language Specification Version 3.0. The initial
+       draft specification as published in March 1995. Work on refining
+       HTML3 is proceeding piecemeal with the new table specification
+       as one of the pieces. For W3C related work on HTML, see
+       http://www.w3.org/pub/WWW/MarkUp/.
+
+   RFC 1766
+       "Tags for the Identification of Languages", by H. Alvestrand,
+       UNINETT, March 1995. This document can be downloaded from
+       ftp://ds.internic.net/rfc/rfc1766.txt.
+
+Security Considerations
+
+   Security issues are not discussed in this memo.
+
+Author's Address
+
+   Dave Raggett W3C
+
+   EMail: dsr@w3.org
+
+   The World Wide Web Consortium: http://www.w3.org/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Raggett                       Experimental                     [Page 30]
+\f
diff --git a/ss/19960831-rekrutering.html b/ss/19960831-rekrutering.html
new file mode 100644 (file)
index 0000000..dbf67ad
--- /dev/null
@@ -0,0 +1,69 @@
+<HTML>
+<HEAD>
+<TITLE></TITLE>
+<!-- Changed by: Petter Reinholdtsen, 30-Aug-1996 -->
+<LINK REV="made" HREF="mailto:petterr@stud.cs.uit.no">
+</HEAD>
+<BODY>
+Tormod &lt;tormods@stud.cs.uit.no&gt; &amp; Pans &lt;pans@orgsek.sst.org.uit.no&gt;
+<BR>1996-08-31
+<BR>Sak 
+<BR>http://www.cs.uit.no/~petterr/ss/19960831-rekrutering.html
+<HR>
+<H1>Rekrutering til realfag</H1>
+
+Selvom det i Norge er underskudd på teknologer og naturvitere var det
+etter opptak fremdeles ledig kapasitet ved realfag både i Tromsø og i
+Bergen.  
+
+<P>De siste årene har søkningen til realfag gått dramatisk ned, spesielt
+er andelen jenter gått til helvete. (tall og sånnt). 
+
+<P> - realister er allsidige
+<BR> - teknologifrykt
+
+<P>Jentegruppa ved IMR har siden høsten 1993 kontaktet alle videregående
+skoler i Nordnorge, og bedt om å få besøke dem.  De har der oppmuntret
+grunnkurselevene til å velge realfag.  En har ment at flere studenter
+til realfag vil øke jenteandelen.  Dette arbeidet er gjort ulønnet og
+på frivillig basis av en liten gruppe studenter.  Ved infoavdelingen
+har man kun på oppfordring fra skoler/klasser informert om
+universitetet.  I tillegg går denne informasjonen hovedsaklig til
+avgangselever ved skolene, og dette er for sent. 
+
+
+
+<H2>Hva universitetet kan gjøre</H2>
+
+<UL>
+<LI>invitere rådgiverne på videregående til rådgiverkonferanse om
+  realfag.  Gi dem et mer positivt inntrykk av realfagene og påpeke
+  konsekvensene av å velge dem bort.  Dette bør samordnes med
+  fylkeskommunene.
+
+ <LI> klargjøre ansvarsfordeling internt
+ <LI> informasjon til elevene (overta/fortsette det JG/IMR har gjort)
+   Fristille JG/IMR til å bedre rekrutering av jenter til høyere nivå.
+ <LI> Landsdelspolitikerne må på banen
+</UL>
+
+<H2>Forslag til vedtak</H2>
+
+<BLOCKQUOTE><EM>
+
+Rekruteringen til realfagene er jævlig lav.  Studentstyret ber derfor
+universitets-styret om å sette ned en gruppe som på bakgrunn av det
+ovenfor nevnte skal fremme konkrete tiltak for hva universitetet skal
+gjøre med rekrutering til realfag.  Gruppen bør være ferdig med
+arbeidet innen utgangen av oktober, slik at rekruteringsarbeidet kan
+komme i gang så fort som mulig.  Den bør bestå av 3 evt. 5 personer
+der både studenter og ansatte er representert.
+
+samarbeide med de andre realfagsmiljøene i Nordnorge
+
+Studentstyret foreslår:  
+</EM></BLOCKQUOTE>
+
+</BODY>
+</HTML>
+
diff --git a/ss/19960908.net-tjenester.html b/ss/19960908.net-tjenester.html
new file mode 100644 (file)
index 0000000..e84082d
--- /dev/null
@@ -0,0 +1,89 @@
+<HTML>
+<HEAD>
+<TITLE>Net-tjenester til studentstyret arbeidsutvalg</TITLE>
+<!-- Changed by: Petter Reinholdtsen, 13-Oct-1996 -->
+<LINK REV="made" HREF="mailto:petterr@stud.cs.uit.no">
+</HEAD>
+<BODY>
+Petter Reinholdtsen
+&lt;<A HREF="mailto:pere@td.org.uit.no">pere@td.org.uit.no</A>&gt;
+<BR>1996-10-13
+<BR>Sak 84/96
+<BR>http://www.cs.uit.no/~petterr/ss/19960908.net-tjenester.html
+<HR>
+<H1>Net-tjenester til studentstyrets arbeidsutvalg</H1>
+
+Jeg skisserer her hvordan Studentstyrets arbeidsutvalg på en billig og
+enkel måte kan få tilgang til Internet-tjenester samt en sentral og
+stabil filtjeneste med bedre backup-rutiner enn i dag.
+
+<P>Systemet kan settes opp på meget kort varsel, og være i drift i
+løpet av høsten hvis det gis klarsignal.
+
+<H2>Resultat av installasjonen </H2>
+
+SS/AU vil med dette få en mailtjeneste uavhenging av EDB-senterets der
+de kan opprette og fjerne eventuelle brukere.  Alle i arbeidsutvalget
+og eventuellt andre som SS/AU gir tilgang få egen og privat
+mailadresse.  Det vil kunne opprettes mailing-lister etter behov med
+statisk eller dynamisk innmelding i listene.
+
+<P>Kontorlandskapet vil få en delt filserver der alle dokumenter og
+andre data kan lagres.  Tilgang til filene kan reguleres fra bruker
+til bruker.
+
+<P>Det kan om ønskelig installeres en web-server der filene kan
+redigeres fra Mac.  Jeg tror det er bedre å benytte EDB-senterets
+tilbud om plass på deres webserver, da web-teknologien fortsatt er
+under utvikling.  EDB-senteret vil sørge for å holde sin web-server
+oppdatert.
+
+<H2>Nødvendig utstyr og kostnader</H2>
+
+Installasjonen krever en billig Intel-PC og operativsystemet Linux med
+ekstra progamvare for Appletalk over Ethernet (Ethertalk).  Sistnevnte
+er gratis tilgjengelig.  Hvis den skal fungere som filtjener bør det
+installeres backup-rutiner der hele disken jevnlig kopieres over på
+kassett eller annet egnet medium (f.eks. Zip-drive eller Iomega).
+
+<P>Operativsystem og støtteprogrogrammer krever under 300Mb av disken.
+Resten vil være tilgjengelig for brukerdata.
+
+<TABLE border>
+<CAPTION align=top> Budsjett </CAPTION>
+<TR><TH>Tiltak <TH>Kostnad
+<TR><TD>Innkjøp av maskinvare
+<UL>
+<LI> - minimum 486 m/16Mb ram
+<LI> - Ethernet-kort
+<LI> - 1-2 Gb SCSI HD
+<LI> - tape-streamer
+</UL>
+<TD align=right>10.000,-
+<TR><TD>Installasjon og en måneds innkjøring av server <TD align=right>5.000,-
+<TR><TH align=left>Totalt <TD align=right>15.000,-
+</TABLE>
+
+<P>Det burde være mulig å få donert en gammel PC fra universitetet.
+Denne kan så oppgraderes med harddisk og tape-streamer for å bli egnet
+til formålet.  En slik oppgradering burde koste rundt 5.000,-.
+
+<P>Innstallasjon er satt til 5.000,-.  Dette er det jeg vil ha for å
+gjøre jobben.  Andre kan sansynligvis gjøre det billigere.
+
+<H2>Drift og vedlikehold</H2>
+
+Ut over ved maskinvare-feil skulle det være minimalt med vedlikehold
+som er nødvendig.  Det kan om ønskelig lages web-grensesnitt for
+vedlikehold av bruker-listene, mailing-lister og tilgangskontroll.
+
+<P>Det kan om ønskelig leies inn en student for større endringer i
+installasjonen.  Det burde være en enkel sak å få en
+informatikk-student til dette på deltid.
+
+<P>Av hensyn til installasjonens stabilitet og sikkerhet bør kun
+IT-personell med erfaring gjøre slike endringer av systemet.
+
+</BODY>
+</HTML>
+
diff --git a/ss/9610.semavg.html b/ss/9610.semavg.html
new file mode 100644 (file)
index 0000000..934a555
--- /dev/null
@@ -0,0 +1,180 @@
+<HTML>
+<HEAD>
+<TITLE></TITLE>
+<!-- Changed by: Petter Reinholdtsen,  4-Dec-1996 -->
+<LINK REV="made" HREF="mailto:pere@td.org.uit.no">
+</HEAD>
+<BODY>
+Petter Reinholdtsen
+&lt;<A HREF="mailto:pere@td.org.uit.no">pere@td.org.uit.no</A>&gt;
+<BR>Cato Hauge Olsen
+&lt;<A HREF="mailto:cato@stud.cs.uit.no">cato@stud.cs.uit.no</A>&gt;
+<BR>1996-12-04
+<HR>
+<H1>Endringsforslag, fordeling av semesteravgift</H1>
+Saksframlegg til studentstyret 10/96, 4. desember 1996
+
+<H2>Innledning</H2>
+
+Da sakspapiret til fordeling av semesteravgiften var forholdsvis lite
+informativt, har vi laget et alternativt sakspapir.  Saksframlegget er
+ført i pennen av Petter Reinholdtsen, men da jeg og Cato Olsen ikke
+ble enige om et forslag har vi to alternative forslag til fordeling.
+
+<H2>Presentasjon av forslag</H2>
+<H3>Forslag fra Petter</H3>
+
+Jeg foreslår å jamne ut semesteravgiften på 300,- per semester.  Det
+er ikke så bra velferdstilbud i Tromsø at det er grunnlag for å øke
+semesteravgiften for noen studenter.  Det er heller ikke nødvendig å
+øke semesteravgiften for å opprette et fond.  En eventuell
+fondsavsetning bør skje etter en grundigere behandling i studentstyre
+enn noen gjettinger under semesteravgiftsfordelingen.  Denne saken bør
+derfor tas opp på forsvarlig vis våren 1997.
+
+<P>Jeg foreslår å kutte "Tilskudd NSU" med like mye som støtten
+<B>fra</B> bruker å være, og overføre dette til "Tilskudd
+stydentstyret".  Tilskudd studentstyret reduseres altså med 190.000.
+
+<P>Jeg ønsker å kutte TSI endel.  TSI fikk en økning både fra 92-93
+(33%) og fra 93 til 94 (12%) med argumentasjon om å sette av penger
+til et fond for idrettshall.  Da det har vært ønske i studentstyret om
+å styre et slikt fond selv, virker det unaturlig å opprettholde
+størrelsen.  TSI har i tillegg hatt en nedgang i medlemstallet.  Det
+er et annet argument mot opprettholdelsen av samme nivå som i dag.
+
+<P>Utropia foreslås kuttet med 10.000.  Jeg ser ingen grunn til at de
+skal få alt de søker om.  Jeg ønsker også en vurdering og redegjørelse
+fra Utropia på hvordan semesteravgiftspengene blir brukt der.
+
+<P>Jeg synes det er viktig å prioritere mangfoldet blant
+studentaktivitetene, og vil derfor øke posten til studentforeninger,
+der det erfaringsmessig søker rundt 30 foreninger.
+
+<P>Jeg synes ikke ISU har grunngitt sin særstillig i forhold til de
+andre studentforeningene på universitetet, og foreslår derfor at de
+flyttes tilbake under fellestposten "Studentforeninger".
+
+<P>Barnehagesubsidier foreslås opprettholdt på samme nivå som i dag,
+da jeg tror studentene er mer tjent med en totalgjennomgang av
+samskipnadens økonomiske vurderinger på barnehagesiden, og ønsker
+derfor ikke å øke subsidiene.
+
+<P>Jeg savner en presentasjon av hvorfor 1,073 million settes av til
+sosialtjenesten, helsefond, egenandeler og krisehjelp, ut over at
+"dette er faste summer".  Spesiellt når jeg har funnet ut at det på
+egenandel og helsefond for '96 alene står 191.000 igjen nå i
+desember. Jeg har pga. mangel på informasjon ikke endret disse.
+
+<P>De to fondene finner jeg dårlig presentert og argumentert for, så
+jeg foreslår at begge fjernes, og at restposten blir satt av slik at
+de kan fordeles våren 1997, etter et konkret forslag til formål og
+organisering.
+
+<H3>Forslag fra Cato</H3>
+
+Forslaget mitt er at vi opprettholder dagens diffrensierte 
+semesteravgiftsordning.
+Selv om dette ikke er i tråd med brev fra Kirke-, Utdannings-, og 
+Forskningsdepartementets (KUF) brev av 20.12.91 der Departementet ber SiTø 
+avvikle den differensierte semesteravgiftsordningen.
+
+<P>Den innbetalte semesteravgiften beløp seg i fjor til 4 108 000,-.
+Tar man i betraktning antall studenter som betalte semesteravgift høsten 
+1996, som var på 6795 studenter, hvor 1708 av disse var nye. Og at vi hadde 
+en økning av studenttallet fra våren 1996 til høsten 1996.
+Og går ut i fra at studenttallet ikke vil forandre seg i løpet av 1997.
+Vil en kunne regne med til fordeling av semesteravgifta på 4 418 600
+
+<P>Dette viser at uten å forandre på noe er vi i stand til å få
+inn en god del penger.  For å være på den sikre siden setter vi
+fordelings beløpet til 4 000 000,-
+
+
+<H2>Tallene</H2>
+
+Tallene er stort sett i hele tusen.
+
+<TABLE border>
+<TR><TD><TD><TD align=right>B ´93<TD align=right>B ´94<TD align=right>R ´95<TD align=right>B ´96<TD align=right>B ´97<TD align=right>Petter<TD align=right>Cato
+<TR><TD>34601<TD>Semesteravgift<TD align=right>R: -3.813<TD align=right>R: -4.025<TD align=right>-4.063020<TD align=right>-3.965<BR>R: 4.108<TD align=right>-4.550<TD align=right>-3.900<TD align=right>-4.000
+<TR><TD><TD>Overføring fra UiTø til studentstyret<TD align=right>-<TD align=right>-357
+<TR><TD>79101<TD>Tilskudd studentstyret<TD align=right>410<TD align=right>238<TD align=right>190.000<TD align=right>190<TD align=right>190<TD align=right>200<TD align=right>160
+<TR><TD>79102<TD>Tilskudd studentforeninger<TD align=right>130<TD align=right>150<TD align=right>132.200<TD align=right>130<TD align=right>120<TD align=right>170<TD align=right>130
+<TR><TD>79103<TD>Tilskudd studentidrett<TD align=right>375<TD align=right>420<TD align=right>408.437<TD align=right>465<TD align=right>465<TD align=right>420<TD align=right>450
+<TR><TD>79104<TD>Tilskudd studentradio<TD align=right>224<TD align=right>270<TD align=right>270.000<TD align=right>270<TD align=right>Fjernes<TD align=right>-<TD align=right>-
+<TR><TD>79105<TD> Tilskudd studentavis<TD align=right>395<TD align=right>475<TD align=right>450.000<TD align=right>450<TD align=right>454<TD align=right>440<TD align=right>454
+<TR><TD><TD>Sivilarbeider TSI/Samfunnet<TD align=right>-<TD
+align=right>60<TD align=right>59.100
+<TR><TD>79106<TD>Tilskudd studentsamfunnet<TD align=right>52<TD align=right>30<TD align=right>83.828<TD align=right>70<TD align=right>241<TD align=right>241<TD align=right>241
+<TR><TD>79107<TD>Tilskudd svalbardstudentene<TD align=right>-<TD align=right>10<TD align=right>11.310<TD align=right>10<TD align=right>10<TD align=right>10<TD align=right>10
+<TR><TD>79108<TD>Tilskudd Jusshjelpa<TD align=right>-<TD align=right>-<TD align=right>-<TD align=right>-<TD align=right>25<TD align=right>25<TD align=right>25
+<TR><TD>79109<TD>Tilskudd ISU      <TD align=right>-<TD align=right><TD align=right>-<TD align=right>NY<TD align=right>21<TD align=right>-<TD align=right>21
+<TR><TD>79201<BR>79202<TD>Annonser for INFO og<BR>Annonser som støtte<TD align=right>11<TD align=right>0<TD align=right>158.842<TD align=right>-<TD align=right>Fjernes<TD align=right>-<TD align=right>-
+<TR><TD>79301<TD>Tilskudd NSU (fast)<TD align=right>411<TD align=right>479<TD align=right>494.380<TD align=right>494<TD align=right>494<TD align=right>294<TD align=right>494
+<TR><TD>79302<TD>Tilskudd SAIH (fast)<TD align=right>108<TD align=right>126<TD align=right>130.100<TD align=right>130<TD align=right>130<TD align=right>130<TD align=right>130
+<TR><TD><TD>Spesiell konstnader utenlandske studenter<TD align=right>-<TD align=right>-<TD align=right>11.120<TD align=right><TD align=right>-<TD align=right>-
+<TR><TD>79402<TD>Bolighjelpa<TD align=right>-<TD align=right>-<TD align=right>31544<TD align=right><TD align=right>Fjernes<TD align=right>-<TD align=right>-
+<TR><TD>79501<TD>Tilskudd Studentenes Sosialtj. (fast)<TD align=right>370,5<TD align=right>460<TD align=right>437.632<TD align=right>588<TD align=right>605<TD align=right>605<TD align=right>605
+<TR><TD>79502<TD>Refusjon egenandeler (fast)<TD align=right>90<TD align=right>110<TD align=right>90.827<TD align=right>110<TD align=right>110<TD align=right>110<TD align=right>100
+<TR><TD>79503<TD>Tilskudd helsefondet (fast)<TD align=right>350<TD align=right>350<TD align=right>487.104<TD align=right>350<TD align=right>350<TD align=right>350<TD align=right>350
+<TR><TD>79504<TD>Krisehjelp (fast)<TD align=right>8<TD align=right>8<TD align=right>8.100<TD align=right>8<TD align=right>8<TD align=right>8<TD align=right>8
+<TR><TD>79600<TD>Barnehagesubsidier<TD align=right>150<TD align=right>250<TD align=right>-<TD align=right>250<TD align=right>350<TD align=right>250<TD align=right>350
+<TR><TD>79700<TD>Diverse sosiale og kult. kostnader<TD align=right>155,5<TD align=right>251<TD align=right>94.496<TD align=right>81<TD align=right>0<TD align=right>0<TD align=right>0
+<TR><TD>79750<TD>UKA-97<TD align=right>-<TD align=right>-<TD align=right><TD align=right>NY<TD align=right>100<TD align=right>100<TD align=right>100
+<TR><TD><TD>Fond barnehager<TD align=right>-<TD align=right>100
+<TR><TD>79800<TD>SSts Disposisjonsfond<TD align=right><TD align=right><TD align=right><TD align=right>-<TD align=right>127<TD align=right>0<TD align=right>100
+<TR><TD>79900<TD>Semesteravgiftsfondet     <TD align=right><TD align=right><TD align=right><TD align=right>NY<TD align=right>750<TD align=right><TD align=right>272
+<TR><TD><TD>Til fordeling v97<TD align=right><TD align=right><TD align=right><TD align=right><TD align=right><TD align=right>547<TD align=right>
+<TR><TD><TD>Bo-miljøprosjektet<TD align=right><TD align=right><TD align=right>70.235
+<TR><TD><TD>Saldering hos samskipnaden<TD align=right><TD align=right><TD align=right>443765<TD align=right>
+<TR><TD><TD>SUM     <TD align=right>3.240<TD align=right>3.906<TD align=right><TD align=right>3.965<TD align=right>4.550<TD align=right>3.900<TD align=right>4.000
+</TABLE>
+
+<H2>Notater til postene</H2>
+Felleskommentarer er skrevet med vanlig skrift.  <B>Petters kommentarer er skrevet med fet skrift</B>, og <EM>Catos kommentarer er skrevet med hellende skrift.</EM>
+<DL>
+
+<DT>Semesteravgift
+<DD>Tallene for 93, 94 og 95 er regnskapstall oppgitt av samskipnaden
+pr. telefon 1996-12-04. (93: 3.813.640, 94: 4.054.025, 95: 4.063.020).
+
+<BR><B>Dette er 13.000 semesteravgifter til Kr. 300,-.  Tallet vil bli høyere hvis det blir like mange semesteravgifter som i år.</B>
+
+<DT>Tilskudd studentidrett
+<DD>Disse pengene går til TSI.  TSI har hatt en nedgang i
+medlemstallet på 20 fra 763 høsten 1995 til 743 høsten 1996.  De har
+fått 1-2 flere undergrupper i samme periode og har høsten 1996 24
+undergrupper.
+
+<DT>Tilskudd studentavis.
+<DD>Dette er til Utropia.  Utropia har søkt om
+454.000, som er mindre enn i fjor.  I fjor hadde de mange
+nyinvesteringer i datautstyr.
+
+<DT>Tilskudd svaldbardstudentene
+
+<DD>Petter tok kontakt for å høre hva pengene ble brukt til.  Morten
+Ingebrigtsen (økonomiansvarlig for UNIS-studentene) opplyste at i
+hovedsak ble pengene brukt til studentvelferd utover det beløpet de
+mottar fra UNIS' budsjett.  Fra høsten 1996 har de begynt en
+refusjonsordning når det gjelder helseutgifter (legebesøk og rønken,
+men ikke medisiner).  Ny kontaktperson over nyttår ble oppgitt til
+Lena Seternes (lenas@unis.no).
+
+<DT>Tilskudd NSU
+<DD>Dette er kr. 38,- per student pr semester.  For 1995 var det 13.010
+semesteravgifter.
+
+<DT>Saldering hos samskipnaden
+<DD>Her er restpengene fra semesteravgiften blitt brukt opp av samskipnaden.
+
+</DL>
+
+<H2>Referanser</H2>
+93,94  Brev fra Studentstyret v/Kjetil Kvalsvig til
+Studentsamskipnaden etter møte 1993-12-08
+<BR>95 Regnskapstall fra samskipnaden uthentet 1996-12-04
+<BR>96,97 Sakspapir til SS 10/96 sak 99/96
+</BODY>
+</HTML>
diff --git a/ss/budsj96.html b/ss/budsj96.html
new file mode 100644 (file)
index 0000000..ebe57eb
--- /dev/null
@@ -0,0 +1,56 @@
+<html>
+<head>
+<title></title>
+<!-- Changed by: Petter Reinholdtsen, 16-Oct-1996 -->
+</head>
+<body>
+Petter Reinholdtsen
+<BR>1996-10-16
+<BR>Til Studentstyret
+<hr>
+
+<h1>Budsjett 1996 for Studentstyrets arbeidsutvalg</h1>
+
+Basert på sakspapirene til sak 79/95 og referat for samme sak fra
+Studentstyremøtet 16/95, 1995-11-29.  Vedtaket er forskjellig fra
+saksframlegget på punktene om "Administrasjon", "Tilskudd institutt
+AU'er", "Organisasjonsfond" og "Urnevalg".
+
+<P>
+<TABLE border>
+<TR><TH colspan=2 align=right>1996
+<TR><TH colspan=2 align=left>Inntekter
+<TR><TD>Tilskudd fra semesteravgifta<TD align=right>100.000,-
+<TR><TD>Tilskudd fra UiTø      <TD align=right>700.000,-
+<TR><TD>Tilskudd fra NSU       <TD align=right>200.000,-
+<TR><TD>Tilskudd UiTø-gruppa<TD align=right>?
+<TR><TD>Tilskudd bolighjelpa<TD align=right>?
+<TR><TD>Tilskudd seminar<TD align=right>24.000,-
+<TR><TD>Tilskudd Barents<TD align=right>0,-
+<TR><TH align=right>Sum Inntekter      <TD align=right>1.024.000,-
+<TR><TH colspan=2 align=left>Utgifter
+<TR><TD>Honorar leder<TD align=right>103.400,-
+<TR><TD>Honorar nestleder<TD align=right>87.890,-
+<TR><TD>Honorar politisk sekretær<TD align=right>87.890,-
+<TR><TD>Lønn organisasjonssekr.<TD align=right>204.000,-
+<TR><TD>Honorar AU-medlemmer<TD align=right>94.000,-
+<TR><TD>Feriepenger<TD align=right>57.718,-
+<TR><TD>Arbeidsgiveravgift<TD align=right>63.489,-
+<TR><TD>Administrasjon<TD align=right>47.500,-
+<TR><TD>Kopimaskin / trykking<TD align=right>50.000,-
+<TR><TD>Informasjon / aksjoner<TD align=right>32.813,-
+<TR><TD>Skolering / seminarer<TD align=right>35.000,-
+<TR><TD>Avsetning / invest.<TD align=right>15.000,-
+<TR><TD>Bolighjelpa<TD align=right>?
+<TR><TD>Universitetsstyregruppa<TD align=right>?
+<TR><TD>Reiser         <TD align=right>30.000,-
+<TR><TD>Barents                <TD align=right>40.000,-
+<TR><TD>Tilskudd institutt AU'er<TD align=right>60.000,-
+<TR><TD>Urnevalg               <TD align=right>4.500,-
+<TR><TD>Barnepass              <TD align=right>10.800,-
+<TR><TH align=right>Sum utgifter<TD>1.024.000,-
+</TABLE>
+
+
+</body>
+</html>
diff --git a/ss/pc-spec.html b/ss/pc-spec.html
new file mode 100644 (file)
index 0000000..a7f2c69
--- /dev/null
@@ -0,0 +1,54 @@
+<HTML>
+<HEAD>
+<TITLE></TITLE>
+<!-- Changed by: Petter Reinholdtsen, 12-Dec-1996 -->
+<LINK REV="made" HREF="mailto:pere@td.org.uit.no">
+</HEAD>
+<BODY>
+Petter Reinholdtsen -
+<A HREF="mailto:pere@td.org.uit.no">pere@td.org.uit.no</A>
+<BR>1996-12-12
+<HR>
+
+<H1>Prisanslag, nettserver</H1>
+
+<TABLE>
+
+<TR><TD>Kabinett m/strøm og plass
+<TD align=right>~ 500
+
+<TR><TD>Hovedkort med min 486 dx
+<TD align=right>?
+
+<TR><TD>RAM 16Mb
+<TD align=right>1.000
+
+<TR><TD>Nettkort tynnether
+<TD align=right>~ 500
+
+<TR><TD>SCSI-kort
+<TD align=right>~ 1.000
+
+<TR><TD>SCSI-disk 2GB
+<TD align=right>ny ~4.200
+
+<TR><TD>SCSI-tapestreamer (helst DAT)
+<TD align=right> ~3.000
+
+<TR><TD>Diskettstasjon 3.5"
+<TD align=right>ny ~300
+
+<TR><TD>Tastatur
+<TD align=right>ny ~200
+
+<TR><TD>Div. kabler og lokk
+<TD align=right>~200
+
+<TR><TH>Sum:
+<TD align=right>~ 9500
+
+</TABLE>
+
+</BODY>
+</HTML>
+
diff --git a/ss/ref97k.html b/ss/ref97k.html
new file mode 100644 (file)
index 0000000..46c9555
--- /dev/null
@@ -0,0 +1,275 @@
+<HTML>
+<HEAD>
+<TITLE>Forslag til referat fra konstituerende Studentstyremøte torsdag 5.12.96</TITLE>
+<!-- Changed by: Petter Reinholdtsen, 14-Dec-1996 -->
+<LINK REV="made" HREF="mailto:pere@td.org.uit.no">
+</HEAD>
+<BODY>
+
+
+<P align=center> - forslag til -</P>
+
+<H1 align=center>Referat fra Konstituerende Studentstyremøte for
+<BR>Studentstyret 1997 torsdag 5.12.96</H1>
+
+
+<B>Tilstede:</B>
+<TABLE>
+<TR><TD>Eidi Ann Hansen<TD>ISV
+<TR><TD>Roger Jørgensen<TD>SSF
+<TR><TD>Pål D. Ekran<TD>SEL
+<TR><TD>Liss M. Jenssen<TD>SEL<TD>gikk 21.05   for Gjertrud Pedersen
+<TR><TD>Tormod K.Sivertsen<TD>SEL
+<TR><TD>Therese Bakkevold<TD>ISV
+<TR><TD>Petter Reinholdtsen<TD>IMR
+<TR><TD>Ingulf Nordahl<TD>IRV
+<TR><TD>Ann Kristin Markussen<TD>IRV
+<TR><TD>Roy T. Magnussen<TD>IBG
+<TR><TD>Marie Barlindhaug<TD>FM
+<TR><TD>Sigrid Ovanger Stensland<TD>ROSSA
+<TR><TD>Stig-Erik Falk<TD>ISL
+<TR><TD>Solbjørg Marjala<TD>ROSSA
+<TR><TD>Hugo Rystrøm<TD>ISV<TD>gikk 21.05      for Ole Martin E.
+<TR><TD>Sissel Mikkelsen<TD>SSSR
+<TR><TD>Margaret Aarag<TD>FM
+<TR><TD>Trine Eskeland<TD>SSF
+<TR><TD>Aina Wikestad<TD>TSVL
+<TR><TD>Nils Kristian Bakke<TD>Moderat
+<TR><TD>Marianne Holst<TD>Moderat
+<TR><TD>Stian Jensen<TD>Moderat
+<TR><TD>Ingar Haukanes<TD>NFH
+<TR><TD>Ogbebo Fortune<TD>ISU<TD>fra 15.25 gikk 21.20
+</TABLE>
+
+<P><B>Meldt forfall:</B>
+<TABLE>
+<TR><TD>Ingrid Hedlund<TD>ISL
+</TABLE>
+
+<P>Tid: 16.15 ( - 21.35 ).
+<BR>Sted: Hiet, Hovedgården.
+
+<P><B>Til konstituering.</B>
+<BR>Winston Makhete leverte skriftlig melding om at han trakk seg fra
+Studentstyret 1997.  Solbjørg Marjala overtar som fast medlem av
+Studentstyret.
+
+<P><B>Valg av møteledelse.</B>
+<BR>Jørn Fause og Pia Skøien ble foreslått og enstemmig valgt.
+
+<P><B>Godkjenning av innkaling og dagsorden.</B>
+<BR>Innkallingen enstemmig godkjent.
+
+<P>Merknader til dagsorden:
+<BR>Fra ordstyrerbordet: Forslag om å vedta forretningsorden før den
+videre saksbehandlingen.
+<BR>Enstemmig vedtatt.
+<BR>Fra Nils Kristian Bakke: To saker til Eventuellt.
+<BR>1) Intensjonsvedtak om helgemøter i Studentstyret
+<BR>Vedtatt (sak S 110/96 under Eventuellt). 16 stemmer for, 5 mot, 2
+avholdende.
+<BR>2) Uttalelse om tvangsflytting av studenter
+<BR>Falt. 12 stemmer for, 10 mot, 1 avholdende.
+<BR>Fra ordstyrerbordet: Forslag om at S 105/96 kun behandles som en
+orienteringssak.
+<BR>Falt.  10 stemmer for, 10 mot, 2 avholdende.
+<BR>Fra Margaret Aarag og Marie Barlindhaug: "Foreslår å utsette sak
+104/96 til neste SST-møte el. etter evt. diskusjonsmøte /
+overlappingsseminar."
+<BR>Vedtatt.  22 stemmer for, 1 avholdende.
+
+<P>Dagsorden enstemmig godkjent med disse endringene.
+
+<P><B>Forretningsorden.</B>
+<BR>Nytt forslag til forretningsorden delt ut på møtet.
+<BR>Fra Nils Kristian Bakke: Endringsforslag til § 2.15 "§ 2.15 blir §
+2.15 a).  Ny § 2.15 b) blir "Studentstyret kan med simpelt flertall
+fravike § 2.15 a) og bruke flertallsvalg ved personvalg." Ellers samme
+som de siste tre setningene i § 2.15 a).
+<BR>Falt. 3 stemmer for, 16 mot, 3 avholdende.
+
+<H2>Sak SSt 105/96 Arbeidsprogram for Studentstyret 1997.</H2>
+Utsatt.
+
+<H2>Sak SSt 105/96 Honorering og strukturering av studentstyrets
+arbeidsutvalg.</H2>
+Fra Nils Kristian Bakke:  Tilleggsforslg "Studentstyret gir AU
+fullmakt til å hente inn navn til innstillingskomit&eacute; fra de tre
+største politiske listene.  AU velger denne komit&eacute;en."
+<BR>Vedtatt. 10 stemmer for, 8 mot, 5 avholdende.
+
+<P>Fra Roy T. Magnussen:  Tilleggsforslag "I denne komit&eacute;en sitter 1
+studentrepresentant som ikke er medlem av AU fra hver at de to største
+politisk valgte grupperingene, samt en instituttrepresentant valgt av
+instituttrepresentantene."
+<BR>Vedtatt.  10 stemmer for, 8 mot, 5 avholdende.
+
+<P>Det kom inn tre forslag om endringer i honoreringssatsene til de ulike
+vervene.  Det ble enighet om å behandle leder og nestleder for seg, og
+så sekretær.
+
+<P>Forslag fra Sigrid Ovanger Stensland ble satt opp mot saksframlegget:
+"Jeg foreslår å senke honoreringen til leder og heve honoreringen til
+nestleder til kr 90.000."
+<BR>Falt. 8 stemmer for, 13 mot, 2 avholdende.
+
+<P>Forslag fra Roger Jørgensen ble satt opp mot saksframlegget:  "Leders
+honorar senkes til 100.000,-.  Nestleder heves til 70.000,-."
+<BR>Vedtatt. 14 stemmer for, 5 mot, 4 avholdende.
+
+<P>Forslag fra Tormod K. Sivertsen om endret honorarsats for sekretær
+(samme sum som i Sigrid Ovanger Stenslands forslag) satt opp mot
+saksframlegget: "Sekretærs honorar senkes til 140.000 kr."
+<BR>Falt. 9 stemmer for, 12 mot, 2 avholdende.
+
+<P>Da Tormod K. Sivertsen endringsforslag var å forstå som en helhetlig
+forslag til honorering ble det foretatt ny votering om nestleders
+honorar.  T.K.S.s forslag om 60.000,- ble satt opp mot nettopp vedtatt
+70.000,- (Roger Jørgensens forslag):
+<BR>Falt. 9 stemmer for, 12 mot, 2 avholdende.
+
+<P><EM>Honorering av Studentstyrets Arbeidsutvalg blir som følger:
+<TABLE>
+<TR><TD>Leder:<TD>100.000,-/år
+<TR><TD>Nestleder:<TD>70.000,-/år
+<TR><TD>Sekretær:<TD>173.000,-/år
+<TR><TD>AU-medlemmer/komit&eacute;ledere:<TD>4.000,-/mnd.
+</TABLE>
+</EM>
+
+<P>Før valgene ble det fra ordstyrerbordet foreslått et tellekorps
+bestående av Geir Jarle Voldmo, Jorunn Dahl og Anne Helene
+S. Tandberg.  Dette ble enstemmig godkjent.
+
+<P>Etter anmodning ble det åpnet for en orienteringsrunde før valgene.
+De nyvalgte studentrepresentantene i universitetsstyret, Nale - leder
+i SASCO og Marianne Grimstad Hansen fra NSU fikk alle anledning til å
+gi sin orientering.
+
+<H2>Sak SSt 106/96 Valg av studentstyrets leder for 1997.</H2>
+Følgende kandidater stilte til valg:
+<UL>
+<LI>Petter Reinholdtsen
+<LI>Trine Eskeland
+<LI>Stian Jensen
+<LI>Eidi Ann Hansen
+</UL>
+
+Kandidatene fikk fem minutter til å presentere seg før det ble åpnet
+for en omfattende spørsmålsrundte.
+
+<P>Det ble i henhold til forretningsorden foretatt preferansevalg:
+<TABLE>
+<TR><TD>Petter Reinholdtsen<TD>33
+<TR><TD>Trine Eskeland<TD>42
+<TR><TD>Stian Jensen<TD>28
+<TR><TD>Eidi Ann Hansen<TD>41
+</TABLE>
+
+Denne stemmefordelingen resulterte i en ny valgomgang mellom Trine
+Eskeland og Eidi Ann Hansen.  Det ble gjennomført flertallsvalg:
+<TABLE>
+<TR><TD>Eidi Ann Hansen<TD>13
+<TR><TD>Trine Eskeland<TD>11
+</TABLE>
+
+<P><EM>Studentstyret velger som sin leder for perioden 1/1 - 31/12
+1997: Eidi Ann Hansen.</EM>
+
+<H2>Sak SSt 107/96 Valg av Studentstyrets nestleder for 1997</H2>
+Følgende kandidater stilte til valg:
+<UL>
+<LI>Stian Jensen
+<LI>Roy T. Magnussen
+</UL>
+
+Kandidaten som ikke tidligere var presentert fikk anledning til dette,
+før det ble åpnet for en spørsmålsrunde.
+<BR>Det ble foretatt flertallsvalg:
+<TABLE>
+<TR><TD>Stian Jensen<TD>16
+<TR><TD>Roy T. Magnussen<TD>8
+</TABLE>
+
+<P><EM>Studentstyret velger som sin Nestleder for perioden 1/1 - 31/12
+1997: Stian Jensen.</EM>
+
+<H2>Sak SSt 108/96 Valg av AU-medlemmer for Studentstyret.</H2>
+Følgende kandidater stilte til valg:
+<UL>
+<LI>Roy T. Magnussen
+<LI>Solbjørg Marjala
+<LI>Sigrid Ovanger Stensland
+<LI>Ingulf Nordahl
+</UL>
+Kandidater som tidligere ikke var presentert fikk anledning til dette,
+før det ble åpnet for en spørsmålsrunde.
+<BR>Det ble foretatt preferansevalg:
+<TABLE>
+<TR><TD>Roy T. Magnussen<TD>36
+<TR><TD>Solbjørg Marjala<TD>36
+<TR><TD>Sigrid Ovanger Stensland<TD>28
+<TR><TD>Ingulf Nordahl<TD>44
+</TABLE>
+
+<P><EM>Studentstyret velger som sine AU-medlemmer i perioden 1/1 - 31/12
+1997:
+<UL>
+<LI>Ingulf Nordahl
+<LI>Roy T. Magnussen
+<LI>Solbjørg Marjala
+</UL>
+</EM>
+
+<H2>Sak SSt 109/96 Valg av kontrollkomit&eacute; for studentstyret 1997.</H2>
+Følgende kandidater stillte til valg:
+<UL>
+<LI>Torbjørn Flaatten
+<LI>Tor-Ståle Hansen
+<LI>Torgeir Dølerud
+<LI>Arulnesan Marianayagam
+</UL>
+
+<P>Kandidatene fikk anledning til en kort presentasjon før en kort
+spørsmålsrunde.
+<BR>Det ble foretatt preferansevalg:
+
+<TABLE>
+<TR><TD>Torbjørn Flaatten<TD>41
+<TR><TD>Tor-Ståle Hansen<TD>35
+<TR><TD>Torgeir Dølerud<TD>43
+<TR><TD>Arulnesan Marianayagam<TD>25
+</TABLE>
+
+<P><EM>Studentstyret velger til kontrollkomit&eacute; for perioden 1/1 - 31/12
+1997:
+<UL>
+<LI>Torbjørn Flaatten
+<LI>Tor-Ståle Hansen
+<LI>Torgeir Dølerud
+</UL>
+</EM>
+<H2>Sak SSt 110/96 Intensjonsvedtak om helgemøter i studentstyret.</H2>
+Saksfremlegg fra Nils Kristian Bakke ble delt ut på møtet.
+<BR>Tilleggsforslag fra Aina Wikestad "(som 5. avsnitt) Studentstyret vil
+derfor legge sitt første ordinære studentstyremøte i 1997 til en helg.
+På dette helgemøtet skal arbeidsprogrammet for 1997 gjennomgås i
+tillegg til at Studentstyrets arbeidsform tas opp til vurdering.
+Siste avsnitt går ut." ble innarbeidet i Nils Kristian Bakkes forslag.
+
+<P>Endringsforslag fra Eidi Ann Hansen: "(som 5. avsnitt)
+Studentstyret vil vurdere helgemøter i Studentstyret på
+overlappingsseminaret i begynnelsen av perioden.
+<BR>Falt. 7 stemmer for, 10 mot, 4 avholdende.
+
+<P>Nils Kristian Bakkes forslag vedtatt.  12 stemmer for, 3 mot, 6
+avholdende.
+
+<P>Møtet hevet 2135.
+
+<P>Referent
+
+<BR>Pia Skøien (sign.)
+
+</BODY>
+</HTML>
diff --git a/ss/regn96.html b/ss/regn96.html
new file mode 100644 (file)
index 0000000..6f98061
--- /dev/null
@@ -0,0 +1,108 @@
+<html>
+<head>
+<title></title>
+<!-- Changed by: Petter Reinholdtsen, 16-Oct-1996 -->
+</head>
+<body>
+Petter Reinholdtsen
+<BR>1996-10-16
+<BR>Til Studentstyret
+<hr>
+
+<h1>Foreløpig regnskap 1996 for Studentstyrets arbeidsutvalg</h1>
+
+<P>
+<TABLE border>
+<TR><TH align=right>1996<TH>Budsjett
+<TH>Regnskap
+<BR>pr. 9.okt.
+<TR><TH colspan=2 align=left>Inntekter
+<TR><TD>Tilskudd fra semesteravgifta
+<TD align=right>100.000,-
+<TR><TD>Tilskudd fra UiTø
+<TD align=right>700.000,-
+<TD align=right>450.000,-
+<TR><TD>Tilskudd fra NSU
+<TD align=right>200.000,-
+<TR><TD>Tilskudd UiTø-gruppa
+<TD align=right>?
+<TR><TD>Tilskudd bolighjelpa
+<TD align=right>?
+<TR><TD>Tilskudd seminar
+<TD align=right>24.000,-
+<TR><TD>Tilskudd Barents
+<TD align=right>0,-
+<TR><TD>Tilskudd arrangement
+<TD><TD align=right>16.118,-
+<TR><TH align=right>Sum Inntekter
+<TD align=right>1.024.000,-
+<TD align=right>466.118,00
+
+<TR><TH colspan=2 align=left>Utgifter
+<TR><TD>Honorar leder
+<TD align=right>103.400,-
+<TR><TD>Honorar nestleder
+<TD align=right>87.890,-
+<TR><TD>Honorar politisk sekretær
+<TD align=right>87.890,-
+<TR><TD>Honorar AU-medlemmer
+<TD align=right>94.000,-
+<TR><TD>Lønn organisasjonssekr.
+<TD align=right>204.000,-
+<TR><TH align=right>Totalt
+<TD align=right>577.180,-
+<TD align=right>397.534,76
+<TR><TD>Feriepenger
+<TD align=right>57.718,-
+<TD align=right>41.627.15
+<TR><TD>Arbeidsgiveravgift
+<TD align=right>63.489,-
+<TD align=right>26.556.32
+<TR><TD>Administrasjon
+<TD align=right>47.500,-
+<TD align=right>18.628,38
+<TR><TD>Kopimaskin / trykking
+<TD align=right>50.000,-
+<TD align=right>27.162,53
+<TR><TD>Informasjon / aksjoner
+<TD align=right>32.813,-
+<TD align=right>11.111.50
+<TR><TD>Skolering / seminarer
+<TD align=right>35.000,-
+<TD align=right>4.000,-
+<TR><TD>Avsetning / invest.
+<TD align=right>15.000,-
+<TD align=right>14.246,03
+<TR><TD>Bolighjelpa
+<TD align=right>?
+<TD align=right>?
+<TR><TD>Universitetsstyregruppa
+<TD align=right>?
+<TD align=right>18.304,-
+<TR><TD>Reiser         
+<TD align=right>30.000,-
+<TD align=right>14.959,50
+<TR><TD>Barents                
+<TD align=right>40.000,-
+<TD align=right>0,-
+<TR><TD>Tilskudd institutt AU'er
+<TD align=right>60.000,-
+<TD align=right>0,-
+<TR><TD>Urnevalg
+<TD align=right>4.500,-
+<TD align=right>254,-
+<TR><TD>Barnepass
+<TD align=right>10.800,-
+<TD align=right>1.500,-
+<TR><TD>Upostert
+<TD><TD align=right>26.926,58
+<TR><TD>Underskudd 1995
+<TD><TD align=right>52.765,02
+<TR><TH align=right>Sum utgifter
+<TD>1.024.000,-
+<TD>671.400.77
+</TABLE>
+
+
+</body>
+</html>
diff --git a/store/doc-espensk/emacs-default.html b/store/doc-espensk/emacs-default.html
new file mode 100644 (file)
index 0000000..02c07b9
--- /dev/null
@@ -0,0 +1,48 @@
+<HTML><HEAD>
+<TITLE> Tilrettelegging av emacs-konfig-filer </TITLE>
+<!-- Changed by: Espen Skoglund, 24-Apr-1996 -->
+</HEAD><BODY>
+
+<H1> Tilrettelegging av emacs-konfig-filer </H1>
+
+En del programmpakker er skrevet for å benyttes ifra Emacs eller
+XEmacs.  For at disse pakkene skal fungere tilfredsstillende for alle
+brukerne, må oppstartfilene til emacs sansynligvis konfigureres noe.
+Dette kan f.eks. bestå i å sette noen få variabler.
+
+<P>Måten dette fungerer på, er at emcas laster inn og eksekverer en
+fil, <CODE>default.el</CODE>, før selve editoren starter opp.  Denne
+filen finnes under <CODE>/store/lib/xemacs/site-lisp</CODE> og
+<CODE>/store/share/emacs/site-lisp</CODE> for henholdsvis XEmacs og Emacs.
+
+<P>Disse filene genereres hver natt av en <EM>nightly job</EM>.  Det
+som skjer, er at alle filer på formen ``<CODE>default.el-*</CODE>''
+blir konkatinert isammen til en enkel ``<CODE>default.el</CODE>''.
+Sammen med Python-dsitribusjonen følger det f.eks. med en emacs-mode
+(<CODE>python-mode.el</CODE>) for editering av python-filer.  Dette
+ønsker vi å benytte oss av, og lager derfor følgende to filer:
+
+<BLOCKQUOTE><CODE>
+  /store/lib/xemacs/site-lisp/default.el-python<BR>
+  /store/share/emacs/site-lisp/default.el-python
+</CODE></BLOCKQUOTE>
+
+Disse filene er identiske, og inneholder følgende elisp-kode:
+
+<LISTING>
+    (autoload 'python-mode "python-mode" "Python editing mode." t)
+    (setq auto-mode-alist
+          (cons '("\\.py$" . python-mode) auto-mode-alist))
+</LISTING>
+
+Koden fører til at emacs automatisk laster inn
+<CODE>python-mode.el</CODE> når funksjonen <CODE>python-mode</CODE>
+blir startet i emacs (f.eks. ved ``<CODE>M-x python-mode</CODE>'').  I
+tillegg sier den at når en fil som ender på ``<CODE>.py</CODE>'' blir
+lastet inn, så skal <CODE>python-mode</CODE> automatisk startes opp.
+
+
+<HR>
+<ADDRESS><A HREF="/~espensk/">eSk</A></ADDRESS>
+
+</BODY></HTML>
diff --git a/store/doc-espensk/emacs-dir.html b/store/doc-espensk/emacs-dir.html
new file mode 100644 (file)
index 0000000..84a6f5d
--- /dev/null
@@ -0,0 +1,95 @@
+<HTML><HEAD>
+<TITLE> Tilrettelegging av emacs-info-sider </TITLE>
+<!-- Changed by: Espen Skoglund, 24-Apr-1996 -->
+</HEAD><BODY>
+
+<H1> Tilrettelegging av emacs-info-sider </H1>
+
+Enkelte applikasjoner (særlig GNU applikasjoner) har medfølgende
+dokumentasjon i emacs-info-format.  Denne dokumentasjonen består av
+filer som ender på <CODE>.info</CODE>, <CODE>.info-1</CODE>,
+<CODE>.info-2</CODE>, etc, og ender som oftest opp i
+<CODE>/store/info</CODE>-katalogen når ``<CODE>make install</CODE>''
+har gjort seg ferdig.
+
+<P>For at disse filene skal dukke opp i info-menyene vi ser i
+f.eks. XEmacs og Emacs, må vi lage en liten fil som inneholder et
+meny-entry.  Denne filen skal være navngitt på formen
+
+<BLOCKQUOTE>
+  <CODE>&lt;navn&gt;.dir.&lt;doktype&gt;</CODE>
+</BLOCKQUOTE>
+
+og befinne seg under <CODE>/store/info</CODE>.  <EM>Navn</EM> er her
+navnet på dokumentasjonen (f.eks. <CODE>bash</CODE> eller
+<CODE>gcc</CODE>).  <EM>Doktype</EM> forteller hvilket emne
+dokumentasjonen inneholder.  Dette benyttes for å plassere
+meny-entryet på en fornuftig plass i menyen, og kan ha følgende
+verdier:
+
+<DL>
+<DT><CODE>emacs</CODE>
+<DD>Benyttes for dokumentasjon som omhandler bruken av Emacs/XEmacs.
+
+<DT><CODE>elisp</CODE>
+<DD>Benyttes for emacs-lisp-dokumenasjon.
+
+<DT><CODE>packages</CODE>
+<DD>Benyttes for dokumentasjon som omhandler bruken av en tillegspakke til
+  emacs (f.eks. AUC-TeX eller GNUS).
+
+<DT><CODE>compilers</CODE>
+<DD>Benyttes for dokumentasjon til kompilatorer eller utviklingsverktøy
+  (f.eks. GCC eller Make).
+
+<DT><CODE>library</CODE>
+<DD>Benyttes for dokumentasjon som omhandler diverse biblioteker
+  (f.eks. Libg++ eller Mmalloc).
+
+<DT><CODE>standard</CODE>
+<DD>Benyttes for dokumentasjon av diverse standarder og formater (f.eks.
+  GNU coding standards).
+
+<DT><CODE>program</CODE>
+<DD>Benyttes for dokumentasjon av andre programpakker (f.eks. Bash og Zsh).
+
+</DL>
+
+For å lage en meny-entry for Bash, lager vi f.eks. en fil
+``<CODE>info/bash.dir.program</CODE>'' i <CODE>bash</CODE>-filsettet
+som inneholder følgende tekst:
+
+<LISTING>
+    * Bash: (bash).                 Bourne Again Shell
+</LISTING>
+
+Dette fører til at linjen dukker opp under overskriften; ``<EM>Other
+programs and packages</EM>'' neste dag (etter at
+<EM>nightly</EM>-jobbene til Emacs eller XEmacs har kjørt).
+
+<H3> Mulig forslag til meny-entry </H3>
+
+Mange dokumentasjoner på info-format inneholder selv forslag til hva
+som burde stå i meny-entryen.  Disse forslagene kan i så fall finnes
+mot toppen av den aktuelle info-filen.  Flex har f.eks. følgende tekst
+i toppen av ``<CODE>flex.info</CODE>'':
+
+<LISTING>
+    START-INFO-DIR-ENTRY
+    * Flex: (flex).         A fast scanner generator
+    END-INFO-DIR-ENTRY
+</LISTING>
+
+Den aktuelle linjen kan derfor bare klippes og limes rett inn i den
+aktuelle <CODE>dir</CODE>-filen. I dette tilfellet
+``<CODE>flex.dir.compilers</CODE>''.  Man bør derimot passe på å
+starte forklaringen av dokumentasjonen (i vår tilfelle ``<EM>A
+fast...</EM>'') på kolonne 33.  Dette fører til at alle forklaringene
+blir pent <EM>alignet</EM> ca. langs midten av emacs-vinduet, xtermen,
+eller hvor nå enn dokumentasjonen skal leses.
+
+
+<HR>
+<ADDRESS><A HREF="/~espensk/">eSk</A></ADDRESS>
+
+</BODY></HTML>
diff --git a/store/doc-espensk/environ.html b/store/doc-espensk/environ.html
new file mode 100644 (file)
index 0000000..5b66edc
--- /dev/null
@@ -0,0 +1,208 @@
+<HTML><HEAD>
+<TITLE> Environment-konfigurering </TITLE>
+<!-- Changed by: Espen Skoglund, 23-Apr-1996 -->
+</HEAD><BODY>
+
+<H1> Environment-konfigurering </H1>
+
+For enkelte applikasjoner er det nødvendig at spesielle
+environment-variabler er satt for at applikasjonen i det hele tatt
+skal fungere.  Det kan f.eks. hende at nye filstier må legges inn i
+<CODE>PATH</CODE> eller <CODE>MANPATH</CODE>-variablene, eller at
+andre applikasjonsspesifikke variabler må settes
+(eks. <CODE>FMHOME</CODE> i FrameMaker).
+
+<P>Det er derimot ønskelig at brukerne skal slippe å vite om disse
+variablene -- de skal automatisk konfigureres inn i brukerens oppsett.
+Et filsett, <CODE>env-config</CODE>, i <EM>store</EM> sørger for
+dette.
+
+<P>I katalogen <CODE>/store/etc/ENV</CODE> ligger det en rekke filer
+``<CODE>ENV-*</CODE>'' som forteller noe om hvlike
+environment-variabler som må settes.  Disse filene hører til
+forskjellige filsett (<CODE>teTeX</CODE>, <CODE>postgres95</CODE>,
+osv.).  Filsettet <CODE>env-config</CODE> inneholder dessuten noen
+default-variabler som det ikke passer å spesifisere i de andre
+filsettene (eks. <CODE>TZ</CODE> og <CODE>XFILESEARCHPATH</CODE>, samt
+standardverdier for <CODE>PATH</CODE> og <CODE>MANPATH</CODE>).
+
+<P>Alt hva vi behøver for å konfigurere brukernes environment-oppsett
+til vår applikasjon, er derfor å snekre i sammen en slik fil som
+spesifiserer hvilke variabler som må settes.
+
+<H3> Konfigurasjonsfilenes format </H3>
+
+La oss se på formatet som disse konfigusrasjons-filene har.
+
+<UL>
+<LI>Blanke linjer, samt kommentarer (linjer som begynner
+  med <CODE>#</CODE>) blir ignorert.
+
+<P><LI>Dersom tekststrengene <CODE>$TOP</CODE> eller
+  <CODE>$TOPDIR</CODE> forekommer, blir dette byttet ut med filstien
+  til linktre-roten (typisk <CODE>/store</CODE>).
+
+<P><LI>Formatet på de resterende linjene, er som følger:
+
+  <BLOCKQUOTE><CODE>
+       <I>&lt;uid&gt;</I>:<I>&lt;gid&gt;</I>:<I>&lt;pri&gt;</I>:<I>&lt;type&gt;</I>:<I>&lt;variabel&gt;</I>=<I>&lt;verdi&gt;</I>
+  </CODE></BLOCKQUOTE>
+
+  <DL>
+    <DT><CODE>&lt;uid&gt;</CODE>
+    <DD>Er en kommaseparert liste av brukere (dvs. bruker-id'er) som skal
+      ha variabelen satt (f.eks. ``<CODE>espensk,geiri</CODE>'').
+      Dersom feltet består av ``<CODE>*</CODE>'', vil alle brukere få
+      variabelen satt.  Komplimentet av brukere kan også spesifiseres
+      ved å benytte ``<CODE>!</CODE>''.  ``<CODE>!root</CODE>''
+      forteller f.eks. at alle brukerne utenom root-brukeren skal ha
+      variabelen satt.  Man kan forøvrig benytte tall-uider i denne
+      listen også, disse vil da bli oversatt til navn-uider dersom det
+      lar seg gjøre.
+
+    <P><DT><CODE>&lt;gid&gt;</CODE>
+    <DD>Er en kommaseparert liste over grupper (dvs. gruppe-id'er) som
+      skal ha variabelen satt.  ``<CODE>/usr/bin/groups</CODE>''
+      benyttes for å bestemme hvilke grupper den aktuelle brukeren er
+      medlem av.  Formatet er forøvrig likt det som benyttes for
+      <CODE>&lt;uid&gt;</CODE>.
+
+    <P><DT><CODE>&lt;pri&gt;</CODE>
+    <DD>Forteller hvliken prioritet denne variabelsettingen har.  I
+      filstier benyttes dette til å fortelle hvor tidlig i stien
+      verdien skal settes.  I <CODE>PATH</CODE> har
+      f.eks. ``<CODE>/store/bin</CODE>'' prioritet 5 og
+      ``<CODE>/store/opt/krb5/bin</CODE>'' priotitet 4.  Dette fører
+      til at ``<CODE>/store/opt/krb5/bin</CODE>'' havner før
+      ``<CODE>/store/bin</CODE>'' i den ferdige stien.
+
+      <P>Dersom vi har med vanlige verider å gjøre (dvs. alle verdier
+      som ikke er stier) vil dette fungere som en helt vanlig
+      priotitet.  <CODE>TZ</CODE> med prioritet 4 benyttes f.eks. før
+      <CODE>TZ</CODE> med prioritet 5.
+
+    <P><DT><CODE>&lt;type&gt;</CODE>
+    <DD>Forteller hvilken type variabel vi har med å gjøre.
+      <DL COMPACT>
+      <DT><CODE>p</CODE> -
+      <DD>sier at vi har med stier å gjøre.  Alle enhetene i denne
+          variablen blir sjekket for eksistens i filtreet før de blir
+          lagt til.  Hvis vi f.eks. legger
+          ``<CODE>/usr/ingres/bin</CODE>'' inn i <CODE>PATH</CODE>,
+          vil dette bare gjelde på lglaben (og andre steder hvor
+          ingres er installert).
+      <DT><CODE>n</CODE> -
+      <DD>sier også at vi har med stier å gjøre.  Forskjellen er at disse 
+          stiene ikke blir sjekket for eksistens.  Dette er nyttig når
+          vi f.eks. definerer <CODE>XFILESEARCHPATH</CODE> til å være
+          ``<CODE>/store/lib/X11/app-defaults/%N</CODE>''.  I dette
+          tilfellet finnes jo ingen slik katalog.
+      <DT><CODE>s</CODE> -
+      <DD>sier at vi har med en enkel verdi å gjøre (f.eks.
+          <CODE>TZ</CODE>).
+      </DL>
+
+    <P><DT><CODE>&lt;variabel&gt;=&lt;verdi&gt;</CODE>
+    <DD>Dersom variabelen er en enkel verdi (type <CODE>s</CODE>), blir
+      variabelen (eventuelt) satt til den gitte verdien.  Dersom
+      variabelen derimot er en sti (type <CODE>p</CODE> eller
+      <CODE>n</CODE>), blir den gitte verdien (eventuelt) lagt til i
+      stien.
+  </DL>
+
+  <P>Hvis en linje ender med ``<CODE>\</CODE>'' (backslash), blir
+  linjen konkatinert med neste linje, og et ``<CODE>:</CODE>'' (kolon)
+  blir satt som skille mellom dem.  Dette er nyttig dersom du
+  spesifiserer en sti bestående av flere elementer, og ønsker å rydde
+  opp i konfigurasjonsfilen.  Følgende to settinger er altså like:
+
+  <LISTING>
+    *:*:2:p:PATH=/opt/ansic/bin \
+            /opt/nettladm/bin \
+            /opt/graphics/common/bin
+
+    *:*:2:p:PATH=/opt/ansic/bin:/opt/nettladm/bin:/opt/graphics/common/bin
+  </LISTING>
+
+  Begge sier at alle brukere (og alle grupper) skal ha de 3 filstiene
+  lagt til i <CODE>PATH</CODE>.  Siden prioriteten er høy (2), vil
+  disse elementene havne langt frem i stien.  Siden variabel-settingen
+  er av type <CODE>p</CODE>, vil eksistensen til hver av katalogene
+  bli sjekket før de blir tatt med.  Dvs. at dersom f.eks. katalogen
+  ``<CODE>/opt/graphics/common/bin</CODE>'' ikke eksisterer, vil den
+  ikke bli tatt med i den ferdige stien.
+
+  <P>Den typiske bruken av environment-settinger, er derimot meget
+  enkel.  Som oftest ønsker vi bare å legge til et enkelt element i
+  <CODE>PATH</CODE> og/eller <CODE>MANPATH</CODE>.  Dette gjelder
+  f.eks. for Kerberos-applikasjonen.  Filsettet inneholder derfor en
+  fil ``<CODE>etc/ENV/ENV-kerberos</CODE>''.  Innholdet i denne filen
+  er:
+
+  <LISTING>
+    #
+    # Kerberos settings
+    #
+    *:*:4:p:PATH=$TOPDIR/opt/krb5/bin
+    *:*:4:p:MANPATH=$TOPDIR/opt/krb5/man
+  </LISTING>
+
+  Vi ser også at filen inneholder en liten kommentar.  Dette er smart
+  fordi det fører til at
+
+  <LISTING>
+    $ <I>cat /store/etc/ENV/ENV-*</I>
+  </LISTING>
+
+  gir nogenlunde fornuftig output.
+
+</UL>
+
+<H3> Hvordan benytte seg av det ferdiggenererte oppsettet </H3>
+
+
+Applikasjonen <CODE>env-config</CODE> genererer filene
+<CODE>/store/etc/src.sh</CODE> og <CODE>/store/etc/src.csh</CODE> hver
+natt ved hjelp av en <EM>nightly command</EM>.  De genererte filene er
+i henholdsvis <EM>bourne-shell</EM> og <EM>c-shell</EM> format, og kan
+``<EM>sources</EM>'' av andre shell-oppstart-filer (eller interaktivt
+av brukerne) dersom det er ønskelig.  <CODE>Zsh</CODE> genererer
+dessuten sin egen <CODE>/store/skel/zshenv</CODE> hver natt slik at
+den ikke behøver å <EM>source</EM> noen av disse filene.
+
+<P>Dersom applikasjoner ønsker å konfigurere dette selv, slik som
+f.eks. <CODE>zsh</CODE> gjør, er det ønskelig at koden i
+<CODE>env-config</CODE> benyttes.  Eksempel på perl-kode følger:
+
+<LISTING>
+    require "$ENV{'TOPDIR'}/lib/environment/environ.pl";
+
+    %Env = &Env'read_env( "$ENV{'TOPDIR'}/etc/ENV" );
+    $Tekst_som_må_inkluderes_i_skript = &Env'build_env( %Env );
+</LISTING>
+
+Den aktuelle teksten kan dermed plasserers hvor det måtte være
+ønskelig (eks. <CODE>/store/skel/zshenv</CODE>).
+``<CODE>&Env'build_csh_env</CODE>'' kan også benyttes istedenfor
+``<CODE>&Env'build_env</CODE>'' dersom <EM>csh</EM>-syntaks er
+ønskelig.
+
+<P>Filsett som skal benytte seg av environment-konfigurasjonene bør
+settes til å ha <EM>dependency</EM> <CODE>env-config</CODE> (dette
+gjelder f.eks. <CODE>zsh</CODE>).  Hvis ikke dette blir gjort vil ikke:
+
+<UL>
+  <LI>``<CODE>environ.pl</CODE>'' kunne inkluderes i perl-skript
+    (dersom det benyttes).
+  <LI>``<CODE>etc/src.sh</CODE>'' eller ``<CODE>etc/src.csh</CODE>''
+    vil ikke eksistere (dersom dette f.eks. skulle <EM>sources</EM> i
+    oppstartfilene).
+  <LI>Default-konfigurasjonene vil ikke eksitere.  Dette vil føre til
+      at vi bl.a. ville få en meget slank <CODE>PATH</CODE> og
+      <CODE>MANPATH</CODE>.
+</UL>
+
+<HR>
+<ADDRESS><A HREF="/~espensk/">eSk</A></ADDRESS>
+
+</BODY></HTML>
diff --git a/store/doc-espensk/in-install.html b/store/doc-espensk/in-install.html
new file mode 100644 (file)
index 0000000..51c2548
--- /dev/null
@@ -0,0 +1,102 @@
+<HTML><HEAD>
+<TITLE> Kompilering i store </TITLE>
+<!-- Changed by: Espen Skoglund, 23-Apr-1996 -->
+</HEAD><BODY>
+
+<H1>Kompilering i store</H1>
+
+Hvordan man kompilerer selve applikasjonen i <EM>store</EM> kan man
+ikke si noe særlig generelt om.  Instruksjoner om hvordan dette skal
+foregå vil man finne forklart i distribusjoenen til den enkelte
+applikasjon (typisk i en fil med navn INSTALL eller README).
+
+<P>Det man derimot må passe på når man kompilerer programmer, er at
+filstier som blir hardkodet inn i programmene benytter prefiksen
+<CODE>/store</CODE> istedenfor den filstien som blir foreslått (typisk
+<CODE>/usr/local</CODE>).
+
+<H3> Kommandoene unshadow og fix </H3>
+
+Ved kompileringen vil det ofte være nødvendig å forandre på en eller
+flere filer for å tilpasse applikasjonen til de lokale omgivelsene.
+Dette kan være f.eks. makefiler eller konfigurasjonsfiler.  Vi ønsker
+derimot ikke å forandre på de orginale filene som følger med
+distribusjonen (konfigurasjoner som gjelder for <EM>hpux</EM> vil
+sansynligvis ikke gjelde for <EM>solaris</EM>), og må derfor kopiere
+filen over til skyggetreet slik at vi forandrer på kopien av filen
+istedenfor orginalen.  Til dette benytter vi kommandoen
+<CODE>unshadow</CODE>.  Hvis vi f.eks. skal forandre på en fil
+<CODE>src/config.h</CODE>, kan vi skrive:
+
+<LISTING>
+    $ <I>unshadow src/config.h</I>
+</LISTING>
+
+Deretter kan vi editere filen etter behov.  Som oftest ønsker vi å
+kjøre <CODE>unshadow</CODE> på en fil fordi vi vil forandre den.  Av
+denne grunnen finnes også en kommando <CODE>fix</CODE> som kjører
+<CODE>unshadow</CODE> på den spesifiserte filen, og deretter starter
+opp <CODE>vi</CODE> på den.  Følgende to kommandosekvenser er derfor
+like:
+
+<LISTING>
+    $ <I>unshadow Makefile</I>
+    $ <I>vi Makefile</I>
+
+    $ <I>fix Makefile</I>
+</LISTING>
+
+
+<H3> Configure-skript </H3>
+
+For alle GNU pakker, og en stor del av andre programpakker, så følger
+det et konfigurasjonsskript med i programpakke-distribusjonen.  For
+slike pakker er kompileringen i <EM>store</EM> særdeles enkel.  Alt
+man behøver å gjøre, er å spesifisere en prefiks, <CODE>/store</CODE>,
+til konfigurasjonsskriptet.  Dette er også tilfelle for pakken
+<CODE>sharutils</CODE>.  Vi skriver derfor:
+
+<LISTING>
+    $ <I>./configure --prefix=/store</I>
+</LISTING>
+
+I noen tilfeller kan det også være nødvendig å spesifisere hvilken
+c-kompilator man skal benytte.  Dette skulle her på installasjonen
+pr. default bli satt til <CODE>cc</CODE>, men man vet jo aldri hva som
+kommer til å hende over natten.  En enkel måte å spesifisere dette på,
+er å kjøre <CODE>configure</CODE> på følgende måte:
+
+<LISTING>
+    $ <I>CC=cc ./configure --prefix=/store</I>
+</LISTING>
+
+Etter at <CODE>configure</CODE> har kjørt ferdig behøver man
+forhåpentligvis bare å starte <CODE>make</CODE>.  Programpakken burde
+da kompilere seg ferdig uten problemer.
+
+<LISTING>
+    $ <I>make</I>
+</LISTING>
+
+<H3> Spesifisering av bibliotek </H3>
+
+Dersom du spesifiserer søkestien for bibliotek som skal benyttes under
+kompileringen (opsjonen <CODE>-L</CODE> til cc eller ld), så bør stier
+som er mest mulig standard spesifiseres.  Å spesifisere f.eks.
+``<CODE>-L/usr/local1/lib</CODE>'' er mao. en lite lur ting å gjøre --
+dette for at programmet da sansynligvis bare vil fungere på tklaben.
+Katalogen <CODE>/usr/local1</CODE> eksisterer nemlig ikke andre steder
+på installasjonen.
+
+<P>Å benytte <CODE>/usr/local</CODE> i <EM>store</EM> er generelt sett
+lite ønskelig.  Grunnen til at vi vil konvertere til <EM>store</EM> er
+jo bl.a. fordi vi ønsker å gå bort ifra et uoversiktlig
+<CODE>/usr/local</CODE>-system.  Å gjøre appliksjoner i <EM>store</EM>
+avhengig av <CODE>/usr/local</CODE> gjør ikke denne konverteringen
+enklere.
+
+
+<HR>
+<ADDRESS><A HREF="/~espensk/">eSk</A></ADDRESS>
+
+</BODY></HTML>
diff --git a/store/doc-espensk/index.html b/store/doc-espensk/index.html
new file mode 100644 (file)
index 0000000..4cca29b
--- /dev/null
@@ -0,0 +1,24 @@
+<HTML><HEAD>
+<TITLE> Store </TITLE>
+<!-- Changed by: Espen Skoglund, 24-Apr-1996 -->
+</HEAD><BODY>
+
+<H1>Store</H1>
+
+<UL>
+  <LI><A HREF="install.html"><B>Installering i Store</B></A><BR>
+    Detaljert instruksjon om hvordan man installerer applikasjoner
+    under <EM>store</EM>.  Dokumentasjonen er spesielt tilpasset
+    lokale preferanser.
+
+  <LI><A HREF="http://www.pvv.unit.no/~arnej/store/storedoc.html"><B>Store-dokumentasjon</B></A> fra PVV.<BR>
+    En nokså spinkel dokumentasjon, men inneholder en god introduksjon
+    til selve store-konseptet.  Dette er samme dokumentasjon som
+    finnes under <CODE>/store/doc/store-doc/</CODE>, og som kan
+    aksesserer fra emacs-info-sidene.
+</UL>
+
+<HR>
+<ADDRESS><A HREF="/~espensk/">eSk</A></ADDRESS>
+
+</BODY></HTML>
\ No newline at end of file
diff --git a/store/doc-espensk/install.html b/store/doc-espensk/install.html
new file mode 100644 (file)
index 0000000..5dd62d4
--- /dev/null
@@ -0,0 +1,28 @@
+<HTML><HEAD>
+<TITLE> Installerting i store </TITLE>
+<!-- Changed by: Espen Skoglund, 24-Apr-1996 -->
+</HEAD><BODY>
+
+<H1>Installering i store</H1>
+
+Den enkleste måten å forstå hvordan kompilering i store foregår, er
+ved å benytte et eksempel.  I dette tilfellet benytter vi GNU Sharutils.
+
+<UL>
+  <LI><A HREF="pre-install.html"><B>Forberedelse til kompilering</B></A>
+  <LI><A HREF="in-install.html"><B>Kompilering</B></A>
+  <LI><A HREF="post-install.html"><B>Arbeid etter kompileringen</B></A>
+  <LI><A HREF="spec-config.html"><B>Spesielle konfigureringer</B></A>
+    <UL>
+      <LI><A HREF="environ.html">Environment-konfigurering</A>
+      <LI><A HREF="mailcap.html">Mailcap-konfigurering</A>
+      <LI><A HREF="emacs-dir.html">Tilrettelegging av emacs-info-sider</A>
+      <LI><A HREF="emacs-default.html">Tilrettelegging
+         av emacs-konfig-filer</A>
+    </UL>
+</UL>
+
+<HR>
+<ADDRESS><A HREF="/~espensk/">eSk</A></ADDRESS>
+
+</BODY></HTML>
diff --git a/store/doc-espensk/mailcap.html b/store/doc-espensk/mailcap.html
new file mode 100644 (file)
index 0000000..3d87540
--- /dev/null
@@ -0,0 +1,91 @@
+<HTML><HEAD>
+<TITLE> Mailcap-konfigurering </TITLE>
+<!-- Changed by: Espen Skoglund, 24-Apr-1996 -->
+</HEAD><BODY>
+
+<H1> Mailcap-konfigurering </H1>
+
+Mange applikasjoner har muligheten til å håndtere spesielle
+media/fil-formater.  XV kan f.eks. håndtere en rekke grafikkformater.
+XAnim kan håndtere en rekke video-formater, osv.  Det er ønskelig at
+disse applikasjonene skal benyttes av f.eks. <CODE>metamail</CODE> og
+<CODE>netscape</CODE>.
+
+<P>For å få dette til, lager en del applikasjoner mailcap-filer som
+den benytter seg av.  <CODE>Metamail</CODE> lager f.eks. en fil
+``<CODE>/store/etc/mailcap</CODE>'', og <CODE>netscape</CODE> lager en
+fil ``<CODE>/store/lib/netscape/mailcap</CODE>''.  Disse filene
+genereres ut ifra innholder av filene som finnes under:
+
+<BLOCKQUOTE>
+  <CODE>/store/etc/mailcaps</CODE>
+</BLOCKQUOTE>
+
+I denne katalogen eksisterer en del filer med navn på formen:
+
+<BLOCKQUOTE>
+  <CODE>mailcap-<I>&lt;navn&gt;</I>-<I>&lt;prioritet&gt;</I></CODE>
+</BLOCKQUOTE>
+
+Hver av disse filene inneholder &eacute;n eller flere mailcap-entryer
+som tilsammen bygger opp den fullstendige mailcap-filen.
+``<EM>Navn</EM>'' forteller hvilken applikasjon de aktuelle
+mailcap-entryene gjelder for (f.eks. <CODE>xv</CODE> eller
+<CODE>xanim</CODE>).  ``<EM>Prioritet</EM>'' forteller hvilken
+prioritet disse mailcap-entryene har.  Vi har f.eks. en fil,
+``<CODE>mailcap-arena-9</CODE>'', som inneholder:
+
+<LISTING>
+    text/html; /store/bin/arena %s
+</LISTING>
+
+og en fil, ``<CODE>mailcap-netscape-4</CODE>'', som inneholder
+
+<LISTING>
+    text/html; /store/bin/netscape -remote openFile\\(%s\\)
+</LISTING>
+
+Begge mailcap-entryene gjelder for <EM>content-typen</EM>;
+``<CODE>text/html</CODE>''.  Netscape sitt mailcap-entry blir derimot
+foretrukket fordi den har bedre prioritet.
+
+<P>Flere felter kan også spesifiseres i mailcap-entryen.  De
+applikasjonene som ikke forstår dette (f.eks. <CODE>netscape</CODE>),
+filtrerer ut ukjent informasjon før den genererer sin egen
+mailcap-fil.  Feltene blir puttet sammen slik at de danner en mest
+mulig fullstendig mailcap-entry.  La oss f.eks. tenke oss at
+<CODE>frame</CODE> hadde muligheten til å håndtere PDF-dokumenter.
+Dersom vi ga argumentet ``<CODE>-savepdf</CODE>'' til
+<CODE>imaker</CODE>, ville dokumentet bli lagret i PDF-format.  Vi
+kunne da hatt følgende situasjon:
+
+<P>``<CODE>mailcap-acroread-5</CODE>'' inneholder:
+
+<LISTING>
+    application/pdf; /store/bin/acroread %s ; \
+            description = "Portable Document Format"
+</LISTING>
+
+``<CODE>mailcap-frame-9</CODE>'' inneholder:
+
+<LISTING>
+    application/pdf; /store/opt/frame5/bin/imaker -run_in_fg -f %s ; \
+            compose = /store/opt/frame5/bin/imaker -run_in_fg -savepdf -f %s
+</LISTING>
+
+Siden <CODE>acroread</CODE> har prioritet 5, og <CODE>imaker</CODE>
+prioritet 9, ville <CODE>acroread</CODE> bli benyttet fremfor
+<CODE>imaker</CODE> for å vise PDF-dokumenter.  <CODE>Imaker</CODE> er
+derimot alene om å kunne lage PDF-dokumenter, og den resulterene
+mailcap-entryen ville derfor bli:
+
+<LISTING>
+    application/pdf; /store/bin/acroread %s ; \
+            description = "Portable Document Format" ; \
+            compose = /store/opt/frame5/bin/imaker -run_in_fg -savepdf -f %s
+</LISTING>
+
+<HR>
+<ADDRESS><A HREF="/~espensk/">eSk</A></ADDRESS>
+
+</BODY></HTML>
diff --git a/store/doc-espensk/post-install.html b/store/doc-espensk/post-install.html
new file mode 100644 (file)
index 0000000..3ae9853
--- /dev/null
@@ -0,0 +1,303 @@
+<HTML><HEAD>
+<TITLE> Arbeid etter kompileringen </TITLE>
+<!-- Changed by: Espen Skoglund, 23-Apr-1996 -->
+</HEAD><BODY>
+
+<H1>Arbeid etter kompileringen</H1>
+
+<OL>
+<LI><H3>Make install</H3>
+  Når du har kompilert ferdig programpakken i skyggetreet, gjenstår
+  det bare å installere pakken.  Dette består som oftest i å skrive:
+
+  <LISTING>
+    $ <I>make install</I>
+  </LISTING>
+
+  Dersom du har konfigurert makefilene riktig, eller kjørt
+  <CODE>configure</CODE> med korrekte argumenter, vil binærfiler,
+  bibliotek, manualer, etc. bli installert under
+  <CODE>/store/bin</CODE>, <CODE>/store/lib</CODE>,
+  <CODE>/store/man</CODE>, osv.
+
+<P><LI><H3>Postinst</H3>
+  Disse filene må nå flyttes over til versjonstreet, og symbolske
+  lenker fra linktreet til versjonstreet må opprettes.  Kommandoen
+  <CODE>postinst</CODE> gjør dette for deg.
+
+  <LISTING>
+    $ <I>postinst</I>
+    Architecture suffix [hp700ux9] ? 
+    Server [tklab1] ? 
+    Application [sharutils] ? 
+    Version [4.2] ? 
+    Linktree [tklab1] ? 
+  </LISTING>
+
+  Som ved <CODE>shadow</CODE>-kommandoen, blir du også her konfrontert
+  med en del spørsmål.  Og som ved <CODE>shadow</CODE>-kommandoen, vil
+  default-verdiene som regel være korrekte.
+
+  <P>Hva <CODE>postinst</CODE>-kommandoen egentlig gjør, er at den
+  søker gjennom hele linktreet og finner de filene som ikke er
+  sumbolske linker, og som er yngre en 10 minutter gammel.  Når den
+  finner en slik fil,
+
+  <BLOCKQUOTE>
+    <CODE>/store/&lt;filsti&gt;</CODE>,
+  </BLOCKQUOTE>
+
+  vil den flytte denne til sin respektive plass i versjonstreet,
+
+  <BLOCKQUOTE>
+    <CODE>/store/store/tklab1/&lt;applikasjon&gt;/ver-&lt;versjon&gt;/&lt;filsti&gt;</CODE>.
+  </BLOCKQUOTE>
+
+  En symbolsk lenke blir så opprettet fra linktreet til denne filen.
+
+  <P><CODE>Postinst</CODE> sjekker også (ved å benytte kommandoen
+  <CODE>file</CODE>), hvilken type fil den holder på å flytte.  Dersom
+  filen er arkitekturavhengig, vil en arkitetkursuffiks bli lagt til
+  ved installeringen.  Dersom filen ikke er arkitekturavhengig, vil
+  ingen slik suffiks bli lagt til.  Ved installeringen av
+  <CODE>sharutils</CODE> vil f.eks. følgende to symbolske lenker bli
+  opprettet.
+
+  <LISTING>
+ /store/bin/shar -> /store/store/tklab1/sharutils/ver-4.2/bin/shar@hp700ux9
+ /store/info/sharutils.info -> /store/store/tklab1/sharutils/ver-4.2/info/sharutils.info
+  </LISTING>
+
+  Ved enekelte anledninger ønsker du kanskje å installere filer som er
+  eldre enn 10 minutter fra linktreet.  Dette kan du gjøre ved å gi
+  argumentet ``<CODE>-t &lt;minutter&gt;</CODE>'' til
+  <CODE>postinst</CODE>.  Du spesifiserer da en maksimalalder på
+  filene du ønsker å installere, gitt i minutter.  Dette er særlig
+  nyttig for programpakker som benytter <CODE>tar</CODE> for å
+  installere filene sine i linktreet (f.eks. emacs).
+  Modifikasjonsdatoen til de installerte filene blir da uendret, og
+  filene kan bli flere år gamle.
+
+<P><LI><H3>Spesielle konfigureringer</H3>
+  Dersom programpakken inneholder emacs-info-sider, inneholder
+  konfigurasjonskode som skal tas med i emacs, har programmer som skal
+  legges inn i diverse mailcap-filer, eller behøver at spesielle
+  environment-variabler er satt, så må dette konfigureres på en
+  spesiell måte.  Se på siden <EM>``<A
+  HREF="spec-config.html">Spesielle konfigureringer</A>''</EM> for
+  nærmere informasjon.
+
+<P><LI><H3>Register</H3>
+  Når du har gjort deg ferdig med installeringen, må du registrere
+  applikasjonen slik at de interne programmene i <EM>store</EM> vet
+  hva du har installert, og kan installere det på andre maskiner i
+  løpet av neste natt.  Dette gjøres ved å kjøre kommandien
+  <CODE>register</CODE>:
+
+  <LISTING>
+    $ <I>register</I>
+    What store [tklab1] ? 
+    What application [sharutils] ? 
+    (Info) (register) &lt;sharutils@tklab1&gt; Updating registration.
+
+    (Warning) (register) &lt;sharutils@tklab1&gt; YOU MUST RUN chkapp MANUALLY.
+
+    Full name . ... ... [] ? <I>Shar utilities</I>
+
+    Available versions are: 4.2 - choose primary:
+    Primary Version ... [4.2] ? 
+    Program Type .. ... (? for list) [] ? <I>arc</I>
+    License Type .. ... (? for list) [] ? <I>gpl</I>
+    Release level for version 4.2 [release] ? 
+    Signature . ... ... [] ? <I>eSk</I>
+    Short Description . (max 30 chars) [] ?
+       ==&gt;<I>Shell archiving utilities</I>     &lt;==
+    XXX - fix sourcecode count (TODO)
+    Online Help ... ... [none] ? 
+    Importance  ... ... [5] ? 
+    Source  ... ... ... [] ? <I>ftp://prep.ai.mit.edu/pub/gnu/sharutils-${version}.tar.gz</I>
+    Nightly Command ... [] ? 
+    Not Links . ... ... [] ? 
+    Dependencies .. ... [] ? 
+    Current description is:
+    :
+    Do you want to edit the description [N] ? <I>y</I>
+    Enter text to be appended (terminate with '.')
+    <I>Husk å fikse emacs-info-sidene.
+    .</I>
+  </LISTING>
+
+  Som vi ser, blir en del default-verdier presentert også her.  Hva de
+  forskjellige feltene skal inneholde er forsåvidt ganske
+  selvinnlysende.  Noen ord er allikevel på sin plass her:
+
+  <P><DL>
+  <DT><EM>Full name</EM>, <EM>Short Description</EM> og <EM>Description</EM>
+  <DD>Bør være skrevet på engelsk.  Det er planer om å lage et
+    web-grensesnitt mot <EM>store</EM>, og teksten her vil
+    sansynligvis bli engelsk.  Dersom noe tekst er skrevet på norsk,
+    og noe på engelsk vil ting se lite pent ut.  Konsistens må man
+    kunne forlange.
+
+    <P><EM>Short description</EM> blir forresten brukt til
+    bl.a. generering av rapporter.  <EM>Description</EM> blir benyttet
+    til bl.a. generering av news-meldinger.  Et eksempel på en slik
+    <EM>description</EM> kan være:
+
+    <BLOCKQUOTE><CITE>
+      Shar makes so-called shell archives out of many files, preparing
+      them for transmission by electronic mail services.  Unshar helps
+      unpacking shell archives after reception.
+    </CITE></BLOCKQUOTE>
+
+  <DT><EM>Release level</EM>
+  <DD>Forteller hvilken type utgivelse en gitt versjon av en applikasjon er
+    (eks. beta eller stable).  Dette, sammen med profileringen til et
+    gitt linktre, bestemmer hvilken versjon av appliaksjonen som skal
+    installeres i linktreet.  Følgende profileringer gjelder for
+    installasjonen (rekkefølgen av <EM>release levels</EM> forteller
+    hvordan hver profilering prioriterer utgivelsene):
+
+    <P><EM>Newer:</EM> override alpha beta gamma release stable
+      dated old obsolete prealpha
+    <BR><EM>Normal:</EM> override stable release gamma dated beta
+      old alpha obsolete prealpha
+
+    <P>For tklabben benyttes <EM>newer</EM>, og for resten av
+    installasjonen benyttes <EM>normal</EM>.  Prioriteten av
+    <EM>release levels</EM> ovenfor bestemmer hvilken versjon som skal
+    installeres av en gitt applikasjon.
+
+    <P>Eks: Vi har versjon 1.4 av en applikasjon installert i
+    <EM>store</EM>, og denne versjonen er satt til relase level,
+    ``<EM>release</EM>''.  Vi installerer nå versjon 2.001 av samme
+    applikasjon, og setter release level til ``<EM>beta</EM>''.  Dette
+    vil føre til at versjon 2.001 vil bli installert på tklaben, mens
+    versjon 1.4 blir installert andre steder.  <P>
+
+  <DT><EM>Importance</EM>
+  <DD>Forteller hvor viktig applikasjonen er.  Jo høyere tall, jo viktigere
+    er applikasjonen.  <CODE>Perl-internal</CODE> har
+    f.eks. <EM>importance</EM> 9 fordi hele <EM>store</EM> baserer seg
+    på dette filsettet.
+
+    <P>Foreløpig blir ikke dette feltet meget benyttet.  Et unntak er
+    noen lokale patcher til <CODE>perl-internal</CODE> som gjør at
+    dersom det skjer en konflikt i navnerommet (eks. to filer som
+    heter <CODE>/store/etc/config</CODE>), så vil kun det viktigeste
+    filsettet få filen installert.  <P>
+
+  <DT><EM>Source</EM>
+  <DD>Inneholder informasjon om hvor kildekoden kan bli funnet.  Dette 
+    feltet benyttes bl.a. for å kunne fortelle administratorene når en
+    ny versjon av programpakken kommer.  <EM>Store</EM> kan også
+    konfigureres slik at denne nye pakken automatisk blir hentet.
+
+    <P>På grunn av at dette feltet skal benyttes internt av
+    <EM>store</EM>, må feltet ha en gitt syntaks.  Adresser kan enten
+    spesifiseres på URL-form som vist ovenfor (ved å benytte en av
+    protokollene HTTP eller FTP), eller de kan spesifiseres på
+    følgende måte:
+
+    <BLOCKQUOTE>
+      <CODE>prep.ai.mit.edu:/pub/gnu/sharutils-${version}.tar.gz</CODE>
+    </BLOCKQUOTE>
+
+    som også spesifiserer at FTP skal benyttes.  Der det er mulig bør
+    en FTP-adresse benyttes fremfor HTTP -- dette fordi FTP i
+    motsetning til HTTP alltid kan gi en liste over innholder i en
+    katalog.  Det stedet i adressen som inneholder versjonsnummeret
+    til pakken, må også spesifiseres som vist i eksempelet.
+    <P>
+
+  <DT><EM>Nightly command</EM>
+  <DD>Spesifiserer en kommando som blir kjørt hver natt (fra skriptet
+    <CODE>cclient</CODE>), og hver gang en <CODE>linkup</CODE> blir
+    gjort på applikasjonen.  Dette er nyttig for programmer som
+    f.eks. ønsker å generere konfig-filer, indekser, etc. på grunnlag
+    av hva som ellers er installert i linktreet.
+
+    <P>Envirnoment-variabelen <CODE>$TOPDIR</CODE> blir også satt slik
+    at man kan benytte den i eventuelle skripter som blir startet.
+    Denne variabelen forteller hva filstien til rota i linktreet er
+    (typisk <CODE>/store</CODE>).  For å starte et perlskript i
+    linktreet hver natt, kan man derfor spesifisere f.eks.:
+
+    <BLOCKQUOTE>
+      <CODE>perl $TOPDIR/etc/make-emacs-dir.pl</CODE>
+    </BLOCKQUOTE>
+    
+    Flere kommandoer kan dessuten spesifiseres ved å skille dem med
+    <CODE>;</CODE> (semikolon).
+    <P>
+
+  <DT><EM>Not Links</EM>
+  <DD>Forteller om filer som ikke er symbolske lenker, men som allikevel
+    hører med til applikasjonen.  Dette kan f.eks. være indeks-filer
+    generert av en <EM>nightly command</EM>, og spesifiseres som et
+    <EM>perl regular expression</EM> med filnavn relativt til
+    linktre-rota.  Applikasjonen <CODE>perl-internal</CODE> genererer
+    f.eks. news-meldinger under <CODE>/store/news</CODE>, og har
+    derfor følgende <EM>notlinks regexp</EM>:
+
+    <BLOCKQUOTE>
+      <CODE>news/.*</CODE>
+    </BLOCKQUOTE>
+
+    Dette forhindrer at filene under <CODE>/store/news</CODE> blir
+    slettet av <CODE>cclient</CODE>, eller kopiert opp i et eller
+    annet versjonstre av <CODE>postinst</CODE>.  Flere <EM>notlinks
+    regexp</EM> kan gis ved å separere dem med mellomrom (space).
+    <P>
+
+  <DT><EM>Dependencies</EM>
+  <DD>Gir en liste (separert med mellomrom) av applikasjoner som den gitte
+    applikasjonen er avhengig av.  <CODE>Exmh</CODE> er
+    f.eks. avhengig av MH, Tcl og Tk.  Dette fordi <CODE>exmh</CODE>
+    består av kode skrevet i Tcl/Tk, og det benytter seg av
+    funksjonalitet som MH tilbyr.  Dersom en eller flere av disse
+    applikasjonene mangler, vil ikke <CODE>exmh</CODE> bli installert.
+
+    <P>Det er selvfølgelig bare mulig å spesifisere applikasjoner som
+    faktisk ligger i <EM>store</EM> i <EM>dependency</EM>-listen.  Det
+    vil ellers være vanskelig for <EM>store</EM>-programmene å vite om
+    den aktuelle applikasjonen faktisk eksisterer på systemet.
+
+    <P>Det er ikke mulig å spesifisere versjonsnummer for
+    appliksjonene, og applikasjonsnavnene må samsvare nøyaktig med
+    navnet som applikasjonen har i <EM>store</EM>.  Navnene er også
+    case-sensitive, slik at ``Tcl'' ikke er det samme som ``tcl''.
+    <CODE>Exmh</CODE> har f.eks. følgende <EM>dependency</EM>-liste:
+
+    <BLOCKQUOTE>
+      <CODE>mh tcl tk</CODE>
+    </BLOCKQUOTE>
+
+  </DL>
+
+
+<P><LI><H3>Chkapp</H3>
+  Etter at <CODE>register</CODE> er kjørt, må <CODE>chkapp</CODE>
+  kjøres for å oppdatere listen over hvilke versjoner av applikasjonen
+  som eksisterer, samt hvilke arkitekturen hver versjon har støtte for.
+
+  <LISTING>
+    $ <I>chkapp</I>
+    Which master [tklab1] ? 
+    Which application [sharutils] ? 
+  </LISTING>
+
+  <CODE>Chkapp</CODE> må dessuten kjøres når der gjøres manuelle
+  forandringer i versjonstreet (f.eks. når filer blir lagt til eller
+  forandret).  Kommandoen oppdaterer nemlig en fil
+  <EM>summary.&lt;versjon&gt;</EM> som forteller om størrelse,
+  modifikasjonstid, etc. til hver fil i filsettet.  Denne filen brukes
+  som en slags cache for de skriptene som kjøres hver natt, og som
+  skal bestemme om evt. nye filer må kopieres rundt om på systemet.
+
+</OL>
+
+<HR>
+<ADDRESS><A HREF="/~espensk/">eSk</A></ADDRESS>
+
+</BODY></HTML>
diff --git a/store/doc-espensk/pre-install.html b/store/doc-espensk/pre-install.html
new file mode 100644 (file)
index 0000000..c97005d
--- /dev/null
@@ -0,0 +1,128 @@
+<HTML><HEAD>
+<TITLE> Forberedelse til kompilering i store </TITLE>
+<!-- Changed by: Espen Skoglund, 23-Apr-1996 -->
+</HEAD><BODY>
+
+<H1>Forberedelse til kompilering i store</H1>
+
+<OL>
+<LI>Velg maskin du ønsker å bruke for installasjonen.  Dersom du ønsker
+  å kompilere applikasjonen for HP-UX 10 kan tklab3 være et godt
+  valg.  Dersom du derimot ønsker å kompilere for HP-UX 9 vil nok
+  tklab1 være et bedre valg.
+
+  <P>Hvis du kompilerer for HP-UX 10, må du passe på at <EM>transition
+  linkene</EM> ikke er aktive.  Prøv f.eks. å kjøre <CODE>`ll
+  /etc'</CODE>.  Dersom du her ser en hel mengde lenker, så er lenkene
+  i bruk.  Disse fjernes ved å kjøre kommandoen
+  <CODE>tlremove</CODE> (må kjøres av root-brukeren).
+
+  <P>Vi har her tenkt å kompilere applikasjonen for HP-UX 9, og velger
+  derfor å kompilere dette på tklab1.
+
+  <LISTING>
+    $ <I>rlogin tklab1</I>
+  </LISTING>
+
+<P><LI>Når man skal arbeide med installering i <EM>store</EM>, lønner det
+  seg å være logget inn som <EM>store</EM>-brukeren.  Siden
+  <EM>store</EM>-brukeren ikke har passord, må vi først logge inn som
+  root.
+
+  <LISTING>
+    $ <I>su -</I>
+    Password:
+    $ <I>su - store</I>
+  </LISTING>
+
+<P><LI>Dersom en eller annen versjon av applikasjonen ikke eksisterer
+  i <EM>store</EM> fra før, må der lages en plass for den i
+  <EM>store</EM>-treet.  Dette gjøres under ved å lage en katalog
+  under <CODE>/store/store/tklab1</CODE> med et fornuftig navn.  I
+  vårt tilfelle velger vi å kalle applikasjonen
+  <CODE>sharutils</CODE>.
+
+  <LISTING>
+    $ mkdir /store/store/tklab1/sharutils
+    $ cd /store/store/tklab1/sharutils
+  </LISTING>
+
+<P><LI>Pakk ut applikasjonen.  Før vi pakker ut appliksjonen kan det
+  derimot være lurt å sjekke om utpakkingen lager en hel underkatalog,
+  eller om den bare legger ut alle filene i katalogen hvor du befinner
+  deg (`<CODE>tar tf -</CODE>').  Dersom dette siste er tilfellet, vil
+  det være meget lurt å pakke opp applikasjonen i en underkatalog.
+
+  <LISTING>
+    $ <I>gzip -dc ~/tmp/sharutils-4.2.tar.gz | tar xf -</I>
+  </LISTING>
+
+<P><LI>Navngi underkatalogen slik at de interne programmene i <EM>store</EM>
+  forstår hva det er som foregår.  Navnet på katalogen som inneholder
+  kildekoden skal være på formen ``<EM>src-&lt;versjon&gt;</EM>''.
+
+  <LISTING>
+    $ <I>mv sharutils-4.2 src-4.2</I>
+  </LISTING>
+  
+<P><LI>Kildekoden som ligger under katalogen vi nettopp har laget, skal
+  ikke under noen omstendighet røres.  Vi lager derfor nye
+  underkatalog hvor vi kan kompilere applikasjonene.  Disse katalogene
+  har navn på formen
+  ``<EM>src-&lt;versjon&gt;-&lt;arkitektur&gt;</EM>''.  Disse
+  katalogene inneholder symbolske lenker inn i katalogen hvor den
+  virkelige kildekoden befinner seg.  Et slikt <EM>skyggetre</EM>
+  lages med kommandoen <CODE>shadow</CODE>.
+
+  <LISTING>
+    $ <I>shadow</I>
+    Which compile store [tklab1] ? 
+    Which application [sharutils] ? 
+    What version [4.2] ? 
+    What architecture [hp700ux9] ? 
+  </LISTING>
+
+  Som vi ser, får vi en del spørsmål når vi kjører
+  <CODE>shadow</CODE>.  Disse spørsmålene har som oftest
+  default-verdier som viser seg å være korrekt.  Et par små tastetrykk
+  på return er derfor (som oftest) alt som må til for å lage et lite
+  morsomt skyggetre.
+
+  <P>Et par ord om arkitekturnavnet er kanskje på sin plass her.  Vi
+  ser av ekempelet over at HP-UX 9 presenteres ved navnet
+  ``<CODE>hp700ux9</CODE>''.  I likhet presenteres HP-UX 10 med navnet
+  ``<CODE>hp700ux10</CODE>''.  Dette betyr at arkitekturen en <EM>HP
+  Series 700</EM> maskin som kjører henholdsvis HP-UX 9 eller 10.
+  Dersom en applikasjon bare skal være gjeldene for en spesifikk
+  versjon av operativsystemet, kan dette også spesifiseres nærmere
+  (eks. ``<CODE>hp700ux905</CODE>'' og ``<CODE>hp700ux1001</CODE>'').
+
+  <P>Det er derimot ønskelig å benytte et arkitekturnavn som er mest
+  mulig generelt.  Hvis vi f.eks. vil installere noe som skal gjelde
+  både for ``<CODE>hp700ux9</CODE>'' og ``<CODE>hp700ux10</CODE>''
+  (f.eks. en binærdistribusjon av Netscape), kan vi derfor benytte
+  arkitetkturnavnet ``<CODE>hp700</CODE>''.  På samme måte kan vi
+  benytte arkitekturnavnet ``<CODE>allarchs</CODE>'' til å bety alle
+  mulige arkitekturerer.  Dette er f.eks. nyttig for applikasjoner som
+  er skrevet i et abstrakt, arkitekturuavhengig språk
+  (eks. <CODE>exmh</CODE>).
+
+  <P>Arkitekturnavnet ``<CODE>local</CODE>'' har også en spesiell
+  betydning.  Hvis vi lager et skyggetre med denne arkitekturen, så
+  kan vi gjøre store lokale patcher her.  Når vi neste gang
+  skal lage et skyggetre til f.eks. ``<CODE>hp700ux9</CODE>'', så vi
+  dette <CODE>local</CODE>-treet bli skygget -- ikke det uberørte,
+  orginale kildekodetreet.
+
+<P><LI>Vi er nå klar til å ta fatt på selve kompileringen.
+
+  <LISTING>
+    $ <I>cd src-4.2-hp700ux9</I>
+  </LISTING>
+
+</OL>
+
+<HR>
+<ADDRESS><A HREF="/~espensk/">eSk</A></ADDRESS>
+
+</BODY></HTML>
diff --git a/store/doc-espensk/spec-config.html b/store/doc-espensk/spec-config.html
new file mode 100644 (file)
index 0000000..ac267c0
--- /dev/null
@@ -0,0 +1,24 @@
+<HTML><HEAD>
+<TITLE> Spesielle kofigureringer </TITLE>
+<!-- Changed by: Espen Skoglund, 24-Apr-1996 -->
+</HEAD><BODY>
+
+<H1> Spesielle konfigureringer </H1>
+
+Dersom en programpakke inneholder emacs-info-sider, inneholder
+konfigurasjonskode som skal tas med i emacs, har programmer som skal
+legges inn i diverse mailcap-filer, eller behøver at spesielle
+environment-variabler er satt, må dette konfigureres på en spesiell
+måte.
+
+<UL>
+  <LI><A HREF="environ.html">Environment-konfigurering</A>
+  <LI><A HREF="mailcap.html">Mailcap-konfigurering</A>
+  <LI><A HREF="emacs-dir.html">Tilrettelegging av emacs-info-sider</A>
+  <LI><A HREF="emacs-default.html">Tilrettelegging av emacs-konfig-filer</A>
+</UL>
+
+<HR>
+<ADDRESS><A HREF="/~espensk/">eSk</A></ADDRESS>
+
+</BODY></HTML>
diff --git a/store/httpstore.html b/store/httpstore.html
new file mode 100644 (file)
index 0000000..1d52bf7
--- /dev/null
@@ -0,0 +1,16 @@
+<HR>
+Automatic software distribution via HTTP
+<p>
+
+STORE in WWW.
+<p>
+
+
+Automatisk oppgradering av web-browsere
+<p>
+
+.../storetar/info?app=sdf
+<p>
+
+.../storetar/list?arch=linux
+<p>
diff --git a/store/httpstore/httpstore-0.1.tar.gz b/store/httpstore/httpstore-0.1.tar.gz
new file mode 100644 (file)
index 0000000..ddfc894
Binary files /dev/null and b/store/httpstore/httpstore-0.1.tar.gz differ
diff --git a/store/httpstore/httpstore-0.2.tar.gz b/store/httpstore/httpstore-0.2.tar.gz
new file mode 100644 (file)
index 0000000..e4179e8
Binary files /dev/null and b/store/httpstore/httpstore-0.2.tar.gz differ
diff --git a/store/storepaper.ps b/store/storepaper.ps
new file mode 100644 (file)
index 0000000..40e4b85
--- /dev/null
@@ -0,0 +1,12637 @@
+%!PS-Adobe-2.0
+%%Creator: dvipsk 5.55a Copyright 1986, 1994 Radical Eye Software
+%%Title: paper.dvi
+%%Pages: 14
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 596 842
+%%EndComments
+%DVIPSCommandLine: dvips -Pljfour -o paper.ps paper
+%DVIPSParameters: dpi=600, comments removed
+%DVIPSSource:  TeX output 1995.06.19:0158
+%%BeginProcSet: tex.pro
+/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
+/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
+mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
+ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
+isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
+hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
+TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
+forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
+/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
+/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
+/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
+string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
+end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
+/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
+N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
+length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
+128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
+get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
+dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
+/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
+/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
+0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
+setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
+.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}
+if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
+length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
+cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
+0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
+add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage
+userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
+known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
+/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
+65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
+0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
+{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
+getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
+ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
+RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
+false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
+round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
+rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
+{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
+B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
+4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
+p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
+a}B /bos{/SS save N}B /eos{SS restore}B end
+%%EndProcSet
+%%BeginProcSet: special.pro
+TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N
+/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen
+false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B
+/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit
+div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{
+/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{
+10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B
+/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale
+true def end /@MacSetUp{userdict /md known{userdict /md get type
+/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup
+length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{}
+N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath
+clippath mark{transform{itransform moveto}}{transform{itransform lineto}
+}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
+itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
+closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39
+0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N
+/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1
+scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get
+ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
+not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0
+TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR
+pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1
+-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg
+TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg
+sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr
+0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add
+2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp
+{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72
+div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray}
+N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict
+maxlength dict begin /magscale false def normalscale currentpoint TR
+/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
+/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx
+psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy
+scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR
+/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{
+psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
+roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
+moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict
+begin /SpecialSave save N gsave normalscale currentpoint TR
+@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial
+{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
+closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
+sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
+}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
+CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
+lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath
+}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{
+end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin}
+N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{
+/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX
+SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X
+/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad
+yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end
+%%EndProcSet
+TeXDict begin 39158280 55380996 1000 600 600 (paper.dvi)
+@start /Fa 1 66 df<0000380000000038000000007C000000007C000000007C000000
+00FE00000000FE000000019F000000019F000000039F800000030F800000030F80000006
+07C000000607C000000C07E000000C03E000001C03F000001801F000001801F000003000
+F800003000F800007000FC00007FFFFC00007FFFFC0000C0003E0000C0003E000180003F
+000180001F000380001F800300000F800300000F8007000007C01F80000FE0FFE0007FFE
+FFE0007FFE27237DA22D>65 D E /Fb 1 3 df<6000000006F00000000FF80000001F7C
+0000003E3E0000007C1F000000F80F800001F007C00003E003E00007C001F0000F8000F8
+001F00007C003E00003E007C00001F00F800000F81F0000007C3E0000003E7C0000001FF
+80000000FF000000007E000000007E00000000FF00000001FF80000003E7C0000007C3E0
+00000F81F000001F00F800003E007C00007C003E0000F8001F0001F0000F8003E00007C0
+07C00003E00F800001F01F000000F83E0000007C7C0000003EF80000001FF00000000F60
+00000006282874A841>2 D E /Fc 2 63 df<7FFFFFF8FFFFFFFCFFFFFFFCFFFFFFFCFF
+FFFFFC7FFFFFF81E067C9927>45 D<3000000078000000FE000000FF000000FFC000007F
+E000003FF800000FFC000007FE000001FF800000FFC000003FF000001FF800000FFE0000
+03FF000001FFC000007FE000003FF800000FFC000007FC000007FC00000FFC00003FF800
+007FE00001FFC00003FF00000FFE00001FF800003FF00000FFC00001FF800007FE00000F
+FC00003FF800007FE00000FFC00000FF000000FE00000078000000300000001E287CAA27
+>62 D E /Fd 30 122 df<FFFFF0FFFFF0FFFFF0FFFFF0FFFFF014057F921A>45
+D<FCFCFCFCFCFC0606798515>I<000000300000007800000078000000F8000000F00000
+00F0000001F0000001E0000001E0000003E0000003C0000007C000000780000007800000
+0F8000000F0000000F0000001F0000001E0000001E0000003E0000003C0000003C000000
+7C0000007800000078000000F8000000F0000001F0000001E0000001E0000003E0000003
+C0000003C0000007C0000007800000078000000F8000000F0000000F0000001F0000001E
+0000001E0000003E0000003C0000003C0000007C00000078000000F8000000F0000000F0
+000001F0000001E0000001E0000003E0000003C0000003C0000007C00000078000000780
+00000F8000000F0000000F0000001F0000001E0000003E0000003C0000003C0000007C00
+00007800000078000000F8000000F0000000F0000000600000001D4B7CB726>I<000300
+0000070000001F0000007F000007FF0000FFFF0000FFFF0000FFFF0000FFBF0000F83F00
+00003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00
+00003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00
+00003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00
+00003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00007FFFFF
+807FFFFF807FFFFF807FFFFF807FFFFF8019327AB126>49 D<003FE00000FFF80003FFFE
+0007FFFF000FFFFF801FC07FC03F001FE03E000FF07E0007F07C0003F8FC0001F8F80001
+F8780001FC380001FC300000FC100000FC000000FC000001FC000001FC000001F8000001
+F8000003F8000003F0000007F0000007E000000FC000001FC000001F8000003F0000007E
+000000FC000001F8000003F0000007E000000F8000001F0000003E0000007C000000F800
+0001F0000003E0000007C000000F8000001F0000003E0000007FFFFFFC7FFFFFFC7FFFFF
+FC7FFFFFFC7FFFFFFC1E327DB126>I<001FE00000FFFC0003FFFF0007FFFF800FFFFFC0
+1FF03FE03FC00FF07F0007F03E0003F81C0003F81C0001F8080001F8000001F8000003F8
+000003F8000003F0000007F000000FE000001FE000003FC00001FF80007FFF00007FFE00
+007FF800007FFE00007FFF0000003FC000000FE0000007F0000003F8000001F8000001FC
+000000FC000000FE000000FE000000FE000000FE000000FE000000FE400000FE600001FC
+700001FCF80003F8FC0007F87F000FF03FE03FE01FFFFFC00FFFFF8003FFFF0000FFFC00
+001FE0001F337DB126>I<00003FC00000003FC00000007FC00000006FC0000000EFC000
+0001EFC0000001EFC0000003CFC0000003CFC0000007CFC000000F8FC000000F8FC00000
+1F0FC000001F0FC000003F0FC000007E0FC000007E0FC00000FC0FC00000FC0FC00001F8
+0FC00003F00FC00003F00FC00007E00FC00007E00FC0000FC00FC0001FC00FC0001F800F
+C0003F000FC0003F000FC0007E000FC000FE000FC000FFFFFFFF80FFFFFFFF80FFFFFFFF
+80FFFFFFFF80FFFFFFFF8000000FC00000000FC00000000FC00000000FC00000000FC000
+00000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000
+000FC00021317EB026>I<000007FC000000007FFF00000001FFFFC0000007FFFFE00000
+1FFFFFF000003FF80FF800007FC001FC0000FF0000FE0001FE00007E0003F8007E7F0007
+F003FFFF000FE007FFFF000FC00FFFFF801FC01FFFFF801F803FC3FF803F807F00FF803F
+00FE007F807F00FC003FC07E01FC003FC07E01F8001FC07E01F8001FC0FC01F8001FC0FC
+03F0000FC0FC03F0000FC0FC03F0000FC0FC03F0000FC0FC03F0000FC0FC03F0000FC0FC
+03F0000FC0FC03F0000FC0FC01F8001F807E01F8001F807E01F8001F807E01FC003F807F
+00FC003F003F00FE007F003F807F00FE001F803FC3FC001FC01FFFF8000FC00FFFF0000F
+E007FFE00007F003FFC00003F8007E000001FE0000000000FF00000000007FC0001FC000
+3FF801FF80001FFFFFFF000007FFFFFC000001FFFFF00000007FFFC000000007FC00002A
+347CB333>64 D<003FC00003FFF8000FFFFC001FFFFE001FFFFF001FC03F801E001FC018
+000FC010000FE0000007E0000007E0000007E0000007E0000007E00003FFE0007FFFE003
+FFFFE00FFFFFE01FFF87E03FE007E07F0007E0FE0007E0FC0007E0FC0007E0FC0007E0FE
+000FE0FE001FE07F807FE07FFFFFE03FFFFFE01FFFF7E00FFFC7E003FC07E01B217DA025
+>97 D<FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC
+000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC
+000000FC000000FC03F800FC3FFE00FCFFFF00FDFFFF80FFFFFFC0FFE07FE0FF800FF0FE
+0007F0FC0003F8FC0003F8FC0001F8FC0001F8FC0000FCFC0000FCFC0000FCFC0000FCFC
+0000FCFC0000FCFC0000FCFC0000FCFC0001FCFC0001F8FC0001F8FC0003F8FE0003F0FF
+0007F0FF801FE0FFE07FC0FFFFFFC0FDFFFF80FCFFFE00FC3FFC00FC07F0001E347AB328
+>I<000FF800007FFF0001FFFFE003FFFFF007FFFFF00FF807F01FC001E01F8000603F00
+00003F0000007E0000007E000000FE000000FC000000FC000000FC000000FC000000FC00
+0000FC000000FC000000FE0000007E0000007E0000003F0000003F0000101F8000701FE0
+01F00FF80FF007FFFFF003FFFFF001FFFFE0007FFF00000FF8001C217DA022>I<000000
+FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000
+FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000
+FC003F80FC00FFF0FC03FFFCFC07FFFFFC0FFFFFFC1FF80FFC1FE003FC3F8001FC3F0000
+FC7F0000FC7E0000FC7E0000FCFE0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000
+FCFC0000FCFC0000FCFC0000FC7E0000FC7E0000FC7F0001FC3F0001FC3F8003FC1FC007
+FC1FF81FFC0FFFFFFC07FFFEFC03FFF8FC01FFE0FC003F80FC1E347DB328>I<001FC000
+00FFF80001FFFC0003FFFF0007FFFF800FF03F801FC00FC03F8007C03F0003E07E0003E0
+7E0001E07C0001F0FFFFFFF0FFFFFFF0FFFFFFF0FFFFFFF0FFFFFFF0F8000000F8000000
+FC000000FC0000007C0000007E0000007E0000003F0000001F8000101FE000F00FF807F0
+07FFFFF003FFFFF001FFFFE0007FFF00000FF8001C217DA022>I<0003FF000FFF001FFF
+003FFF007FFF00FE0101F80001F80001F00003F00003F00003F00003F00003F00003F000
+03F00003F00003F00003F000FFFFF0FFFFF0FFFFF0FFFFF0FFFFF003F00003F00003F000
+03F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F000
+03F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F000
+03F00018347FB317>I<001FC01F80007FF1FF8000FFFFFFC001FFFFFFC003FFFFFFC007
+F07F00000FC01F80000F800F80000F800F80001F0007C0001F0007C0001F0007C0001F00
+07C0001F0007C0001F0007C0000F800F80000F800F80000FC01F800007F07F000007FFFE
+00000FFFFC00000FFFF800001F7FF000001F1FC000001F000000001F000000001F000000
+001F800000000FFFFE00000FFFFFE00007FFFFF8000FFFFFFC001FFFFFFE003FFFFFFF00
+7F0001FF007E00007F00FE00003F80FC00001F80FC00001F80FC00001F80FE00003F807E
+00003F007F8000FF003FF007FE001FFFFFFC000FFFFFF80003FFFFE00000FFFF8000001F
+FC000022317EA026>I<FC000000FC000000FC000000FC000000FC000000FC000000FC00
+0000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00
+0000FC000000FC000000FC000000FC07F800FC3FFE00FC7FFF00FDFFFF80FFFFFFC0FFE0
+7FC0FF801FC0FF000FE0FF0007E0FE0007E0FE0007E0FC0007E0FC0007E0FC0007E0FC00
+07E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC00
+07E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC00
+07E01B347AB328>I<FEFEFEFEFEFEFE0000000000000000000000007E7E7E7E7E7E7E7E
+7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E07347BB313>I<FC000000
+FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000
+FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000
+FC000FF0FC001FE0FC003FC0FC007F80FC00FF00FC01FE00FC03FC00FC07F800FC0FF000
+FC1FE000FC3FC000FC7F8000FCFF0000FDFF0000FFFF8000FFFF8000FFFFC000FFE7E000
+FFC7E000FF83F000FF01F800FE01FC00FC00FC00FC007E00FC003F00FC003F80FC001F80
+FC000FC0FC0007E0FC0007E0FC0003F0FC0001F8FC0001FC1E347AB326>107
+D<FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC
+FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC06347AB313>I<FC07F8003FC0FC3FFE01FFF0
+FC7FFF03FFF8FDFFFF8FFFFCFFFFFFDFFFFEFFE07FFF03FEFF801FFC00FEFF000FF8007F
+FF0007F8003FFE0007F0003FFE0007F0003FFC0007E0003FFC0007E0003FFC0007E0003F
+FC0007E0003FFC0007E0003FFC0007E0003FFC0007E0003FFC0007E0003FFC0007E0003F
+FC0007E0003FFC0007E0003FFC0007E0003FFC0007E0003FFC0007E0003FFC0007E0003F
+FC0007E0003FFC0007E0003FFC0007E0003FFC0007E0003FFC0007E0003FFC0007E0003F
+FC0007E0003F30217AA03D>I<FC07F800FC3FFE00FC7FFF00FDFFFF80FFFFFFC0FFE07F
+C0FF801FC0FF000FE0FF0007E0FE0007E0FE0007E0FC0007E0FC0007E0FC0007E0FC0007
+E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007
+E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007
+E01B217AA028>I<000FF80000003FFE000000FFFF800003FFFFE00007FFFFF0000FF80F
+F8001FE003FC001F8000FC003F00007E003F00007E007E00003F007E00003F007C00001F
+00FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80
+FE00003F807E00003F007E00003F007F00007F003F8000FE001FC001FC001FE003FC000F
+F80FF80007FFFFF00003FFFFE00000FFFF8000003FFE0000000FF8000021217EA026>I<
+FC03F800FC3FFE00FCFFFF00FDFFFF80FFFFFFC0FFE07FE0FF801FF0FE0007F0FC0007F8
+FC0003F8FC0001F8FC0001F8FC0001FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FC
+FC0000FCFC0000FCFC0001FCFC0001F8FC0001F8FC0003F8FE0007F0FF000FF0FF801FE0
+FFE07FC0FFFFFFC0FDFFFF80FCFFFE00FC3FFC00FC07F000FC000000FC000000FC000000
+FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000
+FC000000FC000000FC0000001E307AA028>I<F803C0F81FC0F83FC0F8FFC0F9FFC0FBFC
+00FFF000FFC000FF8000FF0000FF0000FE0000FE0000FE0000FC0000FC0000FC0000FC00
+00FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC00
+00FC0000FC0000FC000012217AA01A>114 D<00FFC00007FFF8001FFFFE003FFFFE003F
+FFFE007F007C00FE000C00FC000000FC000000FC000000FC000000FE0000007FC000007F
+FE00003FFFC0001FFFF0000FFFF80003FFFE00007FFE000003FF0000007F8000003F8000
+001F8000001F8040001F8060001F8078003F00FF00FF00FFFFFE00FFFFFC007FFFF8000F
+FFF00001FF800019217EA01D>I<03F00003F00003F00003F00003F00003F00003F00003
+F00003F00003F000FFFFFEFFFFFEFFFFFEFFFFFEFFFFFE03F00003F00003F00003F00003
+F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003
+F00003F00003F00003F00003F00003F80203FC1E01FFFF01FFFF00FFFF007FFC003FC018
+2B7FAA1C>I<FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC00
+07E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC00
+07E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC000FE0FC00
+0FE0FC003FE0FE00FFE0FFFFFFE07FFFFFE07FFFE7E03FFF87E00FF807E01B217AA028>
+I<FC00003F7E00003E7E00007E7F00007E3F0000FC3F0000FC3F8000FC1F8001F81F8001
+F80FC001F00FC003F00FC003F007E007E007E007E003F007C003F00FC003F00FC001F80F
+8001F81F8001F81F8000FC1F0000FC3F00007C3E00007C3E00007E7E00003E7C00003E7C
+00003E7C00001F7800001FF800000FF000000FF000000FF00020217FA023>I<7E00003F
+003F00007F001F8000FE001FC000FC000FE001F80007E003F00003F007E00001F80FE000
+00FC0FC000007E1F8000007F3F0000003F7E0000001FFC0000000FF800000007F8000000
+03F000000003F000000007F80000000FFC0000001FFC0000003F3E0000003E1F0000007C
+1F800000FC0FC00001F807E00003F003F00007E003F00007E001F8000FC000FC001F8000
+7E003F00007F007F00003F80FE00001FC0222180A023>120 D<FE00003F7E00007E7E00
+007E3F00007E3F0000FC3F8000FC1F8001F81F8001F80FC001F80FC003F007E003F007E0
+03E007E007E003F007E003F00FC001F80FC001F80F8000F81F8000FC1F8000FC1F00007C
+1F00007E3E00003E3E00003E3E00001E3C00001F7C00001F7800000F7800000F78000007
+F0000007F0000003E0000003E0000003E0000003C0000007C00000078000000F8000000F
+8000000F0000001F0000201E0000383E00003FFC00003FFC00003FF800003FF000000FC0
+000020307FA023>I E /Fe 18 123 df<0001F800000007FC0000001F0E1800003C033C
+00007803FC0000F001FC0001E001FC0003E001F80007C001F80007C001F8000F8001F800
+1F8001F0001F0001F0003F0001F0003F0001F0003E0003E0007E0003E0007E0003E0007E
+0003E000FC0007C000FC0007C000FC0007C000FC0007C000F8000F8000F8000F81C0F800
+0F81C0F8000F81C0F8001F0380F8001F0380F8003F0380F8007F038078007F07007800DF
+07003C01DF0E001C030F0E000E0E071C0007FC03F80001F001F000222677A42A>97
+D<00007F000003FFC00007C1E0001F0070003C00380078003800F000F801E001F803E003
+F807C003F80FC003F00F8001E01F8000001F0000003F0000003E0000007E0000007E0000
+007E000000FC000000FC000000FC000000FC000000FC000000F8000000F8000000F80000
+00F8000010F8000038780000707C0000F07C0001E03C0003C01E000F000E003E000781F8
+0003FFE00000FF00001D2677A426>99 D<00007E000003FF80000FC1C0001E00E0007C00
+7000F8007001F0007003E0007007C0007007C000700F8000E01F8000E01F0001C03F0007
+803F001F007E01FC007FFFF0007FFE00007E000000FC000000FC000000FC000000FC0000
+00FC000000FC000000FC000000FC0000007C0000107C0000387C0000707C0000F03C0001
+E01E0003C01E000F000F003E000781F80003FFE00000FF00001D2677A426>101
+D<00000007C00000000FF00000001C38000000383C00000078FC000000F0FC000000F1FC
+000001F1FC000001F0F8000001E070000003E000000003E000000003E000000003E00000
+0007C000000007C000000007C000000007C000000007C00000000F800000000F80000000
+0F800000000F80000007FFFF000007FFFF800007FFFF0000001F000000001F000000001F
+000000003E000000003E000000003E000000003E000000003E000000007C000000007C00
+0000007C000000007C000000007C00000000F800000000F800000000F800000000F80000
+0000F800000001F000000001F000000001F000000001F000000001F000000003E0000000
+03E000000003E000000003E000000003E000000007C000000007C000000007C000000007
+C00000000FC00000000F800000000F800000000F800000000F000000001F000000001F00
+0000001F0000001C1E0000003E3E0000007E3C000000FE3C000000FE38000000FC780000
+00787000000070E00000003FC00000000F00000000264C82BA19>I<00000FC00000003F
+E0000000F870C00001E019E00003C01FE00007800FE0000F000FE0001F000FC0003E000F
+C0003E0007C0007C0007C000FC000F8000F8000F8001F8000F8001F8000F8001F0001F00
+03F0001F0003F0001F0003F0001F0007E0003E0007E0003E0007E0003E0007E0003E0007
+E0007C0007C0007C0007C0007C0007C0007C0007C000F80007C001F80003C001F80003C0
+03F80003E007F00001E00FF00000E01DF000007079F000003FE3E000000F83E000000003
+E000000003E000000007C000000007C000000007C000000007C00000000F80001C000F80
+003E001F00007E001F0000FE003E0000FE003C0000FC007800007801F000003C07C00000
+1FFF80000007FC00000023367CA426>I<0007E0000000FFE0000001FFE0000000FFE000
+000007C000000007C000000007C000000007C00000000F800000000F800000000F800000
+000F800000001F000000001F000000001F000000001F000000003E000000003E00000000
+3E000000003E000000007C000000007C0FC000007C3FF000007CF0780000F9C03C0000FB
+801E0000FF001E0000FE001E0001FC001F0001FC001F0001F8001F0001F8001E0003F000
+3E0003F0003E0003E0003E0003E0003E0007C0007C0007C0007C0007C0007C0007C000F8
+000F8000F8000F8000F8000F8000F8000F8001F0001F0001F0001F0003E0381F0003E038
+1F0003E0383E0007C0703E0007C0703E0007C0703E000780E07C000780E07C000781C07C
+000781807C00078380F800038700F80001FE00700000F800253B7AB92A>I<0001C00003
+E00007F00007F00007E00007C00003800000000000000000000000000000000000000000
+0000000000000000000000000000F00003FC00071E000E0E001C0F00181F00381F00381F
+00701F00703E00703E00E03E00E07C00E07C00007C0000F80000F80000F80001F00001F0
+0003E00003E00003E00007C00007C0E007C0E00F80E00F81C00F81C01F01C01F03801F03
+801F03001E07000E0E000F1C0007F80001E000143879B619>I<001F8003FF8007FF8003
+FF80001F00001F00001F00001F00003E00003E00003E00003E00007C00007C00007C0000
+7C0000F80000F80000F80000F80001F00001F00001F00001F00003E00003E00003E00003
+E00007C00007C00007C00007C0000F80000F80000F80000F80001F00001F00001F00001F
+00003E00003E00003E00003E00007C00007C0E007C0E007C0E00F81C00F81C00F81C00F8
+3800F83800F83800F8700078700038E0001FC0000F8000113B79B915>108
+D<03E000FC0007E00007F007FF003FF8000E380F0780783C001C3C3C03C1E01E001C3E70
+03E3801F00383EE001E7000F00383FC001EE000F00703F8001EC000F00703F8001FC000F
+80703F0001F8000F80703F0001F8000F00E07E0003F0001F00E07E0003F0001F00E07C00
+03E0001F00007C0003E0001F0000F80007C0003E0000F80007C0003E0000F80007C0003E
+0000F80007C0007C0001F0000F80007C0001F0000F80007C0001F0000F80007C0001F000
+0F8000F80003E0001F0000F80003E0001F0001F01C03E0001F0001F01C03E0001F0001F0
+1C07C0003E0003E03807C0003E0003E03807C0003E0003E03807C0003E0003C0700F8000
+7C0003C0700F80007C0003C0E00F80007C0003C0C00F80007C0003C1C01F0000F80001C3
+801F0000F80000FF000E00007000007C003E2679A444>I<03E000FC000007F007FF0000
+0E380F0780001C3C3C03C0001C3E7003E000383EE001E000383FC001E000703F8001E000
+703F8001F000703F0001F000703F0001E000E07E0003E000E07E0003E000E07C0003E000
+007C0003E00000F80007C00000F80007C00000F80007C00000F8000F800001F0000F8000
+01F0000F800001F0000F800001F0001F000003E0001F000003E0003E038003E0003E0380
+03E0003E038007C0007C070007C0007C070007C0007C070007C000780E000F8000780E00
+0F8000781C000F80007818000F80007838001F00003870001F00001FE0000E00000F8000
+292679A42F>I<00007F000003FFC00007C1E0001F0070003C00780078003C00F0003E01
+E0003E03E0001E07C0001F0FC0001F0F80001F1F80001F1F00001F3F00003F3E00003F7E
+00003F7E00003F7E00003FFC00007EFC00007EFC00007EFC00007CFC0000FCF80000F8F8
+0001F8F80001F0F80003F0F80003E0780007C07C0007807C000F003C001E001E003C000E
+00F8000783E00003FFC00000FE0000202677A42A>I<000F800F80001FC03FE00038E070
+700070F0C0380070FB803C00E0FB001E00E0FE001E01C0FE001F01C0FC001F01C0F8001F
+01C0F8001F0381F0001F0381F0001F0381F0001F0001F0001F0003E0003F0003E0003F00
+03E0003F0003E0003F0007C0007E0007C0007E0007C0007E0007C0007C000F8000FC000F
+8000FC000F8000F8000F8001F8001F8001F0001F8003E0001F8003E0001F8007C0003F80
+0780003F800F00003FC01E00003EC03C00007C70F800007C3FE000007C1F8000007C0000
+0000F800000000F800000000F800000000F800000001F000000001F000000001F0000000
+01F000000003E000000003E000000003E00000007FFF800000FFFF8000007FFF00000028
+357FA42A>I<03E003F00007F00FFC000E383C0E001C3C700F001C3EE01F80383EC03F80
+383FC03F80703F803F00703F003E00703F001C00703E000000E07E000000E07C000000E0
+7C000000007C00000000F800000000F800000000F800000000F800000001F000000001F0
+00000001F000000001F000000003E000000003E000000003E000000003E000000007C000
+000007C000000007C000000007C00000000F800000000F800000000F800000000F800000
+001F000000001F000000000E00000000212679A423>114 D<0000FE000007FF80000F03
+C0001C00E0003800700070007000F000F000E001F001E003F001E003F001E003E003E001
+C003F0000001F8000001FF000001FFF00000FFFC00007FFE00003FFF00001FFF800001FF
+8000001FC000000FC0000007C0000007C03C0007C07E0007C0FE000780FE000780FC0007
+80F8000F00E0000E0060001E0070003C00380078001E03E0000FFFC00001FE00001C267A
+A422>I<000300000780000F80000F80000F80000F80001F00001F00001F00001F00003E
+00003E00003E00003E00007C00007C00FFFFFCFFFFFEFFFFFC00F80000F80000F80001F0
+0001F00001F00001F00003E00003E00003E00003E00007C00007C00007C00007C0000F80
+000F80000F80000F80001F00001F00381F00381F00703E00703E00703E00E03E00C03E01
+C03E01803E03001E06000E1C0007F80003E000173578B31C>I<00F800000003FC0000C0
+070E0001E00E0F0003E00C0F0003E01C0F0003E0380F0003E0380F0007C0701F0007C070
+1F0007C0701F0007C0E03E000F80E03E000F80E03E000F80007C000F80007C001F0000F8
+001F0000F8001F0000F8001F0001F0003E0001F0003E0001F0003E0001F0003E0003E000
+7C0003E0007C0E03E0007C0E03E0007C0E03E000F81C03E000F81C03E000F81C03E001F8
+1C03E001F83803E003F83801E006F87000F00C787000783838E0003FF01FC0000FC00F80
+272679A42D>I<00F8000E0003FC001F00070E001F800E0F003F800C0F001F801C0F001F
+80380F000F80380F000F80701F000780701F000780701F000780E03E000700E03E000700
+E03E000700007C000700007C000E0000F8000E0000F8000E0000F8000E0001F0001C0001
+F0001C0001F0001C0001F000380003E000380003E000380003E000700003E000700003E0
+00600003E000E00003E000C00003E001C00003E001800001E003000001E007000000F00E
+000000783C0000003FF00000000FC00000212679A426>I<0003C00380000FE00380001F
+F00700003FF80700007FFC0E0000783E1C0000F00FF80000E003F80001C000700001C000
+E000018001C0000000038000000007000000000E000000001C000000001C000000003800
+0000007000000001E000000003C000000007000000000E000000001C000000001C000000
+0038001C000070001C0000E0001C0001C0003800038000380007000070000FF000F0000F
+FC01E0001C1F07C000380FFFC0007807FF80007003FF0000E001FC0000E000F000002126
+7BA422>122 D E /Ff 16 118 df<1C3E7FFFFFFE7C380808778718>46
+D<0000007FC000000003FFF80000000F803E0000003C0007000000F00003800001C00000
+C0000780000060000E00000070001C00000038003800000038007000FC001C00E007FF00
+1C01C01F83800C01803E00C00E03807800E00E0700F000700E0601E0007E0E0E03C0003F
+0E1C07C0003E0E1C0F80003E0E380F80003E0E381F00003E0E381F00007C0E703E00007C
+0E703E00007C0E703E00007C0EE07C0000F81CE07C0000F81CE07C0000F81CE07C0000F8
+1CE07C0001F038E07C0001F038E07C0001F038E07C0003F070E03C0007E070E03C0007E0
+60E01E000FE0E0E01E003BE0C0E00F0073E180600781E1E3807003FF80FE0070007E007C
+003800000000003800000000001C00000000000C0000000780060000001F8003800000FE
+0001C00007F80000F800FFC000003FFFFC00000007FF0000002F3474B33B>64
+D<0003E000000FF860003E1CF000780FF000F007F001E007F003E007E007C003E00F8003
+E00F8003E01F8007C01F0007C03F0007C03F0007C07E000F807E000F807E000F807E000F
+807C001F00FC001F00FC001F06FC001F07FC003E0E7C003E0E7C007E0E7C007E0E3C00FE
+1C3C01FE1C1E039E380F0F1E3807FC0FF001F003C02020789F27>97
+D<0001FC000007FF00001F0780007C01C000F803C001F007C003E00FC007C00FC007C007
+800F8003001F8000001F0000003F0000003F0000007E0000007E0000007E0000007E0000
+007C000000FC000000FC0000007C0000007C0000007C0000407C0000E03C0001C03C0003
+801E000F000E003E000781F80003FFE00000FF00001B20789F23>99
+D<0000000F80000001FFC0000001FF800000000F800000000F800000000F800000001F00
+0000001F000000001F000000001F000000003E000000003E000000003E000000003E0000
+00007C000000007C000000007C000000007C00000000F800000000F8000003E0F800000F
+F8F800003E1DF00000780FF00000F007F00001E007F00003E007E00007C003E0000F8003
+E0000F8003E0001F8007C0001F0007C0003F0007C0003F0007C0007E000F80007E000F80
+007E000F80007E000F80007C001F0000FC001F0000FC001F0600FC001F0700FC003E0E00
+7C003E0E007C007E0E007C007E0E003C00FE1C003C01FE1C001E039E38000F0F1E380007
+FC0FF00001F003C000223478B327>I<0003F800001FFE00007E0F0000F8030001E00380
+03C0038007C003800F8003801F0003803F0007003F000F007E003E007E03F8007FFFE000
+FFFF0000FC000000FC000000FC000000FC000000F8000000F8000000F8000000F8000000
+F8000080780001C07C0003803C0007003C001E001E007C000F03F00007FFC00001FE0000
+1A20779F23>I<0000001F800000007FC0000000F0E0000001E1F0000003E3F0000003C3
+F0000007C3E0000007C1C0000007C00000000F800000000F800000000F800000000F8000
+00001F000000001F000000001F000000001F000000001F000000001F000000003E000000
+0FFFFC00000FFFFC0000003E000000003E000000007C000000007C000000007C00000000
+7C000000007C00000000F800000000F800000000F800000000F800000000F800000001F0
+00000001F000000001F000000001F000000001F000000003E000000003E000000003E000
+000003E000000003E000000007C000000007C000000007C000000007C000000007C00000
+000F800000000F800000000F800000000F800000000F000000001F000000001F00000000
+1F000000001E000000003E000000383E0000007C3C0000007E3C000000FC78000000FC70
+00000078E00000003FC00000000F80000000244382B318>I<00003E000000FF860003E1
+CF000780FF000F007F001E007F003E007E007C003E00F8003E00F8003E01F8007C01F000
+7C03F0007C03F0007C07E000F807E000F807E000F807E000F807C001F00FC001F00FC001
+F00FC001F00FC003E007C003E007C007E007C007E003C00FC003C01FC001E03FC000F0F7
+C0007FCF80001F0F8000000F8000000F8000001F0000001F0000001F0000001F0000003E
+0038003E007C007C007E007800FC00F000FC03E000780FC0003FFF00000FF80000202F7C
+9F23>I<001F00000003FF80000003FF000000001F000000001F000000001F000000003E
+000000003E000000003E000000003E000000007C000000007C000000007C000000007C00
+000000F800000000F800000000F800000000F800000001F000000001F000000001F07F00
+0001F1FFC00003E781E00003EE01F00003FC00F00003F800F00007F000F80007E000F800
+07E000F80007C000F8000FC001F0000F8001F0000F8001F0000F8001F0001F0003E0001F
+0003E0001F0003E0001F0007C0003E0007C0003E0007C0003E000F81803E000F81C07C00
+0F83807C001F03807C001F03807C001F0700F8001E0700F8001E0E00F8001E0C00F8000E
+1800F00007F000600003E00022347AB327>I<0001800003C00007E0000FC00007C00003
+000000000000000000000000000000000000000000000000000000000000000000000000
+0001F00003F800061C000C1E001C1E00381E00383E00703E00703E00707C00E07C00607C
+0000F80000F80000F80001F00001F00003E00003E00003E00007C0C007C0E007C1C00F81
+C00F81C00F83800F03800F07000F0600070C0003F80001F00013327AB118>I<03C007F0
+000FF01FFC001C78781E001C78E01F00387DC00F00387F800F00707F000F80707E000F80
+707E000F80707C000F80E0FC001F0060F8001F0000F8001F0000F8001F0001F0003E0001
+F0003E0001F0003E0001F0007C0003E0007C0003E0007C0003E000F81803E000F81C07C0
+00F83807C001F03807C001F03807C001F0700F8001E0700F8001E0E00F8001E0C00F8000
+E1800F00007F000600003E0026207A9F2B>110 D<0001FC000007FF00001F0780003C01
+C000F801E001F000F003E000F007C000F807C000F80F8000F81F8000F81F0000FC3F0000
+FC3F0000F87E0001F87E0001F87E0001F87E0001F87C0003F0FC0003F0FC0003E07C0007
+E07C0007C07C000F807C000F803C001F003C003E001E007C000E00F0000783E00003FF80
+0000FE00001E20789F27>I<03C00FC007F03FE00C78F0701C79C078387F80FC387F00FC
+707F01F8707E00F8707C0070707C0000E0F8000060F8000000F8000000F8000001F00000
+01F0000001F0000001F0000003E0000003E0000003E0000003E0000007C0000007C00000
+07C0000007C000000F8000000F8000000F8000000F8000000F000000060000001E207A9F
+20>114 D<0007F0001FFC003C1E00700700E00701E00F01C01F03C01F03C00E03C00403
+E00003F00003FF0003FFE001FFF000FFF8007FFC000FFC0000FE00007E00003E38003E7C
+003CFC003CFC003CF80078F00070E000F07001E03C07801FFF0003F80018207A9F1F>I<
+000E00001F00001F00001F00003E00003E00003E00003E00007C00007C00007C00007C00
+00F80000F800FFFFE0FFFFE001F00001F00001F00001F00003E00003E00003E00003E000
+07C00007C00007C00007C0000F80000F80000F80000F80001F00001F00001F00C01F00E0
+3E01C03E01C03E03803E03803E07003E06001E0C001E38000FF00003E000132E79AD19>
+I<01F000060003F8000F00061C001F000C1E001F001C1E001F00381E001F00383E003E00
+703E003E00703E003E00707C003E00E07C007C00607C007C0000F8007C0000F8007C0000
+F800F80001F000F80001F000F80001F000F80003E001F00003E001F00003E001F06003E0
+01F07003E003E0E003C003E0E003C003E0E003C007E0E003E007E1C003E00FE1C001E019
+E38000F071E380007FE0FF00001F803C0024207A9F29>I E /Fg
+1 64 df<00080000000800000008000000080000001C0000001C0000001C0000001C0000
+001C0000C01C01807FBEFF001FFFFC0007FFF00001FFC000007F0000007F000000FF8000
+00F7800001E3C00001C1C0000380E0000300600006003000040010000800080019197D98
+20>63 D E /Fh 29 123 df<1E007F807F80FFC0FFC0FFC0FFC07F807F801E000A0A6F89
+2C>46 D<00000007000000000F800000001F800000001F800000003F800000003F000000
+007F000000007E00000000FE00000000FC00000001FC00000001F800000003F800000003
+F000000003F000000007F000000007E00000000FE00000000FC00000001FC00000001F80
+0000003F800000003F000000007F000000007E00000000FE00000000FC00000000FC0000
+0001FC00000001F800000003F800000003F000000007F000000007E00000000FE0000000
+0FC00000001FC00000001F800000001F800000003F800000003F000000007F000000007E
+00000000FE00000000FC00000001FC00000001F800000003F800000003F000000007F000
+000007E000000007E00000000FE00000000FC00000001FC00000001F800000003F800000
+003F000000007F000000007E00000000FE00000000FC00000000FC00000000F800000000
+780000000021417BB92C>I<0003F80000000FFE0000003FFF8000007FFFC00000FFFFE0
+0001FE0FF00003F803F80007F001FC0007E000FC000FC0007E000FC0007E001F80003F00
+1F80003F003F00001F803F00001F803E00000F807E00000FC07E00000FC07E00000FC07C
+000007C0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC00
+0007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FE00000FE07E0000
+0FC07E00000FC07E00000FC07E00000FC03F00001F803F00001F803F00001F801F80003F
+001F80003F000FC0007E000FE000FE0007E000FC0007F001FC0003F803F80001FE0FF000
+00FFFFE000007FFFC000003FFF8000000FFE00000003F8000023357CB32C>I<00070000
+000F8000000F8000001F8000001F8000003F8000007F800000FF800001FF800003FF8000
+7FFF8000FFFF8000FFDF8000FF9F80007C1F8000001F8000001F8000001F8000001F8000
+001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000
+001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000
+001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000
+001F80007FFFFFE07FFFFFE0FFFFFFF07FFFFFE07FFFFFE01C3477B32C>I<000007F000
+00000FF80000001FF80000003FF80000003FF80000007EF8000000FCF8000000FCF80000
+01F8F8000003F0F8000003F0F8000007E0F800000FC0F800000FC0F800001F80F800003F
+00F800003F00F800007E00F80000FC00F80000FC00F80001F800F80003F000F80003F000
+F80007E000F8000FC000F8000FC000F8001F8000F8003F0000F8003F0000F8007E0000F8
+00FC0000F800FFFFFFFFFCFFFFFFFFFEFFFFFFFFFEFFFFFFFFFE7FFFFFFFFC000000F800
+000000F800000000F800000000F800000000F800000000F800000000F800000000F80000
+0000F800000000F80000007FFFF00000FFFFF80000FFFFF80000FFFFF800007FFFF02733
+7EB22C>52 D<7800000000FFFFFFFFC0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFC0
+FC00003F80FC00007F00FC0000FE00780000FC00000001FC00000003F800000003F00000
+0007E00000000FE00000000FC00000001F800000003F800000003F000000007F00000000
+7E00000000FE00000000FC00000001FC00000001F800000001F800000003F000000003F0
+00000007F000000007E000000007E000000007E00000000FC00000000FC00000000FC000
+00000FC00000001F800000001F800000001F800000001F800000001F800000003F800000
+003F000000003F000000003F000000003F000000003F000000003F000000003F00000000
+3F000000003F000000001E000000001E00000023357CB32C>55 D<0003F80000003FFF00
+0000FFFFC00001FFFFE00003FFFFF00007FC07F8000FF001FC001FE000FE003F80007E00
+3F80003F007F00003F007E00001F80FE00001F80FC00001F80FC00000FC0FC00000FC0FC
+00000FC0FC00000FC0FC00000FE0FC00000FE0FC00000FE0FE00000FE07E00000FE07F00
+001FE03F00001FE03F80003FE01FC0007FE00FF001FFE007F807FFE003FFFFFFE001FFFF
+F7E000FFFFC7E0003FFF0FE00007F80FC00000000FC00000000FC00000001FC00000001F
+800000003F800000003F000000007F001F00007E003F8000FE003F8001FC003F8003F800
+3F8007F8003F801FF0001FC07FE0001FFFFFC0000FFFFF000007FFFE000001FFF8000000
+3FC0000023357CB32C>57 D<00007F00000003FFE000000FFFF000003FFFF800007FFFFC
+0000FF80FE0001FE007F0003F8003F0007F0001F8007E00FCF800FC03FFF800F807FFFC0
+1F80FFFFC03F01FFFFC03E03F87FC03E03F03FE07E07E01FE07C0FC00FE07C0F8007E07C
+0F8007E0FC1F8007E0F81F0003E0F81F0003E0F81F0003E0F81F0003E0F81F0003E0F81F
+0003E0F81F0003E0F81F0003E0F81F0003E0FC1F8007E07C0F8007C07C0F8007C07C0FC0
+0FC07E07E01F803E03F03F003E03F87F003F01FFFE001F80FFFC000F807FF8000FC03FF0
+0007E00FC00007F00003C003F80007E001FE001FE000FF807FE0007FFFFFC0003FFFFF80
+000FFFFE000003FFF80000007F800023337CB22C>64 D<00FFF0000007FFFE00000FFFFF
+80001FFFFFE0001FFFFFF0001FC01FF8001FC007F8000F8001FC00070000FC00000000FE
+000000007E000000007E000000007E000000FFFE00000FFFFE00007FFFFE0003FFFFFE00
+0FFFFFFE001FFF807E003FF0007E003FC0007E007F00007E00FE00007E00FC00007E00FC
+00007E00FC00007E00FC00007E00FE00007E007F0000FE007F8003FE003FE00FFE001FFF
+FFFFFC0FFFFFFFFE07FFFFBFFE01FFFE1FFE003FF003FC27247CA32C>97
+D<7FF0000000FFF8000000FFF8000000FFF80000007FF800000001F800000001F8000000
+01F800000001F800000001F800000001F800000001F800000001F800000001F800000001
+F800000001F81FC00001F8FFF80001FBFFFE0001FFFFFF0001FFFFFF8001FFE03FC001FF
+801FE001FF0007F001FE0003F001FC0001F801FC0001FC01F80000FC01F80000FC01F800
+00FE01F800007E01F800007E01F800007E01F800007E01F800007E01F800007E01F80000
+7E01F800007E01F80000FE01FC0000FC01FC0000FC01FC0001F801FE0003F801FE0007F0
+01FF000FF001FF801FE001FFE07FC001FFFFFF8001FFFFFF0001FBFFFE0001F8FFF00000
+F01F800027337FB22C>I<0003FFC000001FFFFC00007FFFFE0001FFFFFE0003FFFFFF00
+07FC007F000FF0007F000FE0003E001FC0001C003F800000003F000000007F000000007E
+000000007E00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00
+000000FC00000000FC000000007E000000007E000000007F000000003F00000F003F8000
+1F801FC0001F800FE0003F800FF0007F0007FC01FF0003FFFFFE0001FFFFFC00007FFFF8
+00001FFFE0000003FE000021247AA32C>I<00000FFE0000001FFF0000001FFF0000001F
+FF0000000FFF000000003F000000003F000000003F000000003F000000003F000000003F
+000000003F000000003F000000003F000000003F000003F03F00001FFE3F0000FFFFBF00
+01FFFFFF0003FFFFFF0007FC0FFF000FF003FF001FE001FF001FC000FF003F80007F003F
+00007F007E00003F007E00003F00FE00003F00FC00003F00FC00003F00FC00003F00FC00
+003F00FC00003F00FC00003F00FC00003F00FC00003F00FE00003F007E00007F007E0000
+7F007F0000FF003F0000FF001F8001FF001FC003FF000FF007FF0007F81FFF0003FFFFFF
+FC01FFFFBFFE00FFFF3FFE003FFC3FFE0007F01FFC27337DB22C>I<0003FE0000001FFF
+C000007FFFF00001FFFFF80003FFFFFC0007FE03FE000FF800FF000FE0003F801FC0001F
+803F80001FC03F00000FC07F00000FC07E00000FE07E000007E0FC000007E0FFFFFFFFE0
+FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFC0FC00000000FE000000007E000000007E
+000000007F000000003F000003C03F800007E01FC00007E00FF0000FE007F8003FC007FE
+00FFC001FFFFFF8000FFFFFF00003FFFFC00000FFFF0000001FF800023247CA32C>I<00
+000001F00007F80FFC001FFE3FFE007FFFFFFF01FFFFFFFF03FFFFFE7F03FC0FF83F07F0
+03F81E0FE001FC000FC000FC001FC000FE001F80007E001F80007E001F80007E001F8000
+7E001F80007E001F80007E001FC000FE000FC000FC000FE001FC0007F003F80003FC0FF0
+0007FFFFF00007FFFFE0000FFFFF80000F9FFE00000F87F800000F800000000F80000000
+0F800000000FC000000007E000000007FFFFE00003FFFFFE0007FFFFFF800FFFFFFFE01F
+FFFFFFF03FC0001FF83F000003F87E000000FC7C0000007CFC0000007EF80000003EF800
+00003EF80000003EF80000003EFC0000007E7E000000FC3F800003F83FE0000FF81FFC00
+7FF00FFFFFFFE003FFFFFF8000FFFFFE00003FFFF8000003FF800028387EA42C>103
+D<7FF000000000FFF800000000FFF800000000FFF8000000007FF80000000001F8000000
+0001F80000000001F80000000001F80000000001F80000000001F80000000001F8000000
+0001F80000000001F80000000001F80000000001F80FE0000001F87FFC000001F9FFFE00
+0001FBFFFF000001FFFFFF000001FFF03F800001FFC01F800001FF801FC00001FF000FC0
+0001FE000FC00001FC000FC00001FC000FC00001F8000FC00001F8000FC00001F8000FC0
+0001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC0
+0001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC0
+0001F8000FC00001F8000FC00001F8000FC00001F8000FC0007FFFE0FFFF00FFFFF1FFFF
+80FFFFF1FFFF80FFFFF1FFFF807FFFE0FFFF0029337FB22C>I<00078000000FC000001F
+E000001FE000001FE000001FE000000FC000000780000000000000000000000000000000
+0000000000000000000000000000000000007FFFC0007FFFE000FFFFE0007FFFE0007FFF
+E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007
+E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007
+E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0007FFF
+FFFCFFFFFFFEFFFFFFFEFFFFFFFE7FFFFFFC1F3479B32C>I<7FE0000000FFF0000000FF
+F0000000FFF00000007FF000000001F000000001F000000001F000000001F000000001F0
+00000001F000000001F000000001F000000001F000000001F000000001F01FFFF001F03F
+FFF801F03FFFF801F03FFFF801F01FFFF001F000FE0001F001FC0001F003F80001F007F0
+0001F00FE00001F01FC00001F03F800001F07F000001F0FE000001F1FC000001F3FC0000
+01F7FE000001FFFF000001FFFF000001FF9F800001FF0FC00001FE07E00001FC07E00001
+F803F00001F001F80001F000FC0001F000FC0001F0007E0001F0003F0001F0001F8001F0
+001F807FFFC0FFFCFFFFE1FFFEFFFFE1FFFEFFFFE1FFFE7FFFC0FFFC27337EB22C>107
+D<7FFFE00000FFFFF00000FFFFF00000FFFFF000007FFFF000000003F000000003F00000
+0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000
+03F000000003F000000003F000000003F000000003F000000003F000000003F000000003
+F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0
+00000003F000000003F000000003F000000003F000000003F000000003F000000003F000
+000003F000000003F000000003F000000003F000000003F000000003F000000003F00000
+0003F000000003F000000003F000007FFFFFFF80FFFFFFFFC0FFFFFFFFC0FFFFFFFFC07F
+FFFFFF8022337BB22C>I<7F81F003E0007FCFFC1FF800FFDFFE3FFC007FFFFEFFFC007F
+FFFFFFFE0007FE1FFC3E0007FC1FF83F0007F00FE01F0007F00FE01F0007E00FC01F0007
+E00FC01F0007E00FC01F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007
+C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007
+C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007
+C00F801F0007C00F801F0007C00F801F007FFC3FF87FF07FFC7FF8FFF0FFFE7FFCFFF87F
+FC7FF8FFF07FFC3FF87FF02D2481A32C>I<7FF00FE00000FFF87FFC0000FFF9FFFE0000
+FFFBFFFF00007FFFFFFF000001FFF03F800001FFC01F800001FF801FC00001FF000FC000
+01FE000FC00001FC000FC00001FC000FC00001F8000FC00001F8000FC00001F8000FC000
+01F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC000
+01F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC000
+01F8000FC00001F8000FC00001F8000FC00001F8000FC0007FFFE0FFFF00FFFFF1FFFF80
+FFFFF1FFFF80FFFFF1FFFF807FFFE0FFFF0029247FA32C>I<0007FC0000001FFF000000
+7FFFC00001FFFFF00003FFFFF80007FC07FC000FF001FE001FE000FF001F80003F003F80
+003F803F00001F807E00000FC07E00000FC07E00000FC0FC000007E0FC000007E0FC0000
+07E0FC000007E0FC000007E0FC000007E0FC000007E0FE00000FE07E00000FC07E00000F
+C07F00001FC03F00001F803F80003F801FC0007F001FE000FF000FF001FE0007FC07FC00
+03FFFFF80001FFFFF000007FFFC000001FFF00000007FC000023247CA32C>I<7FF01FC0
+00FFF8FFF800FFFBFFFE00FFFFFFFF007FFFFFFF8001FFE03FC001FF801FE001FF0007F0
+01FE0003F001FC0001F801FC0001FC01F80000FC01F80000FC01F80000FE01F800007E01
+F800007E01F800007E01F800007E01F800007E01F800007E01F800007E01F800007E01F8
+0000FE01FC0000FC01FC0000FC01FC0001F801FE0003F801FE0007F001FF000FF001FF80
+1FE001FFE07FC001FFFFFF8001FFFFFF0001FBFFFE0001F8FFF00001F81F800001F80000
+0001F800000001F800000001F800000001F800000001F800000001F800000001F8000000
+01F800000001F800000001F800000001F800000001F80000007FFFE00000FFFFF00000FF
+FFF00000FFFFF000007FFFE0000027367FA32C>I<7FFE003FC0FFFF01FFF0FFFF07FFF8
+FFFF1FFFFC7FFF3FFFFC003F7FC1FC003FFF01FC003FFC00F8003FF80070003FF0000000
+3FE00000003FC00000003FC00000003F800000003F800000003F800000003F000000003F
+000000003F000000003F000000003F000000003F000000003F000000003F000000003F00
+0000003F000000003F000000003F000000003F000000003F000000003F0000007FFFFFE0
+00FFFFFFF000FFFFFFF000FFFFFFF0007FFFFFE00026247EA32C>114
+D<003FF87001FFFFF80FFFFFF81FFFFFF83FFFFFF87FC00FF87E0003F8FC0001F8F80001
+F8F80001F8F80001F8FC0000F07F0000007FE000003FFF80001FFFFC000FFFFF8001FFFF
+E0003FFFF80001FFFC000007FC000000FE7800007FFC00003FFC00001FFE00001FFE0000
+1FFF00003FFF80003EFFC000FEFFF003FCFFFFFFFCFFFFFFF8FFFFFFE0F8FFFF80701FFC
+0020247AA32C>I<001E000000003F000000003F000000003F000000003F000000003F00
+0000003F000000003F000000003F000000003F0000007FFFFFFF00FFFFFFFF80FFFFFFFF
+80FFFFFFFF807FFFFFFF00003F000000003F000000003F000000003F000000003F000000
+003F000000003F000000003F000000003F000000003F000000003F000000003F00000000
+3F000000003F000000003F000000003F000000003F000000003F0003C0003F0007E0003F
+0007E0003F0007E0003F0007E0003F0007E0003F800FE0001F801FC0001FE03FC0000FFF
+FF800007FFFF000003FFFE000001FFF80000003FC000232E7EAD2C>I<7FF003FF8000FF
+F807FFC000FFF807FFC000FFF807FFC0007FF803FFC00001F8000FC00001F8000FC00001
+F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001
+F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001
+F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001
+F8000FC00001F8001FC00001F8001FC00001F8003FC00001FC007FC00000FE01FFC00000
+FFFFFFFF00007FFFFFFF80003FFFFFFF80001FFFCFFF800003FE07FF0029247FA32C>I<
+3FFF03FFF07FFF87FFF87FFF87FFF87FFF87FFF83FFF03FFF000FC007E0000FC00FC0000
+7E01F800003F01F000001F83F000001F87E000000FCFC0000007EF80000003FF80000001
+FF00000001FE00000000FC000000007C00000000FE00000001FE00000001FF00000003EF
+80000007CFC000000FC7C000000F83E000001F01F000003F01F800007E00F800007C007C
+0000F8007E0001F8003F007FFF01FFFC7FFF83FFFCFFFF83FFFE7FFF83FFFC7FFF01FFFC
+27247EA32C>120 D<7FFF01FFFCFFFF01FFFEFFFF83FFFEFFFF01FFFE7FFF01FFFC03E0
+000F8001F0000F8001F0001F8001F8001F0000F8001F0000F8003F0000FC003E00007C00
+3E00007E007E00003E007C00003E007C00003F00FC00001F00F800001F00F800000F81F8
+00000F81F000000F81F0000007C1F0000007C3E0000007C3E0000003E3E0000003E3C000
+0001E7C0000001F7C0000001F780000000FF80000000FF80000000FF000000007F000000
+007F000000003E000000003E000000007E000000007C000000007C00000000FC00000000
+F800000000F800000001F800001C01F000003E03F000007F07E000007F0FE000007F1FC0
+00007FFF8000003FFF0000003FFE0000001FFC00000007E000000027367EA32C>I<3FFF
+FFFFE07FFFFFFFF07FFFFFFFF07FFFFFFFF07FFFFFFFF07E00001FE07E00003FC07E0000
+7F807E0000FF007E0001FE003C0003FC00000007F80000000FF00000001FE00000003FC0
+0000007F80000000FF00000001FC00000003F80000000FF00000001FE00000003FC00000
+007F80000000FF00000001FE0001E003FC0003F007F80003F00FF00003F01FE00003F03F
+C00003F07F800003F0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF07FFFFFFFE02424
+7DA32C>I E /Fi 55 123 df<000003FF800000003FFFE0000001FFFFF8000007FF00FC
+00000FF8007E00003FE000FE00007FC001FF00007F8003FF0000FF8003FF0001FF0003FF
+0001FF0003FF0001FF0003FF0001FF0003FF0001FF0001FE0001FF0000FC0001FF000000
+0001FF0000000001FF0000000001FF0000000001FF0000000001FF003FFF80FFFFFFFFFF
+80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF8001FF0000FF8001FF0000FF8001FF0000FF
+8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF
+8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF
+8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF
+8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF
+8001FF0000FF8001FF0000FF807FFFFC3FFFFE7FFFFC3FFFFE7FFFFC3FFFFE7FFFFC3FFF
+FE2F3A7EB935>12 D<000003FF8F8000007FFFFF800001FFFFFF800007FE00FF80001FF8
+01FF80003FE003FF80007FC003FF80007F8003FF8000FF8003FF8001FF0001FF8001FF00
+00FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF00
+00FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF80FFFFFFFFFF80FFFFFF
+FFFF80FFFFFFFFFF80FFFFFFFFFF8001FF0000FF8001FF0000FF8001FF0000FF8001FF00
+00FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF00
+00FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF00
+00FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF00
+00FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF0000FF8001FF00
+00FF8001FF0000FF807FFFFC3FFFFE7FFFFC3FFFFE7FFFFC3FFFFE7FFFFC3FFFFE2F3A7E
+B935>I<000003FF8000FFF0000000003FFFF00FFFFC00000001FFFFF87FFFFE00000007
+FF00FDFFC03F8000000FF8003FFE000FC000003FE000FFF8001FC000007FC001FFF0003F
+E000007F8001FFE0007FE00000FF8003FFE0007FE00001FF0003FFC0007FE00001FF0003
+FFC0007FE00001FF0003FFC0007FE00001FF0001FFC0007FE00001FF0000FFC0003FC000
+01FF00007FC0001F800001FF00007FC00000000001FF00007FC00000000001FF00007FC0
+0000000001FF00007FC00000000001FF00007FC00000000001FF00007FC007FFF000FFFF
+FFFFFFFFFFFFF000FFFFFFFFFFFFFFFFF000FFFFFFFFFFFFFFFFF000FFFFFFFFFFFFFFFF
+F00001FF00007FC0001FF00001FF00007FC0001FF00001FF00007FC0001FF00001FF0000
+7FC0001FF00001FF00007FC0001FF00001FF00007FC0001FF00001FF00007FC0001FF000
+01FF00007FC0001FF00001FF00007FC0001FF00001FF00007FC0001FF00001FF00007FC0
+001FF00001FF00007FC0001FF00001FF00007FC0001FF00001FF00007FC0001FF00001FF
+00007FC0001FF00001FF00007FC0001FF00001FF00007FC0001FF00001FF00007FC0001F
+F00001FF00007FC0001FF00001FF00007FC0001FF00001FF00007FC0001FF00001FF0000
+7FC0001FF00001FF00007FC0001FF00001FF00007FC0001FF00001FF00007FC0001FF000
+01FF00007FC0001FF00001FF00007FC0001FF00001FF00007FC0001FF00001FF00007FC0
+001FF0007FFFFC1FFFFF07FFFFC07FFFFC1FFFFF07FFFFC07FFFFC1FFFFF07FFFFC07FFF
+FC1FFFFF07FFFFC04A3A7EB950>I<FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF80FF
+FFFF80FFFFFF80FFFFFF8019087F9520>45 D<0F801FC03FE07FF0FFF8FFF8FFF8FFF8FF
+F87FF03FE01FC00F800D0D798C1B>I<00003C000000007C00000001FC00000007FC0000
+007FFC0000FFFFFC0000FFFFFC0000FFFFFC0000FF8FFC0000000FFC0000000FFC000000
+0FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000F
+FC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC
+0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC00
+00000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000
+000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC000000
+0FFC0000000FFC0000000FFC0000000FFC00007FFFFFFF807FFFFFFF807FFFFFFF807FFF
+FFFF80213779B630>49 D<000FFC0000007FFFC00001FFFFF00003FFFFFC000FE03FFE00
+1F8007FF003E0003FF803F0001FFC07FC001FFE07FE000FFE0FFE000FFF0FFF0007FF0FF
+F0007FF8FFF0007FF8FFF0007FF87FE0007FF87FE0007FF83FC0007FF80F00007FF80000
+007FF80000007FF0000000FFF0000000FFE0000000FFE0000001FFC0000001FF80000003
+FF00000003FE00000007FC0000000FF80000001FF00000001FC00000003F800000007F00
+000000FC00000001F800000003F000000007E00078000FC00078000F000078001E000078
+003C0000F000780000F000F00000F001C00001F003FFFFFFF007FFFFFFF00FFFFFFFF01F
+FFFFFFF03FFFFFFFF07FFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE02537
+7BB630>I<0003FF0000001FFFF000007FFFFC0000FC07FE0001F001FF8003C001FFC007
+C000FFC00FF000FFE00FF800FFE01FFC00FFF01FFC00FFF01FFC00FFF01FFC00FFF01FFC
+00FFF00FFC00FFF00FF800FFE007F000FFE001E001FFC0000001FFC0000001FF80000003
+FF00000003FE00000007F80000003FF000000FFFC000000FFF0000000FFFF000000007FE
+00000001FF00000000FFC00000007FE00000007FF00000007FF80000003FF80000003FFC
+0000003FFC0000003FFE1FC0003FFE3FE0003FFE7FF0003FFE7FF0003FFEFFF8003FFEFF
+F8003FFEFFF8003FFCFFF8003FFCFFF8003FFC7FF0007FF87FE0007FF83FC0007FF03F00
+00FFE01FC001FFC00FF807FF8003FFFFFF0001FFFFFC00007FFFF0000007FF000027387C
+B630>I<0000000F80000000001F80000000001F80000000003F80000000007F80000000
+00FF8000000001FF8000000001FF8000000003FF8000000007FF800000000FFF80000000
+0FFF800000001EFF800000003CFF8000000078FF80000000F8FF80000000F0FF80000001
+E0FF80000003C0FF8000000780FF8000000F80FF8000000F00FF8000001E00FF8000003C
+00FF8000007800FF800000F800FF800000F000FF800001E000FF800003C000FF800007C0
+00FF80000F8000FF80000F0000FF80001E0000FF80003C0000FF80007C0000FF8000F800
+00FF8000FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF80000001FF80000000
+01FF8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF80000000
+01FF8000000001FF8000000001FF80000003FFFFFF800003FFFFFF800003FFFFFF800003
+FFFFFF8029367DB530>I<0C000000C00F800007C00FF8007FC00FFFFFFF800FFFFFFF00
+0FFFFFFE000FFFFFFC000FFFFFF8000FFFFFF0000FFFFFE0000FFFFF80000FFFFE00000F
+FFF800000F000000000F000000000F000000000F000000000F000000000F000000000F00
+0000000F000000000F03FE00000F1FFFE0000F7FFFF8000FFC07FC000FE001FE000F8000
+FF000F0000FF800E0000FFC00000007FE00000007FE00000007FF00000007FF00000007F
+F00000007FF80000007FF81F00007FF83F80007FF87FC0007FF8FFE0007FF8FFE0007FF8
+FFE0007FF8FFE0007FF0FFC0007FF0FFC0007FF07F80007FE07E0000FFE03C0000FFC03E
+0001FF801F0001FF000F8003FE0007F01FFC0003FFFFF80001FFFFE000007FFF8000000F
+F8000025387BB630>I<00000FF8000000FFFF000003FFFF80000FF80FC0001FE001E000
+7F8003F000FF0007F001FE000FF803FE001FF807FC001FF807FC001FF80FF8001FF80FF8
+000FF01FF80007E01FF80003C03FF80000003FF00000007FF00000007FF00000007FF008
+00007FF07FF000FFF1FFFC00FFF3FFFE00FFF300FF80FFF6007FC0FFFE003FE0FFFC003F
+F0FFFC001FF0FFF8001FF8FFF8001FF8FFF8001FFCFFF0001FFCFFF0001FFEFFF0001FFE
+FFF0001FFEFFF0001FFE7FF0001FFE7FF0001FFE7FF0001FFE7FF0001FFE7FF0001FFE3F
+F0001FFE3FF0001FFE3FF0001FFC1FF0001FFC1FF0001FF80FF8001FF80FF8001FF007F8
+003FF003FC003FE001FE007FC000FF81FF80007FFFFE00003FFFFC00000FFFF0000001FF
+800027387CB630>I<3C00000000003E00000000003FE0000000003FFFFFFFFF803FFFFF
+FFFF803FFFFFFFFF803FFFFFFFFF803FFFFFFFFF007FFFFFFFFE007FFFFFFFFC007FFFFF
+FFF8007FFFFFFFF0007FFFFFFFE0007C000003E00078000007C0007800000F8000780000
+1F0000F000001E0000F000003C0000F000007C0000F00000F80000000001F00000000003
+E00000000003C00000000007C0000000000F80000000000F00000000001F00000000003F
+00000000003E00000000007E00000000007E0000000000FE0000000000FC0000000001FC
+0000000001FC0000000003FC0000000003FC0000000003FC0000000007F80000000007F8
+0000000007F8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8
+000000001FF8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF8
+000000001FF8000000001FF8000000000FF0000000000FF00000000003C0000000293A7B
+B830>I<0001FF8000000FFFF000003FFFFC00007E01FF0001F0003F8001C0001FC003C0
+000FC007800007E00F800007E00F800003F00F800003F01F800003F01FC00003F01FC000
+03F01FF00003F01FF80003F01FFE0007E01FFF8007E01FFFE00FC00FFFF00F800FFFFC1F
+0007FFFF7E0007FFFFFC0003FFFFF00001FFFFF80000FFFFFE00007FFFFF00001FFFFF80
+007FFFFFC001FFFFFFE003F8FFFFF007E03FFFF80FC01FFFF81F8007FFFC3F8001FFFC7F
+00007FFC7F00003FFE7F00000FFEFE000003FEFE000001FEFE000001FEFE000000FEFE00
+0000FEFE000000FCFE000000FC7F000000FC7F000000F87F800001F83F800001F01FC000
+03E00FF0000FC007FE007F8003FFFFFF0000FFFFFC00003FFFF0000003FF800027387CB6
+30>I<0003FF0000001FFFE000007FFFF80000FF01FC0003FE00FF0007FC007F800FF800
+3FC01FF8003FC01FF0003FE03FF0001FF07FF0001FF07FF0001FF87FF0001FF8FFF0001F
+F8FFF0001FFCFFF0001FFCFFF0001FFCFFF0001FFCFFF0001FFCFFF0001FFEFFF0001FFE
+FFF0001FFEFFF0001FFE7FF0001FFE7FF0001FFE7FF0003FFE3FF0003FFE3FF0003FFE1F
+F0007FFE0FF8007FFE0FF800FFFE07FC00DFFE01FE019FFE00FFFF9FFE007FFF1FFC001F
+FC1FFC0000201FFC0000001FFC0000001FFC0000001FF80000003FF80780003FF80FC000
+3FF01FE0003FF03FF0003FE03FF0007FC03FF0007FC03FF000FF803FE000FF001FC001FE
+001F8007FC000FE01FF80007FFFFF00003FFFFC00000FFFF0000001FF0000027387CB630
+>I<00000003E00000000000000003E00000000000000007F00000000000000007F00000
+00000000000FF8000000000000000FF8000000000000000FF8000000000000001FFC0000
+00000000001FFC000000000000003FFE000000000000003FFE000000000000003FFE0000
+00000000007FFF000000000000007FFF00000000000000FFFF80000000000000F7FF8000
+0000000001F7FFC0000000000001E7FFC0000000000001E3FFC0000000000003E3FFE000
+0000000003C1FFE0000000000007C1FFF000000000000780FFF000000000000780FFF000
+000000000F00FFF800000000000F007FF800000000001F007FFC00000000001E003FFC00
+000000003E003FFE00000000003C003FFE00000000003C001FFE00000000007C001FFF00
+0000000078000FFF0000000000F8000FFF8000000000F00007FF8000000000F00007FF80
+00000001E00007FFC000000001FFFFFFFFC000000003FFFFFFFFE000000003FFFFFFFFE0
+00000007FFFFFFFFF000000007800001FFF000000007800000FFF00000000F800000FFF8
+0000000F0000007FF80000001F0000007FFC0000001E0000003FFC0000001E0000003FFC
+0000003C0000003FFE0000003C0000001FFE0000007C0000001FFF000000780000000FFF
+000000FC0000000FFF8000FFFFF00007FFFFFF80FFFFF00007FFFFFF80FFFFF00007FFFF
+FF80FFFFF00007FFFFFF8041397DB848>65 D<FFFFFFFFFFC00000FFFFFFFFFFFC0000FF
+FFFFFFFFFF0000FFFFFFFFFFFFC000007FF00003FFE000007FF00000FFF000007FF00000
+7FF800007FF000003FFC00007FF000001FFC00007FF000001FFE00007FF000001FFE0000
+7FF000000FFF00007FF000000FFF00007FF000000FFF00007FF000000FFF00007FF00000
+0FFF00007FF000000FFF00007FF000000FFF00007FF000001FFE00007FF000001FFE0000
+7FF000001FFC00007FF000003FFC00007FF000007FF800007FF00000FFF000007FF00001
+FFC000007FF0000FFF8000007FFFFFFFFC0000007FFFFFFFFC0000007FFFFFFFFF800000
+7FF00000FFF000007FF000003FF800007FF000001FFC00007FF000000FFE00007FF00000
+07FF00007FF0000007FF80007FF0000003FFC0007FF0000003FFC0007FF0000003FFC000
+7FF0000003FFE0007FF0000003FFE0007FF0000003FFE0007FF0000003FFE0007FF00000
+03FFE0007FF0000003FFE0007FF0000003FFE0007FF0000003FFC0007FF0000003FFC000
+7FF0000007FFC0007FF000000FFF80007FF000000FFF00007FF000001FFF00007FF00000
+7FFE00007FF00001FFFC00FFFFFFFFFFFFF000FFFFFFFFFFFFC000FFFFFFFFFFFF0000FF
+FFFFFFFFF000003B397DB844>I<0000001FFE0000C0000003FFFFC001C000001FFFFFF0
+07C000007FFFFFFC0FC00001FFFC00FF1FC00007FFC0001FBFC0001FFF000007FFC0003F
+FC000001FFC0007FF0000000FFC000FFE00000007FC001FFC00000003FC003FF80000000
+3FC007FF800000001FC007FF000000000FC00FFF000000000FC00FFE0000000007C01FFE
+0000000007C01FFC0000000007C03FFC0000000003C03FFC0000000003C07FFC00000000
+03C07FFC0000000003C07FF80000000000007FF8000000000000FFF8000000000000FFF8
+000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF800000000
+0000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8
+0000000000007FF80000000000007FF80000000000007FFC0000000000007FFC00000000
+03C03FFC0000000003C03FFC0000000003C01FFC0000000003C01FFE0000000003C00FFE
+0000000007800FFF00000000078007FF00000000078007FF800000000F0003FF80000000
+1F0001FFC00000001E0000FFE00000003C00007FF00000007800003FFC000000F000001F
+FF000003E0000007FFC0000FC0000001FFFC007F800000007FFFFFFE000000001FFFFFF8
+0000000003FFFFE000000000001FFE0000003A3B7BB945>I<FFFFFFFFFF800000FFFFFF
+FFFFF80000FFFFFFFFFFFF0000FFFFFFFFFFFFC000007FF80007FFF000007FF800007FF8
+00007FF800001FFE00007FF800000FFF00007FF8000003FF80007FF8000001FFC0007FF8
+000001FFC0007FF8000000FFE0007FF80000007FF0007FF80000007FF0007FF80000003F
+F8007FF80000003FF8007FF80000003FFC007FF80000001FFC007FF80000001FFC007FF8
+0000001FFE007FF80000001FFE007FF80000001FFE007FF80000001FFE007FF80000001F
+FF007FF80000001FFF007FF80000001FFF007FF80000001FFF007FF80000001FFF007FF8
+0000001FFF007FF80000001FFF007FF80000001FFF007FF80000001FFF007FF80000001F
+FF007FF80000001FFF007FF80000001FFF007FF80000001FFE007FF80000001FFE007FF8
+0000001FFE007FF80000001FFE007FF80000001FFC007FF80000003FFC007FF80000003F
+FC007FF80000003FF8007FF80000007FF8007FF80000007FF0007FF8000000FFE0007FF8
+000000FFE0007FF8000001FFC0007FF8000003FF80007FF8000007FF00007FF800001FFE
+00007FF800007FFC00007FF80007FFF000FFFFFFFFFFFFC000FFFFFFFFFFFF0000FFFFFF
+FFFFFC0000FFFFFFFFFF80000040397DB849>I<FFFFFFFFFFFFC0FFFFFFFFFFFFC0FFFF
+FFFFFFFFC0FFFFFFFFFFFFC0007FF80003FFC0007FF800007FE0007FF800001FE0007FF8
+00000FE0007FF8000007E0007FF8000007E0007FF8000003E0007FF8000003E0007FF800
+0001E0007FF8000001E0007FF8000001E0007FF8000001F0007FF8007800F0007FF80078
+00F0007FF8007800F0007FF8007800F0007FF800780000007FF800780000007FF800F800
+00007FF800F80000007FF801F80000007FF807F80000007FFFFFF80000007FFFFFF80000
+007FFFFFF80000007FFFFFF80000007FF807F80000007FF801F80000007FF800F8000000
+7FF800F80000007FF800780000007FF800780000007FF800780000007FF800780000007F
+F800780000007FF800780000007FF800000000007FF800000000007FF800000000007FF8
+00000000007FF800000000007FF800000000007FF800000000007FF800000000007FF800
+000000007FF800000000007FF800000000007FF800000000007FF800000000FFFFFFFF00
+0000FFFFFFFF000000FFFFFFFF000000FFFFFFFF00000034397DB83C>70
+D<FFFFFFFC03FFFFFFF0FFFFFFFC03FFFFFFF0FFFFFFFC03FFFFFFF0FFFFFFFC03FFFFFF
+F0007FF8000001FFE000007FF8000001FFE000007FF8000001FFE000007FF8000001FFE0
+00007FF8000001FFE000007FF8000001FFE000007FF8000001FFE000007FF8000001FFE0
+00007FF8000001FFE000007FF8000001FFE000007FF8000001FFE000007FF8000001FFE0
+00007FF8000001FFE000007FF8000001FFE000007FF8000001FFE000007FF8000001FFE0
+00007FF8000001FFE000007FF8000001FFE000007FF8000001FFE000007FF8000001FFE0
+00007FF8000001FFE000007FFFFFFFFFFFE000007FFFFFFFFFFFE000007FFFFFFFFFFFE0
+00007FFFFFFFFFFFE000007FF8000001FFE000007FF8000001FFE000007FF8000001FFE0
+00007FF8000001FFE000007FF8000001FFE000007FF8000001FFE000007FF8000001FFE0
+00007FF8000001FFE000007FF8000001FFE000007FF8000001FFE000007FF8000001FFE0
+00007FF8000001FFE000007FF8000001FFE000007FF8000001FFE000007FF8000001FFE0
+00007FF8000001FFE000007FF8000001FFE000007FF8000001FFE000007FF8000001FFE0
+00007FF8000001FFE000007FF8000001FFE000007FF8000001FFE000007FF8000001FFE0
+00007FF8000001FFE000FFFFFFFC03FFFFFFF0FFFFFFFC03FFFFFFF0FFFFFFFC03FFFFFF
+F0FFFFFFFC03FFFFFFF044397DB84B>72 D<FFFFFFFCFFFFFFFCFFFFFFFCFFFFFFFC007F
+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
+F800007FF800007FF800007FF800FFFFFFFCFFFFFFFCFFFFFFFCFFFFFFFC1E397DB824>
+I<FFFFFFFF000000FFFFFFFF000000FFFFFFFF000000FFFFFFFF000000007FF800000000
+007FF800000000007FF800000000007FF800000000007FF800000000007FF80000000000
+7FF800000000007FF800000000007FF800000000007FF800000000007FF800000000007F
+F800000000007FF800000000007FF800000000007FF800000000007FF800000000007FF8
+00000000007FF800000000007FF800000000007FF800000000007FF800000000007FF800
+000000007FF800000000007FF800000000007FF800000000007FF800000000007FF80000
+0000007FF800000000007FF800000000007FF800000000007FF800000780007FF8000007
+80007FF800000780007FF800000780007FF800000780007FF800000F80007FF800000F00
+007FF800000F00007FF800000F00007FF800001F00007FF800001F00007FF800003F0000
+7FF800003F00007FF800007F00007FF80000FF00007FF80001FF00007FF80003FF00007F
+F8000FFE00007FF8007FFE00FFFFFFFFFFFE00FFFFFFFFFFFE00FFFFFFFFFFFE00FFFFFF
+FFFFFE0031397DB839>76 D<FFFFF80000000003FFFFF0FFFFFC0000000007FFFFF0FFFF
+FC0000000007FFFFF0FFFFFE000000000FFFFFF0007FFE000000000FFFE000007FFE0000
+00000FFFE000007BFF000000001EFFE000007BFF000000001EFFE0000079FF800000003C
+FFE0000079FF800000003CFFE0000078FFC000000078FFE0000078FFC000000078FFE000
+00787FE0000000F0FFE00000787FE0000000F0FFE00000787FE0000000F0FFE00000783F
+F0000001E0FFE00000783FF0000001E0FFE00000781FF8000003C0FFE00000781FF80000
+03C0FFE00000780FFC00000780FFE00000780FFC00000780FFE000007807FE00000F00FF
+E000007807FE00000F00FFE000007803FF00001E00FFE000007803FF00001E00FFE00000
+7803FF00001E00FFE000007801FF80003C00FFE000007801FF80003C00FFE000007800FF
+C0007800FFE000007800FFC0007800FFE0000078007FE000F000FFE0000078007FE000F0
+00FFE0000078003FF001E000FFE0000078003FF001E000FFE0000078003FF001E000FFE0
+000078001FF803C000FFE0000078001FF803C000FFE0000078000FFC078000FFE0000078
+000FFC078000FFE00000780007FE0F0000FFE00000780007FE0F0000FFE00000780003FF
+1E0000FFE00000780003FF1E0000FFE00000780003FF1E0000FFE00000780001FFBC0000
+FFE00000780001FFBC0000FFE00000780000FFF80000FFE00000780000FFF80000FFE000
+007800007FF00000FFE000007800007FF00000FFE000007800003FE00000FFE000007800
+003FE00000FFE00000FC00003FE00000FFE000FFFFFC001FC001FFFFFFF0FFFFFC001FC0
+01FFFFFFF0FFFFFC000F8001FFFFFFF0FFFFFC00070001FFFFFFF054397DB85B>I<FFFF
+FC000003FFFFF0FFFFFC000003FFFFF0FFFFFE000003FFFFF0FFFFFF000003FFFFF0007F
+FF80000003F000007FFFC0000001E000007FFFE0000001E000007BFFE0000001E0000079
+FFF0000001E0000079FFF8000001E0000078FFFC000001E00000787FFE000001E0000078
+3FFF000001E00000781FFF800001E00000780FFF800001E000007807FFC00001E0000078
+07FFE00001E000007803FFF00001E000007801FFF80001E000007800FFFC0001E0000078
+007FFE0001E0000078003FFE0001E0000078001FFF0001E0000078001FFF8001E0000078
+000FFFC001E00000780007FFE001E00000780003FFF001E00000780001FFF801E0000078
+0000FFF801E00000780000FFFC01E000007800007FFE01E000007800003FFF01E0000078
+00001FFF81E000007800000FFFC1E0000078000007FFC1E0000078000003FFE1E0000078
+000003FFF1E0000078000001FFF9E0000078000000FFFDE00000780000007FFFE0000078
+0000003FFFE00000780000001FFFE00000780000000FFFE00000780000000FFFE0000078
+00000007FFE000007800000003FFE000007800000001FFE000007800000000FFE0000078
+000000007FE0000078000000003FE0000078000000003FE0000078000000001FE00000FC
+000000000FE000FFFFFC00000007E000FFFFFC00000003E000FFFFFC00000001E000FFFF
+FC00000001E00044397DB84B>I<000000FFF800000000000FFFFF80000000007FFFFFF0
+00000001FFC01FFC00000007FF0007FF0000001FFC0001FFC000003FF000007FE000007F
+E000003FF00000FFC000001FF80001FF8000000FFC0003FF8000000FFE0007FF00000007
+FF0007FF00000007FF000FFE00000003FF800FFE00000003FF801FFC00000001FFC01FFC
+00000001FFC03FFC00000001FFE03FFC00000001FFE03FFC00000001FFE07FF800000000
+FFF07FF800000000FFF07FF800000000FFF07FF800000000FFF0FFF800000000FFF8FFF8
+00000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000
+FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF8
+00000000FFF8FFF800000000FFF87FF800000000FFF07FFC00000001FFF07FFC00000001
+FFF07FFC00000001FFF03FFC00000001FFE03FFC00000001FFE03FFE00000003FFE01FFE
+00000003FFC01FFE00000003FFC00FFF00000007FF8007FF00000007FF0007FF8000000F
+FF0003FFC000001FFE0001FFC000001FFC0000FFE000003FF800007FF000007FF000003F
+FC0001FFE000001FFF0007FFC0000007FFC01FFF00000001FFFFFFFC000000007FFFFFF0
+000000000FFFFF800000000000FFF80000003D3B7BB948>I<FFFFFFFFFF0000FFFFFFFF
+FFF000FFFFFFFFFFFE00FFFFFFFFFFFF80007FF8000FFFC0007FF80001FFE0007FF80000
+FFF0007FF800007FF8007FF800003FFC007FF800003FFC007FF800001FFE007FF800001F
+FE007FF800001FFF007FF800001FFF007FF800001FFF007FF800001FFF007FF800001FFF
+007FF800001FFF007FF800001FFF007FF800001FFF007FF800001FFE007FF800001FFE00
+7FF800003FFC007FF800003FFC007FF800007FF8007FF80000FFF0007FF80001FFE0007F
+F8000FFFC0007FFFFFFFFF00007FFFFFFFFC00007FFFFFFFE000007FF800000000007FF8
+00000000007FF800000000007FF800000000007FF800000000007FF800000000007FF800
+000000007FF800000000007FF800000000007FF800000000007FF800000000007FF80000
+0000007FF800000000007FF800000000007FF800000000007FF800000000007FF8000000
+00007FF800000000007FF800000000007FF800000000007FF800000000007FF800000000
+FFFFFFFC000000FFFFFFFC000000FFFFFFFC000000FFFFFFFC00000038397DB841>I<FF
+FFFFFFFC00000000FFFFFFFFFFE0000000FFFFFFFFFFFC000000FFFFFFFFFFFF00000000
+7FF8000FFFC00000007FF80001FFE00000007FF80000FFF00000007FF800007FF8000000
+7FF800003FFC0000007FF800003FFC0000007FF800001FFE0000007FF800001FFE000000
+7FF800001FFF0000007FF800001FFF0000007FF800001FFF0000007FF800001FFF000000
+7FF800001FFF0000007FF800001FFF0000007FF800001FFF0000007FF800001FFE000000
+7FF800001FFE0000007FF800003FFC0000007FF800003FF80000007FF800007FF0000000
+7FF80000FFE00000007FF80003FFC00000007FF8001FFF000000007FFFFFFFFC00000000
+7FFFFFFFE0000000007FFFFFFFF0000000007FF8003FFC000000007FF8000FFE00000000
+7FF80007FF800000007FF80003FF800000007FF80001FFC00000007FF80001FFE0000000
+7FF80000FFE00000007FF80000FFF00000007FF80000FFF00000007FF80000FFF0000000
+7FF80000FFF00000007FF80000FFF00000007FF80000FFF00000007FF80000FFF8000000
+7FF80000FFF80000007FF80000FFF80000007FF80000FFF80000007FF80000FFF8006000
+7FF80000FFF800F0007FF80000FFFC00F0007FF800007FFC00F0007FF800007FFC00F000
+7FF800003FFE01E0FFFFFFFC001FFE03E0FFFFFFFC000FFF07C0FFFFFFFC0003FFFF80FF
+FFFFFC0000FFFF000000000000000FFC00443A7DB848>82 D<0007FF000600003FFFE00E
+0000FFFFF81E0001FFFFFE3E0003FC01FF7E0007F0001FFE000FC00007FE001F800003FE
+003F800001FE003F000000FE007F0000007E007F0000007E007F0000003E00FF0000003E
+00FF0000003E00FF8000001E00FF8000001E00FFC000001E00FFE000001E00FFF0000000
+00FFFC000000007FFFE00000007FFFFE0000003FFFFFF000003FFFFFFE00001FFFFFFF80
+000FFFFFFFC00007FFFFFFE00003FFFFFFF00001FFFFFFF80000FFFFFFFC00003FFFFFFE
+00000FFFFFFF000001FFFFFF0000000FFFFF800000007FFF800000000FFF8000000003FF
+C000000001FFC000000000FFC0700000007FC0F00000007FC0F00000003FC0F00000003F
+C0F00000003FC0F80000003FC0F80000003F80F80000003F80FC0000003F80FE0000007F
+00FF0000007F00FF800000FE00FFE00001FC00FFF80003F800FDFF801FF000F8FFFFFFE0
+00F03FFFFF8000E007FFFE0000C0007FF000002A3B7BB935>I<3FFFFFFFFFFFFF803FFF
+FFFFFFFFFF803FFFFFFFFFFFFF803FFFFFFFFFFFFF803FF800FFF003FF807FC000FFF000
+7FC07F8000FFF0001FC07E0000FFF0000FC07E0000FFF0000FC07C0000FFF00007C07C00
+00FFF00007C0780000FFF00003C0780000FFF00003C0780000FFF00003C0780000FFF000
+03C0F80000FFF00003E0F00000FFF00001E0F00000FFF00001E0F00000FFF00001E0F000
+00FFF00001E0000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000
+0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00000000000
+00FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000
+0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00000000000
+00FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000
+0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00000000000
+00FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000
+0000000000FFF0000000000FFFFFFFFF0000000FFFFFFFFF0000000FFFFFFFFF0000000F
+FFFFFFFF00003B387DB742>I<FFFFFFFC000FFFFFC0FFFFFFFC000FFFFFC0FFFFFFFC00
+0FFFFFC0FFFFFFFC000FFFFFC0007FF80000000FC000007FF8000000078000007FF80000
+00078000007FF8000000078000007FF8000000078000007FF8000000078000007FF80000
+00078000007FF8000000078000007FF8000000078000007FF8000000078000007FF80000
+00078000007FF8000000078000007FF8000000078000007FF8000000078000007FF80000
+00078000007FF8000000078000007FF8000000078000007FF8000000078000007FF80000
+00078000007FF8000000078000007FF8000000078000007FF8000000078000007FF80000
+00078000007FF8000000078000007FF8000000078000007FF8000000078000007FF80000
+00078000007FF8000000078000007FF8000000078000007FF8000000078000007FF80000
+00078000007FF8000000078000007FF8000000078000007FF8000000078000007FF80000
+00078000007FF8000000078000007FF8000000078000007FF8000000078000003FF80000
+00078000003FF80000000F0000003FF80000000F0000001FFC0000000F0000001FFC0000
+001E0000000FFC0000003E0000000FFE0000003C00000007FF0000007800000003FF8000
+01F800000001FFC00003F000000000FFE0000FE0000000003FFC00FFC0000000001FFFFF
+FF000000000003FFFFFC000000000000FFFFF00000000000000FFF00000000423A7DB849
+>I<FFFFFFF00000FFFFE0FFFFFFF00000FFFFE0FFFFFFF00000FFFFE0FFFFFFF00000FF
+FFE000FFF000000003F00000FFF800000003E000007FF800000003C000007FFC00000007
+C000003FFC000000078000003FFE000000078000001FFE0000000F0000001FFF0000000F
+0000001FFF0000001F0000000FFF8000001E0000000FFF8000003E00000007FF8000003C
+00000007FFC000007C00000003FFC000007800000003FFE000007800000001FFE00000F0
+00000001FFF00000F000000001FFF00001F000000000FFF80001E000000000FFF80003E0
+000000007FF80003C0000000007FFC0007C0000000003FFC000780000000003FFE000F80
+000000001FFE000F00000000001FFF000F00000000001FFF001F00000000000FFF801E00
+000000000FFF803E000000000007FF803C000000000007FFC07C000000000003FFC07800
+0000000003FFE0F8000000000001FFE0F0000000000001FFF0F0000000000001FFF1F000
+0000000000FFF9E0000000000000FFFBE00000000000007FFBC00000000000007FFFC000
+00000000003FFF800000000000003FFF800000000000001FFF000000000000001FFF0000
+00000000000FFE000000000000000FFE000000000000000FFE0000000000000007FC0000
+000000000007FC0000000000000003F80000000000000003F80000000000000001F00000
+000000000001F00000000043397EB848>I<003FFE00000001FFFFE0000007FFFFF80000
+0FF007FC00000FF001FE00001FF800FF00001FF8007F80001FF8007FC0001FF8003FC000
+0FF0003FE00007E0003FE0000180003FE0000000003FE0000000003FE0000000003FE000
+000007FFE0000003FFFFE000003FFFFFE00000FFF03FE00003FF003FE0000FFC003FE000
+1FF8003FE0003FF0003FE0007FE0003FE0007FE0003FE000FFC0003FE000FFC0003FE000
+FFC0003FE000FFC0003FE000FFC0007FE0007FE0007FE0007FE000DFE0003FF0039FF000
+1FFC0F1FFFC00FFFFE0FFFC003FFF807FFC0003FE001FFC02A257DA42E>97
+D<00FE00000000FFFE00000000FFFE00000000FFFE00000000FFFE0000000007FE000000
+0003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE000000
+0003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE000000
+0003FE0000000003FE0000000003FE0000000003FE03FF000003FE1FFFE00003FE7FFFF8
+0003FFFC07FC0003FFE001FF0003FF8000FF8003FF00007FC003FE00003FE003FE00003F
+E003FE00003FF003FE00001FF003FE00001FF803FE00001FF803FE00001FF803FE00001F
+FC03FE00001FFC03FE00001FFC03FE00001FFC03FE00001FFC03FE00001FFC03FE00001F
+FC03FE00001FFC03FE00001FFC03FE00001FF803FE00001FF803FE00001FF803FE00003F
+F003FE00003FF003FE00003FE003FF00007FC003FF00007F8003FF8000FF0003FBE001FE
+0003F8F80FFC0003F07FFFF00003E01FFFC00003C007FE00002E3A7DB935>I<0001FFE0
+00000FFFFC00007FFFFF0000FF807F8001FE007F8007FC00FFC00FF800FFC00FF800FFC0
+1FF000FFC03FF0007F803FF0003F007FE0000C007FE00000007FE0000000FFE0000000FF
+E0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0
+0000007FE00000007FE00000007FF00000003FF00000003FF00001E01FF80001E00FF800
+03C00FFC0003C007FE00078001FF000F0000FFC07E00007FFFFC00000FFFF0000001FF80
+0023257DA42A>I<000000007F000000007FFF000000007FFF000000007FFF000000007F
+FF0000000003FF0000000001FF0000000001FF0000000001FF0000000001FF0000000001
+FF0000000001FF0000000001FF0000000001FF0000000001FF0000000001FF0000000001
+FF0000000001FF0000000001FF0000000001FF0000000001FF000001FF81FF00000FFFF1
+FF00003FFFF9FF0000FFC07FFF0001FE001FFF0003FC0007FF0007F80003FF000FF80001
+FF001FF00001FF003FF00001FF003FF00001FF007FE00001FF007FE00001FF007FE00001
+FF00FFE00001FF00FFE00001FF00FFE00001FF00FFE00001FF00FFE00001FF00FFE00001
+FF00FFE00001FF00FFE00001FF00FFE00001FF007FE00001FF007FE00001FF007FE00001
+FF003FE00001FF003FF00001FF001FF00001FF001FF00003FF000FF80007FF0007FC000F
+FF0003FE001FFF8000FF80FDFFFC007FFFF9FFFC001FFFE1FFFC0001FF01FFFC2E3A7DB9
+35>I<0001FF8000001FFFF000007FFFFC0000FF81FE0003FE007F8007FC003F800FF800
+1FC01FF0001FE01FF0000FE03FF0000FF03FE0000FF07FE0000FF07FE00007F87FE00007
+F8FFE00007F8FFE00007F8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFE0000000FFE0000000
+FFE0000000FFE00000007FE00000007FE00000007FE00000003FF00000003FF00000781F
+F00000780FF80000F80FF80000F007FC0003E001FF0007E000FFC03F80003FFFFF00000F
+FFFC000000FFC00025257DA42C>I<00003FE0000001FFF8000007FFFE00001FF07F0000
+3FC0FF00007F81FF8000FF01FF8001FF01FF8001FE01FF8003FE00FF0003FE007E0003FE
+003C0003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00
+000003FE00000003FE000000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF000003FE0000
+0003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE000000
+03FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003
+FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE
+00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE000000FFFFFC
+0000FFFFFC0000FFFFFC0000FFFFFC0000213A7DB91D>I<000000001F000007FE007F80
+007FFFE1FFC001FFFFFBE7E003FE07FF0FE007F801FE0FE00FF000FF0FE01FF000FF87C0
+3FE0007FC3803FE0007FC0007FE0007FE0007FE0007FE0007FE0007FE0007FE0007FE000
+7FE0007FE0007FE0007FE0003FE0007FC0003FE0007FC0001FF000FF80000FF000FF0000
+07F801FE000003FE07FC000007FFFFF80000067FFFE000000E07FE0000001E0000000000
+1E00000000001E00000000001E00000000001F00000000001FC0000000001FFFFFF80000
+1FFFFFFF80000FFFFFFFE0000FFFFFFFF00007FFFFFFF80003FFFFFFFC0003FFFFFFFE00
+0FFFFFFFFF001F80000FFF003F000000FF807F0000007F80FE0000003F80FE0000003F80
+FE0000003F80FE0000003F80FE0000003F807F0000007F003F800000FE001FC00001FC00
+0FF00007F80007FE003FF00001FFFFFFC000007FFFFF00000007FFF000002B377DA530>
+I<00FE00000000FFFE00000000FFFE00000000FFFE00000000FFFE0000000007FE000000
+0003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE000000
+0003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE000000
+0003FE0000000003FE0000000003FE0000000003FE00FF800003FE07FFE00003FE0FFFF0
+0003FE1E07F80003FE3803FC0003FE6003FE0003FEC001FE0003FF8001FF0003FF8001FF
+0003FF0001FF0003FF0001FF0003FF0001FF0003FE0001FF0003FE0001FF0003FE0001FF
+0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF
+0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF
+0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF
+00FFFFF87FFFFCFFFFF87FFFFCFFFFF87FFFFCFFFFF87FFFFC2E3A7CB935>I<01F00007
+FC000FFE000FFE001FFF001FFF001FFF001FFF001FFF000FFE000FFE0007FC0001F00000
+000000000000000000000000000000000000000000000000000000FE007FFE007FFE007F
+FE007FFE0007FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003
+FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003
+FE0003FE0003FE0003FE0003FE0003FE00FFFFF0FFFFF0FFFFF0FFFFF0143B7DBA1A>I<
+00FE00000000FFFE00000000FFFE00000000FFFE00000000FFFE0000000007FE00000000
+03FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE00000000
+03FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE00000000
+03FE0000000003FE0000000003FE0000000003FE000FFFE003FE000FFFE003FE000FFFE0
+03FE000FFFE003FE0003F80003FE0003F00003FE000FE00003FE001F800003FE003F0000
+03FE007E000003FE01FC000003FE03F0000003FE07E0000003FE0FC0000003FE3FC00000
+03FE7FE0000003FEFFE0000003FFFFF0000003FFFFF8000003FFCFFC000003FF87FC0000
+03FF07FE000003FE03FF000003FC01FF800003FC00FFC00003FC00FFC00003FC007FE000
+03FC003FF00003FC001FF80003FC000FFC0003FC000FFC0003FC0007FE0003FC0003FF00
+FFFFF01FFFF8FFFFF01FFFF8FFFFF01FFFF8FFFFF01FFFF82D3A7EB932>107
+D<00FE00FFFE00FFFE00FFFE00FFFE0007FE0003FE0003FE0003FE0003FE0003FE0003FE
+0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE
+0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE
+0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE
+0003FE0003FE0003FE0003FE0003FE0003FE00FFFFF8FFFFF8FFFFF8FFFFF8153A7DB91A
+>I<01FC00FF80003FE00000FFFC03FFF000FFFC0000FFFC0FFFF803FFFE0000FFFC1E03
+FC0780FF0000FFFC3801FE0E007F800007FC6001FF18007FC00003FCC000FF30003FC000
+03FD8000FFE0003FE00003FD8000FFE0003FE00003FF0000FFC0003FE00003FF0000FFC0
+003FE00003FF0000FFC0003FE00003FE0000FF80003FE00003FE0000FF80003FE00003FE
+0000FF80003FE00003FE0000FF80003FE00003FE0000FF80003FE00003FE0000FF80003F
+E00003FE0000FF80003FE00003FE0000FF80003FE00003FE0000FF80003FE00003FE0000
+FF80003FE00003FE0000FF80003FE00003FE0000FF80003FE00003FE0000FF80003FE000
+03FE0000FF80003FE00003FE0000FF80003FE00003FE0000FF80003FE00003FE0000FF80
+003FE00003FE0000FF80003FE00003FE0000FF80003FE00003FE0000FF80003FE00003FE
+0000FF80003FE000FFFFF83FFFFE0FFFFF80FFFFF83FFFFE0FFFFF80FFFFF83FFFFE0FFF
+FF80FFFFF83FFFFE0FFFFF8049257CA450>I<01FC00FF8000FFFC07FFE000FFFC0FFFF0
+00FFFC1E07F800FFFC3803FC0007FC6003FE0003FCC001FE0003FD8001FF0003FD8001FF
+0003FF0001FF0003FF0001FF0003FF0001FF0003FE0001FF0003FE0001FF0003FE0001FF
+0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF
+0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF
+0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF
+00FFFFF87FFFFCFFFFF87FFFFCFFFFF87FFFFCFFFFF87FFFFC2E257CA435>I<0001FFC0
+0000000FFFF80000007FFFFF000000FF80FF800003FE003FE00007FC001FF0000FF8000F
+F8001FF00007FC001FF00007FC003FF00007FE003FE00003FE007FE00003FF007FE00003
+FF007FE00003FF00FFE00003FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003
+FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003FF807FE00003FF007FE00003
+FF007FE00003FF003FE00003FE003FF00007FE001FF00007FC001FF00007FC000FF8000F
+F80007FC001FF00003FE003FE00001FF80FFC000007FFFFF0000001FFFFC00000001FFC0
+000029257DA430>I<00FE03FF0000FFFE1FFFE000FFFE7FFFF800FFFFFC0FFC00FFFFE0
+03FF0007FF8001FF8003FF0000FFC003FE00007FE003FE00007FE003FE00003FF003FE00
+003FF003FE00003FF803FE00003FF803FE00001FF803FE00001FFC03FE00001FFC03FE00
+001FFC03FE00001FFC03FE00001FFC03FE00001FFC03FE00001FFC03FE00001FFC03FE00
+001FFC03FE00001FF803FE00003FF803FE00003FF803FE00003FF003FE00007FF003FE00
+007FE003FF00007FC003FF0000FF8003FF8001FF0003FFE003FE0003FEF80FFC0003FE7F
+FFF00003FE1FFFC00003FE07FE000003FE0000000003FE0000000003FE0000000003FE00
+00000003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE00
+00000003FE0000000003FE00000000FFFFF8000000FFFFF8000000FFFFF8000000FFFFF8
+0000002E357DA435>I<01FC03F000FFFC0FFC00FFFC1FFF00FFFC3C7F80FFFC707F8007
+FCE0FFC003FCC0FFC003FD80FFC003FD80FFC003FF807F8003FF003F0003FF000C0003FF
+00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00
+000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE0000
+0003FE00000003FE00000003FE00000003FE00000003FE00000003FE000000FFFFFC0000
+FFFFFC0000FFFFFC0000FFFFFC000022257EA427>114 D<007FF03803FFFEF807FFFFF8
+1FC00FF83F0003F83E0000F87C0000F87C000078FC000078FC000078FE000078FF000000
+FFE000007FFF80007FFFF8003FFFFF001FFFFF800FFFFFE007FFFFF001FFFFF8007FFFFC
+0003FFFC00000FFE000003FE700000FEF00000FEF000007EF800007EF800007EFC00007C
+FE00007CFF0000F8FF8001F0FFF00FE0FFFFFFC0F0FFFF00C01FF8001F257DA426>I<00
+1E0000001E0000001E0000001E0000001E0000003E0000003E0000003E0000003E000000
+7E0000007E000000FE000000FE000001FE000003FE000007FE00001FFFFFE0FFFFFFE0FF
+FFFFE0FFFFFFE003FE000003FE000003FE000003FE000003FE000003FE000003FE000003
+FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003
+FE000003FE000003FE007803FE007803FE007803FE007803FE007803FE007803FE007803
+FE007801FE00F001FF00F000FF01E0007F83C0003FFF80001FFF000003FC001D357EB425
+>I<00FE00007F00FFFE007FFF00FFFE007FFF00FFFE007FFF00FFFE007FFF0007FE0003
+FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001
+FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001
+FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0001
+FF0003FE0001FF0003FE0001FF0003FE0001FF0003FE0003FF0003FE0003FF0003FE0003
+FF0001FE0007FF0001FE000FFF0000FF001DFF80007F8079FFFC003FFFF1FFFC001FFFC1
+FFFC0003FF01FFFC2E257CA435>I<FFFFE001FFF8FFFFE001FFF8FFFFE001FFF8FFFFE0
+01FFF803FE00001F0003FE00001E0003FF00003E0001FF00003C0001FF80007C0000FF80
+00780000FFC000F800007FC000F000007FE001F000003FE001E000003FE001E000001FF0
+03C000001FF003C000001FF807C000000FF8078000000FFC0F80000007FC0F00000007FE
+1F00000003FE1E00000003FF3E00000001FF3C00000001FF3C00000000FFF800000000FF
+F800000000FFF8000000007FF0000000007FF0000000003FE0000000003FE0000000001F
+C0000000001FC0000000000F80000000000F8000002D257EA432>I<FFFFE0FFFF803FFF
+FFFFE0FFFF803FFFFFFFE0FFFF803FFFFFFFE0FFFF803FFF07FC0007F80003E007FE0003
+F80003E003FE0003FC0003C003FE0007FC0007C001FF0007FC00078001FF0007FE000780
+01FF800FFE000F8000FF800FFF000F0000FF801FFF000F00007FC01E7F001E00007FC01E
+7F801E00007FE03E7F803E00003FE03C3FC03C00003FE07C3FC03C00001FF0781FC07800
+001FF0781FE07800001FF8F81FE0F800000FF8F00FF0F000000FF9F00FF0F000000FFDE0
+07F1F0000007FDE007F9E0000007FFE007FBE0000003FFC003FBC0000003FFC003FFC000
+0003FF8001FFC0000001FF8001FF80000001FF8001FF80000000FF0000FF00000000FF00
+00FF00000000FE00007F000000007E00007E000000007E00007E000000003C00003C0000
+40257EA445>I<FFFFC00FFFF0FFFFC00FFFF0FFFFC00FFFF0FFFFC00FFFF003FF0001F8
+0001FF8003F00000FF8003E000007FC007C000003FE00F8000001FF01F0000001FF83E00
+00000FFC7C00000007FCFC00000003FFF800000001FFF000000000FFE000000000FFC000
+0000007FE0000000003FE0000000003FF0000000007FF800000000FFFC00000000FFFE00
+000001F3FF00000003E1FF00000007C0FF8000000F807FC000001F803FE000003F003FF0
+00003E001FF800007C000FF80000F80007FC0001F80003FE00FFFF001FFFF8FFFF001FFF
+F8FFFF001FFFF8FFFF001FFFF82D257EA432>I<FFFFE001FFF8FFFFE001FFF8FFFFE001
+FFF8FFFFE001FFF803FE00001F0003FE00001E0003FF00003E0001FF00003C0001FF8000
+7C0000FF8000780000FFC000F800007FC000F000007FE001F000003FE001E000003FE001
+E000001FF003C000001FF003C000001FF807C000000FF8078000000FFC0F80000007FC0F
+00000007FE1F00000003FE1E00000003FF3E00000001FF3C00000001FF3C00000000FFF8
+00000000FFF800000000FFF8000000007FF0000000007FF0000000003FE0000000003FE0
+000000001FC0000000001FC0000000000F80000000000F80000000000F00000000000F00
+000000001F00000000001E00000000003E0000003E003C0000007F007C000000FF807800
+0000FF80F8000000FF81F0000000FF83E0000000FF07C00000007F1F800000003FFF0000
+00001FFC0000000007F0000000002D357EA432>I<3FFFFFFFC03FFFFFFFC03FFFFFFFC0
+3FF001FF803F8003FF003F0007FF003E0007FE003C000FFC007C001FF8007C001FF80078
+003FF00078007FE0007800FFE0007800FFC0007801FF80000003FF00000007FF00000007
+FE0000000FFC0000001FF80000003FF80000003FF003C0007FE003C000FFC003C001FFC0
+03C001FF8003C003FF0007C007FE0007C007FE0007C00FFC000F801FF8000F803FF8001F
+803FF0007F807FE001FF80FFFFFFFF80FFFFFFFF80FFFFFFFF8022257DA42A>I
+E /Fj 49 122 df<FFFFFFF8FFFFFFF8FFFFFFF8FFFFFFF8FFFFFFF8FFFFFFF8FFFFFFF8
+FFFFFFF8FFFFFFF81D097F9A25>45 D<00003FF800000001FFFF0000000FFFFFE000003F
+F01FF800007FC007FC0000FF8003FE0001FF0001FF0003FE0000FF8007FC00007FC007FC
+00007FC00FF800003FE00FF800003FE01FF800003FF01FF800003FF03FF800003FF83FF0
+00001FF83FF000001FF87FF000001FFC7FF000001FFC7FF000001FFC7FF000001FFC7FF0
+00001FFC7FF000001FFCFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF0
+00001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF0
+00001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF0
+00001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFE7FF000001FFC7FF0
+00001FFC7FF000001FFC7FF000001FFC7FF000001FFC3FF000001FF83FF800003FF83FF8
+00003FF81FF800003FF01FF800003FF00FF800003FE00FFC00007FE007FC00007FC007FC
+00007FC003FE0000FF8001FF0001FF0000FF8003FE00007FC007FC00003FF01FF800000F
+FFFFE0000003FFFF800000003FF800002F427CC038>48 D<000003C000000007C0000000
+1FC00000007FC0000003FFC000003FFFC000FFFFFFC000FFFFFFC000FFFFFFC000FFC3FF
+C0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0
+000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC000
+0003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC00000
+03FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003
+FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FF
+C0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0
+000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC000
+0003FFC000FFFFFFFFFCFFFFFFFFFCFFFFFFFFFCFFFFFFFFFC264177C038>I<0000FFE0
+0000000FFFFE0000003FFFFFC00000FFFFFFF00003FE01FFF80007F0007FFC000FC0001F
+FF001F80000FFF803F000007FF803F000003FFC07FC00003FFE07FE00001FFE0FFF00001
+FFF0FFF80000FFF0FFF80000FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF87FF00000
+FFF87FF00000FFF83FE00000FFF81FC00000FFF800000000FFF000000000FFF000000001
+FFF000000001FFE000000001FFE000000003FFC000000003FF8000000007FF8000000007
+FF000000000FFE000000001FFC000000001FF8000000003FE0000000007FC000000000FF
+8000000000FF0000000001FC0000000003F80000000007F0000000000FC0000000001F80
+000000003F00007800007C0000780000F80000780001F00000F80003E00000F00007C000
+00F0000F000000F0001E000000F0003C000001F00078000003F000FFFFFFFFF001FFFFFF
+FFE003FFFFFFFFE007FFFFFFFFE00FFFFFFFFFE01FFFFFFFFFE03FFFFFFFFFE07FFFFFFF
+FFE0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC02D417BC038>I<0000FF
+F000000007FFFF0000001FFFFFC000007F80FFF00000FC001FF80001F0000FFC0003C000
+0FFE0007E00007FF000FF80007FF800FFC0007FF800FFE0007FFC01FFF0007FFC01FFF00
+07FFC01FFF0007FFC01FFF0007FFC01FFF0007FFC00FFE0007FFC00FFE0007FF8007FC00
+07FF8003F8000FFF800000000FFF000000000FFE000000001FFE000000001FFC00000000
+3FF8000000003FF0000000007FC000000001FF800000000FFE00000007FFF800000007FF
+F000000007FFFF0000000000FFC0000000001FF0000000000FFC0000000007FE00000000
+07FF0000000003FF8000000003FFC000000003FFE000000001FFE000000001FFF0000000
+01FFF000000001FFF800000001FFF80FC00001FFF83FF00001FFF87FF80001FFF87FF800
+01FFF8FFFC0001FFF8FFFC0001FFF8FFFC0001FFF0FFFC0001FFF0FFFC0001FFF0FFF800
+03FFE07FF80003FFE07FF00003FFC03FE00007FF803F000007FF001FC0000FFF000FF000
+1FFC0003FF00FFF80001FFFFFFF000007FFFFFC000001FFFFE00000001FFE000002D427B
+C038>I<000000001F0000000000003F0000000000003F0000000000007F000000000000
+FF000000000001FF000000000001FF000000000003FF000000000007FF00000000000FFF
+00000000001FFF00000000001FFF00000000003FFF00000000007FFF0000000000FFFF00
+00000001F7FF0000000001E7FF0000000003C7FF000000000787FF000000000F87FF0000
+00001F07FF000000001E07FF000000003C07FF000000007807FF00000000F807FF000000
+01F007FF00000001E007FF00000003C007FF000000078007FF0000000F8007FF0000001F
+0007FF0000001E0007FF0000003C0007FF000000780007FF000000F80007FF000000F000
+07FF000001E00007FF000003C00007FF000007800007FF00000F800007FF00000F000007
+FF00001E000007FF00003C000007FF00007C000007FF0000F8000007FF0000FFFFFFFFFF
+FF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF800000000FFF00000000000FFF00
+000000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF0000
+0000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF000000
+007FFFFFFF8000007FFFFFFF8000007FFFFFFF8000007FFFFFFF8031417DC038>I<0300
+0000030007E000003F0007FF0007FF0007FFFFFFFE0007FFFFFFFC0007FFFFFFF80007FF
+FFFFF00007FFFFFFE00007FFFFFFC00007FFFFFF000007FFFFFE000007FFFFF8000007FF
+FFE0000007FFFE00000007C00000000007C00000000007C00000000007C00000000007C0
+0000000007C00000000007C00000000007C00000000007C00000000007C00000000007C0
+3FF0000007C1FFFF000007C7FFFFC00007DFC03FF00007FE000FF80007F80007FC0007F0
+0003FE0007E00001FF0007C00001FF8003800001FFC000000001FFC000000000FFE00000
+0000FFE000000000FFF000000000FFF000000000FFF000000000FFF800000000FFF80600
+0000FFF81FC00000FFF83FE00000FFF87FF00000FFF8FFF00000FFF8FFF80000FFF8FFF8
+0000FFF8FFF80000FFF0FFF00000FFF0FFF00000FFF0FFE00000FFE07FC00001FFE07F80
+0001FFE03C000001FFC03E000003FF801E000003FF000F800007FE0007C0000FFC0003F0
+003FF80001FE00FFF00000FFFFFFE000003FFFFF8000000FFFFC00000001FFC000002D42
+7BC038>I<000001FF800000001FFFF00000007FFFFC000001FF807E000007FC001F0000
+0FF0000780001FE0001FC0003FC0007FC0007F8000FFE000FF0000FFE001FF0001FFE003
+FE0001FFE007FE0001FFE007FE0001FFE00FFC0000FFC00FFC0000FFC01FFC00007F801F
+FC00001E003FFC000000003FFC000000003FF8000000007FF8000000007FF8000000007F
+F8000000007FF81FFE00007FF83FFFC000FFF87FFFE000FFF8E00FF800FFF98007FC00FF
+FB8003FE00FFFB0001FF00FFFE0001FF80FFFE0001FFC0FFFE0000FFC0FFFC0000FFE0FF
+FC0000FFE0FFFC0000FFF0FFFC0000FFF0FFF80000FFF0FFF80000FFF8FFF80000FFF8FF
+F80000FFF87FF80000FFF87FF80000FFF87FF80000FFF87FF80000FFF87FF80000FFF87F
+F80000FFF83FF80000FFF83FF80000FFF83FF80000FFF01FF80000FFF01FFC0000FFF00F
+FC0000FFE00FFC0000FFE007FC0001FFC007FC0001FFC003FE0001FF8001FF0003FF0000
+FF0003FE00007FC007FC00003FF03FF800001FFFFFF0000007FFFFC0000001FFFF000000
+003FF800002D427BC038>I<1E00000000001F00000000001FFC000000001FFFFFFFFFFE
+1FFFFFFFFFFE1FFFFFFFFFFE1FFFFFFFFFFE3FFFFFFFFFFC3FFFFFFFFFF83FFFFFFFFFF0
+3FFFFFFFFFE03FFFFFFFFFC03FFFFFFFFFC03FFFFFFFFF807FFFFFFFFF007E0000003E00
+7C0000007C007C000000FC0078000001F80078000003F00078000007E000F8000007C000
+F000000F8000F000001F8000F000003F00000000007E00000000007C0000000000FC0000
+000001F80000000001F00000000003F00000000007F00000000007E0000000000FE00000
+00000FE0000000001FC0000000001FC0000000003FC0000000003FC0000000007F800000
+00007F8000000000FF8000000000FF8000000001FF8000000001FF8000000001FF800000
+0003FF0000000003FF0000000003FF0000000003FF0000000007FF0000000007FF000000
+0007FF0000000007FF0000000007FF000000000FFF000000000FFF000000000FFF000000
+000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000
+0007FE0000000007FE0000000003FC0000000000F00000002F447AC238>I<00007FF000
+000003FFFF0000000FFFFFC000003F801FF000007C0003F80000F80001FC0001F00000FE
+0003E000007F0007E000003F8007C000003F800FC000003F800FC000001FC00FC000001F
+C01FC000001FC01FE000001FC01FE000001FC01FF000001FC01FF800001FC01FFE00003F
+801FFF00003F801FFFC0003F000FFFF0007F000FFFFC00FE000FFFFE00FC0007FFFF81F8
+0003FFFFE7F00003FFFFFFE00001FFFFFF800000FFFFFF0000007FFFFFC000003FFFFFE0
+00000FFFFFF8000007FFFFFC00001FFFFFFE00007F7FFFFF0000FE1FFFFF8003F80FFFFF
+C007F003FFFFC00FF000FFFFE01FE0007FFFE01FC0001FFFF03FC00007FFF07F800001FF
+F87F800000FFF87F8000003FF8FF0000001FF8FF0000001FF8FF0000000FF8FF0000000F
+F8FF00000007F8FF00000007F8FF00000007F0FF00000007F07F80000007F07F80000007
+E07F8000000FE03FC000000FC01FE000001FC01FF000003F800FF800007F0007FE0001FE
+0003FFC00FFC0000FFFFFFF000003FFFFFC000000FFFFF00000000FFF000002D427BC038
+>I<00007FF000000007FFFE0000001FFFFF8000003FE03FC00000FF800FF00001FF0007
+F80003FE0003FC0007FC0003FE000FFC0001FE001FFC0001FF001FF80001FF803FF80001
+FF803FF80000FFC07FF80000FFC07FF80000FFE07FF80000FFE0FFF80000FFE0FFF80000
+FFE0FFF80000FFF0FFF80000FFF0FFF80000FFF0FFF80000FFF0FFF80000FFF0FFF80000
+FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF87FF80000FFF87FF80001FFF87FF80001
+FFF83FF80001FFF83FF80001FFF81FF80003FFF81FFC0003FFF80FFC0003FFF807FC0006
+FFF803FE000EFFF801FF001CFFF800FF8038FFF8003FFFF0FFF8001FFFE0FFF00003FFC0
+FFF000000000FFF000000000FFF000000000FFF000000000FFE000000000FFE000000001
+FFE003C00001FFC00FF00001FFC01FF80001FF801FF80001FF803FFC0003FF003FFC0003
+FF003FFC0003FE003FFC0007FC003FF80007FC001FF8000FF8001FF0001FF0001FC0003F
+E0000FC000FFC00007F803FF000003FFFFFE000001FFFFF80000007FFFE000000007FE00
+00002D427BC038>I<0007FFC000007FFFFC0001FFFFFF8007F801FFE00FC0003FF01F00
+001FF83E00001FFC7F80000FFE7FC0000FFE7FE0000FFEFFF0000FFFFFF0000FFFFFF000
+0FFFFFF0000FFFFFF0000FFF7FE0000FFF3FC0000FFE1F80001FFE0600001FFC0000003F
+F80000007FF0000000FFE0000001FF80000001FF00000003FC00000007F80000000FE000
+00000FC00000001F800000001F800000003F000000003E000000003C000000007C000000
+0078000000007800000000F800000000F000000000F000000000F000000000F000000000
+F000000000F000000000F000000000F000000000F0000000006000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000F000
+000003FC00000007FE0000000FFF0000000FFF0000001FFF8000001FFF8000001FFF8000
+001FFF8000000FFF0000000FFF00000007FE00000003FC00000000F0000028457AC435>
+63 D<000000001F8000000000000000001F8000000000000000003FC000000000000000
+003FC000000000000000007FE000000000000000007FE000000000000000007FE0000000
+0000000000FFF00000000000000000FFF00000000000000001FFF80000000000000001FF
+F80000000000000001FFF80000000000000003FFFC0000000000000003FFFC0000000000
+000007FFFE0000000000000007FFFE0000000000000007FFFE000000000000000FFFFF00
+0000000000000F9FFF000000000000001F9FFF800000000000001F1FFF80000000000000
+1F0FFF800000000000003F0FFFC00000000000003E07FFC00000000000007E07FFE00000
+000000007C07FFE00000000000007C03FFE0000000000000FC03FFF0000000000000F801
+FFF0000000000001F801FFF8000000000001F001FFF8000000000001F000FFF800000000
+0003F000FFFC000000000003E0007FFC000000000007E0007FFE000000000007C0007FFE
+000000000007C0003FFE00000000000FC0003FFF00000000000F80001FFF00000000001F
+80001FFF80000000001F00000FFF80000000001F00000FFF80000000003F00000FFFC000
+0000003E000007FFC0000000007E000007FFE0000000007FFFFFFFFFE0000000007FFFFF
+FFFFE000000000FFFFFFFFFFF000000000FFFFFFFFFFF000000001F8000001FFF8000000
+01F0000000FFF800000001F0000000FFF800000003F0000000FFFC00000003E00000007F
+FC00000007E00000007FFE00000007C00000003FFE00000007C00000003FFE0000000F80
+0000003FFF0000000F800000001FFF0000001F800000001FFF8000001F000000000FFF80
+00003F000000000FFFC000003E000000000FFFC000003E0000000007FFC00000FF800000
+0007FFE000FFFFFF00000FFFFFFFF0FFFFFF00000FFFFFFFF0FFFFFF00000FFFFFFFF0FF
+FFFF00000FFFFFFFF04C457CC455>65 D<FFFFFFFFFFFF000000FFFFFFFFFFFFF00000FF
+FFFFFFFFFFFE0000FFFFFFFFFFFFFF8000003FFC000007FFE000003FFC000001FFF00000
+3FFC000000FFF800003FFC0000003FFC00003FFC0000003FFE00003FFC0000001FFF0000
+3FFC0000000FFF00003FFC0000000FFF80003FFC0000000FFF80003FFC00000007FFC000
+3FFC00000007FFC0003FFC00000007FFC0003FFC00000007FFC0003FFC00000007FFC000
+3FFC00000007FFC0003FFC00000007FFC0003FFC00000007FFC0003FFC0000000FFF8000
+3FFC0000000FFF80003FFC0000000FFF00003FFC0000001FFF00003FFC0000003FFE0000
+3FFC0000003FFC00003FFC0000007FF800003FFC000001FFF000003FFC000003FFC00000
+3FFC00001FFF0000003FFFFFFFFFFC0000003FFFFFFFFFF00000003FFFFFFFFFFF000000
+3FFC000003FFC000003FFC000000FFF000003FFC0000003FFC00003FFC0000001FFE0000
+3FFC0000000FFF00003FFC00000007FF80003FFC00000007FFC0003FFC00000003FFE000
+3FFC00000003FFE0003FFC00000001FFF0003FFC00000001FFF0003FFC00000001FFF000
+3FFC00000001FFF8003FFC00000001FFF8003FFC00000001FFF8003FFC00000001FFF800
+3FFC00000001FFF8003FFC00000001FFF8003FFC00000001FFF8003FFC00000001FFF800
+3FFC00000001FFF0003FFC00000003FFF0003FFC00000003FFE0003FFC00000007FFE000
+3FFC00000007FFC0003FFC0000000FFFC0003FFC0000001FFF80003FFC0000003FFF0000
+3FFC000000FFFE00003FFC000007FFF800FFFFFFFFFFFFFFF000FFFFFFFFFFFFFFC000FF
+FFFFFFFFFFFE0000FFFFFFFFFFFFE0000045447CC350>I<00000000FFF8000030000000
+1FFFFF000070000001FFFFFFE001F0000007FFFFFFF803F000003FFFE003FE07F000007F
+FE00007F0FF00001FFF000001F9FF00003FFC0000007FFF0000FFF00000003FFF0001FFE
+00000000FFF0003FFC000000007FF0007FF8000000007FF000FFF0000000003FF001FFE0
+000000001FF001FFC0000000000FF003FFC0000000000FF007FF800000000007F007FF80
+0000000007F00FFF000000000007F01FFF000000000003F01FFF000000000003F01FFE00
+0000000003F03FFE000000000001F03FFE000000000001F03FFE000000000001F07FFE00
+0000000001F07FFC000000000000007FFC000000000000007FFC00000000000000FFFC00
+000000000000FFFC00000000000000FFFC00000000000000FFFC00000000000000FFFC00
+000000000000FFFC00000000000000FFFC00000000000000FFFC00000000000000FFFC00
+000000000000FFFC00000000000000FFFC00000000000000FFFC000000000000007FFC00
+0000000000007FFC000000000000007FFC000000000000007FFE000000000000003FFE00
+0000000000F03FFE000000000000F03FFE000000000000F01FFE000000000000F01FFF00
+0000000000F01FFF000000000001F00FFF000000000001E007FF800000000001E007FF80
+0000000003E003FFC00000000003C001FFC00000000007C001FFE000000000078000FFF0
+000000000F00007FF8000000001F00003FFC000000001E00001FFE000000007C00000FFF
+00000000F8000003FFC0000003F0000001FFF0000007E00000007FFE00003F800000003F
+FFE001FF0000000007FFFFFFFC0000000001FFFFFFF000000000001FFFFF800000000000
+00FFF800000044467AC451>I<FFFFFFFFFFFF00000000FFFFFFFFFFFFF0000000FFFFFF
+FFFFFFFE000000FFFFFFFFFFFFFF800000003FFE00001FFFE00000003FFE000001FFF800
+00003FFE0000007FFC0000003FFE0000001FFF0000003FFE00000007FF8000003FFE0000
+0003FFC000003FFE00000001FFE000003FFE00000000FFF000003FFE000000007FF00000
+3FFE000000007FF800003FFE000000003FFC00003FFE000000003FFC00003FFE00000000
+1FFE00003FFE000000001FFE00003FFE000000000FFF00003FFE000000000FFF00003FFE
+000000000FFF80003FFE000000000FFF80003FFE0000000007FF80003FFE0000000007FF
+C0003FFE0000000007FFC0003FFE0000000007FFC0003FFE0000000007FFC0003FFE0000
+000007FFC0003FFE0000000007FFE0003FFE0000000007FFE0003FFE0000000007FFE000
+3FFE0000000007FFE0003FFE0000000007FFE0003FFE0000000007FFE0003FFE00000000
+07FFE0003FFE0000000007FFE0003FFE0000000007FFE0003FFE0000000007FFE0003FFE
+0000000007FFE0003FFE0000000007FFE0003FFE0000000007FFE0003FFE0000000007FF
+C0003FFE0000000007FFC0003FFE0000000007FFC0003FFE0000000007FFC0003FFE0000
+000007FFC0003FFE0000000007FF80003FFE000000000FFF80003FFE000000000FFF8000
+3FFE000000000FFF00003FFE000000000FFF00003FFE000000001FFE00003FFE00000000
+1FFE00003FFE000000003FFC00003FFE000000003FF800003FFE000000007FF800003FFE
+00000000FFF000003FFE00000001FFE000003FFE00000003FFC000003FFE00000007FF80
+00003FFE0000001FFF0000003FFE0000003FFE0000003FFE000001FFF80000003FFE0000
+1FFFF00000FFFFFFFFFFFFFFC00000FFFFFFFFFFFFFE000000FFFFFFFFFFFFF0000000FF
+FFFFFFFFFF000000004B447CC356>I<FFFFFFFFFFFFFFF800FFFFFFFFFFFFFFF800FFFF
+FFFFFFFFFFF800FFFFFFFFFFFFFFF800001FFF000003FFFC00001FFF0000003FFC00001F
+FF0000000FFC00001FFF00000003FC00001FFF00000001FC00001FFF00000000FC00001F
+FF00000000FC00001FFF000000007C00001FFF000000007E00001FFF000000003E00001F
+FF000000003E00001FFF000000001E00001FFF000000001E00001FFF000000001E00001F
+FF000000001E00001FFF000078001F00001FFF000078000F00001FFF000078000F00001F
+FF000078000F00001FFF000078000000001FFF000078000000001FFF0000F8000000001F
+FF0000F8000000001FFF0000F8000000001FFF0001F8000000001FFF0003F8000000001F
+FF001FF8000000001FFFFFFFF8000000001FFFFFFFF8000000001FFFFFFFF8000000001F
+FFFFFFF8000000001FFF001FF8000000001FFF0003F8000000001FFF0001F8000000001F
+FF0000F8000000001FFF0000F8000000001FFF0000F8000000001FFF0000780001E0001F
+FF0000780001E0001FFF0000780001E0001FFF0000780003C0001FFF0000780003C0001F
+FF0000780003C0001FFF0000000003C0001FFF0000000003C0001FFF0000000007C0001F
+FF0000000007C0001FFF000000000780001FFF000000000F80001FFF000000000F80001F
+FF000000000F80001FFF000000001F80001FFF000000001F80001FFF000000003F80001F
+FF000000007F00001FFF00000000FF00001FFF00000001FF00001FFF00000007FF00001F
+FF0000001FFF00001FFF000001FFFF00FFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFE00FFFF
+FFFFFFFFFFFE00FFFFFFFFFFFFFFFE0043447DC34A>I<FFFFFFFFFFFFFF80FFFFFFFFFF
+FFFF80FFFFFFFFFFFFFF80FFFFFFFFFFFFFF80003FFE00001FFFC0003FFE000001FFC000
+3FFE0000007FC0003FFE0000003FC0003FFE0000001FC0003FFE0000000FC0003FFE0000
+0007C0003FFE00000007C0003FFE00000003E0003FFE00000003E0003FFE00000003E000
+3FFE00000001E0003FFE00000001E0003FFE00000001E0003FFE00000001E0003FFE0000
+0000F0003FFE0001E000F0003FFE0001E000F0003FFE0001E000F0003FFE0001E0000000
+3FFE0001E00000003FFE0001E00000003FFE0003E00000003FFE0003E00000003FFE0003
+E00000003FFE0007E00000003FFE000FE00000003FFE007FE00000003FFFFFFFE0000000
+3FFFFFFFE00000003FFFFFFFE00000003FFFFFFFE00000003FFE007FE00000003FFE000F
+E00000003FFE0007E00000003FFE0003E00000003FFE0003E00000003FFE0003E0000000
+3FFE0001E00000003FFE0001E00000003FFE0001E00000003FFE0001E00000003FFE0001
+E00000003FFE0001E00000003FFE0000000000003FFE0000000000003FFE000000000000
+3FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000
+000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE000000000000
+3FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000FFFFFFFFF0
+000000FFFFFFFFF0000000FFFFFFFFF0000000FFFFFFFFF00000003C447CC346>I<FFFF
+FFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0001FFF0000001FFF0000001FFF0000001FFF
+0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF00
+00001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000
+001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF000000
+1FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001F
+FF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF
+0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF00
+00001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000
+001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000FFFFFFFFE0FF
+FFFFFFE0FFFFFFFFE0FFFFFFFFE023447DC32A>73 D<FFFFFE0000000000007FFFFF80FF
+FFFF000000000000FFFFFF80FFFFFF000000000000FFFFFF80FFFFFF800000000001FFFF
+FF80003FFF800000000001FFFE0000003FFF800000000001FFFE0000003DFFC000000000
+03DFFE0000003DFFC00000000003DFFE0000003CFFE000000000079FFE0000003CFFE000
+000000079FFE0000003C7FF0000000000F1FFE0000003C7FF0000000000F1FFE0000003C
+3FF8000000001E1FFE0000003C3FF8000000001E1FFE0000003C1FFC000000003C1FFE00
+00003C1FFC000000003C1FFE0000003C1FFC000000003C1FFE0000003C0FFE0000000078
+1FFE0000003C0FFE00000000781FFE0000003C07FF00000000F01FFE0000003C07FF0000
+0000F01FFE0000003C03FF80000001E01FFE0000003C03FF80000001E01FFE0000003C01
+FFC0000003C01FFE0000003C01FFC0000003C01FFE0000003C01FFC0000003C01FFE0000
+003C00FFE0000007801FFE0000003C00FFE0000007801FFE0000003C007FF000000F001F
+FE0000003C007FF000000F001FFE0000003C003FF800001E001FFE0000003C003FF80000
+1E001FFE0000003C001FFC00003C001FFE0000003C001FFC00003C001FFE0000003C001F
+FC00003C001FFE0000003C000FFE000078001FFE0000003C000FFE000078001FFE000000
+3C0007FF0000F0001FFE0000003C0007FF0000F0001FFE0000003C0003FF8001E0001FFE
+0000003C0003FF8001E0001FFE0000003C0001FFC003C0001FFE0000003C0001FFC003C0
+001FFE0000003C0000FFE00780001FFE0000003C0000FFE00780001FFE0000003C0000FF
+E00780001FFE0000003C00007FF00F00001FFE0000003C00007FF00F00001FFE0000003C
+00003FF81E00001FFE0000003C00003FF81E00001FFE0000003C00001FFC3C00001FFE00
+00003C00001FFC3C00001FFE0000003C00000FFE7800001FFE0000003C00000FFE780000
+1FFE0000003C00000FFE7800001FFE0000003C000007FFF000001FFE0000003C000007FF
+F000001FFE0000003C000003FFE000001FFE0000003C000003FFE000001FFE0000003C00
+0001FFC000001FFE0000003C000001FFC000001FFE0000003C000000FF8000001FFE0000
+003C000000FF8000001FFE000000FF000000FF8000001FFE0000FFFFFF00007F00007FFF
+FFFF80FFFFFF00007F00007FFFFFFF80FFFFFF00003E00007FFFFFFF80FFFFFF00001C00
+007FFFFFFF8061447CC36A>77 D<00000007FFC0000000000000FFFFFE000000000007FF
+FFFFC0000000001FFE00FFF0000000007FF0001FFC00000001FFC00007FF00000007FF00
+0001FFC000000FFE000000FFE000001FFC0000007FF000003FF80000003FF800007FF000
+00001FFC0000FFE00000000FFE0001FFC000000007FF0003FFC000000007FF8003FF8000
+000003FF8007FF8000000003FFC007FF0000000001FFC00FFF0000000001FFE00FFF0000
+000001FFE01FFE0000000000FFF01FFE0000000000FFF03FFE0000000000FFF83FFE0000
+000000FFF83FFE0000000000FFF87FFE0000000000FFFC7FFC00000000007FFC7FFC0000
+0000007FFC7FFC00000000007FFC7FFC00000000007FFCFFFC00000000007FFEFFFC0000
+0000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC0000
+0000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC0000
+0000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFE7FFC0000
+0000007FFC7FFE0000000000FFFC7FFE0000000000FFFC7FFE0000000000FFFC3FFE0000
+000000FFF83FFE0000000000FFF83FFE0000000000FFF81FFF0000000001FFF01FFF0000
+000001FFF01FFF0000000001FFF00FFF8000000003FFE00FFF8000000003FFE007FFC000
+000007FFC003FFC000000007FF8003FFE00000000FFF8001FFE00000000FFF0000FFF000
+00001FFE00007FF80000003FFC00003FFC0000007FF800001FFE000000FFF000000FFF00
+0001FFE0000007FFC00007FFC0000001FFF0001FFF00000000FFFE00FFFE000000003FFF
+FFFFF80000000007FFFFFFC00000000000FFFFFE00000000000007FFC000000047467AC4
+54>79 D<FFFFFFFFFFFF000000FFFFFFFFFFFFF00000FFFFFFFFFFFFFE0000FFFFFFFFFF
+FFFF8000001FFF00001FFFE000001FFF000001FFF000001FFF0000007FF800001FFF0000
+003FFC00001FFF0000001FFE00001FFF0000001FFF00001FFF0000000FFF80001FFF0000
+000FFF80001FFF00000007FFC0001FFF00000007FFC0001FFF00000007FFC0001FFF0000
+0007FFE0001FFF00000007FFE0001FFF00000007FFE0001FFF00000007FFE0001FFF0000
+0007FFE0001FFF00000007FFE0001FFF00000007FFE0001FFF00000007FFE0001FFF0000
+0007FFC0001FFF00000007FFC0001FFF00000007FFC0001FFF0000000FFF80001FFF0000
+000FFF80001FFF0000001FFF00001FFF0000001FFE00001FFF0000003FFC00001FFF0000
+00FFF800001FFF000001FFF000001FFF00001FFFC000001FFFFFFFFFFF0000001FFFFFFF
+FFFC0000001FFFFFFFFFC00000001FFF000000000000001FFF000000000000001FFF0000
+00000000001FFF000000000000001FFF000000000000001FFF000000000000001FFF0000
+00000000001FFF000000000000001FFF000000000000001FFF000000000000001FFF0000
+00000000001FFF000000000000001FFF000000000000001FFF000000000000001FFF0000
+00000000001FFF000000000000001FFF000000000000001FFF000000000000001FFF0000
+00000000001FFF000000000000001FFF000000000000001FFF000000000000001FFF0000
+00000000001FFF000000000000001FFF000000000000001FFF000000000000001FFF0000
+00000000FFFFFFFFE000000000FFFFFFFFE000000000FFFFFFFFE000000000FFFFFFFFE0
+0000000043447DC34D>I<FFFFFFFFFFF800000000FFFFFFFFFFFFC0000000FFFFFFFFFF
+FFF8000000FFFFFFFFFFFFFE000000001FFF00003FFF800000001FFF000007FFE0000000
+1FFF000001FFF00000001FFF0000007FF80000001FFF0000003FFC0000001FFF0000003F
+FE0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000000FFF8000001FFF
+0000000FFF8000001FFF0000000FFFC000001FFF0000000FFFC000001FFF0000000FFFC0
+00001FFF0000000FFFC000001FFF0000000FFFC000001FFF0000000FFFC000001FFF0000
+000FFFC000001FFF0000000FFF8000001FFF0000000FFF8000001FFF0000001FFF800000
+1FFF0000001FFF0000001FFF0000001FFE0000001FFF0000003FFE0000001FFF0000003F
+FC0000001FFF0000007FF80000001FFF000001FFE00000001FFF000007FFC00000001FFF
+00007FFF000000001FFFFFFFFFF8000000001FFFFFFFFFC0000000001FFFFFFFFFE00000
+00001FFF0000FFF8000000001FFF00003FFC000000001FFF00000FFF000000001FFF0000
+07FF800000001FFF000003FFC00000001FFF000003FFE00000001FFF000001FFE0000000
+1FFF000001FFF00000001FFF000000FFF00000001FFF000000FFF80000001FFF000000FF
+F80000001FFF000000FFF80000001FFF000000FFF80000001FFF000000FFF80000001FFF
+000000FFF80000001FFF000000FFF80000001FFF000000FFFC0000001FFF000000FFFC00
+00001FFF000000FFFC0000001FFF000000FFFC0000001FFF000000FFFC0000001FFF0000
+00FFFC0000001FFF000000FFFC000F001FFF000000FFFC000F001FFF0000007FFE000F00
+1FFF0000007FFE000F001FFF0000003FFE001E001FFF0000003FFF001E001FFF0000001F
+FF003CFFFFFFFFE0000FFF803CFFFFFFFFE00007FFE0F8FFFFFFFFE00001FFFFF0FFFFFF
+FFE000003FFFE00000000000000003FF0050457DC354>82 D<0000FFE0000C000007FFFE
+001C00003FFFFF803C00007FFFFFE07C0001FF801FF0FC0003FC0003FDFC0007F800007F
+FC000FE000003FFC001FE000000FFC001FC0000007FC003FC0000003FC003F80000003FC
+007F80000001FC007F80000000FC007F80000000FC00FF80000000FC00FF800000007C00
+FF800000007C00FFC00000007C00FFC00000003C00FFE00000003C00FFE00000003C00FF
+F00000003C00FFFC00000000007FFF00000000007FFFE0000000007FFFFE000000003FFF
+FFF00000003FFFFFFF0000001FFFFFFFE000000FFFFFFFFC000007FFFFFFFE000003FFFF
+FFFF800001FFFFFFFFC00000FFFFFFFFE000007FFFFFFFF000001FFFFFFFF8000007FFFF
+FFF8000000FFFFFFFC0000000FFFFFFE00000000FFFFFE0000000007FFFF00000000007F
+FF00000000001FFF00000000000FFF000000000007FF800000000003FF807000000003FF
+80F000000001FF80F000000001FF80F000000000FF80F000000000FF80F000000000FF80
+F800000000FF80F800000000FF00F800000000FF00FC00000000FF00FC00000000FE00FE
+00000001FE00FF00000001FC00FF80000003FC00FFC0000003F800FFF0000007F000FFFC
+00000FE000FEFF80003FC000FC3FF800FF8000F81FFFFFFF0000F007FFFFFC0000E000FF
+FFF00000C00007FF80000031467AC43E>I<3FFFFFFFFFFFFFFFE03FFFFFFFFFFFFFFFE0
+3FFFFFFFFFFFFFFFE03FFFFFFFFFFFFFFFE03FFE000FFF8003FFE03FF0000FFF80007FE0
+7FC0000FFF80001FF07F80000FFF80000FF07F00000FFF800007F07E00000FFF800003F0
+7C00000FFF800001F07C00000FFF800001F07C00000FFF800001F07800000FFF800000F0
+7800000FFF800000F07800000FFF800000F07800000FFF800000F0F800000FFF800000F8
+F000000FFF80000078F000000FFF80000078F000000FFF80000078F000000FFF80000078
+F000000FFF800000780000000FFF800000000000000FFF800000000000000FFF80000000
+0000000FFF800000000000000FFF800000000000000FFF800000000000000FFF80000000
+0000000FFF800000000000000FFF800000000000000FFF800000000000000FFF80000000
+0000000FFF800000000000000FFF800000000000000FFF800000000000000FFF80000000
+0000000FFF800000000000000FFF800000000000000FFF800000000000000FFF80000000
+0000000FFF800000000000000FFF800000000000000FFF800000000000000FFF80000000
+0000000FFF800000000000000FFF800000000000000FFF800000000000000FFF80000000
+0000000FFF800000000000000FFF800000000000000FFF800000000000000FFF80000000
+0000000FFF800000000000000FFF800000000000000FFF800000000000000FFF80000000
+0000000FFF800000000000000FFF800000000000000FFF800000000000000FFF80000000
+0000000FFF800000000007FFFFFFFFFF00000007FFFFFFFFFF00000007FFFFFFFFFF0000
+0007FFFFFFFFFF000045437CC24E>I<FFFFFFFF80000FFFFFF8FFFFFFFF80000FFFFFF8
+FFFFFFFF80000FFFFFF8FFFFFFFF80000FFFFFF8003FFE000000000FF800003FFE000000
+0003E000003FFE0000000003E000003FFE0000000003E000003FFE0000000003E000003F
+FE0000000003E000003FFE0000000003E000003FFE0000000003E000003FFE0000000003
+E000003FFE0000000003E000003FFE0000000003E000003FFE0000000003E000003FFE00
+00000003E000003FFE0000000003E000003FFE0000000003E000003FFE0000000003E000
+003FFE0000000003E000003FFE0000000003E000003FFE0000000003E000003FFE000000
+0003E000003FFE0000000003E000003FFE0000000003E000003FFE0000000003E000003F
+FE0000000003E000003FFE0000000003E000003FFE0000000003E000003FFE0000000003
+E000003FFE0000000003E000003FFE0000000003E000003FFE0000000003E000003FFE00
+00000003E000003FFE0000000003E000003FFE0000000003E000003FFE0000000003E000
+003FFE0000000003E000003FFE0000000003E000003FFE0000000003E000003FFE000000
+0003E000003FFE0000000003E000003FFE0000000003E000003FFE0000000003E000003F
+FE0000000003E000003FFE0000000003E000003FFE0000000003E000003FFE0000000003
+E000003FFE0000000003E000001FFE0000000007C000001FFE0000000007C000001FFF00
+00000007C000000FFF0000000007C000000FFF000000000F80000007FF000000000F8000
+0007FF800000001F00000003FF800000001F00000001FFC00000003E00000001FFC00000
+007C00000000FFE0000000FC000000007FF8000003F8000000003FFC000007F000000000
+0FFF00003FC00000000003FFE003FF800000000001FFFFFFFE0000000000003FFFFFF800
+000000000007FFFFE0000000000000007FFE000000004D457CC356>I<FFFFFFFE007FFF
+FFFF0000FFFFFEFFFFFFFE007FFFFFFF0000FFFFFEFFFFFFFE007FFFFFFF0000FFFFFEFF
+FFFFFE007FFFFFFF0000FFFFFE007FFC0000003FFE00000001FF00007FFC0000003FFE00
+0000003C00007FFE0000003FFF000000007C00003FFE0000001FFF000000007800003FFF
+0000001FFF000000007800003FFF0000001FFF80000000F800001FFF0000000FFF800000
+00F000001FFF8000000FFFC0000001F000000FFF80000007FFC0000001E000000FFF8000
+0007FFC0000001E000000FFFC0000007FFE0000003E0000007FFC0000007FFE0000003C0
+000007FFE0000007FFE0000003C0000007FFE000000FFFF0000007C0000003FFE000000F
+FFF000000780000003FFF000000FFFF800000F80000001FFF000001EFFF800000F000000
+01FFF000001EFFF800000F00000001FFF800003EFFFC00001F00000000FFF800003C7FFC
+00001E00000000FFFC00003C7FFC00001E000000007FFC00007C7FFE00003C000000007F
+FC0000783FFE00003C000000007FFE0000783FFF00007C000000003FFE0000F01FFF0000
+78000000003FFE0000F01FFF000078000000003FFF0001F01FFF8000F8000000001FFF00
+01E00FFF8000F0000000001FFF8001E00FFF8000F0000000000FFF8003E00FFFC001E000
+0000000FFF8003C007FFC001E0000000000FFFC003C007FFE003E00000000007FFC00780
+03FFE003C00000000007FFC0078003FFE003C00000000007FFE00F8003FFF007C0000000
+0003FFE00F0001FFF007800000000003FFF00F0001FFF007800000000001FFF01F0001FF
+F80F000000000001FFF01E0000FFF80F000000000001FFF81E0000FFFC1F000000000000
+FFF83C00007FFC1E000000000000FFF83C00007FFC1E000000000000FFFC7C00007FFE3E
+0000000000007FFC7800003FFE3C0000000000007FFE7800003FFF3C0000000000003FFE
+F800003FFF780000000000003FFEF000001FFF780000000000003FFFF000001FFFF80000
+000000001FFFE000000FFFF00000000000001FFFE000000FFFF00000000000001FFFE000
+000FFFF00000000000000FFFC0000007FFE00000000000000FFFC0000007FFE000000000
+000007FFC0000007FFC000000000000007FF80000003FFC000000000000007FF80000003
+FFC000000000000003FF00000001FF8000000000000003FF00000001FF80000000000000
+03FF00000001FF8000000000000001FE00000000FF0000000000000001FE00000000FF00
+00000000000000FC000000007E0000000000000000FC000000007E0000000000000000FC
+000000007E000000000000000078000000003C000000006F457EC374>87
+D<0007FFF0000000007FFFFF00000001FFFFFFC0000003FC007FF0000007FE001FF80000
+07FE000FFC00000FFF0007FE00000FFF0003FF00000FFF0003FF80000FFF0003FF800007
+FE0001FF800007FE0001FFC00003FC0001FFC00000F00001FFC00000000001FFC0000000
+0001FFC00000000001FFC00000000001FFC0000000000FFFC00000003FFFFFC0000003FF
+FFFFC000001FFF01FFC000007FF001FFC00001FFC001FFC00007FF0001FFC0000FFE0001
+FFC0001FFC0001FFC0003FF80001FFC0003FF00001FFC0007FF00001FFC0007FE00001FF
+C000FFE00001FFC000FFE00001FFC000FFE00001FFC000FFE00003FFC000FFE00003FFC0
+007FF00007FFC0007FF00006FFC0003FF8000CFFC0001FFC0038FFF0000FFF80F07FFFC0
+03FFFFE07FFFC000FFFF801FFFC0000FFE0007FFC0322C7DAB36>97
+D<007FC000000000FFFFC000000000FFFFC000000000FFFFC000000000FFFFC000000000
+03FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001
+FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FF
+C00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0
+0000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC01F
+F8000001FFC1FFFF000001FFC7FFFFE00001FFCFC03FF00001FFFF000FFC0001FFFC0003
+FE0001FFF00001FF0001FFE00000FF8001FFC00000FFC001FFC000007FC001FFC000007F
+E001FFC000007FF001FFC000007FF001FFC000003FF801FFC000003FF801FFC000003FF8
+01FFC000003FF801FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01
+FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FF
+C000003FFC01FFC000003FF801FFC000003FF801FFC000003FF801FFC000003FF001FFC0
+00007FF001FFC000007FE001FFC000007FE001FFC00000FFC001FFC00000FF8001FFE000
+01FF8001FFF00001FF0001FF780007FE0001FE3E000FF80001FC0FC07FF00001F807FFFF
+C00001F001FFFF000001E0003FF0000036457DC43E>I<00003FFF00000003FFFFF00000
+0FFFFFFC00003FF001FE00007FC003FF0001FF0003FF0003FE0007FF8007FE0007FF800F
+FC0007FF800FFC0007FF801FF80003FF001FF80003FF003FF80001FE003FF8000078007F
+F0000000007FF0000000007FF000000000FFF000000000FFF000000000FFF000000000FF
+F000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FF
+F0000000007FF0000000007FF0000000007FF8000000003FF8000000003FF8000000001F
+F8000003C01FFC000003C00FFC000007800FFE0000078007FE00000F0003FF00001E0001
+FF80003C00007FE000F800003FF807F000000FFFFFE0000003FFFF800000003FF800002A
+2C7CAB32>I<0000000003FE0000000007FFFE0000000007FFFE0000000007FFFE000000
+0007FFFE00000000001FFE00000000000FFE00000000000FFE00000000000FFE00000000
+000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE0000000000
+0FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000F
+FE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE
+0000003FF00FFE000003FFFE0FFE00000FFFFF8FFE00003FF807EFFE00007FC001FFFE00
+01FF80007FFE0003FE00003FFE0007FE00001FFE0007FC00000FFE000FFC00000FFE001F
+F800000FFE001FF800000FFE003FF800000FFE003FF000000FFE007FF000000FFE007FF0
+00000FFE007FF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000
+000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF00000
+0FFE00FFF000000FFE007FF000000FFE007FF000000FFE007FF000000FFE007FF000000F
+FE003FF800000FFE003FF800000FFE001FF800000FFE000FF800000FFE000FFC00001FFE
+0007FC00003FFE0003FE00007FFE0001FF0000FFFE0000FFC003EFFF00003FF01FCFFFFC
+001FFFFF0FFFFC0003FFFC0FFFFC00007FE00FFFFC36457CC43E>I<00003FF800000003
+FFFF8000000FFFFFE000003FF01FF80000FFC007FC0001FF0001FE0003FE0001FF0007FE
+0000FF800FFC00007F800FFC00007FC01FF800003FC01FF800003FE03FF800003FE03FF0
+00003FE07FF000003FE07FF000001FF07FF000001FF0FFF000001FF0FFF000001FF0FFFF
+FFFFFFF0FFFFFFFFFFF0FFFFFFFFFFF0FFF000000000FFF000000000FFF000000000FFF0
+00000000FFF0000000007FF0000000007FF0000000007FF0000000003FF8000000003FF8
+000000001FF8000000F01FF8000000F00FFC000000F007FC000001E007FE000003E003FF
+000007C000FF80000F80007FE0003F00001FF803FC000007FFFFF8000001FFFFC0000000
+1FFE00002C2C7DAB33>I<000001FF0000001FFFC00000FFFFF00001FF83F80007FE07FC
+000FFC0FFC001FF81FFE003FF01FFE003FF01FFE007FF01FFE007FE01FFE00FFE00FFC00
+FFE007F800FFE003F000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FF
+E0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00000FFFFFFF800FFFFFF
+F800FFFFFFF800FFFFFFF80000FFE0000000FFE0000000FFE0000000FFE0000000FFE000
+0000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00000
+00FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000
+FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FF
+E0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0
+000000FFE0000000FFE000007FFFFFE0007FFFFFE0007FFFFFE0007FFFFFE00027457DC4
+22>I<00000000007E000000FFE001FF00000FFFFE07FF80003FFFFF8F9F8000FFC07FFC
+3FC001FF001FF03FC003FE000FF83FC007FC0007FC3FC00FFC0007FE1F800FF80003FE0F
+001FF80003FF00001FF80003FF00003FF80003FF80003FF80003FF80003FF80003FF8000
+3FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80001FF80003FF00001F
+F80003FF00000FF80003FE00000FFC0007FE000007FC0007FC000003FE000FF8000001FF
+001FF0000000FFC07FE0000001BFFFFF800000038FFFFE0000000700FFE0000000070000
+00000000070000000000000F8000000000000F8000000000000F8000000000000FC00000
+0000000FF0000000000007FFFFFFC0000007FFFFFFFE000007FFFFFFFF800003FFFFFFFF
+E00003FFFFFFFFF00001FFFFFFFFF80000FFFFFFFFFC0001FFFFFFFFFE0007FFFFFFFFFE
+000FF000003FFF001FC0000007FF003F80000001FF807F80000000FF80FF000000007F80
+FF000000007F80FF000000007F80FF000000007F80FF000000007F807F80000000FF007F
+80000000FF003FC0000001FE001FE0000003FC000FF0000007F80007FE00003FF00001FF
+C001FFC000007FFFFFFF0000000FFFFFF800000000FFFF80000032417DAC38>I<007FC0
+00000000FFFFC000000000FFFFC000000000FFFFC000000000FFFFC00000000003FFC000
+00000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000
+000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0000000
+0001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000000
+01FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC007FE000001
+FFC03FFFC00001FFC07FFFE00001FFC1F03FF00001FFC3C00FF80001FFC7000FFC0001FF
+CE000FFE0001FFDC0007FE0001FFD80007FE0001FFF00007FF0001FFF00007FF0001FFE0
+0007FF0001FFE00007FF0001FFE00007FF0001FFC00007FF0001FFC00007FF0001FFC000
+07FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007
+FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF
+0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF00
+01FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001
+FFC00007FF0001FFC00007FF0001FFC00007FF00FFFFFF83FFFFFEFFFFFF83FFFFFEFFFF
+FF83FFFFFEFFFFFF83FFFFFE37457CC43E>I<00780001FE0003FF0007FF8007FF800FFF
+C00FFFC00FFFC00FFFC007FF8007FF8003FF0001FE000078000000000000000000000000
+00000000000000000000000000000000000000000000000000007FC07FFFC07FFFC07FFF
+C07FFFC003FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF
+C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF
+C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF
+C0FFFFFFFFFFFFFFFFFFFFFFFF18467CC520>I<007FC000FFFFC000FFFFC000FFFFC000
+FFFFC00003FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
+01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
+01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
+01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
+01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
+01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
+01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000FFFFFF80FFFFFF80
+FFFFFF80FFFFFF8019457CC420>108 D<007F8007FF00000FFE0000FFFF801FFFC0003F
+FF8000FFFF807FFFF000FFFFE000FFFF81F81FF803F03FF000FFFF83C00FFC07801FF800
+03FF870007FE0E000FFC0001FF8E0007FF1C000FFE0001FF9C0003FF380007FE0001FF98
+0003FF300007FE0001FFB00003FFE00007FF0001FFB00003FFE00007FF0001FFE00003FF
+C00007FF0001FFE00003FFC00007FF0001FFE00003FFC00007FF0001FFC00003FF800007
+FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001
+FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC000
+03FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF80
+0007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF
+0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FF
+C00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003
+FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF8000
+07FF0001FFC00003FF800007FF0001FFC00003FF800007FF00FFFFFF81FFFFFF03FFFFFE
+FFFFFF81FFFFFF03FFFFFEFFFFFF81FFFFFF03FFFFFEFFFFFF81FFFFFF03FFFFFE572C7C
+AB5E>I<007F8007FE0000FFFF803FFFC000FFFF807FFFE000FFFF81F03FF000FFFF83C0
+0FF80003FF87000FFC0001FF8E000FFE0001FF9C0007FE0001FF980007FE0001FFB00007
+FF0001FFB00007FF0001FFE00007FF0001FFE00007FF0001FFE00007FF0001FFC00007FF
+0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF00
+01FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001
+FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FF
+C00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC0
+0007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF00FFFFFF83
+FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFE372C7CAB3E>I<00001FFC00
+00000001FFFFC00000000FFFFFF80000003FF80FFE0000007FC001FF000001FF00007FC0
+0003FE00003FE00007FC00001FF0000FFC00001FF8000FF800000FF8001FF800000FFC00
+1FF800000FFC003FF800000FFE003FF0000007FE007FF0000007FF007FF0000007FF007F
+F0000007FF00FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0
+000007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF000
+0007FF807FF0000007FF007FF0000007FF007FF0000007FF007FF0000007FF003FF80000
+0FFE003FF800000FFE001FF800000FFC000FFC00001FF8000FFC00001FF80007FE00003F
+F00003FF00007FE00001FF8000FFC00000FFC001FF8000003FF80FFE0000000FFFFFF800
+000001FFFFC0000000001FFC000000312C7DAB38>I<007FC01FF80000FFFFC1FFFF0000
+FFFFC7FFFFE000FFFFCFC03FF000FFFFFF000FFC0003FFFC0007FE0001FFF00003FF0001
+FFE00001FF8001FFC00001FFC001FFC00000FFC001FFC00000FFE001FFC000007FF001FF
+C000007FF001FFC000007FF801FFC000007FF801FFC000003FF801FFC000003FF801FFC0
+00003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000
+003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC00000
+3FF801FFC000007FF801FFC000007FF801FFC000007FF001FFC000007FF001FFC00000FF
+E001FFC00000FFE001FFC00001FFC001FFC00001FF8001FFE00003FF8001FFF00003FF00
+01FFF8000FFE0001FFFE001FF80001FFCFC07FF00001FFC7FFFFC00001FFC1FFFF000001
+FFC03FF0000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FF
+C00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0
+0000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000
+000000FFFFFF80000000FFFFFF80000000FFFFFF80000000FFFFFF80000000363F7DAB3E
+>I<00003FF0001E000003FFFC003E00000FFFFF007E00003FF80F80FE00007FE003E0FE
+0000FFC000F1FE0003FF00007BFE0007FF00003BFE0007FE00003FFE000FFE00001FFE00
+1FFC00001FFE001FFC00000FFE003FF800000FFE003FF800000FFE007FF800000FFE007F
+F800000FFE007FF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF0
+00000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000
+000FFE00FFF000000FFE007FF000000FFE007FF000000FFE007FF800000FFE003FF80000
+0FFE003FF800000FFE003FF800000FFE001FFC00000FFE000FFC00001FFE000FFE00001F
+FE0007FE00003FFE0003FF00007FFE0001FF8000FFFE0000FFC003EFFE00003FF01F8FFE
+00001FFFFF0FFE000003FFFC0FFE0000007FE00FFE00000000000FFE00000000000FFE00
+000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE0000
+0000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE000000
+00000FFE00000000000FFE00000000000FFE0000000007FFFFFC00000007FFFFFC000000
+07FFFFFC00000007FFFFFC363F7CAB3B>I<007F807F00FFFF81FFC0FFFF83FFF0FFFF87
+87F8FFFF8E0FFC03FF8C0FFC01FF9C1FFE01FF981FFE01FFB01FFE01FFB01FFE01FFF00F
+FC01FFE00FFC01FFE007F801FFE001E001FFE0000001FFC0000001FFC0000001FFC00000
+01FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001
+FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FF
+C0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0
+0000FFFFFFE000FFFFFFE000FFFFFFE000FFFFFFE000272C7DAB2E>I<001FFE038000FF
+FFCF8003FFFFFF800FF003FF801F80007F801F00003F803F00001F807E00000F807E0000
+0F80FE00000780FE00000780FF00000780FF00000780FFC0000000FFF0000000FFFF8000
+007FFFFC00007FFFFF80003FFFFFE0001FFFFFF8000FFFFFFC0007FFFFFE0003FFFFFF00
+00FFFFFF80003FFFFFC00001FFFFC000000FFFC0000000FFE07000007FE0F000001FE0F0
+00001FE0F800000FE0F800000FE0F800000FE0FC00000FC0FE00000FC0FE00000F80FF00
+001F80FF80001F00FFE0007E00FFF801FC00F8FFFFF800F03FFFE000E007FE0000232C7C
+AB2C>I<0001E000000001E000000001E000000001E000000001E000000003E000000003
+E000000003E000000003E000000007E000000007E00000000FE00000000FE00000001FE0
+0000001FE00000003FE00000007FE0000000FFE0000003FFE000000FFFFFFF80FFFFFFFF
+80FFFFFFFF80FFFFFFFF8000FFE0000000FFE0000000FFE0000000FFE0000000FFE00000
+00FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000
+FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FF
+E0000000FFE0000000FFE0000000FFE001E000FFE001E000FFE001E000FFE001E000FFE0
+01E000FFE001E000FFE001E000FFE001E000FFE001E000FFE001E0007FE003C0007FF003
+C0003FF00780001FF80700000FFC1F000007FFFE000001FFF80000003FE000233F7EBE2C
+>I<007FC00001FF00FFFFC003FFFF00FFFFC003FFFF00FFFFC003FFFF00FFFFC003FFFF
+0003FFC0000FFF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF00
+01FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001
+FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FF
+C00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC0
+0007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC000
+07FF0001FFC00007FF0001FFC0000FFF0001FFC0000FFF0001FFC0000FFF0001FFC0001F
+FF0000FFC0001FFF0000FFC00037FF00007FE00067FF00003FE000C7FF80001FF80787FF
+FE000FFFFF07FFFE0003FFFE07FFFE00007FF807FFFE372C7CAB3E>I<FFFFFF0003FFFC
+FFFFFF0003FFFCFFFFFF0003FFFCFFFFFF0003FFFC01FFC000007F0001FFE000003E0000
+FFE000003C0000FFF000003C00007FF000007800007FF800007800007FF80000F800003F
+F80000F000003FFC0001F000001FFC0001E000001FFE0003E000000FFE0003C000000FFF
+0007C0000007FF000780000007FF800F80000003FF800F00000003FFC00F00000003FFC0
+1F00000001FFE01E00000001FFE03E00000000FFE03C00000000FFF07C000000007FF078
+000000007FF8F8000000003FF8F0000000003FFDF0000000001FFDE0000000001FFFE000
+0000000FFFC0000000000FFFC0000000000FFFC00000000007FF800000000007FF800000
+000003FF000000000003FF000000000001FE000000000001FE000000000000FC00000000
+0000FC00000000000078000000362C7EAB3B>I<FFFFFE003FFFF0FFFFFE003FFFF0FFFF
+FE003FFFF0FFFFFE003FFFF001FFE00007F80000FFF00003E000007FF80007C000003FF8
+000F8000001FFC001F0000001FFE003F0000000FFF007E00000007FF807C00000003FFC0
+F800000001FFC1F000000001FFE3E000000000FFF7C0000000007FFF80000000003FFF80
+000000001FFF00000000001FFE00000000000FFF000000000007FF800000000003FFC000
+00000003FFC00000000007FFE0000000000FFFF0000000000FFFF8000000001F3FFC0000
+00003E1FFC000000007C1FFE00000000F80FFF00000001F007FF80000003F003FFC00000
+07E001FFC0000007C001FFE000000F8000FFF000001F00007FF800003E00003FFC00007C
+00001FFC0001FE00000FFE00FFFFE000FFFFFCFFFFE000FFFFFCFFFFE000FFFFFCFFFFE0
+00FFFFFC362C7EAB3B>120 D<FFFFFF0003FFFCFFFFFF0003FFFCFFFFFF0003FFFCFFFF
+FF0003FFFC01FFC000007F0001FFE000003E0000FFE000003C0000FFF000003C00007FF0
+00007800007FF800007800007FF80000F800003FF80000F000003FFC0001F000001FFC00
+01E000001FFE0003E000000FFE0003C000000FFF0007C0000007FF000780000007FF800F
+80000003FF800F00000003FFC00F00000003FFC01F00000001FFE01E00000001FFE03E00
+000000FFE03C00000000FFF07C000000007FF078000000007FF8F8000000003FF8F00000
+00003FFDF0000000001FFDE0000000001FFFE0000000000FFFC0000000000FFFC0000000
+000FFFC00000000007FF800000000007FF800000000003FF000000000003FF0000000000
+01FE000000000001FE000000000000FC000000000000FC00000000000078000000000000
+78000000000000F8000000000000F0000000000001F0000000000001E00000001F0003E0
+0000003F8003C00000007FC007C0000000FFE00780000000FFE00F80000000FFE00F0000
+0000FFE01F00000000FFE03E000000007FC07C000000007FC0F8000000003F07F0000000
+001FFFC0000000000FFF800000000001FC0000000000363F7EAB3B>I
+E /Fk 8 117 df<0F003FC07FE07FE0FFF0FFF0FFF0FFF07FE07FE03FC00F000C0C7A8B
+19>46 D<0000000F000000000000001F800000000000001F800000000000003FC0000000
+0000003FC00000000000007FE00000000000007FE00000000000007FE0000000000000FF
+F0000000000000FFF0000000000001FFF8000000000001FFF8000000000003FFFC000000
+000003FFFC000000000003DFFC000000000007DFFE0000000000078FFE00000000000F8F
+FF00000000000F07FF00000000001F07FF80000000001E07FF80000000001E03FF800000
+00003E03FFC0000000003C01FFC0000000007C01FFE0000000007800FFE000000000F800
+FFF000000000F000FFF000000000F0007FF000000001F0007FF800000001E0003FF80000
+0003E0003FFC00000003C0001FFC00000007FFFFFFFE00000007FFFFFFFE00000007FFFF
+FFFE0000000FFFFFFFFF0000000F000007FF0000001F000007FF8000001E000003FF8000
+003E000003FFC000003C000003FFC000003C000001FFC000007C000001FFE00000780000
+00FFE00000F8000000FFF00000F00000007FF000FFFFE0003FFFFFF0FFFFE0003FFFFFF0
+FFFFE0003FFFFFF0FFFFE0003FFFFFF03C337DB243>65 D<007FFE000003FFFFE00007FF
+FFF8000FF00FFC001FF801FE001FF800FF001FF800FF801FF8007F801FF8007FC00FF000
+7FC007E0007FC00180007FC00000007FC0000007FFC00007FFFFC0007FFFFFC001FFC07F
+C007FE007FC01FF8007FC03FE0007FC07FC0007FC07FC0007FC0FF80007FC0FF80007FC0
+FF80007FC0FF80007FC0FF8000FFC07FC001FFC03FE003BFE01FF80F3FFF0FFFFE1FFF03
+FFF80FFF007FE003FF28217EA02B>97 D<01FC00000000FFFC00000000FFFC00000000FF
+FC00000000FFFC000000000FFC0000000007FC0000000007FC0000000007FC0000000007
+FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007
+FC0000000007FC0000000007FC0000000007FC0000000007FC07FC000007FC7FFF800007
+FDFFFFE00007FFF00FF80007FFC003FC0007FF0001FE0007FC0000FF0007FC0000FF0007
+FC0000FF8007FC00007FC007FC00007FC007FC00007FC007FC00007FE007FC00007FE007
+FC00007FE007FC00007FE007FC00007FE007FC00007FE007FC00007FE007FC00007FE007
+FC00007FE007FC00007FC007FC00007FC007FC0000FF8007FC0000FF8007FC0000FF0007
+FE0001FE0007FF0001FE0007FFC007FC0007F3F01FF00007E0FFFFE00007C07FFF800007
+800FF800002B347EB331>I<0007FF8000003FFFF00000FFFFFC0001FE01FE0007F803FF
+000FF003FF001FF003FF001FE003FF003FE003FF003FE001FE007FC000FC007FC0003000
+FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FF
+C0000000FFC00000007FC00000007FE00000003FE00000003FE00007801FF00007801FF0
+000F000FF8000F0007FC003E0001FF80FC0000FFFFF000003FFFE0000007FF000021217D
+A027>I<01F80FC0FFF83FF0FFF87FF8FFF8F1FCFFF9C3FE0FF983FE07FB03FE07FB03FE
+07FE01FC07FE00F807FE002007FE000007FC000007FC000007FC000007FC000007FC0000
+07FC000007FC000007FC000007FC000007FC000007FC000007FC000007FC000007FC0000
+07FC000007FC000007FC0000FFFFF000FFFFF000FFFFF000FFFFF0001F217EA024>114
+D<00FFE1C007FFFFC00FFFFFC01F803FC03E000FC07C0007C07C0003C0FC0003C0FC0003
+C0FE0003C0FF800000FFFC00007FFFE0007FFFFC003FFFFE001FFFFF000FFFFF8003FFFF
+C000FFFFE0000FFFE000007FF000000FF0700007F0F00003F0F80003F0F80003F0FC0003
+E0FC0007E0FF0007C0FFC01F80FFFFFF00F1FFFC00E03FE0001C217DA023>I<003C0000
+003C0000003C0000003C0000003C0000007C0000007C0000007C000000FC000000FC0000
+01FC000001FC000003FC000007FC00001FFFFF80FFFFFF80FFFFFF80FFFFFF8007FC0000
+07FC000007FC000007FC000007FC000007FC000007FC000007FC000007FC000007FC0000
+07FC000007FC000007FC000007FC000007FC000007FC000007FC03C007FC03C007FC03C0
+07FC03C007FC03C007FC03C007FC03C003FC078003FE078001FF0F0000FFFE00003FFC00
+000FF0001A2F7EAE22>I E /Fl 64 123 df<00001FE0000001FFFC000007F01E00000F
+C00300001F000780003E000FC0007C001FC000FC001FC001F8001FC001F8000F8001F800
+070001F800000001F800000001F800000001F800000001F800000001F800000001F80000
+0001F800000001F8000000FFFFFFFFC0FFFFFFFFC001F8001FC001F8000FC001F8000FC0
+01F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001
+F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8
+000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F800
+0FC001F8000FC001F8000FC003FC001FE07FFFC1FFFF7FFFC1FFFF28347FB32B>12
+D<007800FC00FC01FC03FC07F807E00FC01F801F003C007800F00040000E0E71B326>19
+D<0000C00001C0000300000700000E00001C0000380000780000700000E00001E00001C0
+0003C0000780000780000F00000F00000F00001E00001E00001E00003E00003C00003C00
+007C00007C00007C00007C0000780000F80000F80000F80000F80000F80000F80000F800
+00F80000F80000F80000F80000F80000F80000F80000F80000F800007800007C00007C00
+007C00007C00003C00003C00003E00001E00001E00001E00000F00000F00000F00000780
+0007800003C00001C00001E00000E000007000007800003800001C00000E000007000003
+000001C00000C0124A79B71E>40 D<800000C000006000007000003800001C00000E0000
+0F000007000003800003C00001C00001E00000F00000F000007800007800007800003C00
+003C00003C00003E00001E00001E00001F00001F00001F00001F00000F00000F80000F80
+000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80
+000F80000F80000F00001F00001F00001F00001F00001E00001E00003E00003C00003C00
+003C0000780000780000780000F00000F00001E00001C00003C0000380000700000F0000
+0E00001C0000380000700000600000C00000800000114A7BB71E>I<3C007E00FF00FF00
+FF80FF807F803D8001800180018001800300030003000600060006000C00180030007000
+200009177A8715>44 D<FFFFF0FFFFF0FFFFF0FFFFF0FFFFF014057F921A>I<3C7EFFFF
+FFFF7E3C08087A8715>I<000000300000007800000078000000F8000000F0000000F000
+0001F0000001E0000001E0000003E0000003C0000007C0000007800000078000000F8000
+000F0000000F0000001F0000001E0000001E0000003E0000003C0000003C0000007C0000
+007800000078000000F8000000F0000001F0000001E0000001E0000003E0000003C00000
+03C0000007C0000007800000078000000F8000000F0000000F0000001F0000001E000000
+1E0000003E0000003C0000003C0000007C00000078000000F8000000F0000000F0000001
+F0000001E0000001E0000003E0000003C0000003C0000007C0000007800000078000000F
+8000000F0000000F0000001F0000001E0000003E0000003C0000003C0000007C00000078
+00000078000000F8000000F0000000F0000000600000001D4B7CB726>I<000FE000007F
+FC0000F83E0003E00F8007C007C00F8003E00F0001E01F0001F01E0000F03E0000F83E00
+00F83E0000F87C00007C7C00007C7C00007C7C00007C7C00007CFC00007EFC00007EFC00
+007EFC00007EFC00007EFC00007EFC00007EFC00007EFC00007EFC00007EFC00007EFC00
+007EFC00007EFC00007EFC00007EFC00007EFC00007E7C00007C7C00007C7C00007C7E00
+00FC3E0000F83E0000F83E0000F81E0000F01F0001F00F0001E00F8003E007C007C003E0
+0F8001F83F00007FFC00000FE0001F327DB026>I<00070000000F0000001F0000007F00
+0007FF0000FFBF0000F83F0000003F0000003F0000003F0000003F0000003F0000003F00
+00003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00
+00003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00
+00003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00
+00003F0000003F0000003F0000003F0000003F0000003F000000FFC0007FFFFF807FFFFF
+8019317AB026>I<003FC00001FFF80003C07C0006003F000C000F8018000FC0300007E0
+600007E0600007F07C0003F0FE0003F8FF0003F8FF0003F8FF0003F8FF0003F87E0003F8
+3C0003F8000003F8000003F0000007F0000007E0000007E000000FC000000FC000001F80
+00001F0000003E0000007C000000F8000000F0000001E0000003C00000078000000F0000
+000E0000001C0000003800180070001800E0001801C00030038000300300003006000070
+0FFFFFF01FFFFFF03FFFFFF07FFFFFE0FFFFFFE0FFFFFFE01D317CB026>I<001FE00000
+FFFC0003E03F0007000F800C0007C0180007E01F0003F03F8003F83F8003F83FC003F83F
+8003F81F8003F80F0003F8000003F0000007F0000007F0000007E000000FC000000F8000
+001F0000003E000001F800007FE000007FFC0000003F0000000F80000007C0000007E000
+0003F0000003F8000003FC000001FC000001FC000001FE000001FE3C0001FE7E0001FEFF
+0001FEFF0001FEFF0001FCFE0001FCFC0003FC780003F8300003F0300007E01C0007C00F
+000F8003E03F0000FFFC00001FE0001F327DB026>I<000001C000000001C000000003C0
+00000007C00000000FC00000000FC00000001FC00000003FC00000003FC00000006FC000
+0000EFC0000000CFC00000018FC00000038FC00000030FC00000060FC000000E0FC00000
+1C0FC00000180FC00000300FC00000700FC00000600FC00000C00FC00001C00FC0000180
+0FC00003000FC00007000FC00006000FC0000C000FC0001C000FC00038000FC00030000F
+C00060000FC000E0000FC000FFFFFFFF80FFFFFFFF8000000FC00000000FC00000000FC0
+0000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC000
+00001FE0000007FFFF800007FFFF8021317EB026>I<000FF000007FFC0000F01F000380
+0780070001C00E0001E00E0000F01C0000F01C0000783C0000783C0000783C0000783E00
+00783E0000783F0000F01FC000F01FE001E01FF801C00FFE038007FF0F0003FFDE0001FF
+F80000FFF800003FFC00003FFF0000F7FF8001C1FFC00780FFE00F003FF01E001FF81C00
+07FC3C0003FC780000FC7800007EF000003EF000003EF000001EF000001EF000001EF000
+001EF000001C7800001C780000383C0000301E0000700F0000E00780038003F01F0000FF
+FC00001FF0001F327DB026>56 D<000FE000007FFC0000F83E0003E00F0007C007800F80
+03C01F0003E01F0001E03F0001F07E0001F07E0001F87E0001F8FE0000FCFE0000FCFE00
+00FCFE0000FCFE0000FCFE0000FEFE0000FEFE0000FE7E0000FE7E0001FE7E0001FE3F00
+01FE3F0001FE1F0003FE0F8003FE078006FE03C00CFE01F038FE007FF0FE001FC0FC0000
+00FC000000FC000000FC000001F8000001F8000001F0000001F01F0003E03F8003E03F80
+07C03F8007803F800F803F000F001C001E000C007C000701F00003FFE00000FF00001F32
+7DB026>I<3C7EFFFFFFFF7E3C000000000000000000000000000000003C7EFFFFFFFF7E
+3C08207A9F15>I<3C7EFFFFFFFF7E3C000000000000000000000000000000003C7EFEFF
+FFFF7F3F03030303030606060C0C1818306020082F7A9F15>I<000000E0000000000000
+E0000000000000E0000000000001F0000000000001F0000000000003F8000000000003F8
+000000000003F8000000000007FC000000000007FC000000000007FC00000000000CFE00
+000000000CFE00000000001CFF0000000000187F0000000000187F0000000000307F8000
+000000303F8000000000303F8000000000601FC000000000601FC000000000E01FE00000
+0000C00FE000000000C00FE000000001800FF0000000018007F0000000018007F0000000
+030003F8000000030003F8000000070003FC000000060001FC000000060001FC0000000E
+0001FE0000000FFFFFFE0000000FFFFFFE0000001800007F0000001800007F0000001800
+007F0000003000003F8000003000003F8000007000003FC000006000001FC00000600000
+1FC00000C000001FE00000C000000FE00000C000000FE00001C0000007F00003C0000007
+F00007E0000007F8001FF000001FFC00FFFE0001FFFFE0FFFE0001FFFFE033347DB33A>
+65 D<FFFFFFFF0000FFFFFFFFE00003FE0003F80001FC0000FE0001FC00007F0001FC00
+003F8001FC00001FC001FC00001FE001FC00000FE001FC00000FE001FC00000FF001FC00
+000FF001FC00000FF001FC00000FF001FC00000FF001FC00000FF001FC00000FE001FC00
+001FE001FC00001FC001FC00003F8001FC00007F0001FC0000FE0001FC0003FC0001FFFF
+FFF00001FFFFFFE00001FC0007F80001FC0000FE0001FC00003F8001FC00001FC001FC00
+000FE001FC00000FF001FC000007F001FC000007F801FC000003F801FC000003FC01FC00
+0003FC01FC000003FC01FC000003FC01FC000003FC01FC000003FC01FC000003FC01FC00
+0007F801FC000007F801FC000007F001FC00000FE001FC00001FE001FC00003FC001FC00
+007F0003FE0003FE00FFFFFFFFF800FFFFFFFFC0002E337DB236>I<000003FE000C0000
+3FFF800C0000FC01E01C0003F000783C000FC0001C7C001F0000067C003E000003FC00FC
+000001FC01F8000000FC01F0000000FC03F00000007C07E00000003C0FE00000003C0FC0
+0000003C1FC00000001C3F800000001C3F800000001C3F800000000C7F800000000C7F80
+0000000C7F000000000CFF0000000000FF0000000000FF0000000000FF0000000000FF00
+00000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF00
+000000007F00000000007F800000000C7F800000000C3F800000000C3F800000000C3F80
+0000000C1FC0000000180FC0000000180FE00000001807E00000003003F00000003001F0
+0000006001F80000006000FC000000C0003E00000180001F00000700000FC0000E000003
+F00038000000FC01F00000003FFFC000000003FE00002E357CB337>I<FFFFFFFF800000
+FFFFFFFFF0000001FF0001FE000000FE00003F000000FE00001FC00000FE000007E00000
+FE000003F00000FE000001F80000FE000000FC0000FE0000007E0000FE0000007E0000FE
+0000003F0000FE0000003F8000FE0000001F8000FE0000001FC000FE0000001FC000FE00
+00001FC000FE0000000FE000FE0000000FE000FE0000000FE000FE0000000FE000FE0000
+000FF000FE0000000FF000FE0000000FF000FE0000000FF000FE0000000FF000FE000000
+0FF000FE0000000FF000FE0000000FF000FE0000000FF000FE0000000FF000FE0000000F
+E000FE0000000FE000FE0000000FE000FE0000000FE000FE0000001FC000FE0000001FC0
+00FE0000001F8000FE0000003F8000FE0000003F0000FE0000007F0000FE0000007E0000
+FE000000FC0000FE000001F80000FE000003F00000FE000007E00000FE00000FC00000FE
+00003F800001FF0001FE0000FFFFFFFFF80000FFFFFFFF80000034337EB23B>I<FFFFFF
+FFFFC0FFFFFFFFFFC003FE00007FC001FC00000FC001FC000003E001FC000001E001FC00
+0001E001FC000000E001FC000000E001FC0000006001FC0000006001FC0000006001FC00
+00006001FC0000003001FC0000003001FC0006003001FC0006003001FC0006000001FC00
+06000001FC0006000001FC000E000001FC000E000001FC001E000001FC007E000001FFFF
+FE000001FFFFFE000001FC007E000001FC001E000001FC000E000001FC000E000001FC00
+06000001FC0006000001FC0006000C01FC0006000C01FC0006000C01FC0000001801FC00
+00001801FC0000001801FC0000001801FC0000003801FC0000003801FC0000003001FC00
+00007001FC0000007001FC000000F001FC000001F001FC000003F001FC00000FF003FE00
+007FE0FFFFFFFFFFE0FFFFFFFFFFE02E337DB234>I<FFFFFFFFFF80FFFFFFFFFF8003FE
+0000FF8001FC00001F8001FC000007C001FC000003C001FC000003C001FC000001C001FC
+000001C001FC000000C001FC000000C001FC000000C001FC000000C001FC0000006001FC
+0000006001FC000C006001FC000C006001FC000C000001FC000C000001FC000C000001FC
+001C000001FC001C000001FC003C000001FC00FC000001FFFFFC000001FFFFFC000001FC
+00FC000001FC003C000001FC001C000001FC001C000001FC000C000001FC000C000001FC
+000C000001FC000C000001FC000C000001FC0000000001FC0000000001FC0000000001FC
+0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC
+0000000001FC0000000001FC0000000001FC0000000003FF00000000FFFFFE000000FFFF
+FE0000002B337DB232>I<000003FE000C0000003FFF800C000000FC01E01C000003F000
+783C00000FC0001C7C00001F0000067C00003E000003FC0000FC000001FC0001F8000000
+FC0001F0000000FC0003F00000007C0007E00000003C000FE00000003C000FC00000003C
+001FC00000001C003F800000001C003F800000001C003F800000000C007F800000000C00
+7F800000000C007F000000000C00FF000000000000FF000000000000FF000000000000FF
+000000000000FF000000000000FF000000000000FF000000000000FF000000000000FF00
+0000000000FF000000000000FF000003FFFFE07F000003FFFFE07F80000007FE007F8000
+0001FC003F80000001FC003F80000001FC003F80000001FC001FC0000001FC000FC00000
+01FC000FE0000001FC0007E0000001FC0003F0000001FC0001F0000001FC0001F8000001
+FC0000FC000001FC00003E000003FC00001F0000067C00000FC0000C7C000003F000383C
+000000FC01F01C0000003FFFC00C00000003FE00000033357CB33C>I<FFFFFEFFFFFE01
+FF0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000
+FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000
+FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000
+FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0001FF00FFFFFEFF
+FFFE17337EB21C>73 D<007FFFFF007FFFFF00007FE000001FC000001FC000001FC00000
+1FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC00000
+1FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC00000
+1FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC00000
+1FC000001FC000001FC000001FC000001FC000001FC03C001FC07E001FC0FF001FC0FF00
+1FC0FF001F80FE003F807C003F0060007F0030007E001C00FC000F03F00003FFE00000FF
+000020347DB227>I<FFFFFE0007FFF8FFFFFE0007FFF801FF000001FF8000FE000000FE
+0000FE000000780000FE000000E00000FE000000C00000FE000001800000FE0000030000
+00FE000006000000FE00000C000000FE000018000000FE000030000000FE0000E0000000
+FE0001C0000000FE000300000000FE000600000000FE000C00000000FE001800000000FE
+003000000000FE007800000000FE00F800000000FE01FC00000000FE03FE00000000FE06
+FE00000000FE0C7F00000000FE383F80000000FE703F80000000FEC01FC0000000FF800F
+E0000000FF000FF0000000FE0007F0000000FE0003F8000000FE0003FC000000FE0001FC
+000000FE0000FE000000FE0000FF000000FE00007F000000FE00003F800000FE00001FC0
+0000FE00001FC00000FE00000FE00000FE000007F00000FE000007F80000FE000003F800
+00FE000003FC0000FE000001FE0000FE000001FF0001FF000003FF80FFFFFE003FFFFCFF
+FFFE003FFFFC36337EB23C>I<FFFFFE000000FFFFFE00000003FF0000000001FC000000
+0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
+0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
+0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
+0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
+0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000018001FC000001
+8001FC0000018001FC0000018001FC0000038001FC0000030001FC0000030001FC000003
+0001FC0000070001FC0000070001FC0000070001FC00000F0001FC00001F0001FC00003F
+0001FC00007E0001FC0001FE0003FE0007FE00FFFFFFFFFE00FFFFFFFFFE0029337DB230
+>I<FFFC00000001FFF8FFFE00000003FFF803FE00000003FE0001FE00000003FC0001BF
+00000006FC0001BF00000006FC0001BF00000006FC00019F8000000CFC00019F8000000C
+FC00018FC0000018FC00018FC0000018FC00018FC0000018FC000187E0000030FC000187
+E0000030FC000183F0000060FC000183F0000060FC000183F0000060FC000181F80000C0
+FC000181F80000C0FC000181F80000C0FC000180FC000180FC000180FC000180FC000180
+7E000300FC0001807E000300FC0001807E000300FC0001803F000600FC0001803F000600
+FC0001801F800C00FC0001801F800C00FC0001801F800C00FC0001800FC01800FC000180
+0FC01800FC0001800FC01800FC00018007E03000FC00018007E03000FC00018003F06000
+FC00018003F06000FC00018003F06000FC00018001F8C000FC00018001F8C000FC000180
+01F8C000FC00018000FD8000FC00018000FD8000FC000180007F0000FC000180007F0000
+FC000180007F0000FC0003C0003E0000FC0007E0003E0000FC000FF0001C0001FE00FFFF
+001C007FFFF8FFFF001C007FFFF83D337CB246>I<FFFE00001FFFF8FFFF00001FFFF800
+FF000001FF8000FF8000007E0000FFC000003C0000DFE00000180000CFE00000180000C7
+F00000180000C7F80000180000C3F80000180000C1FC0000180000C1FE0000180000C0FF
+0000180000C07F0000180000C03F8000180000C03FC000180000C01FC000180000C00FE0
+00180000C00FF000180000C007F800180000C003F800180000C001FC00180000C001FE00
+180000C000FE00180000C0007F00180000C0007F80180000C0003FC0180000C0001FC018
+0000C0000FE0180000C0000FF0180000C00007F0180000C00003F8180000C00003FC1800
+00C00001FE180000C00000FE180000C000007F180000C000007F980000C000003F980000
+C000001FD80000C000001FF80000C000000FF80000C0000007F80000C0000003F80000C0
+000003F80000C0000001F80000C0000000F80001E0000000F80003F000000078000FFC00
+00003800FFFFC000001800FFFFC00000180035337EB23A>I<000007FC00000000007FFF
+C000000001FC07F000000007E000FC0000001F80003F0000003F00001F8000007E00000F
+C00000FC000007E00001F8000003F00003F0000001F80007F0000001FC0007E0000000FC
+000FC00000007E001FC00000007F001FC00000007F003F800000003F803F800000003F80
+3F800000003F807F800000003FC07F000000001FC07F000000001FC0FF000000001FE0FF
+000000001FE0FF000000001FE0FF000000001FE0FF000000001FE0FF000000001FE0FF00
+0000001FE0FF000000001FE0FF000000001FE0FF000000001FE0FF000000001FE07F0000
+00001FC07F800000003FC07F800000003FC07F800000003FC03F800000003F803FC00000
+007F801FC00000007F001FC00000007F000FE0000000FE000FE0000000FE0007F0000001
+FC0003F8000003F80001F8000003F00000FC000007E000007E00000FC000003F00001F80
+00001F80003F00000007E000FC00000001FC07F0000000007FFFC00000000007FC000000
+33357CB33C>I<FFFFFFFE0000FFFFFFFFC00003FE0007F80001FC0001FC0001FC00007E
+0001FC00003F8001FC00001F8001FC00001FC001FC00001FE001FC00000FE001FC00000F
+F001FC00000FF001FC00000FF001FC00000FF001FC00000FF001FC00000FF001FC00000F
+F001FC00000FE001FC00001FE001FC00001FC001FC00001F8001FC00003F8001FC00007E
+0001FC0001FC0001FC0007F80001FFFFFFC00001FFFFFE000001FC0000000001FC000000
+0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
+0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
+0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000
+0001FC0000000003FE00000000FFFFF8000000FFFFF80000002C337DB234>I<FFFFFFFC
+000000FFFFFFFFC0000001FF000FF0000000FE0001FC000000FE00007E000000FE00003F
+000000FE00001F800000FE00001FC00000FE00001FE00000FE00000FE00000FE00000FF0
+0000FE00000FF00000FE00000FF00000FE00000FF00000FE00000FF00000FE00000FF000
+00FE00000FE00000FE00001FE00000FE00001FC00000FE00001F800000FE00003F000000
+FE00007E000000FE0001FC000000FE000FF0000000FFFFFFC0000000FFFFFF00000000FE
+001FC0000000FE0007E0000000FE0001F0000000FE0001F8000000FE0000FC000000FE00
+00FE000000FE00007E000000FE00007F000000FE00007F000000FE00007F000000FE0000
+7F000000FE00007F000000FE00007F800000FE00007F800000FE00007F800000FE00007F
+800000FE00007F800000FE00007F800C00FE00007FC00C00FE00003FC00C00FE00003FC0
+0C00FE00001FC01801FF00000FE030FFFFFE0007F070FFFFFE0001FFC000000000003F80
+36347EB239>82 D<001FE0030000FFFC030001F01F0700078003CF000F0000FF001E0000
+3F001C00003F003C00001F007800000F007800000F007800000700F800000700F8000007
+00F800000300F800000300FC00000300FC00000300FE000000007F000000007FC0000000
+3FF00000003FFF0000001FFFF000000FFFFF000007FFFFC00003FFFFF00000FFFFF80000
+3FFFFC000003FFFE0000003FFE00000003FF00000000FF800000003F800000001F800000
+001FC00000000FC04000000FC0C0000007C0C0000007C0C0000007C0C0000007C0E00000
+07C0E000000780E000000780F000000F00F000000F00F800001E00FC00001C00FF000038
+00F3C000F000E0FC03E000C03FFF8000C003FE000022357CB32B>I<7FFFFFFFFFFE7FFF
+FFFFFFFE7F800FF801FE7C0007F0003E780007F0001E700007F0000E700007F0000E6000
+07F00006600007F00006E00007F00007E00007F00007C00007F00003C00007F00003C000
+07F00003C00007F00003C00007F00003C00007F00003000007F00000000007F000000000
+07F00000000007F00000000007F00000000007F00000000007F00000000007F000000000
+07F00000000007F00000000007F00000000007F00000000007F00000000007F000000000
+07F00000000007F00000000007F00000000007F00000000007F00000000007F000000000
+07F00000000007F00000000007F00000000007F00000000007F00000000007F000000000
+07F00000000007F00000000007F00000000007F00000000007F0000000001FFC0000001F
+FFFFFC00001FFFFFFC0030337DB237>I<FFFFFE001FFFF8FFFFFE001FFFF801FF000001
+FF8000FE0000007E0000FE0000003C0000FE000000180000FE000000180000FE00000018
+0000FE000000180000FE000000180000FE000000180000FE000000180000FE0000001800
+00FE000000180000FE000000180000FE000000180000FE000000180000FE000000180000
+FE000000180000FE000000180000FE000000180000FE000000180000FE000000180000FE
+000000180000FE000000180000FE000000180000FE000000180000FE000000180000FE00
+0000180000FE000000180000FE000000180000FE000000180000FE000000180000FE0000
+00180000FE000000180000FE000000180000FE000000180000FE0000001800007E000000
+3000007F0000003000007F0000003000003F0000006000001F0000006000001F800000C0
+00000F800000C0000007C0000180000003E0000300000001F0000E00000000FC003C0000
+00003F00F0000000000FFFC00000000001FF00000035347EB23A>I<FFFFF00003FFF8FF
+FFF00003FFF807FE0000007FC003FC0000001F0001FC0000001E0001FC0000000C0001FE
+0000000C0000FE000000180000FE0000001800007F0000003000007F0000003000007F80
+00003000003F8000006000003F8000006000003FC00000E000001FC00000C000001FE000
+00C000000FE000018000000FE000018000000FF0000380000007F0000300000007F80003
+00000003F8000600000003F8000600000003FC000E00000001FC000C00000001FE000C00
+000000FE001800000000FE001800000000FF0038000000007F0030000000007F80300000
+00003F8060000000003F8060000000003FC0E0000000001FC0C0000000001FE0C0000000
+000FE180000000000FE180000000000FF3800000000007F3000000000007FB0000000000
+03FE000000000003FE000000000003FE000000000001FC000000000001FC000000000000
+F8000000000000F8000000000000F8000000000000700000000000007000000035347EB2
+3A>I<FFFFF007FFFF800FFFF0FFFFF007FFFF800FFFF007FF00007FF00001FF0003FC00
+001FE000007E0001FC00001FC000003C0001FC00001FE00000380000FE00000FE0000030
+0000FE00000FE00000300000FE00000FF000003000007F000007F000006000007F000007
+F000006000007F00000FF800006000003F80000FF80000C000003F80000FF80000C00000
+3F80001FFC0000C000001FC00019FC00018000001FC00019FC00018000001FC00039FE00
+018000000FE00030FE00030000000FE00030FE00030000000FE00070FF000300000007F0
+00607F000600000007F000607F000600000007F000E07F800600000003F800C03F800C00
+000003F800C03F800C00000003F801C03FC00C00000001FC01801FC01800000001FC0180
+1FC01800000001FC03801FE01800000000FE03000FE03000000000FE03000FE030000000
+00FE07000FF030000000007F060007F060000000007F060007F060000000007F0C0003F8
+60000000003F8C0003F8C0000000003F8C0003F8C0000000003F980001FCC0000000001F
+D80001FD80000000001FD80001FD80000000001FF00000FF80000000000FF00000FF0000
+0000000FF00000FF00000000000FE000007F000000000007E000007E000000000007E000
+007E000000000007C000003E000000000003C000003C000000000003C000003C00000000
+00038000001C000000000001800000180000004C347FB24F>I<7FFFFC00FFFFC07FFFFC
+00FFFFC001FFE0001FFC0000FF80000FE000007F8000078000003F8000070000003FC000
+060000001FE0000E0000000FE0000C0000000FF0001800000007F8003800000003F80070
+00000003FC006000000001FE00E000000000FF01C000000000FF0180000000007F830000
+0000003FC700000000003FC600000000001FEC00000000000FFC00000000000FF8000000
+000007F8000000000003FC000000000003FC000000000001FE000000000001FF00000000
+0003FF0000000000037F8000000000063FC0000000000E3FC0000000001C1FE000000000
+180FF0000000003807F0000000007007F8000000006003FC00000000C001FC00000001C0
+01FE000000018000FF0000000300007F0000000700007F8000000E00003FC000000C0000
+1FE000001C00001FE000003800000FF0000038000007F80000F8000007F80001FC000007
+FC000FFE00001FFE00FFFF8000FFFFF8FFFF8000FFFFF835337EB23A>I<03FFC000000F
+FFF800001F00FC00003F803F00003F801F80003F800FC0001F000FC0000E0007E0000000
+07E000000007E000000007E000000007E0000001FFE000003FFFE00000FF87E00003F807
+E0000FE007E0001F8007E0003F0007E0007E0007E0007E0007E000FC0007E0C0FC0007E0
+C0FC0007E0C0FC0007E0C0FC000FE0C07C000FE0C07E001BE0C03F0033F1801FC0E1FF80
+07FFC0FF0000FF007C0022207D9F26>97 D<03F0000000FFF0000000FFF000000007F000
+000003F000000003F000000003F000000003F000000003F000000003F000000003F00000
+0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000
+03F000000003F000000003F03F800003F1FFF00003F3C0F80003F6003E0003FC000F0003
+F8000F8003F00007C003F00007C003F00003E003F00003F003F00003F003F00001F003F0
+0001F803F00001F803F00001F803F00001F803F00001F803F00001F803F00001F803F000
+01F803F00001F003F00003F003F00003E003F00003E003F00007C003F000078003F8000F
+8003EC001F0003E6003C0003C381F8000381FFE00003007F000025347EB32B>I<000FFE
+00007FFF8000F807C003E00FE007800FE00F800FE01F0007C01F0003803E0000007E0000
+007E0000007C000000FC000000FC000000FC000000FC000000FC000000FC000000FC0000
+00FC0000007C0000007E0000007E0000003E0000301F0000301F0000600F80006007C000
+C003E0038000F80F00007FFC00000FF0001C207D9F22>I<0000003F0000000FFF000000
+0FFF000000007F000000003F000000003F000000003F000000003F000000003F00000000
+3F000000003F000000003F000000003F000000003F000000003F000000003F000000003F
+000000003F000000003F000000003F000007F03F00003FFE3F0000FC0F3F0001E001BF00
+07C000FF000F80007F000F00003F001F00003F003E00003F003E00003F007E00003F007C
+00003F00FC00003F00FC00003F00FC00003F00FC00003F00FC00003F00FC00003F00FC00
+003F00FC00003F007C00003F007E00003F007E00003F003E00003F001F00003F001F0000
+7F000F8000FF00078001FF0003E003BF0000F81E3F80007FFC3FFC000FE03FFC26347DB3
+2B>I<000FF000007FFC0000F81F0003E00780078003C00F8001E01F0001E01E0001F03E
+0000F07E0000F07C0000F87C0000F8FC0000F8FFFFFFF8FFFFFFF8FC000000FC000000FC
+000000FC000000FC0000007C0000007E0000003E0000003E0000181F0000180F0000300F
+80003007C0006001E001C000F80F80003FFE000007F0001D207E9F22>I<0001FC00000F
+FE00001F0780003E0F80007C1FC000F81FC001F81FC001F00F8003F0070003F0000003F0
+000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0
+0000FFFFF000FFFFF00003F0000003F0000003F0000003F0000003F0000003F0000003F0
+000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0
+000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0
+000003F0000003F0000007F800007FFFE0007FFFE0001A347FB317>I<0000001F00001F
+C07F80007FF1E3C001F07F83C003C01E03C007800F018007800F00000F000780000F0007
+80001F0007C0001F0007C0001F0007C0001F0007C0001F0007C0000F000780000F000780
+0007800F000007800F000003C01E000003F07C0000067FF000000E1FC000000E00000000
+0E000000000E000000000E000000000E000000000F800000000FFFFE000007FFFFC00003
+FFFFF00001FFFFF80007FFFFFC001F0001FE003E00003F007C00001F007C00001F80F800
+000F80F800000F80F800000F80F800000F807800000F007C00001F003E00003E001F0000
+7C000F8000F80003F007E00000FFFF8000001FFC000022317EA026>I<03F0000000FFF0
+000000FFF000000007F000000003F000000003F000000003F000000003F000000003F000
+000003F000000003F000000003F000000003F000000003F000000003F000000003F00000
+0003F000000003F000000003F000000003F000000003F01FC00003F0FFF00003F1E0F800
+03F3007C0003F6007E0003FC003E0003FC003F0003F8003F0003F8003F0003F0003F0003
+F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0
+003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F000
+3F0003F0003F0003F0003F0003F0003F0003F0003F0007F8007F80FFFFC7FFFCFFFFC7FF
+FC26347EB32B>I<07800FC01FE01FE01FE01FE00FC00780000000000000000000000000
+0000000000000000000007E0FFE0FFE00FE007E007E007E007E007E007E007E007E007E0
+07E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E00FF0FFFF
+FFFF10337EB215>I<0003C00007E0000FF0000FF0000FF0000FF00007E00003C0000000
+0000000000000000000000000000000000000000000000000000000000000003F000FFF0
+00FFF00007F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0
+0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0
+0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0
+3803F07C03E0FE07E0FE07C0FE07C07C0F80781F003FFC0007F000144284B217>I<03F0
+000000FFF0000000FFF000000007F000000003F000000003F000000003F000000003F000
+000003F000000003F000000003F000000003F000000003F000000003F000000003F00000
+0003F000000003F000000003F000000003F000000003F000000003F003FFE003F003FFE0
+03F000FF0003F000FC0003F000F00003F000E00003F001C00003F003000003F006000003
+F00C000003F038000003F070000003F0F0000003F1F8000003F3F8000003FEFC000003FC
+7E000003F03E000003F01F000003F01F800003F00FC00003F007C00003F007E00003F003
+F00003F001F00003F001F80003F000FC0003F000FE0003F000FF0007F800FF80FFFFC3FF
+F0FFFFC3FFF024347EB329>I<07E0FFE0FFE00FE007E007E007E007E007E007E007E007
+E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007
+E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007
+E007E00FF0FFFFFFFF10347EB315>I<03F01FE000FF0000FFF07FF803FFC000FFF1E07C
+0F03E00007F3803E1C01F00003F6003F3001F80003FC001F6000F80003FC001FE000FC00
+03F8001FC000FC0003F8001FC000FC0003F0001F8000FC0003F0001F8000FC0003F0001F
+8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC00
+03F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F
+8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC00
+03F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0007F8003F
+C001FE00FFFFC7FFFE3FFFF0FFFFC7FFFE3FFFF03C207E9F41>I<03F01FC000FFF0FFF0
+00FFF1E0F80007F3007C0003F6007E0003FC003E0003FC003F0003F8003F0003F8003F00
+03F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003
+F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0
+003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0007F8007F80FFFFC7
+FFFCFFFFC7FFFC26207E9F2B>I<000FF80000003FFE000000F80F800003E003E00007C0
+01F0000F8000F8001F00007C001E00003C003E00003E007E00003F007C00001F007C0000
+1F00FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F
+80FC00001F807C00001F007C00001F007E00003F003E00003E003E00003E001F00007C00
+0F8000F80007C001F00003E003E00000F80F8000007FFF0000000FF8000021207E9F26>
+I<03F03F8000FFF1FFF000FFF3C0F80007F6003E0003FC001F0003F8000F8003F00007C0
+03F00007C003F00003E003F00003F003F00003F003F00001F003F00001F803F00001F803
+F00001F803F00001F803F00001F803F00001F803F00001F803F00001F803F00003F003F0
+0003F003F00003E003F00007E003F00007C003F0000F8003F8000F8003FC001F0003F600
+7C0003F381F80003F1FFE00003F07F000003F000000003F000000003F000000003F00000
+0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000
+03F000000007F8000000FFFFC00000FFFFC00000252F7E9F2B>I<03E07C00FFE0FF00FF
+E38F8007E31FC003E61FC003EC1FC003EC0F8003F8070003F8000003F8000003F0000003
+F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003
+F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000007
+F80000FFFFE000FFFFE0001A207F9F1E>114 D<00FF060007FFEE001F00FE003C001E00
+38000E0070000E00F0000600F0000600F0000600F8000600FE0000007FE000007FFF0000
+3FFFE0001FFFF0000FFFF80003FFFC00007FFE000003FF0000003F8040001F80C0000F80
+C0000780E0000780E0000780F0000700F0000700F8000E00FE001C00F7807800E1FFF000
+C07F800019207E9F1E>I<00300000300000300000300000300000700000700000700000
+F00000F00001F00003F00007F0001FF000FFFFFEFFFFFE03F00003F00003F00003F00003
+F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003
+F00303F00303F00303F00303F00303F00303F00303F00301F00601F80600F80C007E1C00
+3FF80007E0182E7FAD1E>I<03F0003F00FFF00FFF00FFF00FFF0007F0007F0003F0003F
+0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F00
+03F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003
+F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0007F0003F0007F0001F0
+00FF0001F000FF0000F801BF00007C073F80003FFE3FFC0007F83FFC26207E9F2B>I<FF
+FF00FFF0FFFF00FFF00FF0003FC007F0001F0007F0000E0003F0000C0003F0000C0001F8
+00180001F800180001FC00380000FC00300000FC003000007E006000007E006000007F00
+E000003F00C000003F81C000001F818000001F818000000FC30000000FC30000000FE700
+000007E600000007F600000003FC00000003FC00000001F800000001F800000001F80000
+0000F000000000F00000000060000024207E9F29>I<FFFF1FFF81FFF0FFFF1FFF81FFF0
+0FF803FC003F8007F001F8001F0003F000F8001E0003F000F8000C0003F800FC001C0001
+F8007C00180001F8007E00180000FC00FE00300000FC00FE00300000FC00FF003000007E
+019F006000007E019F006000007F019F80E000003F030F80C000003F030FC0C000001F87
+0FC18000001F8607C18000001F8607E18000000FCC03E30000000FCC03E30000000FEC03
+F700000007F801F600000007F801FE00000003F801FC00000003F000FC00000003F000FC
+00000001E0007800000001E0007800000001E0007800000000C00030000034207F9F37>
+I<FFFF01FFF8FFFF01FFF807FC007F8003FC007E0001FC00380000FC007000007E006000
+007F00E000003F81C000001F838000000FC300000007E600000007FE00000003FC000000
+01F800000000FC00000000FE00000000FF00000001FF000000039F800000071FC0000006
+0FE000000C07E000001C03F000003801F800007001FC00006000FC0001E0007E0003E000
+7F000FF000FF80FFFC03FFFCFFFC03FFFC26207F9F29>I<7FFF807FF87FFF807FF807F8
+001FE003F8000F8003F800070001F800060001F800060000FC000C0000FC000C0000FE00
+1C00007E001800007E001800003F003000003F003000003F807000001F806000001FC0E0
+00000FC0C000000FC0C0000007E180000007E180000007F380000003F300000003FB0000
+0001FE00000001FE00000000FC00000000FC00000000FC00000000780000000078000000
+003000000000300000000060000000006000000000E000000000C000000000C000000001
+8000007801800000FC03000000FC07000000FC06000000FC0C00000070380000003FF000
+00000FC0000000252F7F9F29>I<3FFFFFF03FFFFFF03F0007E03C000FC038001FC03000
+3F8070003F0070007E006000FE006000FC006001F8006003F8000007F0000007E000000F
+C000001FC000003F8000003F0000007E003000FE003001FC003001F8003003F0003007F0
+007007E000700FC000601FC000E03F8000E03F0003E07E000FE0FFFFFFE0FFFFFFE01C20
+7E9F22>I E /Fm 1 64 df<000100000003000000030000000300000003000000030000
+0007800000078000000780000007800040078008FC0780FC7FE79FF80FFFFFC003FFFF00
+00FFFC00003FF000001FE000001FE000003FF000003CF0000078780000F03C0000E01C00
+01C00E00018006000380070007000380020001001E1D7E9C22>63
+D E /Fn 76 127 df<00000FF800FC0000007FFF07FF000001F8078F83800007E001DE0F
+C0000F8003FC0FE0001F0007FC1FE0003E000FF81FE0007C000FF81FE000FC000FF80FC0
+00FC0007F0078001F80003F0000001F80003F0000001F80003F0000001F80003F0000001
+F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000001F8
+0003F0000001F80003F0000001F80003F0000001F80003F00000FFFFFFFFFFF800FFFFFF
+FFFFF800FFFFFFFFFFF80001F80003F0000001F80003F0000001F80003F0000001F80003
+F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0
+000001F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F000
+0001F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F00000
+01F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000001
+F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000003FC
+0007F800007FFFE0FFFFF0007FFFE0FFFFF0007FFFE0FFFFF000333B7FBA30>11
+D<00000FF8000000007FFE00000001F80780000007E001C000000F80006000001F0003E0
+00003E0007F000007C000FF00000FC000FF00000FC000FF00001F80007E00001F80003C0
+0001F80001800001F80000000001F80000000001F80000000001F80000000001F8000000
+0001F80000000001F80000000001F80000000001F80000000001F80003F000FFFFFFFFF0
+00FFFFFFFFF000FFFFFFFFF00001F8000FF00001F80003F00001F80003F00001F80003F0
+0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F0
+0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F0
+0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F0
+0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F0
+0001F80003F00003FC0007F8007FFFE0FFFFC07FFFE0FFFFC07FFFE0FFFFC02A3B7FBA2E
+>I<00000FFC000000007FFF70000001F803F0000007E007F000000F800FF000001F000F
+F000003E000FF000007C000FF00000FC0007F00000FC0003F00001F80003F00001F80003
+F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003
+F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F000FFFFFFFF
+F000FFFFFFFFF000FFFFFFFFF00001F80003F00001F80003F00001F80003F00001F80003
+F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003
+F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003
+F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003
+F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003
+F00001F80003F00003FC0007F8007FFFE0FFFFC07FFFE0FFFFC07FFFE0FFFFC02A3B7FBA
+2E>I<00000FF0001FF0000000007FFE00FFFC00000001F80F03F00F00000007E0018FC0
+038000000F8000DF0000C000001F0003FE0007C000003E0007FC000FE000007C000FF800
+1FE00000FC000FF8001FE00000FC000FF8001FE00001F8000FF0000FC00001F80007F000
+07800001F80003F00003000001F80003F00000000001F80003F00000000001F80003F000
+00000001F80003F00000000001F80003F00000000001F80003F00000000001F80003F000
+00000001F80003F00000000001F80003F00000000001F80003F00007E000FFFFFFFFFFFF
+FFE000FFFFFFFFFFFFFFE000FFFFFFFFFFFFFFE00001F80003F0001FE00001F80003F000
+07E00001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F000
+07E00001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F000
+07E00001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F000
+07E00001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F000
+07E00001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F000
+07E00001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F000
+07E00001F80003F00007E00001F80003F00007E00001F80003F00007E00003FC0007F800
+0FF0007FFFE0FFFFC1FFFF807FFFE0FFFFC1FFFF807FFFE0FFFFC1FFFF80413B7FBA45>
+I<1C001C007E007E007F007F00FF80FF80FF80FF80FFC0FFC07FC07FC07FC07FC01CC01C
+C000C000C000C000C000C000C000C000C001800180018001800180018003000300030003
+0003000300060006000C000C000C000C001800180030003000200020001A197DB92A>34
+D<007C00000000600001FF00000000F00003C380000001F0000700C0000001E0000E0060
+000003E0001E007000000FC0001C003C00001F80003C003F00007F80003C001BE003FF00
+007C0018FFFF9E00007800181FFC3E000078000C00007C0000F8000C0000780000F8000C
+0000F80000F8000C0001F00000F8000C0001E00000F8000C0003E00000F8000C0007C000
+00F8000C0007800000F8000C000F800000F8000C001F00000078000C001E000000780018
+003E0000007C0018007C0000003C001800780000003C003000F80000001C003001F00000
+001E006001E00000000E006003E00000000700C007C000000003C380078000000001FF00
+0F80000000007C001F000000000000001E0007C0000000003E001FF0000000007C003C38
+000000007800700C00000000F800F00600000001F001E00600000001E001E00300000003
+E003C00300000007C003C001800000078007C0018000000F800780018000001F00078001
+8000001E000F8000C000003E000F8000C000007C000F8000C0000078000F8000C00000F8
+000F8000C00001F0000F8000C00001E0000F8000C00003E0000F8000C00007C0000F8000
+C0000780000F8000C0000F800007800180001F000007800180001E000007C00180003E00
+0003C00180007C000003C003000078000001E0030000F8000001E0060001F0000000F006
+0001E0000000700C0003E00000003C380003C00000001FF000018000000007C0003A437B
+BD45>37 D<1C007E007F00FF80FF80FFC07FC07FC01CC000C000C000C000C00180018001
+8003000300030006000C000C001800300020000A1979B917>39 D<0000600000E00001C0
+000380000700000E00001C00003C0000380000700000F00000E00001E00003C00003C000
+0780000780000780000F00000F00001F00001E00001E00003E00003E00003C00003C0000
+7C00007C00007C00007C00007C0000780000F80000F80000F80000F80000F80000F80000
+F80000F80000F80000F80000F80000F80000F80000F80000F80000F800007800007C0000
+7C00007C00007C00007C00003C00003C00003E00003E00001E00001E00001F00000F0000
+0F000007800007800007800003C00003C00001E00000E00000F000007000003800003C00
+001C00000E000007000003800001C00000E0000060135278BD20>I<800000C00000E000
+007000003800001C00000E00000F000007000003800003C00001C00001E00000F00000F0
+00007800007800007800003C00003C00003E00001E00001E00001F00001F00000F00000F
+00000F80000F80000F80000F80000F800007800007C00007C00007C00007C00007C00007
+C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0000780000F
+80000F80000F80000F80000F80000F00000F00001F00001F00001E00001E00003E00003C
+00003C0000780000780000780000F00000F00001E00001C00003C0000380000700000F00
+000E00001C0000380000700000E00000C0000080000012527BBD20>I<1C007E007F00FF
+80FF80FFC07FC07FC01CC000C000C000C000C001800180018003000300030006000C000C
+001800300020000A19798817>44 D<FFFFFCFFFFFCFFFFFCFFFFFCFFFFFC16057F941C>
+I<1C003E007F00FF80FF80FF807F003E001C000909798817>I<0000000C0000001E0000
+001E0000003E0000003C0000003C0000007C0000007800000078000000F8000000F00000
+00F0000001F0000001E0000001E0000003E0000003C0000003C0000007C0000007800000
+078000000F8000000F0000001F0000001E0000001E0000003E0000003C0000003C000000
+7C0000007800000078000000F8000000F0000000F0000001F0000001E0000001E0000003
+E0000003C0000003C0000007C0000007800000078000000F8000000F0000000F0000001F
+0000001E0000001E0000003E0000003C0000003C0000007C0000007800000078000000F8
+000000F0000000F0000001F0000001E0000003E0000003C0000003C0000007C000000780
+0000078000000F8000000F0000000F0000001F0000001E0000001E0000003E0000003C00
+00003C0000007C0000007800000078000000F8000000F0000000F0000000600000001F53
+7BBD2A>I<0003F80000001FFF0000007E0FC00000F803E00003E000F80003C000780007
+C0007C000F80003E000F80003E001F00001F001F00001F003F00001F803F00001F803F00
+001F807E00000FC07E00000FC07E00000FC07E00000FC07E00000FC0FE00000FE0FE0000
+0FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000F
+E0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0
+FE00000FE0FE00000FE07E00000FC07E00000FC07E00000FC07E00000FC07F00001FC03F
+00001F803F00001F803F00001F801F00001F001F00001F000F80003E000F80003E0007C0
+007C0003E000F80003E000F80000F803E000007E0FC000001FFF00000007FC000023387D
+B62A>I<0001800000078000000F8000003F800001FF8000FFFF8000FFDF8000FE1F8000
+001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000
+001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000
+001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000
+001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000
+001F8000001F8000001F8000001F8000001F8000001F8000001F8000003FC0007FFFFFE0
+7FFFFFE07FFFFFE01B3779B62A>I<001FF00000007FFE000001FFFF800003E03FE00007
+000FF0000C0003F800180003FC00300001FE00700000FE00600000FF007C0000FF00FF00
+007F00FF00007F80FF80007F80FF80007F80FF80007F807F00007F807F00007F801C0000
+7F800000007F000000007F00000000FF00000000FE00000000FE00000001FC00000001F8
+00000003F800000003F000000007E00000000FC00000000F800000001F000000003E0000
+00007C00000000F800000000F000000001C0000000038000000007000000000E00000000
+1C0000000038000180007000018000E000018000C0000300018000030003000003000600
+0003000C000007001FFFFFFF003FFFFFFF007FFFFFFE00FFFFFFFE00FFFFFFFE00FFFFFF
+FE0021377CB62A>I<0007F80000003FFF000000FFFFC00001F00FE000038003F0000700
+01F8000F0001FC000FC001FE001FE000FE001FE000FF001FE000FF001FE000FF000FE000
+FF000FC000FF00038000FF00000000FE00000000FE00000001FE00000001FC00000001F8
+00000003F000000003E000000007C00000000F800000007F0000001FFC0000001FFF8000
+00000FE000000003F000000001FC00000000FE00000000FF000000007F000000007F8000
+00007FC00000003FC00000003FC00000003FE00000003FE03E00003FE07F00003FE0FF80
+003FE0FF80003FE0FF80003FE0FF80003FC0FF00007FC07E00007F807C00007F80300000
+FF00380000FE001C0001FC000F0003F80007F00FF00001FFFFC000007FFF8000000FFC00
+0023387DB62A>I<00000070000000007000000000F000000001F000000001F000000003
+F000000007F000000007F00000000FF00000001FF00000001BF000000033F000000073F0
+000000E3F0000000C3F0000001C3F000000383F000000303F000000703F000000E03F000
+000C03F000001C03F000003803F000003003F000007003F00000E003F00000C003F00001
+8003F000038003F000030003F000060003F0000E0003F0000C0003F000180003F0003800
+03F000300003F000600003F000E00003F000FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8000003
+F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0
+00000003F000000003F000000003F000000007F8000003FFFFF00003FFFFF00003FFFFF0
+25387EB72A>I<0600000C000780003C0007F003F80007FFFFF00007FFFFE00007FFFFC0
+0007FFFF800007FFFF000007FFFC0000067FE00000060000000006000000000600000000
+060000000006000000000600000000060000000006000000000600000000060000000006
+000000000607F80000063FFF000006F80F800007C003C000070001F000060000F8000400
+00F8000000007C000000007E000000007E000000003F000000003F000000003F00000000
+3F800000003F800000003F803C00003F807E00003F80FF00003F80FF00003F80FF00003F
+80FF00003F00FE00003F00FC00007F006000007E006000007E00300000FC00380000F800
+180001F8000E0003F000070007E00003E03F800001FFFF0000007FFC0000001FE0000021
+387CB62A>I<00003FC0000001FFF0000007FFFC00000FE03E00003F000700007E001F00
+00F8003F8001F8007F8003F0007F8003E0007F8007E0007F800FC0003F000FC0001E001F
+C00000001F800000003F800000003F800000003F800000007F000000007F000000007F01
+FC00007F07FF8000FF0E07E000FF1801F000FF3000F800FF60007C00FFC0007E00FFC000
+3F00FF80003F00FF80003F80FF80001FC0FF80001FC0FF00001FC0FF00001FE0FF00001F
+E0FF00001FE07F00001FE07F00001FE07F00001FE07F00001FE07F00001FE03F00001FE0
+3F80001FC03F80001FC01F80001FC01F80001F800F80003F800FC0003F0007C0003E0007
+E0007E0003F000FC0001F801F80000FE07F000003FFFC000001FFF80000003FC00002338
+7DB62A>I<300000000038000000003E000000003FFFFFFFE03FFFFFFFE03FFFFFFFE03F
+FFFFFFC07FFFFFFF807FFFFFFF00700000030060000006006000000C006000000C006000
+001800C000003000C000006000C000006000000000C00000000180000000030000000003
+0000000006000000000C000000000C000000001800000000380000000030000000007000
+0000007000000000E000000001E000000001E000000003E000000003C000000007C00000
+0007C000000007C00000000FC00000000FC00000001F800000001F800000001F80000000
+1F800000003F800000003F800000003F800000003F800000003F800000007F800000007F
+800000007F800000007F800000007F800000007F800000007F800000007F800000003F00
+0000001E000000233A7BB82A>I<0003FC0000001FFF0000007FFFC00000FC07E00001E0
+01F00003800078000700003C000700001E000E00001E000E00000F001E00000F001E0000
+0F001E00000F001E00000F001F00000F001F00000E001F80001E000FE0001C000FF0003C
+0007FC00780007FE00700003FF81E00001FFC3C00000FFFF0000007FFC0000001FFE0000
+000FFF8000001FFFC0000079FFF00000F07FF80001C01FFC0007800FFE000F0003FF001E
+0001FF801C00007F803C00003FC07800000FC078000007E070000003E0F0000003E0F000
+0001E0F0000001E0F0000001E0F0000001E0F0000001C078000001C078000003C07C0000
+03803C000007001E00000F000F80001E0007C0007C0003F803F00000FFFFE000003FFF80
+000007FC000023387DB62A>I<0007F80000001FFF0000007FFFC00000FC07E00001F001
+F00003E000F80007C000FC000FC0007C001F80007E003F80003F003F80003F007F00003F
+007F00003F807F00003F80FF00001F80FF00001FC0FF00001FC0FF00001FC0FF00001FC0
+FF00001FE0FF00001FE0FF00001FE0FF00001FE07F00001FE07F00003FE07F00003FE03F
+80003FE01F80003FE01F80007FE00FC0007FE007C000DFE003E0019FE001F0031FE000FC
+0E1FE0003FFC1FC00007F01FC00000001FC00000001FC00000003F800000003F80000000
+3F800000003F000000003F000F00007E001F80007E003FC0007C003FC000FC003FC001F8
+003FC001F0003F8003E0001F0007C0001C001F80000F807F000007FFFC000001FFF80000
+003FC0000023387DB62A>I<1C003E007F00FF80FF80FF807F003E001C00000000000000
+0000000000000000000000000000000000000000000000000000000000001C003E007F00
+FF80FF80FF807F003E001C00092479A317>I<1C003E007F00FF80FF80FF807F003E001C
+000000000000000000000000000000000000000000000000000000000000000000000000
+001C007E007F00FF00FF80FF807F807F801D800180018001800180030003000300030006
+0006000C000C001800300030002000093479A317>I<000003FF00000000001FFFE00000
+0000FC00FC00000001E0001E000000070000038000000E000001C0000018000000600000
+3000000030000060000000180000C00000000C0001800000000600030000000003000600
+01FC000180060007FF0001800C001F03C000C018003C00E00060180078003000601800F8
+001800603001F0000C00303003E0000FE0306003E00007E0186007C00007E0186007C000
+07E018600FC00007E018C00FC00007E00CC00F800007E00CC01F800007E00CC01F800007
+E00CC01F800007E00CC01F800007E00CC01F800007E00CC01F800007E00CC01F800007E0
+0CC01F800007E00CC00F800007E00CC00FC00007E00C600FC00007E00C6007C00007E00C
+6007C00007E00C6003E00007E0183003E0000FE0183001F0000FE0181800F8001FE01818
+00780033E03018003C00E3F0300C001F03C1F0E0060007FF00FFC0060001FC003F000300
+00000000000180000000000000C000000000000060000000000000300000000000001800
+0000007C000E00000003FC00070000001FF00001E00000FF800000FC003FFC0000001FFF
+FF8000000003FFE00000363C7BBA41>64 D<000000380000000000003800000000000038
+0000000000007C0000000000007C0000000000007C000000000000FE000000000000FE00
+0000000001FF000000000001FF000000000001FF000000000003FF8000000000033F8000
+000000033F8000000000073FC000000000061FC000000000061FC0000000000C1FE00000
+00000C0FE0000000000C0FE0000000001807F0000000001807F0000000001807F0000000
+003003F8000000003003F8000000003003F8000000006001FC000000006001FC00000000
+6001FC00000000C000FE00000000C000FE00000000C000FE0000000180007F0000000180
+007F0000000380007F8000000300003F8000000300003F80000007FFFFFFC0000007FFFF
+FFC0000007FFFFFFC000000E00001FE000000C00000FE000000C00000FE000001800000F
+F0000018000007F0000018000007F0000030000003F8000030000003F8000030000003F8
+000060000001FC000060000001FC000060000001FC0000E0000000FE0001E0000000FE00
+03F0000000FF000FFC000003FF80FFFF80007FFFFEFFFF80007FFFFEFFFF80007FFFFE37
+3B7DBA3E>I<FFFFFFFFE00000FFFFFFFFFC0000FFFFFFFFFF000001FF00007FC00000FE
+00001FE00000FE00000FF00000FE000007F80000FE000003FC0000FE000003FC0000FE00
+0001FE0000FE000001FE0000FE000001FF0000FE000001FF0000FE000001FF0000FE0000
+01FF0000FE000001FF0000FE000001FF0000FE000001FF0000FE000001FE0000FE000003
+FE0000FE000003FC0000FE000007F80000FE00000FF00000FE00001FE00000FE00003FC0
+0000FE0000FF000000FFFFFFFC000000FFFFFFFC000000FE0000FF800000FE00001FE000
+00FE000007F00000FE000003F80000FE000003FC0000FE000001FE0000FE000000FF0000
+FE000000FF0000FE000000FF8000FE0000007F8000FE0000007FC000FE0000007FC000FE
+0000007FC000FE0000007FC000FE0000007FC000FE0000007FC000FE0000007FC000FE00
+00007F8000FE000000FF8000FE000000FF8000FE000001FF0000FE000001FE0000FE0000
+03FE0000FE000007FC0000FE00001FF80001FF00007FE000FFFFFFFFFFC000FFFFFFFFFF
+0000FFFFFFFFF8000032397DB83B>I<000001FF80018000000FFFE0018000007FFFF803
+800001FF807E07800003FC000F0F80000FF000038F80001FC00001DF80003F8000007F80
+007F0000003F8000FE0000003F8001FC0000001F8003F80000000F8007F80000000F8007
+F000000007800FF000000007800FE000000003801FE000000003801FE000000003803FC0
+00000003803FC000000001807FC000000001807FC000000001807F8000000001807F8000
+00000000FF800000000000FF800000000000FF800000000000FF800000000000FF800000
+000000FF800000000000FF800000000000FF800000000000FF800000000000FF80000000
+0000FF8000000000007F8000000000007F8000000000007FC000000001807FC000000001
+803FC000000001803FC000000001801FE000000001801FE000000003800FE00000000300
+0FF0000000030007F0000000070007F8000000060003F8000000060001FC0000000C0000
+FE0000001800007F0000003800003F8000007000001FC00000E000000FF00001C0000003
+FC000780000001FF803E000000007FFFFC000000000FFFF00000000001FF800000313B7B
+B93C>I<FFFFFFFFC00000FFFFFFFFF80000FFFFFFFFFE000001FF0001FF800000FE0000
+3FE00000FE00000FF00000FE000003F80000FE000001FC0000FE000000FE0000FE000000
+7F0000FE0000007F0000FE0000003F8000FE0000003FC000FE0000001FC000FE0000001F
+E000FE0000000FE000FE0000000FF000FE0000000FF000FE0000000FF000FE00000007F8
+00FE00000007F800FE00000007F800FE00000007F800FE00000007FC00FE00000007FC00
+FE00000007FC00FE00000007FC00FE00000007FC00FE00000007FC00FE00000007FC00FE
+00000007FC00FE00000007FC00FE00000007FC00FE00000007FC00FE00000007FC00FE00
+000007F800FE00000007F800FE00000007F800FE00000007F800FE0000000FF000FE0000
+000FF000FE0000000FE000FE0000000FE000FE0000001FE000FE0000001FC000FE000000
+3F8000FE0000003F8000FE0000007F0000FE000000FE0000FE000001FC0000FE000003F8
+0000FE00000FF00000FE00003FE00001FF0000FF8000FFFFFFFFFF0000FFFFFFFFF80000
+FFFFFFFFC0000036397DB83F>I<FFFFFFFFFFFC00FFFFFFFFFFFC00FFFFFFFFFFFC0001
+FF00000FFC0000FE000001FC0000FE0000007E0000FE0000003E0000FE0000001E0000FE
+0000000E0000FE0000000E0000FE0000000E0000FE000000060000FE000000060000FE00
+0000060000FE000000070000FE000000030000FE0000C0030000FE0000C0030000FE0000
+C0030000FE0000C0000000FE0000C0000000FE0000C0000000FE0001C0000000FE0001C0
+000000FE0003C0000000FE000FC0000000FFFFFFC0000000FFFFFFC0000000FFFFFFC000
+0000FE000FC0000000FE0003C0000000FE0001C0000000FE0001C0000000FE0000C00000
+00FE0000C0000000FE0000C0006000FE0000C0006000FE0000C0006000FE0000C000E000
+FE00000000C000FE00000000C000FE00000000C000FE00000000C000FE00000001C000FE
+00000001C000FE00000001C000FE000000038000FE000000038000FE000000078000FE00
+0000078000FE0000000F8000FE0000003F8000FE0000007F8001FF000007FF00FFFFFFFF
+FFFF00FFFFFFFFFFFF00FFFFFFFFFFFF0033397DB839>I<FFFFFFFFFFF8FFFFFFFFFFF8
+FFFFFFFFFFF801FF00001FF800FE000001F800FE000000FC00FE0000007C00FE0000003C
+00FE0000001C00FE0000001C00FE0000001C00FE0000000C00FE0000000C00FE0000000C
+00FE0000000E00FE0000000600FE0000000600FE0001800600FE0001800600FE00018000
+00FE0001800000FE0001800000FE0001800000FE0003800000FE0003800000FE00078000
+00FE001F800000FFFFFF800000FFFFFF800000FFFFFF800000FE001F800000FE00078000
+00FE0003800000FE0003800000FE0001800000FE0001800000FE0001800000FE00018000
+00FE0001800000FE0001800000FE0000000000FE0000000000FE0000000000FE00000000
+00FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE00000000
+00FE0000000000FE0000000000FE0000000001FF80000000FFFFFF800000FFFFFF800000
+FFFFFF8000002F397DB836>I<000000FF8000C000000FFFF000C000003FFFFC01C00000
+FF803F03C00003FC000787C0000FF00001C7C0001FC00000EFC0003F8000007FC0007F00
+00003FC000FE0000001FC001FC0000000FC003F800000007C003F800000007C007F00000
+0003C00FF000000003C00FE000000003C01FE000000001C01FE000000001C03FC0000000
+01C03FC000000000C07FC000000000C07FC000000000C07F8000000000C07F8000000000
+00FF800000000000FF800000000000FF800000000000FF800000000000FF800000000000
+FF800000000000FF800000000000FF800000000000FF800000000000FF800000000000FF
+8000007FFFFF7F8000007FFFFF7F8000007FFFFF7FC00000003FE07FC00000001FC03FC0
+0000001FC03FC00000001FC01FE00000001FC01FE00000001FC00FE00000001FC00FF000
+00001FC007F00000001FC003F80000001FC003FC0000001FC001FC0000001FC000FE0000
+001FC0007F0000001FC0003F8000003FC0001FE000007FC0000FF00000E7C00003FE0003
+C3C00000FFC01F83C000003FFFFE01C000000FFFF800C0000000FFC00000383B7CB941>
+I<FFFFFE00FFFFFEFFFFFE00FFFFFEFFFFFE00FFFFFE01FF000001FF0000FE000000FE00
+00FE000000FE0000FE000000FE0000FE000000FE0000FE000000FE0000FE000000FE0000
+FE000000FE0000FE000000FE0000FE000000FE0000FE000000FE0000FE000000FE0000FE
+000000FE0000FE000000FE0000FE000000FE0000FE000000FE0000FE000000FE0000FE00
+0000FE0000FE000000FE0000FE000000FE0000FE000000FE0000FE000000FE0000FE0000
+00FE0000FFFFFFFFFE0000FFFFFFFFFE0000FFFFFFFFFE0000FE000000FE0000FE000000
+FE0000FE000000FE0000FE000000FE0000FE000000FE0000FE000000FE0000FE000000FE
+0000FE000000FE0000FE000000FE0000FE000000FE0000FE000000FE0000FE000000FE00
+00FE000000FE0000FE000000FE0000FE000000FE0000FE000000FE0000FE000000FE0000
+FE000000FE0000FE000000FE0000FE000000FE0000FE000000FE0000FE000000FE0000FE
+000000FE0000FE000000FE0001FF000001FF00FFFFFE00FFFFFEFFFFFE00FFFFFEFFFFFE
+00FFFFFE37397DB83E>I<FFFFFF80FFFFFF80FFFFFF8000FF8000007F0000007F000000
+7F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000000
+7F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000000
+7F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000000
+7F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000000
+7F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000000
+7F0000007F000000FF8000FFFFFF80FFFFFF80FFFFFF8019397EB81E>I<FFFFFE0001FF
+FF00FFFFFE0001FFFF00FFFFFE0001FFFF0001FF0000007FF00000FE0000003F800000FE
+0000001E000000FE00000018000000FE00000030000000FE00000060000000FE000000C0
+000000FE00000180000000FE00000300000000FE00000600000000FE00000C00000000FE
+00001800000000FE00003000000000FE00006000000000FE0000C000000000FE00018000
+000000FE00030000000000FE00060000000000FE000C0000000000FE001C0000000000FE
+003C0000000000FE007E0000000000FE01FF0000000000FE03FF0000000000FE063F8000
+000000FE0C3FC000000000FE181FC000000000FE300FE000000000FE600FF000000000FE
+C007F000000000FF8003F800000000FF0003FC00000000FE0001FC00000000FE0000FE00
+000000FE0000FF00000000FE00007F00000000FE00003F80000000FE00003FC0000000FE
+00001FC0000000FE00000FE0000000FE00000FF0000000FE000007F0000000FE000003F8
+000000FE000003FC000000FE000001FC000000FE000000FE000000FE000000FF000000FE
+0000007F000000FE0000007F800000FE0000007FC00001FF000000FFF000FFFFFE000FFF
+FF80FFFFFE000FFFFF80FFFFFE000FFFFF8039397DB841>75 D<FFFFFFC00000FFFFFFC0
+0000FFFFFFC0000001FF8000000000FE0000000000FE0000000000FE0000000000FE0000
+000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000
+000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000
+000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000
+000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000
+000000FE0000000000FE0000000000FE0000000000FE0000001800FE0000001800FE0000
+001800FE0000001800FE0000001800FE0000003800FE0000003000FE0000003000FE0000
+003000FE0000007000FE0000007000FE0000007000FE000000F000FE000000F000FE0000
+01F000FE000003F000FE00000FF000FE00001FE001FF0001FFE0FFFFFFFFFFE0FFFFFFFF
+FFE0FFFFFFFFFFE02D397DB834>I<FFFE000000000FFFE0FFFF000000001FFFE0FFFF00
+0000001FFFE001FF000000001FF00000DF8000000037E00000DF8000000037E00000DF80
+00000037E00000CFC000000067E00000CFC000000067E00000C7E0000000C7E00000C7E0
+000000C7E00000C7E0000000C7E00000C3F000000187E00000C3F000000187E00000C3F0
+00000187E00000C1F800000307E00000C1F800000307E00000C0FC00000607E00000C0FC
+00000607E00000C0FC00000607E00000C07E00000C07E00000C07E00000C07E00000C07E
+00000C07E00000C03F00001807E00000C03F00001807E00000C01F80003007E00000C01F
+80003007E00000C01F80003007E00000C00FC0006007E00000C00FC0006007E00000C007
+E000C007E00000C007E000C007E00000C007E000C007E00000C003F0018007E00000C003
+F0018007E00000C003F0018007E00000C001F8030007E00000C001F8030007E00000C000
+FC060007E00000C000FC060007E00000C000FC060007E00000C0007E0C0007E00000C000
+7E0C0007E00000C0007E0C0007E00000C0003F180007E00000C0003F180007E00000C000
+1FB00007E00000C0001FB00007E00000C0001FB00007E00000C0000FE00007E00000C000
+0FE00007E00001E0000FE00007E00003F00007C00007E0000FFC0007C0000FF000FFFFC0
+038007FFFFE0FFFFC0038007FFFFE0FFFFC0038007FFFFE043397CB84C>I<FFFE000007
+FFFEFFFF000007FFFEFFFF000007FFFE00FF8000007FE000FFC000001F8000DFC000000F
+0000CFE00000060000CFF00000060000C7F00000060000C3F80000060000C3FC00000600
+00C1FC0000060000C0FE0000060000C0FF0000060000C07F0000060000C03F8000060000
+C03FC000060000C01FC000060000C00FE000060000C00FF000060000C007F000060000C0
+03F800060000C003FC00060000C001FC00060000C000FE00060000C000FF00060000C000
+7F00060000C0003F80060000C0003FC0060000C0001FC0060000C0000FE0060000C00007
+F0060000C00007F0060000C00003F8060000C00001FC060000C00001FC060000C00000FE
+060000C000007F060000C000007F060000C000003F860000C000001FC60000C000001FC6
+0000C000000FE60000C0000007F60000C0000007F60000C0000003FE0000C0000001FE00
+00C0000001FE0000C0000000FE0000C00000007E0000C00000007E0001E00000003E0003
+F00000001E000FFC0000001E00FFFFC000000E00FFFFC000000600FFFFC0000006003739
+7DB83E>I<000003FF00000000001FFFE000000000FE01FC00000003F8007F00000007E0
+001F8000001FC0000FE000003F000003F000007E000001F80000FE000001FC0001FC0000
+00FE0003F80000007F0003F80000007F0007F00000003F800FF00000003FC00FE0000000
+1FC01FE00000001FE01FE00000001FE03FC00000000FF03FC00000000FF03FC00000000F
+F07FC00000000FF87F8000000007F87F8000000007F87F8000000007F8FF8000000007FC
+FF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF
+8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FC7F80
+00000007F87FC00000000FF87FC00000000FF87FC00000000FF83FC00000000FF03FC000
+00000FF03FE00000001FF01FE00000001FE01FE00000001FE00FF00000003FC00FF00000
+003FC007F00000003F8003F80000007F0003FC000000FF0001FC000000FE0000FE000001
+FC00007F000003F800003F800007F000001FC0000FE0000007E0001F80000003F8007F00
+000000FE01FC000000003FFFF00000000003FF000000363B7BB941>I<FFFFFFFFC000FF
+FFFFFFF800FFFFFFFFFE0001FF0001FF8000FE00003FC000FE00000FE000FE000007F000
+FE000003F800FE000003FC00FE000003FE00FE000001FE00FE000001FE00FE000001FF00
+FE000001FF00FE000001FF00FE000001FF00FE000001FF00FE000001FF00FE000001FF00
+FE000001FE00FE000001FE00FE000003FC00FE000003FC00FE000007F800FE000007F000
+FE00000FE000FE00003FC000FE0001FF0000FFFFFFFC0000FFFFFFF00000FE0000000000
+FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000
+FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000
+FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000
+FE0000000000FE0000000000FE0000000000FE0000000001FF00000000FFFFFE000000FF
+FFFE000000FFFFFE00000030397DB839>I<000FF800C0003FFF00C000FFFF81C003F807
+E3C007C000F7C00F80003FC01E00001FC01E00000FC03C000007C07C000007C078000003
+C078000003C0F8000001C0F8000001C0F8000001C0F8000000C0FC000000C0FC000000C0
+FC000000C07E000000007F000000007F800000003FE00000003FFE0000001FFFE000000F
+FFFE000007FFFFC00003FFFFF00001FFFFFC00007FFFFE00000FFFFF000001FFFF800000
+1FFFC0000001FFC00000003FE00000000FF000000007F000000003F000000003F8000000
+01F840000001F8C0000000F8C0000000F8C0000000F8C0000000F8E0000000F8E0000000
+F0E0000000F0F0000001F0F0000001E0F8000001E0FC000003C0FE00000780FF80000F00
+FBE0001E00F0FE00FC00E07FFFF800C00FFFE000C001FF8000253B7CB92E>83
+D<3FFFFFFFFFFFE03FFFFFFFFFFFE03FFFFFFFFFFFE03FC003FE001FE03E0001FC0003E0
+7C0001FC0001F0780001FC0000F0700001FC000070700001FC000070700001FC00007060
+0001FC000030600001FC000030600001FC000030600001FC000030E00001FC000038C000
+01FC000018C00001FC000018C00001FC000018C00001FC000018000001FC000000000001
+FC000000000001FC000000000001FC000000000001FC000000000001FC000000000001FC
+000000000001FC000000000001FC000000000001FC000000000001FC000000000001FC00
+0000000001FC000000000001FC000000000001FC000000000001FC000000000001FC0000
+00000001FC000000000001FC000000000001FC000000000001FC000000000001FC000000
+000001FC000000000001FC000000000001FC000000000001FC000000000001FC00000000
+0001FC000000000001FC000000000001FC000000000001FC000000000001FC0000000000
+01FC000000000001FC000000000007FF000000001FFFFFFFC000001FFFFFFFC000001FFF
+FFFFC00035397DB83C>I<FFFFFE0007FFFEFFFFFE0007FFFEFFFFFE0007FFFE01FF0000
+007FE000FE0000001F8000FE0000000F0000FE000000060000FE000000060000FE000000
+060000FE000000060000FE000000060000FE000000060000FE000000060000FE00000006
+0000FE000000060000FE000000060000FE000000060000FE000000060000FE0000000600
+00FE000000060000FE000000060000FE000000060000FE000000060000FE000000060000
+FE000000060000FE000000060000FE000000060000FE000000060000FE000000060000FE
+000000060000FE000000060000FE000000060000FE000000060000FE000000060000FE00
+0000060000FE000000060000FE000000060000FE000000060000FE000000060000FE0000
+00060000FE000000060000FE0000000600007E0000000E00007E0000000C00007F000000
+0C00003F0000001C00003F0000001800001F8000003800001F8000003000000FC0000060
+000007C00000E0000003E00001C0000001F8000380000000FC000F000000007F807E0000
+00001FFFF80000000007FFE00000000000FF800000373A7DB83E>I<FFFFF803FFFFF001
+FFFFFFFFF803FFFFF001FFFFFFFFF803FFFFF001FFFF07FF00000FFC00001FF803FC0000
+07F8000007E001FC000003F8000003C001FC000003F80000038001FE000003F800000380
+00FE000001FC0000030000FE000001FC0000030000FF000001FC00000300007F000003FE
+00000600007F000003FE00000600007F000003FE00000600003F800007FF00000C00003F
+8000067F00000C00003F8000067F00000C00001FC0000E7F80001800001FC0000C3F8000
+1800001FC0000C3F80001800000FE0001C3FC0003000000FE000181FC0003000000FE000
+181FC00030000007F000181FC00060000007F000300FE00060000007F000300FE0006000
+0007F800300FE000E0000003F8006007F000C0000003F8006007F000C0000003FC006007
+F001C0000001FC00C003F80180000001FC00C003F80180000001FE00C003F80380000000
+FE018001FC0300000000FE018001FC0300000000FE018001FC03000000007F030000FE06
+000000007F030000FE06000000007F030000FE06000000003F870000FF0C000000003F86
+00007F0C000000003F8600007F0C000000001FCE00007F98000000001FCC00003F980000
+00001FCC00003F98000000000FEC00003FB0000000000FF800001FF0000000000FF80000
+1FF00000000007F800001FE00000000007F000000FE00000000007F000000FE000000000
+07F000000FE00000000003E0000007C00000000003E0000007C00000000003E0000007C0
+0000000001C0000003800000000001C0000003800000000001C0000003800000503A7EB8
+55>87 D<7FFFFE001FFFFC007FFFFE001FFFFC007FFFFE001FFFFC0000FFF00007FF8000
+003FC00001FC0000003FC00000F00000001FE00000E00000001FE00000C00000000FF000
+018000000007F800038000000007F800030000000003FC00060000000001FE000E000000
+0001FE000C0000000000FF001800000000007F003800000000007F803000000000003FC0
+6000000000001FC0E000000000001FE0C000000000000FF180000000000007F380000000
+000007FB00000000000003FE00000000000001FE00000000000001FE00000000000000FF
+000000000000007F000000000000007F800000000000007FC0000000000000FFC0000000
+000000DFE00000000000018FF00000000000038FF000000000000307F800000000000603
+FC00000000000E03FC00000000000C01FE00000000001800FE00000000003800FF000000
+000030007F800000000060003F8000000000E0003FC000000000C0001FE0000000018000
+0FE00000000380000FF000000003000007F800000006000003F80000000E000003FC0000
+000C000001FE0000001C000000FE0000003C000000FF000000FE000000FF800007FF0000
+03FFC000FFFFE0001FFFFF80FFFFE0001FFFFF80FFFFE0001FFFFF8039397EB83E>I<FF
+F8FFF8FFF8FFF8F000F000F000F000F000F000F000F000F000F000F000F000F000F000F0
+00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F0
+00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F0
+00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F0
+00F000F000F000F000F000F000FFF8FFF8FFF8FFF80D5378BD17>91
+D<0100010003000300060006000C000C000C000C00180018003000300030003000300030
+00600060006000600060006000C000C000C000C000C000C000C000C000CE00CE00FF80FF
+80FF80FF80FFC0FFC07FC07FC07FC07FC03F803F801F801F800E000E001A1974B92A>I<
+FFF8FFF8FFF8FFF800780078007800780078007800780078007800780078007800780078
+007800780078007800780078007800780078007800780078007800780078007800780078
+007800780078007800780078007800780078007800780078007800780078007800780078
+007800780078007800780078007800780078007800780078007800780078007800780078
+0078007800780078007800780078FFF8FFF8FFF8FFF80D537FBD17>I<001FE0000000FF
+FC000003E03F000007000F80000F8007C0000FC003E0001FE001F0001FE001F8001FE001
+F8001FE000F8000FC000FC00078000FC00000000FC00000000FC00000000FC00000000FC
+0000007FFC000007FFFC00003FE0FC0000FE00FC0003F800FC0007E000FC000FC000FC00
+1F8000FC003F0000FC007F0000FC007F0000FC0CFE0000FC0CFE0000FC0CFE0000FC0CFE
+0001FC0CFE0001FC0C7E0001FC0C7F00037C0C3F00063E181F800C3E180FE0781FF003FF
+F00FE0007F8007C026277DA52A>97 D<03F0000000FFF0000000FFF0000000FFF0000000
+0FF000000003F000000003F000000003F000000003F000000003F000000003F000000003
+F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0
+00000003F000000003F000000003F01FE00003F07FF80003F1E03E0003F3800F0003F600
+078003FC0003C003F80003E003F80001F003F00001F803F00000FC03F00000FC03F00000
+FE03F000007E03F000007E03F000007E03F000007F03F000007F03F000007F03F000007F
+03F000007F03F000007F03F000007F03F000007F03F000007E03F000007E03F00000FE03
+F00000FC03F00000FC03F00000F803F00001F803F80001F003F80003E003EC0007C003C6
+00078003C3001F000381E07E000300FFF80000001FC000283B7EB92E>I<0003FC00001F
+FF80007E03E000F8007001E000F803E001F807C003FC0F8003FC1F8003FC1F8003FC3F00
+01F83F0000F07F0000007E0000007E000000FE000000FE000000FE000000FE000000FE00
+0000FE000000FE000000FE000000FE0000007E0000007E0000007F0000007F0000003F00
+00063F0000061F80000C0F80000C07C0001803E0001801E0003000F800E0007C07C0001F
+FF000007F8001F277DA525>I<0000000FC0000003FFC0000003FFC0000003FFC0000000
+3FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000F
+C00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0
+0000000FC00000000FC00003F80FC0001FFF0FC0007E078FC000F800CFC001E0006FC003
+E0003FC007C0001FC00F80001FC01F80000FC01F00000FC03F00000FC03F00000FC07F00
+000FC07E00000FC07E00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE0000
+0FC0FE00000FC0FE00000FC0FE00000FC07E00000FC07E00000FC07E00000FC07F00000F
+C03F00000FC03F00000FC01F80000FC00F80001FC007C0003FC003C0003FC001E0006FF0
+00F001CFFF007C078FFF001FFE0FFF0007F80FC0283B7DB92E>I<0007F800001FFF0000
+7C0F8000F003C001E001E003C000F007C000F80F80007C1F80007C1F00007E3F00003E3F
+00003E7E00003F7E00003F7E00003FFE00003FFE00003FFFFFFFFFFFFFFFFFFE000000FE
+000000FE000000FE000000FE0000007E0000007E0000007F0000003F0000003F0000031F
+0000031F8000060F80000607C0000C03E0000C01F0003800F80070003E03C0001FFF8000
+03FC0020277EA525>I<00007E000003FF800007C1C0000F07E0001E07F0003E0FF0007C
+0FF000FC0FF000FC07E000F803C001F8000001F8000001F8000001F8000001F8000001F8
+000001F8000001F8000001F8000001F8000001F8000001F8000001F80000FFFFFC00FFFF
+FC00FFFFFC0001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8
+000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8
+000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8
+000001F8000001F8000001F8000003FC00007FFFF8007FFFF8007FFFF8001C3B7FBA19>
+I<000FF003F0003FFC1FF800F81F7C7C01F00FE07C03E007C03807C003E01007C003E000
+0F8001F0000F8001F0001F8001F8001F8001F8001F8001F8001F8001F8001F8001F8001F
+8001F8000F8001F0000F8001F00007C003E00007C003E00003E007C00001F00F800003F8
+1F0000063FFC0000060FF000000E000000000E000000000E000000000E000000000F0000
+00000F00000000078000000007FFFFC00003FFFFF80001FFFFFE0000FFFFFF8003FFFFFF
+C00F80007FE01E00000FE03E000003F07C000001F07C000001F8F8000000F8F8000000F8
+F8000000F8F8000000F8F8000000F87C000001F07C000001F03E000003E01F000007C00F
+80000F8007E0003F0001FC01FC00007FFFF0000007FF000026377EA42A>I<03F0000000
+00FFF000000000FFF000000000FFF0000000000FF00000000003F00000000003F0000000
+0003F00000000003F00000000003F00000000003F00000000003F00000000003F0000000
+0003F00000000003F00000000003F00000000003F00000000003F00000000003F0000000
+0003F00000000003F00000000003F00FF0000003F03FFC000003F0F03E000003F1C01F00
+0003F3000F800003F6000FC00003F60007C00003FC0007E00003F80007E00003F80007E0
+0003F80007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0
+0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0
+0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0
+0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00007F8000FF0
+00FFFFC1FFFF80FFFFC1FFFF80FFFFC1FFFF80293A7EB92E>I<03800007C0000FE0001F
+F0001FF0001FF0000FE00007C00003800000000000000000000000000000000000000000
+000000000000000000000003F000FFF000FFF000FFF00007F00003F00003F00003F00003
+F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003
+F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003
+F00007F800FFFFC0FFFFC0FFFFC012387EB717>I<0001C00003E00007F0000FF8000FF8
+000FF80007F00003E00001C0000000000000000000000000000000000000000000000000
+0000000000000001F800FFF800FFF800FFF80007F80001F80001F80001F80001F80001F8
+0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8
+0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8
+0001F80001F80001F80001F80001F80001F80001F80001F80001F83C01F87E01F8FF01F0
+FF03F0FF03E0FF03E07E07C07C07803C0F000FFE0003F800154984B719>I<03F0000000
+FFF0000000FFF0000000FFF00000000FF000000003F000000003F000000003F000000003
+F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0
+00000003F000000003F000000003F000000003F000000003F000000003F000000003F001
+FFFC03F001FFFC03F001FFFC03F0007FC003F0003E0003F000380003F000700003F000E0
+0003F001C00003F003000003F006000003F00C000003F018000003F038000003F0F80000
+03F1FC000003F37E000003F63F000003FC1F000003F81F800003F00FC00003F007C00003
+F007E00003F003F00003F001F80003F000F80003F000FC0003F0007E0003F0003E0003F0
+003F0003F0001F8003F0001FC007F8003FF0FFFFC0FFFFFFFFC0FFFFFFFFC0FFFF283A7E
+B92C>I<03F000FFF000FFF000FFF0000FF00003F00003F00003F00003F00003F00003F0
+0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0
+0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0
+0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0
+0003F00003F00003F00003F00003F00003F00003F00007F800FFFFC0FFFFC0FFFFC0123A
+7EB917>I<03F00FF0001FE000FFF03FFC007FF800FFF0F03E01E07C00FFF1C01F03803E
+000FF3000F86001F0003F6000FCC001F8003F60007CC000F8003FC0007F8000FC003F800
+07F0000FC003F80007F0000FC003F80007F0000FC003F00007E0000FC003F00007E0000F
+C003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F000
+07E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000F
+C003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F000
+07E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000F
+C003F00007E0000FC003F00007E0000FC007F8000FF0001FE0FFFFC1FFFF83FFFFFFFFC1
+FFFF83FFFFFFFFC1FFFF83FFFF40257EA445>I<03F00FF00000FFF03FFC0000FFF0F03E
+0000FFF1C01F00000FF3000F800003F6000FC00003F60007C00003FC0007E00003F80007
+E00003F80007E00003F80007E00003F00007E00003F00007E00003F00007E00003F00007
+E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007
+E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007
+E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007
+E00007F8000FF000FFFFC1FFFF80FFFFC1FFFF80FFFFC1FFFF8029257EA42E>I<0003FE
+0000000FFF8000003E03E00000F800F80001F0007C0003E0003E0007C0001F000F80000F
+801F80000FC01F000007C03F000007E03F000007E07E000003F07E000003F07E000003F0
+7E000003F0FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE
+000003F8FE000003F8FE000003F87E000003F07E000003F07F000007F03F000007E03F00
+0007E01F80000FC00F80000F800FC0001F8007E0003F0003F0007E0000F800F800007E03
+F000001FFFC0000003FE000025277EA52A>I<03F01FE000FFF07FF800FFF1E07E00FFF3
+801F0007F6000F8003FC0007C003F80003E003F80003F003F00001F803F00001FC03F000
+00FC03F00000FE03F00000FE03F00000FE03F000007E03F000007F03F000007F03F00000
+7F03F000007F03F000007F03F000007F03F000007F03F000007F03F000007E03F00000FE
+03F00000FE03F00000FC03F00000FC03F00001F803F00001F803F80003F003F80003E003
+FC0007C003F6000F8003F3001F0003F1E07E0003F0FFF80003F01FC00003F000000003F0
+00000003F000000003F000000003F000000003F000000003F000000003F000000003F000
+000003F000000003F000000007F8000000FFFFC00000FFFFC00000FFFFC0000028357EA4
+2E>I<0003F800C0001FFE01C0007E0781C000F801C3C001F00063C003E00067C007C000
+37C00FC0001FC01F80001FC01F80001FC03F00000FC03F00000FC07F00000FC07F00000F
+C07E00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0
+FE00000FC0FE00000FC07E00000FC07F00000FC07F00000FC07F00000FC03F00000FC03F
+80000FC01F80001FC00FC0001FC007C0003FC003E0006FC001F000CFC000F8018FC0007E
+070FC0001FFE0FC00007F80FC00000000FC00000000FC00000000FC00000000FC0000000
+0FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000001F
+E0000003FFFF000003FFFF000003FFFF28357DA42C>I<07E01F00FFE07FC0FFE0E3E0FF
+E183F00FE307F003E607F003E607F003EC03E003EC008003F8000003F8000003F8000003
+F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003
+F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003
+F0000003F0000003F0000007F80000FFFFF000FFFFF000FFFFF0001C257EA421>I<00FF
+030003FFE7000F80FF001C001F0038000F0078000F0070000700F0000700F0000300F000
+0300F0000300F8000300FC0003007E0000007FE000003FFF00003FFFE0001FFFF00007FF
+FC0003FFFE0000FFFF000007FF0000007F8000001F8040000FC0C00007C0C00007C0E000
+03C0E00003C0E00003C0F00003C0F0000380F8000380F8000700FC000600F6001E00E3C0
+7800C1FFF000C03F80001A277DA521>I<00180000001800000018000000180000001800
+0000380000003800000038000000780000007800000078000000F8000001F8000003F800
+0007F800001FFFFF00FFFFFF00FFFFFF0001F8000001F8000001F8000001F8000001F800
+0001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800
+0001F8000001F8000001F8000001F8000001F800C001F800C001F800C001F800C001F800
+C001F800C001F800C001F800C001F800C000F8018000FC0180007C0180003E0300001F06
+00000FFC000001F8001A347FB220>I<03F00007E000FFF001FFE000FFF001FFE000FFF0
+01FFE0000FF0001FE00003F00007E00003F00007E00003F00007E00003F00007E00003F0
+0007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F0
+0007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F0
+0007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F0
+0007E00003F0000FE00003F0000FE00003F0000FE00001F0001FE00001F00037E00000F8
+0037F800007C00E7FF80003F03C7FF80001FFF07FF800003FC07E00029267EA42E>I<FF
+FF803FFEFFFF803FFEFFFF803FFE07F8000FF003F00003C003F000038003F800038001F8
+00030001F800030000FC00060000FC00060000FE000E00007E000C00007E000C00003F00
+1800003F001800003F803800001F803000001F803000000FC06000000FC06000000FE060
+000007E0C0000007E0C0000003F180000003F180000003F180000001FB00000001FB0000
+0001FF00000000FE00000000FE000000007C000000007C000000007C0000000038000000
+0038000027257EA32C>I<FFFF1FFFE03FFEFFFF1FFFE03FFEFFFF1FFFE03FFE0FF800FF
+0007F807F0007E0003E003F0007E0001C003F0003E00018003F0003E00018001F8003F00
+030001F8003F00030001F8003F00030000FC003F80060000FC006F80060000FC006F8006
+00007E00EFC00C00007E00C7C00C00007E00C7C00C00003F01C7E01800003F0183E01800
+003F8183F03800001F8383F03000001F8301F03000001FC301F87000000FC600F8600000
+0FC600F860000007E600FCC0000007EC007CC0000007EC007CC0000003FC007F80000003
+F8003F80000003F8003F80000001F8003F00000001F0001F00000001F0001F00000000F0
+001E00000000E0000E0000000060000C000037257EA33C>I<FFFF807FFF00FFFF807FFF
+00FFFF807FFF0003FE001FE00000FC001F800000FE000E0000007E001C0000003F001800
+00001F80300000001FC0700000000FC0E000000007E0C000000007F18000000003FB8000
+000001FF0000000000FE0000000000FE00000000007F00000000003F00000000007F8000
+0000007FC000000000CFC000000001C7E00000000383F00000000703F80000000601F800
+00000C00FC0000001C007E00000038007F00000030003F000000F0001F800001F0001FC0
+000FF8003FE000FFFE00FFFF80FFFE00FFFF80FFFE00FFFF8029247FA32C>I<FFFF803F
+FEFFFF803FFEFFFF803FFE07F8000FF003F00003C003F000038001F800038001F8000300
+01FC00030000FC00060000FC000600007E000C00007E000C00007F000C00003F00180000
+3F001800001F803000001F803000001FC07000000FC06000000FC060000007E0C0000007
+E0C0000007F1C0000003F180000003F180000001FB00000001FB00000001FF00000000FE
+00000000FE000000007C000000007C000000007C00000000380000000038000000003000
+0000003000000000700000000060000000006000000000C000000000C000007C01C00000
+FE01800000FE03800000FE03000000FE06000000FC0E000000701C00000038380000001F
+F00000000FC000000027357EA32C>I<3FFFFFFC3FFFFFFC3F8001F83E0003F03C0007F0
+380007E030000FC070001FC070001F8060003F0060007F006000FE006000FC006001F800
+0003F8000003F0000007E000000FE000001FC000001F8000003F0000007F0006007E0006
+00FC000601FC000603F8000603F0000E07E0000E0FE0000C0FC0001C1F80001C3F80003C
+3F00007C7E0003FCFFFFFFFCFFFFFFFC1F247EA325>I<01E0004007F800E00FFE01C01F
+FF87803C3FFF00700FFE00E003FC004000F0001B0879B62A>126
+D E /Fo 28 125 df<FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFF
+FFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0240B7F9F2D>45
+D<00000000001F00000000000000000000003F80000000000000000000007FC000000000
+0000000000007FC000000000000000000000FFE000000000000000000000FFE000000000
+000000000000FFE000000000000000000001FFF000000000000000000001FFF000000000
+000000000003FFF800000000000000000003FFF800000000000000000003FFF800000000
+000000000007FFFC00000000000000000007FFFC0000000000000000000FFFFE00000000
+00000000000FFFFE0000000000000000000FFFFE0000000000000000001FFFFF00000000
+00000000001FFFFF0000000000000000003FFFFF8000000000000000003FFFFF80000000
+00000000003F7FFF8000000000000000007F7FFFC000000000000000007E3FFFC0000000
+0000000000FE3FFFE00000000000000000FC3FFFE00000000000000000FC1FFFE0000000
+0000000001FC1FFFF00000000000000001F80FFFF00000000000000003F80FFFF8000000
+0000000003F00FFFF80000000000000003F007FFF80000000000000007F007FFFC000000
+0000000007E003FFFC000000000000000FE003FFFE000000000000000FC003FFFE000000
+000000000FC001FFFE000000000000001FC001FFFF000000000000001F8000FFFF000000
+000000003F8000FFFF800000000000003F0000FFFF800000000000003F00007FFF800000
+000000007F00007FFFC00000000000007E00003FFFC0000000000000FE00003FFFE00000
+00000000FC00003FFFE0000000000000FC00001FFFE0000000000001FC00001FFFF00000
+00000001F800000FFFF0000000000003F800000FFFF8000000000003F000000FFFF80000
+00000003F0000007FFF8000000000007F0000007FFFC000000000007E0000003FFFC0000
+0000000FE0000003FFFE00000000000FFFFFFFFFFFFE00000000000FFFFFFFFFFFFE0000
+0000001FFFFFFFFFFFFF00000000001FFFFFFFFFFFFF00000000003FFFFFFFFFFFFF8000
+0000003F00000000FFFF80000000003F000000007FFF80000000007F000000007FFFC000
+0000007E000000003FFFC000000000FE000000003FFFE000000000FC000000003FFFE000
+000000FC000000001FFFE000000001FC000000001FFFF000000001F8000000000FFFF000
+000003F8000000000FFFF800000003F0000000000FFFF800000003F00000000007FFF800
+000007F00000000007FFFC00000007E00000000003FFFC0000000FE00000000003FFFE00
+00000FC00000000003FFFE0000001FC00000000001FFFE000000FFFC0000000001FFFF00
+00FFFFFFF800000FFFFFFFFFE0FFFFFFF800000FFFFFFFFFE0FFFFFFF800000FFFFFFFFF
+E0FFFFFFF800000FFFFFFFFFE0FFFFFFF800000FFFFFFFFFE05B537BD266>65
+D<0000000001FFF8000001C0000000007FFFFF800003C000000003FFFFFFF00007C00000
+001FFFFFFFFC001FC0000000FFFFFFFFFF003FC0000003FFFFE001FFC07FC000000FFFFC
+00003FF0FFC000003FFFE0000007F9FFC000007FFF80000003FFFFC00000FFFE00000000
+FFFFC00003FFF8000000007FFFC00007FFF0000000003FFFC0000FFFE0000000001FFFC0
+001FFFC0000000000FFFC0003FFF800000000007FFC0007FFF000000000003FFC000FFFE
+000000000001FFC000FFFC000000000001FFC001FFFC000000000000FFC003FFF8000000
+0000007FC003FFF80000000000007FC007FFF00000000000003FC007FFF0000000000000
+3FC00FFFE00000000000003FC00FFFE00000000000001FC01FFFE00000000000001FC01F
+FFE00000000000001FC03FFFC00000000000000FC03FFFC00000000000000FC03FFFC000
+00000000000FC03FFFC00000000000000FC07FFFC00000000000000FC07FFF8000000000
+000000007FFF8000000000000000007FFF800000000000000000FFFF8000000000000000
+00FFFF800000000000000000FFFF800000000000000000FFFF800000000000000000FFFF
+800000000000000000FFFF800000000000000000FFFF800000000000000000FFFF800000
+000000000000FFFF800000000000000000FFFF800000000000000000FFFF800000000000
+000000FFFF800000000000000000FFFF800000000000000000FFFF800000000000000000
+7FFF8000000000000000007FFF8000000000000000007FFF8000000000000000007FFFC0
+00000000000000003FFFC000000000000007C03FFFC000000000000007C03FFFC0000000
+00000007C03FFFC000000000000007C01FFFE000000000000007C01FFFE0000000000000
+07C00FFFE00000000000000FC00FFFE00000000000000F8007FFF00000000000000F8007
+FFF00000000000000F8003FFF80000000000001F0003FFF80000000000001F0001FFFC00
+00000000003E0000FFFC0000000000003E0000FFFE0000000000007C00007FFF00000000
+0000FC00003FFF800000000001F800001FFFC00000000003F000000FFFE00000000007F0
+000007FFF0000000000FE0000003FFF8000000001FC0000000FFFE000000003F80000000
+7FFF80000000FF000000003FFFE0000003FC000000000FFFFC00001FF80000000003FFFF
+E001FFE00000000000FFFFFFFFFF8000000000001FFFFFFFFE00000000000003FFFFFFF8
+000000000000007FFFFFC00000000000000001FFFC00000000525479D261>67
+D<FFFFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFFFF80FFFFFFFFFF
+FFFFFFFF80FFFFFFFFFFFFFFFFFF800007FFF8000001FFFFC00007FFF80000001FFFC000
+07FFF800000007FFC00007FFF800000001FFC00007FFF800000000FFC00007FFF8000000
+007FC00007FFF8000000003FC00007FFF8000000001FC00007FFF8000000001FC00007FF
+F8000000000FE00007FFF8000000000FE00007FFF80000000007E00007FFF80000000007
+E00007FFF80000000007E00007FFF80000000003E00007FFF80000000003E00007FFF800
+00000003E00007FFF80000F80003E00007FFF80000F80003F00007FFF80000F80001F000
+07FFF80000F80001F00007FFF80000F80001F00007FFF80000F80001F00007FFF80000F8
+0000000007FFF80001F80000000007FFF80001F80000000007FFF80001F80000000007FF
+F80003F80000000007FFF80007F80000000007FFF8000FF80000000007FFF8007FF80000
+000007FFFFFFFFF80000000007FFFFFFFFF80000000007FFFFFFFFF80000000007FFFFFF
+FFF80000000007FFFFFFFFF80000000007FFF8007FF80000000007FFF8000FF800000000
+07FFF80007F80000000007FFF80003F80000000007FFF80001F80000000007FFF80001F8
+0000000007FFF80001F80000000007FFF80000F80000000007FFF80000F800003E0007FF
+F80000F800003E0007FFF80000F800003E0007FFF80000F800007C0007FFF80000F80000
+7C0007FFF80000F800007C0007FFF800000000007C0007FFF800000000007C0007FFF800
+00000000FC0007FFF80000000000FC0007FFF80000000000F80007FFF80000000000F800
+07FFF80000000001F80007FFF80000000001F80007FFF80000000001F80007FFF8000000
+0003F80007FFF80000000003F00007FFF80000000007F00007FFF8000000000FF00007FF
+F8000000000FF00007FFF8000000001FF00007FFF8000000003FF00007FFF8000000007F
+E00007FFF800000001FFE00007FFF800000007FFE00007FFF80000001FFFE00007FFF800
+0003FFFFE0FFFFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFFFFC0FF
+FFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFC04F517CD058>69 D<FFFFFFFFFFC003FFFF
+FFFFFFFFFFFFFFFFC003FFFFFFFFFFFFFFFFFFFFC003FFFFFFFFFFFFFFFFFFFFC003FFFF
+FFFFFFFFFFFFFFFFC003FFFFFFFFFF0007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFFFFFFFFFFFFFFFE0000007FFFFFFFFFFFFFFFFE0000007FFFFFFFFFFFFFF
+FFE0000007FFFFFFFFFFFFFFFFE0000007FFFFFFFFFFFFFFFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001F
+FFE0000007FFF8000000001FFFE000FFFFFFFFFFC003FFFFFFFFFFFFFFFFFFFFC003FFFF
+FFFFFFFFFFFFFFFFC003FFFFFFFFFFFFFFFFFFFFC003FFFFFFFFFFFFFFFFFFFFC003FFFF
+FFFFFF60527CD169>72 D<FFFFFFFFFFFFFF000000FFFFFFFFFFFFFFF80000FFFFFFFFFF
+FFFFFF0000FFFFFFFFFFFFFFFFE000FFFFFFFFFFFFFFFFF0000007FFF000001FFFFC0000
+07FFF0000001FFFF000007FFF00000007FFF800007FFF00000003FFFC00007FFF0000000
+0FFFE00007FFF00000000FFFF00007FFF000000007FFF00007FFF000000003FFF80007FF
+F000000003FFFC0007FFF000000003FFFC0007FFF000000001FFFE0007FFF000000001FF
+FE0007FFF000000001FFFE0007FFF000000001FFFE0007FFF000000001FFFF0007FFF000
+000001FFFF0007FFF000000001FFFF0007FFF000000001FFFF0007FFF000000001FFFF00
+07FFF000000001FFFF0007FFF000000001FFFF0007FFF000000001FFFF0007FFF0000000
+01FFFE0007FFF000000001FFFE0007FFF000000001FFFE0007FFF000000001FFFC0007FF
+F000000003FFFC0007FFF000000003FFFC0007FFF000000003FFF80007FFF000000007FF
+F00007FFF00000000FFFE00007FFF00000001FFFE00007FFF00000003FFFC00007FFF000
+00007FFF000007FFF0000001FFFE000007FFF000001FFFFC000007FFFFFFFFFFFFF00000
+07FFFFFFFFFFFFC0000007FFFFFFFFFFFE00000007FFFFFFFFFFE000000007FFF8000000
+0000000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FF
+F80000000000000007FFF80000000000000007FFF80000000000000007FFF80000000000
+000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF800
+00000000000007FFF80000000000000007FFF80000000000000007FFF800000000000000
+07FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF8000000
+0000000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FF
+F80000000000000007FFF80000000000000007FFF80000000000000007FFF80000000000
+000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF800
+00000000000007FFF80000000000000007FFF8000000000000FFFFFFFFFFC000000000FF
+FFFFFFFFC000000000FFFFFFFFFFC000000000FFFFFFFFFFC000000000FFFFFFFFFFC000
+00000050527CD15C>80 D<00000FFF800007000000FFFFF8000F000003FFFFFF001F0000
+0FFFFFFFC03F00003FFFFFFFF07F00007FF800FFF8FF0001FFC00007FDFF0003FF000001
+FFFF0007FE0000007FFF0007FC0000003FFF000FF80000000FFF001FF000000007FF001F
+F000000003FF003FF000000001FF003FE000000001FF007FE000000000FF007FE0000000
+00FF007FE0000000007F007FE0000000007F00FFE0000000003F00FFE0000000003F00FF
+F0000000003F00FFF0000000001F00FFF0000000001F00FFF8000000001F00FFFC000000
+001F00FFFE000000001F00FFFF0000000000007FFFC000000000007FFFF000000000007F
+FFFF00000000003FFFFFF0000000003FFFFFFF800000001FFFFFFFF80000001FFFFFFFFF
+8000000FFFFFFFFFF000000FFFFFFFFFFC000007FFFFFFFFFF000003FFFFFFFFFF800001
+FFFFFFFFFFE00000FFFFFFFFFFF000007FFFFFFFFFF800001FFFFFFFFFFC00000FFFFFFF
+FFFE000003FFFFFFFFFE000000FFFFFFFFFF0000000FFFFFFFFF80000000FFFFFFFF8000
+000007FFFFFFC0000000007FFFFFC00000000003FFFFC000000000007FFFE00000000000
+3FFFE000000000000FFFE0000000000007FFF0000000000003FFF0000000000001FFF078
+0000000001FFF0F80000000000FFF0F80000000000FFF0F80000000000FFF0F800000000
+007FF0F800000000007FF0FC00000000007FF0FC00000000007FE0FC00000000007FE0FC
+00000000007FE0FE00000000007FE0FE00000000007FC0FF0000000000FFC0FF80000000
+00FF80FFC000000000FF80FFE000000001FF00FFF000000003FF00FFF800000003FE00FF
+FE00000007FC00FFFFC000001FF800FFFFF800003FF000FF1FFFC003FFE000FE07FFFFFF
+FFC000FC01FFFFFFFF0000F8007FFFFFFC0000F00007FFFFE00000E000003FFE0000003C
+5479D24B>83 D<3FFFFFFFFFFFFFFFFFFF803FFFFFFFFFFFFFFFFFFF803FFFFFFFFFFFFF
+FFFFFF803FFFFFFFFFFFFFFFFFFF803FFFFFFFFFFFFFFFFFFF803FFFC0003FFFC0007FFF
+803FFE00003FFFC00007FF807FF800003FFFC00001FFC07FE000003FFFC00000FFC07FC0
+00003FFFC000007FC07F8000003FFFC000003FC07F0000003FFFC000001FC07F0000003F
+FFC000001FC07E0000003FFFC000000FC07E0000003FFFC000000FC07E0000003FFFC000
+000FC07C0000003FFFC0000007C07C0000003FFFC0000007C07C0000003FFFC0000007C0
+7C0000003FFFC0000007C07C0000003FFFC0000007C0FC0000003FFFC0000007E0F80000
+003FFFC0000003E0F80000003FFFC0000003E0F80000003FFFC0000003E0F80000003FFF
+C0000003E0F80000003FFFC0000003E0F80000003FFFC0000003E0000000003FFFC00000
+0000000000003FFFC000000000000000003FFFC000000000000000003FFFC00000000000
+0000003FFFC000000000000000003FFFC000000000000000003FFFC00000000000000000
+3FFFC000000000000000003FFFC000000000000000003FFFC000000000000000003FFFC0
+00000000000000003FFFC000000000000000003FFFC000000000000000003FFFC0000000
+00000000003FFFC000000000000000003FFFC000000000000000003FFFC0000000000000
+00003FFFC000000000000000003FFFC000000000000000003FFFC000000000000000003F
+FFC000000000000000003FFFC000000000000000003FFFC000000000000000003FFFC000
+000000000000003FFFC000000000000000003FFFC000000000000000003FFFC000000000
+000000003FFFC000000000000000003FFFC000000000000000003FFFC000000000000000
+003FFFC000000000000000003FFFC000000000000000003FFFC000000000000000003FFF
+C000000000000000003FFFC000000000000000003FFFC000000000000000003FFFC00000
+0000000000003FFFC000000000000000003FFFC000000000000000003FFFC00000000000
+0000003FFFC000000000000000003FFFC000000000000000003FFFC00000000000000000
+3FFFC000000000000000003FFFC000000000000000003FFFC000000000000000003FFFC0
+00000000000000003FFFC0000000000000FFFFFFFFFFFFF000000000FFFFFFFFFFFFF000
+000000FFFFFFFFFFFFF000000000FFFFFFFFFFFFF000000000FFFFFFFFFFFFF000005351
+7BD05E>I<0003FFFF00000000003FFFFFF800000000FFFFFFFE00000001FFFFFFFF8000
+0003FF0007FFE0000007FF8000FFF0000007FF80007FFC00000FFFC0003FFC00000FFFC0
+001FFE00000FFFC0000FFF00000FFFC0000FFF00000FFFC0000FFF800007FF800007FF80
+0007FF800007FFC00003FF000007FFC00000FC000007FFC0000000000007FFC000000000
+0007FFC0000000000007FFC0000000000007FFC0000000000007FFC0000000000007FFC0
+000000007FFFFFC00000000FFFFFFFC0000000FFFFFFFFC0000007FFFF07FFC000001FFF
+C007FFC000007FFE0007FFC00001FFF80007FFC00003FFE00007FFC0000FFFC00007FFC0
+001FFF800007FFC0001FFF000007FFC0003FFE000007FFC0007FFC000007FFC0007FFC00
+0007FFC0007FF8000007FFC000FFF8000007FFC000FFF8000007FFC000FFF8000007FFC0
+00FFF8000007FFC000FFF800000FFFC000FFF800000FFFC0007FFC00001DFFC0007FFC00
+003DFFC0003FFE000079FFC0003FFF0000F9FFE0001FFF8001F1FFF80007FFF00FE0FFFF
+E003FFFFFF807FFFF000FFFFFF003FFFF0001FFFFC001FFFF00001FFE00007FFE03C357C
+B441>97 D<000001FFFE000000001FFFFFF0000000FFFFFFFC000003FFFFFFFE00000FFF
+8003FF00003FFC0007FF80007FF80007FF8000FFF0000FFFC001FFE0000FFFC003FFC000
+0FFFC007FF80000FFFC00FFF00000FFFC00FFF000007FF801FFF000007FF801FFE000003
+FF003FFE000000FC003FFE00000000003FFE00000000007FFC00000000007FFC00000000
+007FFC0000000000FFFC0000000000FFFC0000000000FFFC0000000000FFFC0000000000
+FFFC0000000000FFFC0000000000FFFC0000000000FFFC0000000000FFFC0000000000FF
+FC0000000000FFFC00000000007FFC00000000007FFC00000000007FFE00000000003FFE
+00000000003FFE00000000003FFE00000000001FFF00000003E01FFF00000003E00FFF00
+000003E00FFF80000007C007FFC0000007C003FFC000000F8001FFE000001F8000FFF000
+003F00007FFC0000FE00003FFE0001FC00000FFFC00FF8000003FFFFFFE0000000FFFFFF
+800000001FFFFE0000000001FFE0000033357CB43C>99 D<000000000001FF8000000000
+0007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000000
+0007FFFF800000000000001FFF8000000000000007FF8000000000000007FF8000000000
+000007FF8000000000000007FF8000000000000007FF8000000000000007FF8000000000
+000007FF8000000000000007FF8000000000000007FF8000000000000007FF8000000000
+000007FF8000000000000007FF8000000000000007FF8000000000000007FF8000000000
+000007FF8000000000000007FF8000000000000007FF8000000000000007FF8000000000
+000007FF8000000000000007FF8000000000000007FF8000000000000007FF8000000000
+000007FF8000000001FFC007FF800000001FFFFC07FF80000000FFFFFF07FF80000003FF
+FFFFC7FF8000000FFFC01FE7FF8000001FFE0003FFFF8000007FF80000FFFF800000FFF0
+00007FFF800001FFE000003FFF800003FFC000001FFF800007FF8000000FFF800007FF00
+00000FFF80000FFF0000000FFF80001FFF0000000FFF80001FFE0000000FFF80003FFE00
+00000FFF80003FFE0000000FFF80003FFE0000000FFF80007FFC0000000FFF80007FFC00
+00000FFF80007FFC0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC00
+00000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC00
+00000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC00
+00000FFF80007FFC0000000FFF80007FFC0000000FFF80007FFC0000000FFF80007FFC00
+00000FFF80003FFE0000000FFF80003FFE0000000FFF80001FFE0000000FFF80001FFE00
+00000FFF80000FFF0000000FFF80000FFF0000000FFF800007FF8000001FFF800003FF80
+00003FFF800001FFC000007FFF800000FFE00000FFFF8000007FF00003FFFF8000003FFC
+0007EFFFE000000FFF803FCFFFFF800007FFFFFF8FFFFF800001FFFFFE0FFFFF8000003F
+FFF00FFFFF80000003FF800FFFFF8041537CD24B>I<000007FFC0000000007FFFFC0000
+0001FFFFFF00000007FFFFFFC000001FFF01FFF000003FFC003FF800007FF0000FFC0000
+FFE00007FE0001FFC00003FE0003FF800003FF0007FF800001FF800FFF000001FF800FFF
+000000FFC01FFE000000FFC03FFE000000FFE03FFE000000FFE03FFE0000007FE07FFC00
+00007FE07FFC0000007FF07FFC0000007FF07FFC0000007FF0FFFC0000007FF0FFFC0000
+007FF0FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFFFFFFE0FFFC000000
+0000FFFC0000000000FFFC0000000000FFFC0000000000FFFC00000000007FFC00000000
+007FFC00000000007FFC00000000007FFE00000000003FFE00000000003FFE0000000000
+1FFE00000000E01FFF00000001F00FFF00000001F007FF80000003F007FF80000007E003
+FFC0000007C001FFC000000FC000FFE000003F80007FF800007F00003FFE0003FE00000F
+FFC01FFC000003FFFFFFF0000000FFFFFFC00000003FFFFF0000000001FFF0000034357C
+B43D>I<0000001FF800000003FFFF0000000FFFFFC000003FFFFFE00000FFF01FF00001
+FFC03FF80003FF007FF80007FE007FFC000FFC00FFFC001FFC00FFFC001FF800FFFC003F
+F800FFFC003FF8007FF8007FF0007FF8007FF0003FF0007FF0001FE0007FF0000780007F
+F0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007F
+F0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007F
+F0000000FFFFFFFFE000FFFFFFFFE000FFFFFFFFE000FFFFFFFFE000FFFFFFFFE000007F
+F8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007F
+F8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007F
+F8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007F
+F8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007F
+F8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007F
+F8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007F
+F8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007F
+F80000007FFFFFFE00007FFFFFFE00007FFFFFFE00007FFFFFFE00007FFFFFFE00002E53
+7CD229>I<0000000000007E0000001FFF0003FF800001FFFFF00FFFC00007FFFFFC3FFF
+E0001FFFFFFF7F9FE0003FF803FFFC1FF000FFE000FFF01FF001FFC0007FF01FF003FF80
+003FF81FF003FF00001FF81FE007FF00001FFC0FC007FF00001FFC03800FFE00000FFE00
+000FFE00000FFE00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00
+000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00
+000FFE00000FFE00000FFE00000FFE000007FF00001FFC000007FF00001FFC000003FF00
+001FF8000003FF80003FF8000001FFC0007FF0000000FFE000FFE00000007FF803FF8000
+0000FFFFFFFF00000001E7FFFFFC00000001E1FFFFF000000003C01FFF0000000003C000
+000000000007C000000000000007C000000000000007C000000000000007E00000000000
+0007E000000000000007F000000000000007F800000000000007FE00000000000007FFFF
+FFFF00000007FFFFFFFFF8000003FFFFFFFFFE000003FFFFFFFFFF800001FFFFFFFFFFE0
+0001FFFFFFFFFFF80000FFFFFFFFFFFC00007FFFFFFFFFFC00003FFFFFFFFFFE0001FFFF
+FFFFFFFF0007FFFFFFFFFFFF000FFC000001FFFF801FF80000001FFF803FF000000007FF
+807FE000000003FFC07FC000000001FFC0FFC000000000FFC0FFC000000000FFC0FFC000
+000000FFC0FFC000000000FFC0FFC000000000FFC0FFC000000000FFC07FE000000001FF
+807FE000000001FF803FF000000003FF001FF800000007FE001FFC0000000FFE0007FF00
+00003FF80003FFC00000FFF00000FFFC000FFFC000003FFFFFFFFF0000000FFFFFFFFC00
+000001FFFFFFE0000000000FFFFC0000003C4E7CB543>I<003FF0000000000000FFFFF0
+000000000000FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF0
+00000000000003FFF000000000000000FFF000000000000000FFF000000000000000FFF0
+00000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF0
+00000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF0
+00000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF0
+00000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF0
+00000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF0
+00000000000000FFF0001FFC00000000FFF000FFFF80000000FFF003FFFFE0000000FFF0
+0FFFFFF8000000FFF01FC07FFC000000FFF07E001FFE000000FFF0F8000FFF000000FFF1
+F0000FFF000000FFF1E0000FFF800000FFF3C00007FF800000FFF7800007FF800000FFF7
+000007FFC00000FFFE000007FFC00000FFFE000007FFC00000FFFC000007FFC00000FFFC
+000007FFC00000FFFC000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8
+000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8
+000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8
+000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8
+000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8
+000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8
+000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8
+000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8
+000007FFC000FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFF
+F807FFFFFFC0FFFFFFF807FFFFFFC042537BD24B>I<007F000000FF800001FFC00003FF
+E00007FFF0000FFFF8000FFFF8000FFFF8000FFFF8000FFFF8000FFFF8000FFFF80007FF
+F00003FFE00001FFC00000FF8000007F0000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000003FF000FFFFF000FFFFF000FFFFF000FFFFF000FFFFF00001FFF00000FFF00000FF
+F00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FF
+F00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FF
+F00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FF
+F00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FF
+F00000FFF00000FFF00000FFF000FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE01B54
+7BD325>I<003FF000FFFFF000FFFFF000FFFFF000FFFFF000FFFFF00001FFF00000FFF0
+0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
+0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
+0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
+0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
+0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
+0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
+0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0
+0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF000FFFFFFF0FFFFFF
+F0FFFFFFF0FFFFFFF0FFFFFFF01C537BD225>108 D<003FF0001FFC000000FFE00000FF
+FFF000FFFF800007FFFC0000FFFFF003FFFFE0001FFFFF0000FFFFF00FFFFFF8007FFFFF
+C000FFFFF01FC07FFC00FE03FFE000FFFFF07E001FFE03F000FFF00003FFF0F8000FFF07
+C0007FF80000FFF1F0000FFF0F80007FF80000FFF1E0000FFF8F00007FFC0000FFF3C000
+07FF9E00003FFC0000FFF7800007FFBC00003FFC0000FFF7000007FFF800003FFE0000FF
+FE000007FFF000003FFE0000FFFE000007FFF000003FFE0000FFFC000007FFE000003FFE
+0000FFFC000007FFE000003FFE0000FFFC000007FFE000003FFE0000FFF8000007FFC000
+003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007
+FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8
+000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE00
+00FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC00000
+3FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FF
+C000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF800
+0007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000
+FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003F
+FE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC0
+00003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF80000
+07FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE00FFFF
+FFF807FFFFFFC03FFFFFFEFFFFFFF807FFFFFFC03FFFFFFEFFFFFFF807FFFFFFC03FFFFF
+FEFFFFFFF807FFFFFFC03FFFFFFEFFFFFFF807FFFFFFC03FFFFFFE67357BB470>I<003F
+F0001FFC000000FFFFF000FFFF800000FFFFF003FFFFE00000FFFFF00FFFFFF80000FFFF
+F01FC07FFC0000FFFFF07E001FFE000003FFF0F8000FFF000000FFF1F0000FFF000000FF
+F1E0000FFF800000FFF3C00007FF800000FFF7800007FF800000FFF7000007FFC00000FF
+FE000007FFC00000FFFE000007FFC00000FFFC000007FFC00000FFFC000007FFC00000FF
+FC000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF
+F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF
+F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF
+F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF
+F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF
+F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF
+F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF
+F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC000FFFF
+FFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFF
+FFF807FFFFFFC042357BB44B>I<000001FFE000000000003FFFFF0000000000FFFFFFC0
+00000007FFFFFFF80000000FFF807FFC0000003FFC000FFF0000007FF00003FF800000FF
+E00001FFC00001FFC00000FFE00003FF8000007FF00007FF0000003FF8000FFF0000003F
+FC000FFE0000001FFC001FFE0000001FFE001FFE0000001FFE003FFE0000001FFF003FFC
+0000000FFF007FFC0000000FFF807FFC0000000FFF807FFC0000000FFF807FFC0000000F
+FF80FFFC0000000FFFC0FFFC0000000FFFC0FFFC0000000FFFC0FFFC0000000FFFC0FFFC
+0000000FFFC0FFFC0000000FFFC0FFFC0000000FFFC0FFFC0000000FFFC0FFFC0000000F
+FFC0FFFC0000000FFFC0FFFC0000000FFFC07FFC0000000FFF807FFC0000000FFF807FFC
+0000000FFF807FFC0000000FFF803FFE0000001FFF003FFE0000001FFF003FFE0000001F
+FF001FFE0000001FFE000FFF0000003FFC000FFF0000003FFC0007FF8000007FF80003FF
+8000007FF00003FFC00000FFF00001FFE00001FFE000007FF00003FF8000003FFC000FFF
+0000001FFF807FFE00000007FFFFFFF800000001FFFFFFE0000000003FFFFF0000000000
+01FFE00000003A357CB443>I<003FF000FFE0000000FFFFF00FFFFE000000FFFFF03FFF
+FFC00000FFFFF0FFFFFFF00000FFFFF3FE01FFF80000FFFFF7F0003FFE000001FFFFC000
+0FFF000000FFFF800007FF800000FFFF000003FFC00000FFFE000001FFE00000FFFC0000
+01FFF00000FFF8000000FFF80000FFF8000000FFF80000FFF80000007FFC0000FFF80000
+007FFC0000FFF80000003FFE0000FFF80000003FFE0000FFF80000003FFF0000FFF80000
+003FFF0000FFF80000003FFF0000FFF80000001FFF0000FFF80000001FFF8000FFF80000
+001FFF8000FFF80000001FFF8000FFF80000001FFF8000FFF80000001FFF8000FFF80000
+001FFF8000FFF80000001FFF8000FFF80000001FFF8000FFF80000001FFF8000FFF80000
+001FFF8000FFF80000001FFF8000FFF80000001FFF0000FFF80000003FFF0000FFF80000
+003FFF0000FFF80000003FFE0000FFF80000003FFE0000FFF80000007FFE0000FFF80000
+007FFC0000FFF80000007FFC0000FFF8000000FFF80000FFF8000000FFF00000FFFC0000
+01FFF00000FFFE000003FFE00000FFFF000007FFC00000FFFF80000FFF800000FFFFC000
+1FFF000000FFFFE0007FFC000000FFFBFC03FFF8000000FFF8FFFFFFE0000000FFF87FFF
+FF80000000FFF80FFFFC00000000FFF801FFC000000000FFF800000000000000FFF80000
+0000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF80000
+0000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF80000
+0000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF80000
+0000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF80000
+00000000FFFFFFF80000000000FFFFFFF80000000000FFFFFFF80000000000FFFFFFF800
+00000000FFFFFFF80000000000414C7BB44B>I<007FE001FC00FFFFE00FFF80FFFFE03F
+FFE0FFFFE07FFFF0FFFFE0FE1FF8FFFFE1F03FFC03FFE3E03FFC00FFE3C07FFE00FFE780
+7FFE00FFE7007FFE00FFEF007FFE00FFEE007FFE00FFFE003FFC00FFFC003FFC00FFFC00
+1FF800FFFC0007E000FFF800000000FFF800000000FFF800000000FFF800000000FFF000
+000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000
+000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000
+000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000
+000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000
+000000FFF000000000FFF000000000FFF0000000FFFFFFFC0000FFFFFFFC0000FFFFFFFC
+0000FFFFFFFC0000FFFFFFFC00002F357CB437>114 D<0001FFE00700001FFFFE1F0000
+FFFFFFFF0003FFFFFFFF0007FE001FFF000FF00003FF001FC00001FF003F800000FF003F
+8000007F007F0000003F007F0000003F007F0000001F00FF0000001F00FF0000001F00FF
+8000001F00FFC000001F00FFF000000000FFFE00000000FFFFF00000007FFFFF8000007F
+FFFFFC00003FFFFFFF80003FFFFFFFE0001FFFFFFFF0000FFFFFFFFC0007FFFFFFFE0001
+FFFFFFFF00007FFFFFFF80001FFFFFFFC00003FFFFFFC000003FFFFFE0000000FFFFE000
+00000FFFE000000001FFF0780000007FF0F80000003FF0F80000001FF0FC0000001FF0FC
+0000000FF0FC0000000FF0FE0000000FE0FE0000000FE0FF0000000FE0FF8000001FC0FF
+C000001FC0FFE000003F80FFF000007F80FFFC0000FF00FFFF800FFE00FF7FFFFFF800FC
+1FFFFFE000F807FFFF8000E0007FF800002C357CB435>I<00003E00000000003E000000
+00003E00000000003E00000000003E00000000003E00000000007E00000000007E000000
+00007E00000000007E0000000000FE0000000000FE0000000001FE0000000001FE000000
+0001FE0000000003FE0000000007FE0000000007FE000000000FFE000000001FFE000000
+003FFE00000000FFFE00000001FFFE0000000FFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF00
+FFFFFFFFFF00FFFFFFFFFF00003FFE000000003FFE000000003FFE000000003FFE000000
+003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000
+003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000
+003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000
+003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE0007C0
+003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007C0
+003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007C0001FFE000F80001FFF000F80
+000FFF000F00000FFF801F000007FF803E000003FFE07C000001FFFFFC0000007FFFF000
+00001FFFE000000001FF00002A4C7ECB34>I<003FF8000001FFC000FFFFF80007FFFFC0
+00FFFFF80007FFFFC000FFFFF80007FFFFC000FFFFF80007FFFFC000FFFFF80007FFFFC0
+0003FFF800001FFFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC0
+0000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC0
+0000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC0
+0000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC0
+0000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC0
+0000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC0
+0000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC0
+0000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC0
+0000FFF800000FFFC00000FFF800000FFFC00000FFF800000FFFC00000FFF800001FFFC0
+0000FFF800001FFFC000007FF800003BFFC000007FF800007BFFC000003FF80000F3FFC0
+00003FFC0001F3FFC000001FFE0003E3FFF000000FFF801FC3FFFFC00007FFFFFF03FFFF
+C00001FFFFFE03FFFFC000007FFFF803FFFFC0000007FFC003FFFFC042357BB44B>I<FF
+FFFFF00007FFFFFFFFFFF00007FFFFFFFFFFF00007FFFFFFFFFFF00007FFFFFFFFFFF000
+07FFFF00FFF80000007FC000FFFC0000003F0000FFFC0000003F00007FFE0000003E0000
+7FFE0000007E00003FFE0000007C00003FFF000000FC00001FFF000000F800001FFF8000
+01F800000FFF800001F000000FFFC00003F0000007FFC00003E0000007FFE00003E00000
+07FFE00007E0000003FFF00007C0000003FFF0000FC0000001FFF8000F80000001FFF800
+1F80000000FFF8001F00000000FFFC003F000000007FFC003E000000007FFE007E000000
+003FFE007C000000003FFF00FC000000003FFF00FC000000001FFF80F8000000001FFF81
+F8000000000FFFC1F0000000000FFFC3F00000000007FFC3E00000000007FFE7E0000000
+0003FFE7C00000000003FFFFC00000000001FFFF800000000001FFFF800000000000FFFF
+000000000000FFFF000000000000FFFF0000000000007FFE0000000000007FFE00000000
+00003FFC0000000000003FFC0000000000001FF80000000000001FF80000000000000FF0
+0000000000000FF000000000000007E000000000000003C000000040357DB447>I<FFFF
+FFF00007FFFFFFFFFFF00007FFFFFFFFFFF00007FFFFFFFFFFF00007FFFFFFFFFFF00007
+FFFF00FFF80000007FC000FFFC0000003F0000FFFC0000003F00007FFE0000003E00007F
+FE0000007E00003FFE0000007C00003FFF000000FC00001FFF000000F800001FFF800001
+F800000FFF800001F000000FFFC00003F0000007FFC00003E0000007FFE00003E0000007
+FFE00007E0000003FFF00007C0000003FFF0000FC0000001FFF8000F80000001FFF8001F
+80000000FFF8001F00000000FFFC003F000000007FFC003E000000007FFE007E00000000
+3FFE007C000000003FFF00FC000000003FFF00FC000000001FFF80F8000000001FFF81F8
+000000000FFFC1F0000000000FFFC3F00000000007FFC3E00000000007FFE7E000000000
+03FFE7C00000000003FFFFC00000000001FFFF800000000001FFFF800000000000FFFF00
+0000000000FFFF000000000000FFFF0000000000007FFE0000000000007FFE0000000000
+003FFC0000000000003FFC0000000000001FF80000000000001FF80000000000000FF000
+00000000000FF000000000000007E000000000000007E000000000000007E00000000000
+0007C00000000000000FC00000000000000F800000000000001F800000000000001F0000
+00000000003F000000001FC0003E000000003FE0007E000000007FF0007C00000000FFF8
+00FC00000000FFF800F800000000FFF801F800000000FFF803F000000000FFF803E00000
+0000FFF807E0000000007FF01FC0000000007EE03F80000000003FC1FF00000000001FFF
+FC00000000000FFFF8000000000003FFE0000000000000FF000000000000404C7DB447>
+121 D<FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF885
+0480A286>124 D E end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 500 387 a Fo(Store)46 b(|)f(a)g(System)h(for)f(Handling)g
+(Third-P)l(art)l(y)532 527 y(Applications)g(in)g(a)g(Heterogeneous)i
+(Computer)1426 666 y(En)l(vironmen)l(t)1136 957 y Fn(Anders)27
+b(Christensen)1846 926 y Fm(?)1912 957 y Fn(and)g(T)-7
+b(or)27 b(Egge)2406 926 y Fm(??)1395 1131 y Fl(Univ)n(ersit)n(y)e(of)h
+(T)-6 b(rondheim)602 1484 y Fk(Abstract.)42 b Fl(This)c(pap)r(er)f
+(presen)n(ts)g(the)g(Store)h(system)e(administration)i(to)r(ol)602
+1575 y(suite,)28 b(whic)n(h)g(helps)g(administering)g(third)f(part)n(y)
+g(applications)j(in)d(a)i(heteroge-)602 1667 y(neous)e(Unix)g(en)n
+(vironmen)n(t,)f(giving)i(b)r(etter)g(o)n(v)n(erview,)g(more)f
+(consistency)-6 b(,)28 b(and)602 1758 y(less)h(man)n(ual)g(w)n(ork.)g
+(The)g(problems)g(targeted)g(b)n(y)f(Store)h(are)h(listed;)g(the)e
+(basic)602 1849 y(functionalit)n(y)36 b(of)g(Store)g(is)h(describ)r
+(ed,)f(and)g(exp)r(eriences)g(from)g(constructing)602
+1941 y(and)25 b(main)n(taining)g(the)h(system)e(are)j(presen)n(ted.)365
+2233 y Fj(1)112 b(The)38 b(Problem)365 2440 y Fn(F)-7
+b(rom)33 b(exp)r(eriences,)f(w)n(e)g(ha)n(v)n(e)g(found)h(that)g(a)f(n)
+n(um)n(b)r(er)g(of)h(problems)f(arise)g(in)h(the)g(area)365
+2540 y(of)40 b(administering)f(computer)h(systems.)f(These)g(problems)g
+(are)g(often)h(caused)f(b)n(y)h(the)365 2640 y(lo)r(cal,)19
+b(strategic)f(organization)f(of)j(the)f(computers,)g(including)h
+(heterogeneous)d(hardw)n(are,)365 2739 y(m)n(ultiple)23
+b(soft)n(w)n(are)d(v)n(ersions,)g(deviating)i(user)f(needs,)h(m)n
+(ultiple)g(system)g(administrators,)365 2839 y(geographical)j
+(distribution,)j(duplication)g(of)f(data,)g(and)h(organizational)d
+(structure.)490 2940 y(These)32 b(giv)n(e)g(rise)g(to)h(a)g(n)n(um)n(b)
+r(er)f(of)h(sp)r(eci\014c)g(problems,)f(where)g(the)i(more)e(common)365
+3040 y(ones)27 b(are)g(listed)h(b)r(elo)n(w:)365 3212
+y Fi(T)-8 b(raceabilit)m(y)g(.)46 b Fn(As)28 b(the)i(complexit)n(y)e
+(of)h(a)f(computer)g(system)h(rises,)f(the)h(kno)n(wledge)e(of)506
+3312 y(\\who-did-what")f(b)r(ecomes)i(more)f(imp)r(ortan)n(t,)g(as)h
+(do)r(es)f(the)h(\\wh)n(y-did-they-do-it-)506 3412 y(lik)n(e-that")37
+b(information.)g(Ho)n(w)n(ev)n(er,)f(activities)i(lik)n(e)f(logging,)g
+(do)r(cumen)n(ting,)g(and)506 3511 y(registering)29 b(are)g(often)i
+(ignored)e(during)h(particularly)f(hectic)i(p)r(erio)r(ds)f(in)h(the)g
+(daily)506 3611 y(system)i(administering.)g(A)h(lot)f(of)g
+(self-discipline)h(is)f(required)f(to)h(main)n(tain)g(these)506
+3711 y(activities)28 b(in)g(a)f(highly)g(result-orien)n(ted)f(trade.)
+365 3812 y Fi(A\016nit)m(y)-8 b(.)43 b Fn(In)35 b(a)f(traditional)g
+Fh(/usr/local)d Fn(\014le)k(system,)f(a)h(large)e(n)n(um)n(b)r(er)i(of)
+g(\014les)f(are)506 3912 y(mixed)g(fairly)e(unorderly)g(together.)h
+(Files)g(are)f(somewhat)h(group)r(ed)f(in)n(to)h(applica-)506
+4011 y(tions,)19 b(but)h(it)f(is)g(often)g(not)g(ob)n(vious)e(who)i
+(main)n(tains)f(whic)n(h)h(applications.)f(T)n(ypically)-7
+b(,)506 4111 y(whic)n(h)33 b(\014les)f(b)r(elong)g(to)g(whic)n(h)g
+(applications,)g(and)g(whic)n(h)g(applications)g(consist)f(of)506
+4210 y(whic)n(h)d(\014les,)g(are)e(matters)h(of)h(uncertain)n(t)n(y)f
+(and)g(v)-5 b(agueness.)365 4312 y Fi(Arc)m(hitecture)35
+b(dep)s(endency)-8 b(.)41 b Fn(Since)21 b(di\013eren)n(t)h(hardw)n(are)
+d(arc)n(hitectures)i(require)f(dif-)506 4411 y(feren)n(t)39
+b(binary)g(programs,)e(system)i(managemen)n(t)f(tend)h(to)g(administer)
+g(di\013eren)n(t)506 4511 y(hardw)n(are)32 b(platforms)i(separately)-7
+b(.)32 b(This)i(adds)g(unnecessarily)f(to)h(the)g(costs;)f(most)506
+4611 y(applications)22 b(are)g(iden)n(tical)h(across)e(platforms)h
+(except)h(from)g(the)g(di\013ering)g(binaries.)p 365
+4687 473 4 v 381 4740 a Fg(?)442 4772 y Fl(SINTEF)j(R)n(UNIT)e
+(\(email:)i Ff(anders.christensen@runit.sintef.no)5 b
+Fl(\))348 4832 y Fg(??)442 4863 y Fl(Division)26 b(of)h(Computer)e
+(Science)g(and)h(T)-6 b(elematics)26 b(\(email:)g Ff(te)l
+(gge@idt.unit.no)5 b Fl(\))p eop
+%%Page: 2 2
+2 1 bop 681 387 a Fi(Bit)32 b(rot.)41 b Fn(There)25 b(is)g(no)f(go)r(o)
+r(d)h(explanation)f(for)g(it,)i(but)g(it)f(is)g(a)g(w)n(ell-kno)n(wn)e
+(observ)-5 b(ation)822 487 y(that)21 b(unattended)h(applications)e
+(tend)i(to)e(stop)h(w)n(orking)f(after)g(some)h(time,)g(generally)822
+587 y(due)33 b(to)f(of)g(c)n(hanges)f(in)i(the)g(surrounding)e(en)n
+(vironmen)n(t.)g(Therefore,)g(users)h(slo)n(wly)822 686
+y(mo)n(v)n(e)38 b(o)n(v)n(er)f(to)i(the)h(\\safe")e(computers;)g(the)i
+(computers)f(that)g(con)n(tain)f(soft)n(w)n(are)822 786
+y(b)r(eing)24 b(used.)f(This)h(sp)r(eeds)g(up)g(the)g(pro)r(cess)e(of)i
+(bit)g(rot)f(on)g(the)h(less)g(used)f(computers.)681
+886 y Fi(Source)32 b(co)s(de.)41 b Fn(System)34 b(administration)g(do)r
+(es)g(not)h(in)n(v)n(olv)n(e)e(program)f(dev)n(elopmen)n(t,)822
+985 y(except)e(for)f(installation,)g(bug-\014xing,)g(and)h(lo)r(cal)f
+(customization.)h(The)f(c)n(hanges)g(to)822 1085 y(program)19
+b(source)h(co)r(de)h(for)g(these)g(areas)f(are)g(often)h(lost)g(o)n(v)n
+(er)f(time,)h(as)g(source)f(co)r(de)h(is)822 1184 y(often)h(considered)
+f(disk)h(space)f(o)n(v)n(erhead)f(and)h(deleted.)i(This)f(often)g
+(results)f(in)h(minor)822 1284 y(di\013erences)k(b)r(et)n(w)n(een)h(v)n
+(ersions)e(and)i(installations)f(on)g(di\013eren)n(t)h(arc)n
+(hitectures.)e(F)-7 b(or)822 1384 y(the)28 b(users,)f(these)g
+(di\013erences)h(can)f(b)r(e)h(v)n(ery)e(anno)n(ying.)681
+1647 y Fj(2)112 b(The)38 b(Domain)e(of)i(Store)681 1840
+y Fn(Store)32 b(is)h(a)f(system)h(administration)f(utilit)n(y)h(that)g
+(attempts)h(to)e(handle)h(the)h(problems)681 1940 y(listed)28
+b(in)f(the)h(previous)f(section.)805 2040 y(Store)22
+b(limits)g(its)h(scop)r(e)e(to)h(handling)g(third)g(part)n(y)f
+(applications.)h(That)g(is,)g(an)n(y)f(group)681 2139
+y(of)26 b(programs)e(and)j(data)f(\014les)g(that)h(form)f(a)g(logical)f
+(unit)i(and)g(can)f(b)r(e)g(isolated)g(from)g(the)681
+2239 y(op)r(erating)31 b(system.)i(Tw)n(o)f(main)g(sources)g(of)g
+(third)h(part)n(y)f(soft)n(w)n(are)f(are)g(do)n(wnloadable)681
+2338 y(freew)n(are)26 b(from)h(in)n(ternational)f(net)n(w)n(orks)g(and)
+i(pac)n(k)-5 b(ages)26 b(from)h(commercial)f(v)n(endors.)805
+2438 y(F)-7 b(urthermore,)26 b(Store)g(limits)i(its)e(op)r(erations)g
+(on)g(these)h(third)g(part)n(y)f(applications)g(to)681
+2538 y(the)33 b(installation,)f(op)r(eration,)f(main)n(tenance,)h(bug)g
+(\014nding)h(and)f(-\014xing)g(parts)f(of)i(their)681
+2637 y(life)28 b(cycles.)805 2737 y(That)k(is,)g(areas)e(outside)i(the)
+g(domain)f(of)h(Store)f(are:)g(program)f(dev)n(elopmen)n(t;)h(user)681
+2837 y(and)c(net)n(w)n(ork)f(administration;)h(OS)h(main)n(tenance,)f
+(con\014guration,)f(and)h(surv)n(eillance.)805 2936 y(Curren)n(tly)-7
+b(,)28 b(Store)f(is)h(also)f(limited)i(to)f(Unix)h(systems.)e(Initial)i
+(testing)f(is)g(b)r(eing)g(p)r(er-)681 3036 y(formed)f(for)g(one-user,)
+f(p)r(ersonal)h(computers;)g(sp)r(eci\014cally)g(PCs)g(running)g
+(MS-DOS.)681 3299 y Fj(3)112 b(Requiremen)m(ts)681 3492
+y Fn(The)27 b(main)h(requiremen)n(ts)e(w)n(e)i(ha)n(v)n(e)e(placed)h
+(on)h(Store)f(are:)681 3668 y Fi(No)k(OS)h(mo)s(di\014cations.)41
+b Fn(No)31 b(c)n(hanges)e(to)i(the)g(op)r(erating)f(system)h(should)f
+(b)r(e)h(neces-)822 3768 y(sary)c(in)i(order)e(to)i(run)f(Store.)g
+(Neither)h(new)g(device)f(driv)n(ers,)f(k)n(ernel)h(mo)r(di\014cations)
+822 3867 y(nor)f(p)r(ermanen)n(t)g(daemons.)681 3967
+y Fi(OS-supplied)32 b(mapping.)41 b Fn(The)28 b(op)r(erating)f(system)g
+(should)h(pro)n(vide)e(the)i(mec)n(hanism)822 4066 y(to)j(map)g(from)f
+(the)i(view)f(\(linktree\))g(to)g(the)g(rep)r(ository)f(\(store\).)g(A)
+i(space-e\016cien)n(t)822 4166 y(suc)n(h)27 b(mapping)g(for)h(most)f
+(Unix)h(systems)f(is)g(soft-links.)681 4266 y Fi(Source)32
+b(co)s(de)f(a)m(v)-5 b(ailabilit)m(y)d(.)47 b Fn(The)25
+b(source)g(co)r(de)h(for)f(the)h(system)f(should)h(b)r(e)g(a)n(v)-5
+b(ailable)822 4365 y(to)27 b(the)h(users.)681 4465 y
+Fi(P)m(ortabilit)m(y)-8 b(.)45 b Fn(The)28 b(system)f(should)h(b)r(e)g
+(able)g(to)g(run)g(on)f(an)n(y)g(system)h(that)g(follo)n(ws)f(the)822
+4565 y(POSIX.1)g(standard)f(and)i(has)f(sym)n(b)r(olic)g(links.)681
+4664 y Fi(V)-8 b(ersioned)32 b(binary)h(\014les.)41 b
+Fn(The)19 b(system)g(should)g(handle)g(the)h(existence)f(of)g(sev)n
+(eral)e(v)n(er-)822 4764 y(sions)22 b(of)g(binary)g(executables)g(a)n
+(v)-5 b(ailable)21 b(in)i(the)g(rep)r(ository)-7 b(,)21
+b(c)n(ho)r(osing)g(the)i(righ)n(t)f(one)822 4863 y(to)27
+b(b)r(ecome)h(visible)f(in)h(the)g(linktree.)p eop
+%%Page: 3 3
+3 2 bop 365 387 a Fj(4)112 b(Other)38 b(Existing)d(SCM)j(Systems)365
+617 y Fn(Most)j(existing)f(SCM)h(systems)f(do)r(es)h(not)g(meet)g(our)f
+(sp)r(eci\014ed)h(requiremen)n(ts.)e(T)-7 b(o)41 b(a)365
+716 y(large)31 b(exten)n(t)g(they)h(target)f Fe(pr)l(o)l(gr)l(amming)i
+Fn(en)n(vironmen)n(ts,)d(instead)i(of)f Fe(instal)t(lation)i
+Fn(en-)365 816 y(vironmen)n(ts.)c(Also,)h(man)n(y)f(of)h(them)g(can)g
+(only)f(manage)g(textual)h(\014les,)g(are)e(commercial)365
+915 y(pro)r(ducts)d(\(a)n(v)-5 b(ailable)24 b(only)g(for)h(a)f(subset)h
+(of)g(the)h(platforms\),)e(or)g(require)g(c)n(hanges)g(in)h(the)365
+1015 y(op)r(erating)i(system.)490 1121 y(Tw)n(o)d(other)g(existing)g
+(SCM)h(systems)g(that)g(meet)g(our)f(requiremen)n(ts)f(are)h(\\Dep)r
+(ot"[1)o(])365 1220 y(and)k(\\Lude"[3)n(].)490 1326 y(The)g(problems)f
+(describ)r(ed)h(ab)r(o)n(v)n(e)f(ha)n(v)n(e)g(b)r(een)h(targeted)f(b)n
+(y)h(sev)n(eral)e(other)i(systems.)365 1426 y(The)19
+b(initial)h(implemen)n(tation)f(of)g(Store)f(\(spring/summer)g(1991\))g
+(w)n(as)g(hea)n(vily)g(in\015uenced)365 1525 y(b)n(y)j(\\Dep)r(ot")f(.)
+g(Ho)n(w)n(ev)n(er,)f(no)h(implemen)n(tation)h(of)g(\\Dep)r(ot")f(w)n
+(as)f(a)n(v)-5 b(ailable)20 b(and)g(the)h(lo)r(cal)365
+1625 y(implemen)n(tation)34 b(turned)g(out)f(to)h(b)r(e)f(di\013eren)n
+(t)h(from)f(the)h(original)e(in)i(man)n(y)f(w)n(a)n(ys,)f(so)365
+1724 y(another)27 b(name)g(w)n(as)g(giv)n(en.)490 1830
+y(Other)32 b(systems)h(that)h(target)e(the)h(problems)g(in)g(a)g
+(similar)f(w)n(a)n(ys)g(are)g(Ericsson)f([2];)365 1930
+y(and)d(\\Lude")e(.)490 2035 y(In)31 b(addition,)f(Pleasan)n(t)f(and)h
+(Lear)g([4)o(])h(describ)r(es)f(\\T)-7 b(rac)n(k",)28
+b(whic)n(h)j(is)f(a)g(basically)g(a)365 2135 y(transp)r(ort)k(mec)n
+(hanism,)h(and)g(ho)n(w)f(it)i(has)e(b)r(een)i(put)f(in)n(to)g(use)g
+(in)g(order)f(to)h(solv)n(e)f(the)365 2235 y(same)27
+b(problems)g(as)g(Store.)490 2340 y(Man)n(y)41 b(univ)n(ersit)n(y)g(CM)
+h(systems)f(target)g(con\014guration)f(managemen)n(t)h(of)g(source)365
+2440 y(co)r(de.)30 b(Ho)n(w)n(ev)n(er,)f(for)g(a)h(system)g
+(administrator,)f(the)i(one-time)f(e\013ort)g(of)g(compiling)g(an)365
+2539 y(application)38 b(is)g(often)h(manageable)d(and)i(trivial)g
+(compared)f(to)h(the)h(con)n(tin)n(ued)f(e\013ort)365
+2639 y(that)27 b(has)f(to)g(b)r(e)h(put)g(in)n(to)f(con)n(tin)n(ued,)g
+(on-going)f(administration)g(of)i(a)f(complex)g(system)365
+2739 y(in)n(v)n(olving)c(a)h(large)f(n)n(um)n(b)r(er)h(of)g
+(applications,)f(organizations,)f(arc)n(hitectures,)h(and)h(users.)490
+2844 y(F)-7 b(urthermore,)22 b(most)i(large)e(Unix)h(op)r(erating)g
+(systems)g(ha)n(v)n(e)f(a)h(system)g(for)g(distribut-)365
+2944 y(ing)f(soft)n(w)n(are)f(pac)n(k)-5 b(ages.)20 b(But)j
+(unfortunately)-7 b(,)22 b(most)g(of)g(these)g(commercial)f(pro)r
+(ducts)h(are)365 3043 y(a)n(v)-5 b(ailable)31 b(only)h(for)g(a)f
+(single)h(OS)g(and)g(few)g(o\013er)g(more)f(than)i(insu\016cien)n(t,)f
+(elemen)n(tary)365 3143 y(supp)r(ort)37 b(for)g(the)g(system)g
+(administrators.)f(Generally)-7 b(,)36 b(they)i(only)e(o\013er)h(supp)r
+(ort)g(for)365 3243 y(loading)29 b(soft)n(w)n(are)g(in)n(to)h(the)g
+(mac)n(hine,)g(a)g(crude)g(in)n(v)n(en)n(tory)e(list,)j(and)f(p)r
+(erhaps)f(supp)r(ort)365 3342 y(for)e(unloading.)365
+3641 y Fj(5)112 b(The)38 b(Concepts)365 3870 y Fn(The)28
+b(main)g(concepts)f(of)g(Store)g(are:)365 4060 y Fi(Separabilit)m(y)-8
+b(.)45 b Fn(Ev)n(erything)26 b(related)h(to)h(a)f(single)g
+(application,)h(including)g(all)f(v)n(ersions)506 4160
+y(and)j(supp)r(ort)f(for)g(v)-5 b(arious)28 b(hardw)n(are)g(platforms,)
+h(are)f(isolated)h(at)g(one)g(lo)r(cation)g(in)506 4260
+y(the)i(computer)f(\014le)h(system.)f(This)g(\\master)g(lo)r(cation")f
+(of)h(the)h(application)f(can)g(b)r(e)506 4359 y(institution-wide;)f
+(it)f(can)f(also)f(span)h(m)n(ultiple)i(co)r(op)r(erating)d
+(institutions.)365 4465 y Fi(Consistency)-8 b(.)42 b
+Fn(An)21 b(installation)f(of)h(an)g(application)f(should)g(b)r(e)i
+(consisten)n(t)e(throughout)506 4565 y(the)28 b(institution.)h(If)f
+(incorrect)f(or)f(buggy)-7 b(,)27 b(the)h(application)f(should)h(b)r(e)
+g(consisten)n(tly)506 4664 y(incorrect)f(ev)n(erywhere.)f(Only)i(then)g
+(is)g(there)g(a)f(fair)h(c)n(hance)f(of)g(the)i(problem)e(b)r(eing)506
+4764 y(corrected;)i(else)g(users)f(mo)n(v)n(e)h(o)n(v)n(er)e(to)j
+(computers)e(that)i(w)n(ork,)e(allo)n(wing)g(the)i(faults)506
+4863 y(to)e(con)n(tin)n(ue)f(and)g(to)h(accum)n(ulate.)p
+eop
+%%Page: 4 4
+4 3 bop 681 387 a Fi(Automation.)41 b Fn(An)n(y)24 b(kind)h(of)f(man)n
+(ually)f(p)r(erformed)h(routine)g(w)n(ork)f(will)h(ev)n(en)n(tually)f
+(b)r(e)822 487 y(skipp)r(ed)30 b(or)e(p)r(erformed)h(incorrectly)-7
+b(.)28 b(Th)n(us,)h(suc)n(h)h(w)n(ork)e(should)h(b)r(e)g(automated)g
+(as)822 587 y(m)n(uc)n(h)e(as)g(p)r(ossible.)681 693
+y Fi(Do)s(cumen)m(tation.)42 b Fn(Lo)r(cally)32 b(written)i(do)r(cumen)
+n(tation)f(should)h(b)r(e)f(as)g(scarce)f(as)h(p)r(os-)822
+793 y(sible,)d(and)f(preferably)g(b)r(e)h(limited)g(to:)g(a\))f
+(\\gluing")f(together)h(do)r(cumen)n(tation)h(ac-)822
+893 y(compan)n(ying)g(the)h(applications;)f(b\))i(do)r(cumen)n(ting)f
+(lo)r(cal)f(con)n(v)n(en)n(tions)g(and)h(devia-)822 992
+y(tions;)i(and)g(c\))h(\014lling)f(in)g(fatal)h(gaps)e(in)h(accompan)n
+(ying)f(do)r(cumen)n(tation.)h(Lo)r(cally)822 1092 y(written)e(do)r
+(cumen)n(tation)f(tends)h(to)f(get)h(outdated)f(quic)n(kly)-7
+b(,)30 b(so)g(the)h(lesser)e(there)i(is)822 1192 y(to)c(main)n(tain,)h
+(and)f(the)h(more)f(automated)g(is)g(main)n(tenance,)h(the)g(b)r
+(etter.)681 1298 y Fi(Standardization.)44 b Fn(The)25
+b(more)e(need)i(a)f(system)h(administration)e(to)r(ol)i(has)f(for)g(sp)
+r(eci\014c)822 1398 y(and)31 b(non-standard)e(supp)r(ort,)h(the)i(more)
+e(di\016cult)h(and)g(troublesome)e(it)j(is)e(to)h(p)r(ort)822
+1498 y(it)k(to)f(new)g(arc)n(hitectures)f(and)h(organizations.)e(Th)n
+(us,)i(when)h(implemen)n(ting)g(solu-)822 1597 y(tions,)f
+(standardization,)f(p)r(ortabilit)n(y)-7 b(,)33 b(and)h(robustness)f
+(is)h(more)g(imp)r(ortan)n(t)g(than)822 1697 y(simplicit)n(y)28
+b(and)f(elegance.)681 1804 y Fi(Strategy-less)32 b(mec)m(hanisms.)41
+b Fn(In)36 b(constructing)e(Store,)h(the)h(mec)n(hanism)e(has)h(b)r
+(een)822 1903 y(attempted)c(isolated)g(from)f(the)h(strategies)f(that)h
+(it)g(implemen)n(ts.)g(Th)n(us,)g(the)g(Store)822 2003
+y(transp)r(ort)c(mec)n(hanisms)h(can)g(b)r(e)h(emplo)n(y)n(ed)e(for)h
+(v)-5 b(arious)27 b(securit)n(y)h(sc)n(hemes)g(and)g(to)822
+2103 y(mimic)g(v)-5 b(arious)26 b(in)n(tra-)h(and)g(in)n
+(ter-organization)e(relations.)681 2408 y Fj(6)112 b(T)-9
+b(ec)m(hnical)36 b(Description)681 2643 y Fn(Store)30
+b(separates)g(applications)g(from)h(eac)n(h)g(other,)g(in)g(a)g(t)n(w)n
+(o-lev)n(el)f(system:)h(at)g(the)h(top)681 2742 y(there)37
+b(are)f(one)g(or)h(more)f(stores,)g(or)g(\\store)f(serv)n(ers".)g(A)n
+(t)i(the)h(lo)n(w)n(er)d(lev)n(el)i(there)g(are)681 2842
+y(one)32 b(or)g(more)g(applications.)g(Multiple)i(stores)e(enable)g
+(distributing)h(the)g(\014les)g(in)g(Store)681 2942 y(among)f(sev)n
+(eral)g(mac)n(hines)g(and)i(organizations,)d(e.g.)24
+b(duplication)33 b(to)h(coun)n(ter)e(slo)n(w)h(or)681
+3041 y(temp)r(orarily)26 b(brok)n(en)h(net)n(w)n(orks.)805
+3148 y(The)39 b(directory)e(tree)h(sho)n(wn)g(in)h(\014gure)f(1)g
+(indicates)g(the)h(directory)e(structure)h(for)681 3248
+y(a)31 b(Store)h(system)g(con)n(taining)f(t)n(w)n(o)g(serv)n(ers)f(and)
+i(nine)g(applications.)g(The)g(no)r(de)g(named)681 3347
+y(\\/store/")26 b(is)k(the)f(top)h(directory)-7 b(.)28
+b(Th)n(us,)h(path)h(names)f(for)g(the)g(lo)r(cations)g(of)g(the)h
+(appli-)681 3447 y(cations)d(are)f Fh(/store/store/stor)o(li)o(nd/)o
+(zi)o(p)p Fn(,)c Fh(/store/store/kh)o(ym/)o(te)o(x)p
+Fn(,)g(etc.)805 3554 y(The)31 b(store)f(names)g(\(\\storlind")g(and)h
+(\\kh)n(ym"\))e(can)i(b)r(e)g(iden)n(tical)g(to)f(the)h(names)g(of)681
+3654 y(the)e(host)g(on)f(whic)n(h)h(they)g(are)f(lo)r(cated,)g(but)i
+(this)f(is)g(not)g(a)f(requiremen)n(t.)g(Ho)n(w)n(ev)n(er,)f(w)n(e)681
+3753 y(ha)n(v)n(e)36 b(found)h(this)h(naming)f(sc)n(heme)f(to)h(b)r(e)h
+(fairly)e(practical.)h(One)f(mac)n(hine)h(can)g(host)681
+3853 y(m)n(ultiple)28 b(stores.)805 3960 y(No)n(w)40
+b(w)n(e)h(shift)g(the)g(fo)r(cus)g(to)f(a)g(single)g(application.)h
+(The)f(structure)g(of)h(a)f(small)681 4059 y(application)21
+b(is)g(depicted)h(in)g(\014gure)f(2.)g(F)-7 b(or)21 b(suc)n(h)h(a)f
+(pac)n(k)-5 b(age)20 b(there)h(are)g(one)g(or)g(more)g(\\v)n(er-)681
+4159 y(")h(directories,)g(zero)g(or)g(more)g(\\src-")f(directories,)h
+(and)g(a)h(\014le)g(called)g(\\registration".)d(The)681
+4258 y(ro)r(ot)h(of)i(the)g(tree)f(sho)n(wn)f(in)i(\014gure)f(2)g(is)g
+Fh(/store/store/khym)o(/s)o(ha)o(r)p Fn(,)17 b(if)23
+b(the)f(application)681 4358 y(is)27 b(\\shar",)f(and)h(it)h(is)g
+(stored)f(on)g(the)h(store)f(\\kh)n(ym".)805 4465 y(The)f(\\src-")e
+(directories)g(con)n(tain)h(the)i(source)d(co)r(de)i(for)f(the)h
+(application.)f(The)h(origi-)681 4565 y(nal,)19 b(o\016cial)g(source)f
+(co)r(de)i(is)f(stored)g(in)h(directories)e(named)h(\\src-)p
+Fe(version)p Fn(")g(where)g Fe(version)681 4664 y Fn(refers)30
+b(to)h(the)h(release)e(n)n(um)n(b)r(er.)h(In)g(directories)f(named)h
+(\\src-)p Fe(version)p Fn(-)p Fe(ar)l(chite)l(ctur)l(e)p
+Fn(",)f(a)681 4764 y(link-tree)c(\(of)h(symlinks\))g(is)f(used)h(to)g
+(con)n(tain)f(mo)r(di\014cations)g(sp)r(eci\014c)h(to)g(that)g(arc)n
+(hitec-)681 4863 y(ture;)e(this)g(linktree)g(is)g(said)f(to)h(b)r(e)g
+(a)g(\\shado)n(w")e(of)i(the)g(original)e(linktree.)i(The)g(linktrees)p
+eop
+%%Page: 5 5
+5 4 bop 673 1331 a @beginspecial 49 @llx 439 @lly 389
+@urx 593 @ury 2720 @rwi @setspecial
+%%BeginDocument: server.eps
+
+/arrowhead {
+0 begin
+transform originalCTM itransform
+/taily exch def
+/tailx exch def
+transform originalCTM itransform
+/tipy exch def
+/tipx exch def
+/dy tipy taily sub def
+/dx tipx tailx sub def
+/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
+gsave
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+patternNone not {
+originalCTM setmatrix
+/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
+arrowWidth div def
+/padtail brushWidth 2 div def
+tipx tipy translate
+angle rotate
+padtip 0 translate
+arrowHeight padtip add padtail add arrowHeight div dup scale
+arrowheadpath
+ifill
+} if
+brushNone not {
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+arrowheadpath
+istroke
+} if
+grestore
+end
+} dup 0 9 dict put def
+
+/arrowheadpath {
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+} def
+
+/leftarrow {
+0 begin
+y exch get /taily exch def
+x exch get /tailx exch def
+y exch get /tipy exch def
+x exch get /tipx exch def
+brushLeftArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+/rightarrow {
+0 begin
+y exch get /tipy exch def
+x exch get /tipx exch def
+y exch get /taily exch def
+x exch get /tailx exch def
+brushRightArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+
+/arrowHeight 11 def
+/arrowWidth 5 def
+
+/IdrawDict 51 dict def
+IdrawDict begin
+
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+/Encoding ISOLatin1Encoding def
+currentdict end definefont
+} def
+
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/Helvetica reencodeISO def
+
+/none null def
+/numGraphicParameters 17 def
+/stringLimit 65535 def
+
+/Begin {
+save
+numGraphicParameters dict begin
+} def
+
+/End {
+end
+restore
+} def
+
+/SetB {
+dup type /nulltype eq {
+pop
+false /brushRightArrow idef
+false /brushLeftArrow idef
+true /brushNone idef
+} {
+/brushDashOffset idef
+/brushDashArray idef
+0 ne /brushRightArrow idef
+0 ne /brushLeftArrow idef
+/brushWidth idef
+false /brushNone idef
+} ifelse
+} def
+
+/SetCFg {
+/fgblue idef
+/fggreen idef
+/fgred idef
+} def
+
+/SetCBg {
+/bgblue idef
+/bggreen idef
+/bgred idef
+} def
+
+/SetF {
+/printSize idef
+/printFont idef
+} def
+
+/SetP {
+dup type /nulltype eq {
+pop true /patternNone idef
+} {
+dup -1 eq {
+/patternGrayLevel idef
+/patternString idef
+} {
+/patternGrayLevel idef
+} ifelse
+false /patternNone idef
+} ifelse
+} def
+
+/BSpl {
+0 begin
+storexyn
+newpath
+n 1 gt {
+0 0 0 0 0 0 1 1 true subspline
+n 2 gt {
+0 0 0 0 1 1 2 2 false subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
+} if
+n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Circ {
+newpath
+0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/CBSpl {
+0 begin
+dup 2 gt {
+storexyn
+newpath
+n 1 sub dup 0 0 1 1 2 2 true subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
+n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
+patternNone not { ifill } if
+brushNone not { istroke } if
+} {
+Poly
+} ifelse
+end
+} dup 0 4 dict put def
+
+/Elli {
+0 begin
+newpath
+4 2 roll
+translate
+scale
+0 0 1 0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 1 dict put def
+
+/Line {
+0 begin
+2 storexyn
+newpath
+x 0 get y 0 get moveto
+x 1 get y 1 get lineto
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+0 0 1 1 rightarrow
+end
+} dup 0 4 dict put def
+
+/MLine {
+0 begin
+storexyn
+newpath
+n 1 gt {
+x 0 get y 0 get moveto
+1 1 n 1 sub {
+/i exch def
+x i get y i get lineto
+} for
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Poly {
+3 1 roll
+newpath
+moveto
+-1 add
+{ lineto } repeat
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/Rect {
+0 begin
+/t exch def
+/r exch def
+/b exch def
+/l exch def
+newpath
+l b moveto
+l t lineto
+r t lineto
+r b lineto
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 4 dict put def
+
+/Text {
+ishow
+} def
+
+/idef {
+dup where { pop pop pop } { exch def } ifelse
+} def
+
+/ifill {
+0 begin
+gsave
+patternGrayLevel -1 ne {
+fgred bgred fgred sub patternGrayLevel mul add
+fggreen bggreen fggreen sub patternGrayLevel mul add
+fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
+eofill
+} {
+eoclip
+originalCTM setmatrix
+pathbbox /t exch def /r exch def /b exch def /l exch def
+/w r l sub ceiling cvi def
+/h t b sub ceiling cvi def
+/imageByteWidth w 8 div ceiling cvi def
+/imageHeight h def
+bgred bggreen bgblue setrgbcolor
+eofill
+fgred fggreen fgblue setrgbcolor
+w 0 gt h 0 gt and {
+l w add b translate w neg h scale
+w h true [w 0 0 h neg 0 h] { patternproc } imagemask
+} if
+} ifelse
+grestore
+end
+} dup 0 8 dict put def
+
+/istroke {
+gsave
+brushDashOffset -1 eq {
+[] 0 setdash
+1 setgray
+} {
+brushDashArray brushDashOffset setdash
+fgred fggreen fgblue setrgbcolor
+} ifelse
+brushWidth setlinewidth
+originalCTM setmatrix
+stroke
+grestore
+} def
+
+/ishow {
+0 begin
+gsave
+fgred fggreen fgblue setrgbcolor
+/fontDict printFont printSize scalefont dup setfont def
+/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
+transform exch pop def
+/vertoffset 1 printSize sub descender sub def {
+0 vertoffset moveto show
+/vertoffset vertoffset printSize sub def
+} forall
+grestore
+end
+} dup 0 3 dict put def
+/patternproc {
+0 begin
+/patternByteLength patternString length def
+/patternHeight patternByteLength 8 mul sqrt cvi def
+/patternWidth patternHeight def
+/patternByteWidth patternWidth 8 idiv def
+/imageByteMaxLength imageByteWidth imageHeight mul
+stringLimit patternByteWidth sub min def
+/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
+patternHeight mul patternHeight max def
+/imageHeight imageHeight imageMaxHeight sub store
+/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
+0 1 imageMaxHeight 1 sub {
+/y exch def
+/patternRow y patternByteWidth mul patternByteLength mod def
+/patternRowString patternString patternRow patternByteWidth getinterval def
+/imageRow y imageByteWidth mul def
+0 patternByteWidth imageByteWidth 1 sub {
+/x exch def
+imageString imageRow x add patternRowString putinterval
+} for
+} for
+imageString
+end
+} dup 0 12 dict put def
+
+/min {
+dup 3 2 roll dup 4 3 roll lt { exch } if pop
+} def
+
+/max {
+dup 3 2 roll dup 4 3 roll gt { exch } if pop
+} def
+
+/midpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 x1 add 2 div
+y0 y1 add 2 div
+end
+} dup 0 4 dict put def
+
+/thirdpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 2 mul x1 add 3 div
+y0 2 mul y1 add 3 div
+end
+} dup 0 4 dict put def
+
+/subspline {
+0 begin
+/movetoNeeded exch def
+y exch get /y3 exch def
+x exch get /x3 exch def
+y exch get /y2 exch def
+x exch get /x2 exch def
+y exch get /y1 exch def
+x exch get /x1 exch def
+y exch get /y0 exch def
+x exch get /x0 exch def
+x1 y1 x2 y2 thirdpoint
+/p1y exch def
+/p1x exch def
+x2 y2 x1 y1 thirdpoint
+/p2y exch def
+/p2x exch def
+x1 y1 x0 y0 thirdpoint
+p1x p1y midpoint
+/p0y exch def
+/p0x exch def
+x2 y2 x3 y3 thirdpoint
+p2x p2y midpoint
+/p3y exch def
+/p3x exch def
+movetoNeeded { p0x p0y moveto } if
+p1x p1y p2x p2y p3x p3y curveto
+end
+} dup 0 17 dict put def
+
+/storexyn {
+/n exch def
+/y n array def
+/x n array def
+n 1 sub -1 0 {
+/i exch def
+y i 3 2 roll put
+x i 3 2 roll put
+} for
+} def
+
+/SSten {
+fgred fggreen fgblue setrgbcolor
+dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+/FSten {
+dup 3 -1 roll dup 4 1 roll exch
+newpath
+0 0 moveto
+dup 0 exch lineto
+exch dup 3 1 roll exch lineto
+0 lineto
+closepath
+bgred bggreen bgblue setrgbcolor
+eofill
+SSten
+} def
+
+/Rast {
+exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+
+%I Idraw 10 Grid 8 8 
+
+
+Begin
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 0.754552 0 0 0.754552 0 0 ] concat
+/originalCTM matrix currentmatrix def
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 336 169 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 49.9999 136 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 129 138 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 44.9999 264 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 289 215 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 72.9999 206 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 183 244 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 132 301 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 278 265 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 359 255 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 369 210 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 197 231 ] concat
+%I
+229 460 251 478 Line
+%I 1
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -10.0001 225 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -3.00012 174 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 225 773 ] concat
+%I
+[
+(/store/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 280 717 ] concat
+%I
+[
+(store/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 380 736 ] concat
+%I
+[
+(zoo/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 381 687 ] concat
+%I
+[
+(storlind/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 461 725 ] concat
+%I
+[
+(zip/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 450 681 ] concat
+%I
+[
+(compress/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 430 641 ] concat
+%I
+[
+(emacs/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 143 736 ] concat
+%I
+[
+(gcc/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 231 609 ] concat
+%I
+[
+(tex/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 147 607 ] concat
+%I
+[
+(idraw/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 97.9999 645 ] concat
+%I
+[
+(xrn/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 77.9999 696 ] concat
+%I
+[
+(gnuplot/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 169 679 ] concat
+%I
+[
+(khym/)
+] Text
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.633041 -0 -0 0.633041 150.031 242.455 ] concat
+%I
+391 720 385 745 Line
+%I 2
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 293.75 623 ] concat
+%I
+557 231 617 224 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 293.75 623 ] concat
+%I
+130 336 301 254 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 293.75 623 ] concat
+%I
+496 174 547 106 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 155 623 ] concat
+%I
+244 209 431 329 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 155 656 ] concat
+%I
+435 391 535 282 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 44 590 ] concat
+%I
+635 271 763 123 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 44 590 ] concat
+%I
+526 394 472 494 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 44 590 ] concat
+%I
+443 359 357 395 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 44 590 ] concat
+%I
+446 295 375 231 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 44 590 ] concat
+%I
+545 260 479 116 Line
+%I 4
+End
+
+End %I eop
+
+showpage
+
+
+end
+%%EndDocument
+ @endspecial 1324 1514 a Fi(Fig.)16 b(1.)27 b Fn(Structure)g(of)h
+(Stores)606 2887 y @beginspecial 30 @llx 417 @lly 390
+@urx 605 @ury 2880 @rwi @setspecial
+%%BeginDocument: applic.eps
+
+/arrowhead {
+0 begin
+transform originalCTM itransform
+/taily exch def
+/tailx exch def
+transform originalCTM itransform
+/tipy exch def
+/tipx exch def
+/dy tipy taily sub def
+/dx tipx tailx sub def
+/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
+gsave
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+patternNone not {
+originalCTM setmatrix
+/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
+arrowWidth div def
+/padtail brushWidth 2 div def
+tipx tipy translate
+angle rotate
+padtip 0 translate
+arrowHeight padtip add padtail add arrowHeight div dup scale
+arrowheadpath
+ifill
+} if
+brushNone not {
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+arrowheadpath
+istroke
+} if
+grestore
+end
+} dup 0 9 dict put def
+
+/arrowheadpath {
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+} def
+
+/leftarrow {
+0 begin
+y exch get /taily exch def
+x exch get /tailx exch def
+y exch get /tipy exch def
+x exch get /tipx exch def
+brushLeftArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+/rightarrow {
+0 begin
+y exch get /tipy exch def
+x exch get /tipx exch def
+y exch get /taily exch def
+x exch get /tailx exch def
+brushRightArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+
+/arrowHeight 11 def
+/arrowWidth 5 def
+
+/IdrawDict 51 dict def
+IdrawDict begin
+
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+/Encoding ISOLatin1Encoding def
+currentdict end definefont
+} def
+
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/Helvetica reencodeISO def
+
+/none null def
+/numGraphicParameters 17 def
+/stringLimit 65535 def
+
+/Begin {
+save
+numGraphicParameters dict begin
+} def
+
+/End {
+end
+restore
+} def
+
+/SetB {
+dup type /nulltype eq {
+pop
+false /brushRightArrow idef
+false /brushLeftArrow idef
+true /brushNone idef
+} {
+/brushDashOffset idef
+/brushDashArray idef
+0 ne /brushRightArrow idef
+0 ne /brushLeftArrow idef
+/brushWidth idef
+false /brushNone idef
+} ifelse
+} def
+
+/SetCFg {
+/fgblue idef
+/fggreen idef
+/fgred idef
+} def
+
+/SetCBg {
+/bgblue idef
+/bggreen idef
+/bgred idef
+} def
+
+/SetF {
+/printSize idef
+/printFont idef
+} def
+
+/SetP {
+dup type /nulltype eq {
+pop true /patternNone idef
+} {
+dup -1 eq {
+/patternGrayLevel idef
+/patternString idef
+} {
+/patternGrayLevel idef
+} ifelse
+false /patternNone idef
+} ifelse
+} def
+
+/BSpl {
+0 begin
+storexyn
+newpath
+n 1 gt {
+0 0 0 0 0 0 1 1 true subspline
+n 2 gt {
+0 0 0 0 1 1 2 2 false subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
+} if
+n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Circ {
+newpath
+0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/CBSpl {
+0 begin
+dup 2 gt {
+storexyn
+newpath
+n 1 sub dup 0 0 1 1 2 2 true subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
+n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
+patternNone not { ifill } if
+brushNone not { istroke } if
+} {
+Poly
+} ifelse
+end
+} dup 0 4 dict put def
+
+/Elli {
+0 begin
+newpath
+4 2 roll
+translate
+scale
+0 0 1 0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 1 dict put def
+
+/Line {
+0 begin
+2 storexyn
+newpath
+x 0 get y 0 get moveto
+x 1 get y 1 get lineto
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+0 0 1 1 rightarrow
+end
+} dup 0 4 dict put def
+
+/MLine {
+0 begin
+storexyn
+newpath
+n 1 gt {
+x 0 get y 0 get moveto
+1 1 n 1 sub {
+/i exch def
+x i get y i get lineto
+} for
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Poly {
+3 1 roll
+newpath
+moveto
+-1 add
+{ lineto } repeat
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/Rect {
+0 begin
+/t exch def
+/r exch def
+/b exch def
+/l exch def
+newpath
+l b moveto
+l t lineto
+r t lineto
+r b lineto
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 4 dict put def
+
+/Text {
+ishow
+} def
+
+/idef {
+dup where { pop pop pop } { exch def } ifelse
+} def
+
+/ifill {
+0 begin
+gsave
+patternGrayLevel -1 ne {
+fgred bgred fgred sub patternGrayLevel mul add
+fggreen bggreen fggreen sub patternGrayLevel mul add
+fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
+eofill
+} {
+eoclip
+originalCTM setmatrix
+pathbbox /t exch def /r exch def /b exch def /l exch def
+/w r l sub ceiling cvi def
+/h t b sub ceiling cvi def
+/imageByteWidth w 8 div ceiling cvi def
+/imageHeight h def
+bgred bggreen bgblue setrgbcolor
+eofill
+fgred fggreen fgblue setrgbcolor
+w 0 gt h 0 gt and {
+l w add b translate w neg h scale
+w h true [w 0 0 h neg 0 h] { patternproc } imagemask
+} if
+} ifelse
+grestore
+end
+} dup 0 8 dict put def
+
+/istroke {
+gsave
+brushDashOffset -1 eq {
+[] 0 setdash
+1 setgray
+} {
+brushDashArray brushDashOffset setdash
+fgred fggreen fgblue setrgbcolor
+} ifelse
+brushWidth setlinewidth
+originalCTM setmatrix
+stroke
+grestore
+} def
+
+/ishow {
+0 begin
+gsave
+fgred fggreen fgblue setrgbcolor
+/fontDict printFont printSize scalefont dup setfont def
+/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
+transform exch pop def
+/vertoffset 1 printSize sub descender sub def {
+0 vertoffset moveto show
+/vertoffset vertoffset printSize sub def
+} forall
+grestore
+end
+} dup 0 3 dict put def
+/patternproc {
+0 begin
+/patternByteLength patternString length def
+/patternHeight patternByteLength 8 mul sqrt cvi def
+/patternWidth patternHeight def
+/patternByteWidth patternWidth 8 idiv def
+/imageByteMaxLength imageByteWidth imageHeight mul
+stringLimit patternByteWidth sub min def
+/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
+patternHeight mul patternHeight max def
+/imageHeight imageHeight imageMaxHeight sub store
+/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
+0 1 imageMaxHeight 1 sub {
+/y exch def
+/patternRow y patternByteWidth mul patternByteLength mod def
+/patternRowString patternString patternRow patternByteWidth getinterval def
+/imageRow y imageByteWidth mul def
+0 patternByteWidth imageByteWidth 1 sub {
+/x exch def
+imageString imageRow x add patternRowString putinterval
+} for
+} for
+imageString
+end
+} dup 0 12 dict put def
+
+/min {
+dup 3 2 roll dup 4 3 roll lt { exch } if pop
+} def
+
+/max {
+dup 3 2 roll dup 4 3 roll gt { exch } if pop
+} def
+
+/midpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 x1 add 2 div
+y0 y1 add 2 div
+end
+} dup 0 4 dict put def
+
+/thirdpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 2 mul x1 add 3 div
+y0 2 mul y1 add 3 div
+end
+} dup 0 4 dict put def
+
+/subspline {
+0 begin
+/movetoNeeded exch def
+y exch get /y3 exch def
+x exch get /x3 exch def
+y exch get /y2 exch def
+x exch get /x2 exch def
+y exch get /y1 exch def
+x exch get /x1 exch def
+y exch get /y0 exch def
+x exch get /x0 exch def
+x1 y1 x2 y2 thirdpoint
+/p1y exch def
+/p1x exch def
+x2 y2 x1 y1 thirdpoint
+/p2y exch def
+/p2x exch def
+x1 y1 x0 y0 thirdpoint
+p1x p1y midpoint
+/p0y exch def
+/p0x exch def
+x2 y2 x3 y3 thirdpoint
+p2x p2y midpoint
+/p3y exch def
+/p3x exch def
+movetoNeeded { p0x p0y moveto } if
+p1x p1y p2x p2y p3x p3y curveto
+end
+} dup 0 17 dict put def
+
+/storexyn {
+/n exch def
+/y n array def
+/x n array def
+n 1 sub -1 0 {
+/i exch def
+y i 3 2 roll put
+x i 3 2 roll put
+} for
+} def
+
+/SSten {
+fgred fggreen fgblue setrgbcolor
+dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+/FSten {
+dup 3 -1 roll dup 4 1 roll exch
+newpath
+0 0 moveto
+dup 0 exch lineto
+exch dup 3 1 roll exch lineto
+0 lineto
+closepath
+bgred bggreen bgblue setrgbcolor
+eofill
+SSten
+} def
+
+/Rast {
+exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+
+%I Idraw 10 Grid 8 8 
+
+
+Begin
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 0.754552 0 0 0.754552 0 0 ] concat
+/originalCTM matrix currentmatrix def
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 170 231 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 75 180 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -11 154 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 47 109 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 256 185 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 150 109 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 238 108 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 169 174 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 336 657 ] concat
+%I
+[
+(registration)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 250 646 ] concat
+%I
+[
+(src-1-sgi/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 249 581 ] concat
+%I
+[
+(doc/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 90 624 ] concat
+%I
+[
+(doc/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 136 581 ] concat
+%I
+[
+(include/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 328 580 ] concat
+%I
+[
+(include/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 168 651 ] concat
+%I
+[
+(src-1/)
+] Text
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 97 252 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 319 226 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 366 173 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 300 304 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 370 271 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 211 312 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -34 316 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 33.9999 288 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 314 784 ] concat
+%I
+[
+(bin/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 403 775 ] concat
+%I
+[
+(doc/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 468 742 ] concat
+%I
+[
+(unzip/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 419 698 ] concat
+%I
+[
+(man/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 463 644 ] concat
+%I
+[
+(man1/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 193 723 ] concat
+%I
+[
+(khym/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 131 760 ] concat
+%I
+[
+(store/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 60 786 ] concat
+%I
+[
+(/store/)
+] Text
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 250 266 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 346 737 ] concat
+%I
+[
+(ver-1/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 269 702 ] concat
+%I
+[
+(shar/)
+] Text
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -151 392 ] concat
+%I
+307 247 283 232 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -151 392 ] concat
+%I
+544 364 535 352 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 182.75 590 ] concat
+%I
+218 481 279 460 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 182.75 590 ] concat
+%I
+289 387 133 252 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 182.75 590 ] concat
+%I
+452 139 597 -8 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 182.75 623 ] concat
+%I
+394 228 390 136 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 182.75 623 ] concat
+%I
+616 390 512 324 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 182.75 623 ] concat
+%I
+510 262 681 172 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 182.75 623 ] concat
+%I
+617 560 674 500 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 182.75 623 ] concat
+%I
+802 386 909 328 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 266 672.5 ] concat
+%I
+776 310 690 352 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 321.5 623 ] concat
+%I
+490 216 562 123 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 99.5 524 ] concat
+%I
+693 397 661 272 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 99.5 524 ] concat
+%I
+322 420 261 270 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 99.5 656 ] concat
+%I
+277 345 353 300 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 99.5 656 ] concat
+%I
+22 468 79 433 Line
+%I 4
+End
+
+End %I eop
+
+showpage
+
+
+end
+%%EndDocument
+ @endspecial 1208 3070 a Fi(Fig.)15 b(2.)27 b Fn(Structure)h(of)f
+(Applications)365 3362 y(can)h(b)r(e)h(con\014gured)e(in)i(a)f(w)n(a)n
+(y)f(suitable)h(for)g(the)h(application.)f(F)-7 b(or)27
+b(instance,)i(a)f(linktree)365 3462 y(can)g(b)r(e)g(a)f(shado)n(w)f(of)
+i(another)e(linktree)i(shado)n(w.)490 3564 y(In)f(\014gure)f(3,)h(a)f
+(common)h(situation)f(is)h(sho)n(wn.)f(One)h(directory)f(con)n(tains)g
+(the)h(o\016cial)365 3663 y(source;)34 b(another)h(con)n(tains)f(lo)r
+(cal)h(\\hac)n(ks")e(and)i(con\014gurations,)f(whic)n(h)h(shado)n(ws)f
+(the)365 3763 y(o\016cial)26 b(source;)f(and)i(sev)n(eral)e
+(directories,)g(eac)n(h)g(con)n(taining)h(arc)n(hitecture-sp)r
+(eci\014c)f(con-)365 3863 y(\014guration)33 b(c)n(hanges,)f(whic)n(h)h
+(shado)n(ws)f(the)i(lo)r(cal)f(\\shado)n(w".)e(The)j(arro)n(ws)d(in)j
+(\014gure)f(3)365 3962 y(refers)27 b(to)g(linktree-inheritance,)g(i.e.)
+e(shado)n(wing.)490 4064 y(Eac)n(h)37 b(\\v)n(er-")e(directory)i(con)n
+(tains)g(p)r(ossibly)g(m)n(ultiple)i(hardw)n(are-v)-5
+b(arian)n(ts)34 b(of)k(one)365 4164 y(v)n(ersion)24 b(of)i(the)g
+(application.)f(Belo)n(w)g(the)h(\\v)n(er-")d(directory)-7
+b(,)25 b(the)h(structure)f(of)h(sub)r(direc-)365 4263
+y(tories)e(is)h(similar)f(to)h(the)g(structures)f(usually)h(found)g(in)
+g Fh(/usr/local)c Fn(and)k Fh(/usr)p Fn(.)e(Figure)365
+4363 y(4)k(sho)n(ws)g(in)h(detail)f(the)h(structure)f(under)h(a)f(\\v)n
+(er-")e(tree.)490 4465 y(In)39 b(order)f(to)h(sim)n(ultaneously)f
+(handle)h(supp)r(ort)g(for)g(m)n(ultiple)h(arc)n(hitectures,)e(one)365
+4565 y(need)29 b(a)g(metho)r(d)g(for)g(distinguishing)f(b)r(et)n(w)n
+(een)h(hardw)n(are)e(v)-5 b(arian)n(ts)28 b(of)h(a)f(\014le)i(in)f(the)
+g(\014le)365 4664 y(system)f(name)f(space.)g(This)g(is)g(done)g(b)n(y)h
+(adding)f(an)g(iden)n(ti\014er)g(su\016x)g(to)h(the)g(\014lenames.)365
+4764 y(F)-7 b(or)31 b(instance,)h(the)g(binary)f(\014le)h
+Fh(shar)f Fn(b)r(ecomes)g Fh(shar@sun4os4)c Fn(and)32
+b Fh(shar@hp700ux9)365 4863 y Fn(for)26 b(SunOS)g(4)f(on)h(Sparc)f(and)
+h(HP/UX)g(9.xx)f(on)h(HP-P)-7 b(A,)25 b(resp)r(ectiv)n(ely)-7
+b(.)26 b(In)g(Store)f(this)h(is)p eop
+%%Page: 6 6
+6 5 bop 948 1178 a @beginspecial 60 @llx 415 @lly 412
+@urx 546 @ury 2816 @rwi @setspecial
+%%BeginDocument: sources.eps
+
+/arrowhead {
+0 begin
+transform originalCTM itransform
+/taily exch def
+/tailx exch def
+transform originalCTM itransform
+/tipy exch def
+/tipx exch def
+/dy tipy taily sub def
+/dx tipx tailx sub def
+/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
+gsave
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+patternNone not {
+originalCTM setmatrix
+/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
+arrowWidth div def
+/padtail brushWidth 2 div def
+tipx tipy translate
+angle rotate
+padtip 0 translate
+arrowHeight padtip add padtail add arrowHeight div dup scale
+arrowheadpath
+ifill
+} if
+brushNone not {
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+arrowheadpath
+istroke
+} if
+grestore
+end
+} dup 0 9 dict put def
+
+/arrowheadpath {
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+} def
+
+/leftarrow {
+0 begin
+y exch get /taily exch def
+x exch get /tailx exch def
+y exch get /tipy exch def
+x exch get /tipx exch def
+brushLeftArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+/rightarrow {
+0 begin
+y exch get /tipy exch def
+x exch get /tipx exch def
+y exch get /taily exch def
+x exch get /tailx exch def
+brushRightArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+
+/arrowHeight 11 def
+/arrowWidth 5 def
+
+/IdrawDict 51 dict def
+IdrawDict begin
+
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+/Encoding ISOLatin1Encoding def
+currentdict end definefont
+} def
+
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/Helvetica reencodeISO def
+
+/none null def
+/numGraphicParameters 17 def
+/stringLimit 65535 def
+
+/Begin {
+save
+numGraphicParameters dict begin
+} def
+
+/End {
+end
+restore
+} def
+
+/SetB {
+dup type /nulltype eq {
+pop
+false /brushRightArrow idef
+false /brushLeftArrow idef
+true /brushNone idef
+} {
+/brushDashOffset idef
+/brushDashArray idef
+0 ne /brushRightArrow idef
+0 ne /brushLeftArrow idef
+/brushWidth idef
+false /brushNone idef
+} ifelse
+} def
+
+/SetCFg {
+/fgblue idef
+/fggreen idef
+/fgred idef
+} def
+
+/SetCBg {
+/bgblue idef
+/bggreen idef
+/bgred idef
+} def
+
+/SetF {
+/printSize idef
+/printFont idef
+} def
+
+/SetP {
+dup type /nulltype eq {
+pop true /patternNone idef
+} {
+dup -1 eq {
+/patternGrayLevel idef
+/patternString idef
+} {
+/patternGrayLevel idef
+} ifelse
+false /patternNone idef
+} ifelse
+} def
+
+/BSpl {
+0 begin
+storexyn
+newpath
+n 1 gt {
+0 0 0 0 0 0 1 1 true subspline
+n 2 gt {
+0 0 0 0 1 1 2 2 false subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
+} if
+n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Circ {
+newpath
+0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/CBSpl {
+0 begin
+dup 2 gt {
+storexyn
+newpath
+n 1 sub dup 0 0 1 1 2 2 true subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
+n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
+patternNone not { ifill } if
+brushNone not { istroke } if
+} {
+Poly
+} ifelse
+end
+} dup 0 4 dict put def
+
+/Elli {
+0 begin
+newpath
+4 2 roll
+translate
+scale
+0 0 1 0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 1 dict put def
+
+/Line {
+0 begin
+2 storexyn
+newpath
+x 0 get y 0 get moveto
+x 1 get y 1 get lineto
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+0 0 1 1 rightarrow
+end
+} dup 0 4 dict put def
+
+/MLine {
+0 begin
+storexyn
+newpath
+n 1 gt {
+x 0 get y 0 get moveto
+1 1 n 1 sub {
+/i exch def
+x i get y i get lineto
+} for
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Poly {
+3 1 roll
+newpath
+moveto
+-1 add
+{ lineto } repeat
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/Rect {
+0 begin
+/t exch def
+/r exch def
+/b exch def
+/l exch def
+newpath
+l b moveto
+l t lineto
+r t lineto
+r b lineto
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 4 dict put def
+
+/Text {
+ishow
+} def
+
+/idef {
+dup where { pop pop pop } { exch def } ifelse
+} def
+
+/ifill {
+0 begin
+gsave
+patternGrayLevel -1 ne {
+fgred bgred fgred sub patternGrayLevel mul add
+fggreen bggreen fggreen sub patternGrayLevel mul add
+fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
+eofill
+} {
+eoclip
+originalCTM setmatrix
+pathbbox /t exch def /r exch def /b exch def /l exch def
+/w r l sub ceiling cvi def
+/h t b sub ceiling cvi def
+/imageByteWidth w 8 div ceiling cvi def
+/imageHeight h def
+bgred bggreen bgblue setrgbcolor
+eofill
+fgred fggreen fgblue setrgbcolor
+w 0 gt h 0 gt and {
+l w add b translate w neg h scale
+w h true [w 0 0 h neg 0 h] { patternproc } imagemask
+} if
+} ifelse
+grestore
+end
+} dup 0 8 dict put def
+
+/istroke {
+gsave
+brushDashOffset -1 eq {
+[] 0 setdash
+1 setgray
+} {
+brushDashArray brushDashOffset setdash
+fgred fggreen fgblue setrgbcolor
+} ifelse
+brushWidth setlinewidth
+originalCTM setmatrix
+stroke
+grestore
+} def
+
+/ishow {
+0 begin
+gsave
+fgred fggreen fgblue setrgbcolor
+/fontDict printFont printSize scalefont dup setfont def
+/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
+transform exch pop def
+/vertoffset 1 printSize sub descender sub def {
+0 vertoffset moveto show
+/vertoffset vertoffset printSize sub def
+} forall
+grestore
+end
+} dup 0 3 dict put def
+/patternproc {
+0 begin
+/patternByteLength patternString length def
+/patternHeight patternByteLength 8 mul sqrt cvi def
+/patternWidth patternHeight def
+/patternByteWidth patternWidth 8 idiv def
+/imageByteMaxLength imageByteWidth imageHeight mul
+stringLimit patternByteWidth sub min def
+/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
+patternHeight mul patternHeight max def
+/imageHeight imageHeight imageMaxHeight sub store
+/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
+0 1 imageMaxHeight 1 sub {
+/y exch def
+/patternRow y patternByteWidth mul patternByteLength mod def
+/patternRowString patternString patternRow patternByteWidth getinterval def
+/imageRow y imageByteWidth mul def
+0 patternByteWidth imageByteWidth 1 sub {
+/x exch def
+imageString imageRow x add patternRowString putinterval
+} for
+} for
+imageString
+end
+} dup 0 12 dict put def
+
+/min {
+dup 3 2 roll dup 4 3 roll lt { exch } if pop
+} def
+
+/max {
+dup 3 2 roll dup 4 3 roll gt { exch } if pop
+} def
+
+/midpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 x1 add 2 div
+y0 y1 add 2 div
+end
+} dup 0 4 dict put def
+
+/thirdpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 2 mul x1 add 3 div
+y0 2 mul y1 add 3 div
+end
+} dup 0 4 dict put def
+
+/subspline {
+0 begin
+/movetoNeeded exch def
+y exch get /y3 exch def
+x exch get /x3 exch def
+y exch get /y2 exch def
+x exch get /x2 exch def
+y exch get /y1 exch def
+x exch get /x1 exch def
+y exch get /y0 exch def
+x exch get /x0 exch def
+x1 y1 x2 y2 thirdpoint
+/p1y exch def
+/p1x exch def
+x2 y2 x1 y1 thirdpoint
+/p2y exch def
+/p2x exch def
+x1 y1 x0 y0 thirdpoint
+p1x p1y midpoint
+/p0y exch def
+/p0x exch def
+x2 y2 x3 y3 thirdpoint
+p2x p2y midpoint
+/p3y exch def
+/p3x exch def
+movetoNeeded { p0x p0y moveto } if
+p1x p1y p2x p2y p3x p3y curveto
+end
+} dup 0 17 dict put def
+
+/storexyn {
+/n exch def
+/y n array def
+/x n array def
+n 1 sub -1 0 {
+/i exch def
+y i 3 2 roll put
+x i 3 2 roll put
+} for
+} def
+
+/SSten {
+fgred fggreen fgblue setrgbcolor
+dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+/FSten {
+dup 3 -1 roll dup 4 1 roll exch
+newpath
+0 0 moveto
+dup 0 exch lineto
+exch dup 3 1 roll exch lineto
+0 lineto
+closepath
+bgred bggreen bgblue setrgbcolor
+eofill
+SSten
+} def
+
+/Rast {
+exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+
+%I Idraw 10 Grid 8 8 
+
+
+Begin
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 0.754552 0 0 0.754552 0 0 ] concat
+/originalCTM matrix currentmatrix def
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1.85469 -0 -0 1.05263 277.053 85.895 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1.85469 -0 -0 1.05263 -61.9471 86.8948 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1.85469 -0 -0 1.05263 115.053 80.8948 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1.85469 -0 -0 1.05263 103.053 158.895 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1.85469 -0 -0 1.05263 206.053 212.895 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 266 655 ] concat
+%I
+[
+(src-1.00-local/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 387 709 ] concat
+%I
+[
+(src-1.00/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 443 581 ] concat
+%I
+[
+(src-1.00-sgi/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 89.9999 583 ] concat
+%I
+[
+(src-1.00-sun3os4/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 268 577 ] concat
+%I
+[
+(src-1.00-sun4os4/)
+] Text
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 191 524 ] concat
+%I
+246 460 0 258 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 191 524 ] concat
+%I
+742 649 636 553 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 191 524 ] concat
+%I
+723 478 1080 276 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 191 524 ] concat
+%I
+514 416 529 261 Line
+%I 4
+End
+
+End %I eop
+
+showpage
+
+
+end
+%%EndDocument
+ @endspecial 1291 1360 a Fi(Fig.)16 b(3.)27 b Fn(In)n(terrelationship)f
+(of)i(Source)e(Directories)762 2447 y @beginspecial 77
+@llx 275 @lly 485 @urx 418 @ury 3264 @rwi @setspecial
+%%BeginDocument: vertree.eps
+
+/arrowhead {
+0 begin
+transform originalCTM itransform
+/taily exch def
+/tailx exch def
+transform originalCTM itransform
+/tipy exch def
+/tipx exch def
+/dy tipy taily sub def
+/dx tipx tailx sub def
+/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
+gsave
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+patternNone not {
+originalCTM setmatrix
+/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
+arrowWidth div def
+/padtail brushWidth 2 div def
+tipx tipy translate
+angle rotate
+padtip 0 translate
+arrowHeight padtip add padtail add arrowHeight div dup scale
+arrowheadpath
+ifill
+} if
+brushNone not {
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+arrowheadpath
+istroke
+} if
+grestore
+end
+} dup 0 9 dict put def
+
+/arrowheadpath {
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+} def
+
+/leftarrow {
+0 begin
+y exch get /taily exch def
+x exch get /tailx exch def
+y exch get /tipy exch def
+x exch get /tipx exch def
+brushLeftArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+/rightarrow {
+0 begin
+y exch get /tipy exch def
+x exch get /tipx exch def
+y exch get /taily exch def
+x exch get /tailx exch def
+brushRightArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+
+/arrowHeight 11 def
+/arrowWidth 5 def
+
+/IdrawDict 51 dict def
+IdrawDict begin
+
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+/Encoding ISOLatin1Encoding def
+currentdict end definefont
+} def
+
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/Helvetica reencodeISO def
+
+/none null def
+/numGraphicParameters 17 def
+/stringLimit 65535 def
+
+/Begin {
+save
+numGraphicParameters dict begin
+} def
+
+/End {
+end
+restore
+} def
+
+/SetB {
+dup type /nulltype eq {
+pop
+false /brushRightArrow idef
+false /brushLeftArrow idef
+true /brushNone idef
+} {
+/brushDashOffset idef
+/brushDashArray idef
+0 ne /brushRightArrow idef
+0 ne /brushLeftArrow idef
+/brushWidth idef
+false /brushNone idef
+} ifelse
+} def
+
+/SetCFg {
+/fgblue idef
+/fggreen idef
+/fgred idef
+} def
+
+/SetCBg {
+/bgblue idef
+/bggreen idef
+/bgred idef
+} def
+
+/SetF {
+/printSize idef
+/printFont idef
+} def
+
+/SetP {
+dup type /nulltype eq {
+pop true /patternNone idef
+} {
+dup -1 eq {
+/patternGrayLevel idef
+/patternString idef
+} {
+/patternGrayLevel idef
+} ifelse
+false /patternNone idef
+} ifelse
+} def
+
+/BSpl {
+0 begin
+storexyn
+newpath
+n 1 gt {
+0 0 0 0 0 0 1 1 true subspline
+n 2 gt {
+0 0 0 0 1 1 2 2 false subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
+} if
+n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Circ {
+newpath
+0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/CBSpl {
+0 begin
+dup 2 gt {
+storexyn
+newpath
+n 1 sub dup 0 0 1 1 2 2 true subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
+n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
+patternNone not { ifill } if
+brushNone not { istroke } if
+} {
+Poly
+} ifelse
+end
+} dup 0 4 dict put def
+
+/Elli {
+0 begin
+newpath
+4 2 roll
+translate
+scale
+0 0 1 0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 1 dict put def
+
+/Line {
+0 begin
+2 storexyn
+newpath
+x 0 get y 0 get moveto
+x 1 get y 1 get lineto
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+0 0 1 1 rightarrow
+end
+} dup 0 4 dict put def
+
+/MLine {
+0 begin
+storexyn
+newpath
+n 1 gt {
+x 0 get y 0 get moveto
+1 1 n 1 sub {
+/i exch def
+x i get y i get lineto
+} for
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Poly {
+3 1 roll
+newpath
+moveto
+-1 add
+{ lineto } repeat
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/Rect {
+0 begin
+/t exch def
+/r exch def
+/b exch def
+/l exch def
+newpath
+l b moveto
+l t lineto
+r t lineto
+r b lineto
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 4 dict put def
+
+/Text {
+ishow
+} def
+
+/idef {
+dup where { pop pop pop } { exch def } ifelse
+} def
+
+/ifill {
+0 begin
+gsave
+patternGrayLevel -1 ne {
+fgred bgred fgred sub patternGrayLevel mul add
+fggreen bggreen fggreen sub patternGrayLevel mul add
+fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
+eofill
+} {
+eoclip
+originalCTM setmatrix
+pathbbox /t exch def /r exch def /b exch def /l exch def
+/w r l sub ceiling cvi def
+/h t b sub ceiling cvi def
+/imageByteWidth w 8 div ceiling cvi def
+/imageHeight h def
+bgred bggreen bgblue setrgbcolor
+eofill
+fgred fggreen fgblue setrgbcolor
+w 0 gt h 0 gt and {
+l w add b translate w neg h scale
+w h true [w 0 0 h neg 0 h] { patternproc } imagemask
+} if
+} ifelse
+grestore
+end
+} dup 0 8 dict put def
+
+/istroke {
+gsave
+brushDashOffset -1 eq {
+[] 0 setdash
+1 setgray
+} {
+brushDashArray brushDashOffset setdash
+fgred fggreen fgblue setrgbcolor
+} ifelse
+brushWidth setlinewidth
+originalCTM setmatrix
+stroke
+grestore
+} def
+
+/ishow {
+0 begin
+gsave
+fgred fggreen fgblue setrgbcolor
+/fontDict printFont printSize scalefont dup setfont def
+/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
+transform exch pop def
+/vertoffset 1 printSize sub descender sub def {
+0 vertoffset moveto show
+/vertoffset vertoffset printSize sub def
+} forall
+grestore
+end
+} dup 0 3 dict put def
+/patternproc {
+0 begin
+/patternByteLength patternString length def
+/patternHeight patternByteLength 8 mul sqrt cvi def
+/patternWidth patternHeight def
+/patternByteWidth patternWidth 8 idiv def
+/imageByteMaxLength imageByteWidth imageHeight mul
+stringLimit patternByteWidth sub min def
+/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
+patternHeight mul patternHeight max def
+/imageHeight imageHeight imageMaxHeight sub store
+/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
+0 1 imageMaxHeight 1 sub {
+/y exch def
+/patternRow y patternByteWidth mul patternByteLength mod def
+/patternRowString patternString patternRow patternByteWidth getinterval def
+/imageRow y imageByteWidth mul def
+0 patternByteWidth imageByteWidth 1 sub {
+/x exch def
+imageString imageRow x add patternRowString putinterval
+} for
+} for
+imageString
+end
+} dup 0 12 dict put def
+
+/min {
+dup 3 2 roll dup 4 3 roll lt { exch } if pop
+} def
+
+/max {
+dup 3 2 roll dup 4 3 roll gt { exch } if pop
+} def
+
+/midpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 x1 add 2 div
+y0 y1 add 2 div
+end
+} dup 0 4 dict put def
+
+/thirdpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 2 mul x1 add 3 div
+y0 2 mul y1 add 3 div
+end
+} dup 0 4 dict put def
+
+/subspline {
+0 begin
+/movetoNeeded exch def
+y exch get /y3 exch def
+x exch get /x3 exch def
+y exch get /y2 exch def
+x exch get /x2 exch def
+y exch get /y1 exch def
+x exch get /x1 exch def
+y exch get /y0 exch def
+x exch get /x0 exch def
+x1 y1 x2 y2 thirdpoint
+/p1y exch def
+/p1x exch def
+x2 y2 x1 y1 thirdpoint
+/p2y exch def
+/p2x exch def
+x1 y1 x0 y0 thirdpoint
+p1x p1y midpoint
+/p0y exch def
+/p0x exch def
+x2 y2 x3 y3 thirdpoint
+p2x p2y midpoint
+/p3y exch def
+/p3x exch def
+movetoNeeded { p0x p0y moveto } if
+p1x p1y p2x p2y p3x p3y curveto
+end
+} dup 0 17 dict put def
+
+/storexyn {
+/n exch def
+/y n array def
+/x n array def
+n 1 sub -1 0 {
+/i exch def
+y i 3 2 roll put
+x i 3 2 roll put
+} for
+} def
+
+/SSten {
+fgred fggreen fgblue setrgbcolor
+dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+/FSten {
+dup 3 -1 roll dup 4 1 roll exch
+newpath
+0 0 moveto
+dup 0 exch lineto
+exch dup 3 1 roll exch lineto
+0 lineto
+closepath
+bgred bggreen bgblue setrgbcolor
+eofill
+SSten
+} def
+
+/Rast {
+exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+
+%I Idraw 10 Grid 8 8 
+
+
+Begin
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 0.754552 0 0 0.754552 0 0 ] concat
+/originalCTM matrix currentmatrix def
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 270 68.9999 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 27.9999 -16.0001 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 267 -17.0001 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 497 -18.0001 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 28.9999 -75 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 395 -18.0001 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 148 -15.0001 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 149 -77 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 398 -81 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 355 540 ] concat
+%I
+[
+(ver-1.22/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 129 456 ] concat
+%I
+[
+(man/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 125 395 ] concat
+%I
+[
+(man1/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 237.5 454.75 ] concat
+%I
+[
+(emacs/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 369 454 ] concat
+%I
+[
+(bin/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 249 397 ] concat
+%I
+[
+(info/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 494 389 ] concat
+%I
+[
+(bison/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 494 453 ] concat
+%I
+[
+(doc/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 602 451 ] concat
+%I
+[
+(lib/)
+] Text
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 127 376 ] concat
+%I
+43 229 43 128 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 127 376 ] concat
+%I
+525 231 526 122 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 376.75 376 ] concat
+%I
+525 220 525 105 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 265.75 409 ] concat
+%I
+386 448 -7 236 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 265.75 409 ] concat
+%I
+536 448 911 219 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 265.75 409 ] concat
+%I
+581 476 1328 220 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 265.75 409 ] concat
+%I
+457 437 456 228 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 265.75 409 ] concat
+%I
+347 472 -440 222 Line
+%I 4
+End
+
+End %I eop
+
+showpage
+
+
+end
+%%EndDocument
+ @endspecial 1511 2630 a Fi(Fig.)16 b(4.)27 b Fn(Structure)h(of)f(a)g
+(\\v)n(er-")f(T)-7 b(ree)681 2935 y(p)r(erhaps)27 b(a)g(bit)h(inelegan)
+n(t,)f(but)h(fairly)f(simple)h(and)f(v)n(ery)g(p)r(ortable)g(and)g
+(standard.)805 3044 y(The)h(names)e(of)i(the)f(arc)n(hitectures)f(are)g
+(de\014ned)i(hierarc)n(hically)-7 b(,)25 b(as)i(sho)n(wn)f(in)h
+(\014gure)681 3143 y(5.)21 b(Although)g(most)g(systems)g(only)g(need)h
+(the)g(name)f(of)g(the)h(OS,)f(some)g(need)g(to)h(b)r(e)f(related)681
+3243 y(to)32 b(the)h(exact)f(OS)g(release)f(lev)n(el,)i(or)e(ev)n(en)h
+(to)h(the)f(sp)r(eci\014c)h(con\014guration)e(of)h(a)h(k)n(ernel.)681
+3343 y(Normally)-7 b(,)26 b(only)h(\014les)g(are)f(giv)n(en)g(a)g
+(\014le)i(name)e(su\016x,)i(but)f(Store)g(also)f(supp)r(orts)g
+(su\016xes)681 3442 y(for)h(directories,)g(in)h(whic)n(h)g(case)f(all)h
+(\014les)g(in)g(that)g(directory)f(subtree)h(implicitly)h(inherit)681
+3542 y(the)f(directory)-7 b(.)805 3650 y(The)28 b(implemen)n(tation)h
+(of)f(Store)f(do)r(es)h(not)g(distinguish)g(b)r(et)n(w)n(een)g(OS-arc)n
+(hitectures)681 3750 y(and)34 b(hardw)n(are)e(arc)n(hitectures.)g
+(Although)i(these)h(are)e(t)n(w)n(o)g(di\013eren)n(t)h(dimensions)g
+(\(one)681 3850 y(OS)24 b(can)h(run)f(on)h(sev)n(eral)e(hardw)n(are)g
+(platforms,)h(and)g(eac)n(h)g(hardw)n(are)f(platform)i(can)f(run)681
+3949 y(man)n(y)33 b(OSes\),)h(w)n(e)g(ha)n(v)n(e)f(found)i(it)f(adv)-5
+b(an)n(tageous)32 b(to)i(collapse)f(these)i(t)n(w)n(o)e(dimensions)681
+4049 y(in)n(to)c(one.)h(The)g(reason)e(is)i(that)g(v)n(ery)e(few)j
+(\014les)e(for)h(one)f(OS)h(are)f(common)g(for)g(m)n(ultiple)681
+4148 y(hardw)n(are)38 b(platforms;)j(lik)n(ewise)f(for)g(\014les)h(sp)r
+(eci\014c)f(for)h(one)f(hardw)n(are)f(platform)h(but)681
+4248 y(common)31 b(for)h(m)n(ultiple)h(OSes.)f(W)-7 b(e)32
+b(migh)n(t)g(ha)n(v)n(e)f(implemen)n(ted)i(this)g(di\013eren)n(tly)f
+(if)h(our)681 4348 y(target)24 b(had)h(b)r(een)h(op)r(erating)e(system)
+h(soft)n(w)n(are)f(rather)g(than)i(third)f(part)n(y)g(applications.)805
+4456 y(W)-7 b(e)23 b(can)f(no)n(w)f(add)i(\014lenames)e(to)i(the)f
+(\014gure)g(sho)n(wing)f(the)i(subtree)e(of)i(a)f(\\v)n(er-")d(direc-)
+681 4556 y(tory)24 b(\(\014gure)g(4\).)h(Ov)-5 b(als)24
+b(denote)h(directories,)f(\014lenames)g(are)g(listed)h(b)r(elo)n(w)g
+(the)g(directory)681 4655 y(in)k(whic)n(h)g(they)g(are)f(lo)r(cated.)h
+(The)g(new,)g(expanded)f(\014gure)h(is)f(sho)n(wn)h(in)g(\014gure)f(6.)
+h(Files)681 4755 y(con)n(taining)d(the)i(\\@")f(c)n(haracter)e(and)j(a)
+f(su\016x,)g(are)g(arc)n(hitecture)f(dep)r(enden)n(t)j(\014les.)805
+4863 y(The)e(last)f(comp)r(onen)n(t)g(in)h(the)f(application)g
+(directory)f(is)i(the)f Fh(registration)c Fn(\014le.)k(It)p
+eop
+%%Page: 7 7
+7 6 bop 640 1911 a @beginspecial 108 @llx 197 @lly 458
+@urx 438 @ury 2800 @rwi @setspecial
+%%BeginDocument: archs.eps
+
+/arrowhead {
+0 begin
+transform originalCTM itransform
+/taily exch def
+/tailx exch def
+transform originalCTM itransform
+/tipy exch def
+/tipx exch def
+/dy tipy taily sub def
+/dx tipx tailx sub def
+/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
+gsave
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+patternNone not {
+originalCTM setmatrix
+/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
+arrowWidth div def
+/padtail brushWidth 2 div def
+tipx tipy translate
+angle rotate
+padtip 0 translate
+arrowHeight padtip add padtail add arrowHeight div dup scale
+arrowheadpath
+ifill
+} if
+brushNone not {
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+arrowheadpath
+istroke
+} if
+grestore
+end
+} dup 0 9 dict put def
+
+/arrowheadpath {
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+} def
+
+/leftarrow {
+0 begin
+y exch get /taily exch def
+x exch get /tailx exch def
+y exch get /tipy exch def
+x exch get /tipx exch def
+brushLeftArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+/rightarrow {
+0 begin
+y exch get /tipy exch def
+x exch get /tipx exch def
+y exch get /taily exch def
+x exch get /tailx exch def
+brushRightArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+
+/arrowHeight 11 def
+/arrowWidth 5 def
+
+/IdrawDict 51 dict def
+IdrawDict begin
+
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+/Encoding ISOLatin1Encoding def
+currentdict end definefont
+} def
+
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/Helvetica reencodeISO def
+
+/none null def
+/numGraphicParameters 17 def
+/stringLimit 65535 def
+
+/Begin {
+save
+numGraphicParameters dict begin
+} def
+
+/End {
+end
+restore
+} def
+
+/SetB {
+dup type /nulltype eq {
+pop
+false /brushRightArrow idef
+false /brushLeftArrow idef
+true /brushNone idef
+} {
+/brushDashOffset idef
+/brushDashArray idef
+0 ne /brushRightArrow idef
+0 ne /brushLeftArrow idef
+/brushWidth idef
+false /brushNone idef
+} ifelse
+} def
+
+/SetCFg {
+/fgblue idef
+/fggreen idef
+/fgred idef
+} def
+
+/SetCBg {
+/bgblue idef
+/bggreen idef
+/bgred idef
+} def
+
+/SetF {
+/printSize idef
+/printFont idef
+} def
+
+/SetP {
+dup type /nulltype eq {
+pop true /patternNone idef
+} {
+dup -1 eq {
+/patternGrayLevel idef
+/patternString idef
+} {
+/patternGrayLevel idef
+} ifelse
+false /patternNone idef
+} ifelse
+} def
+
+/BSpl {
+0 begin
+storexyn
+newpath
+n 1 gt {
+0 0 0 0 0 0 1 1 true subspline
+n 2 gt {
+0 0 0 0 1 1 2 2 false subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
+} if
+n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Circ {
+newpath
+0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/CBSpl {
+0 begin
+dup 2 gt {
+storexyn
+newpath
+n 1 sub dup 0 0 1 1 2 2 true subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
+n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
+patternNone not { ifill } if
+brushNone not { istroke } if
+} {
+Poly
+} ifelse
+end
+} dup 0 4 dict put def
+
+/Elli {
+0 begin
+newpath
+4 2 roll
+translate
+scale
+0 0 1 0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 1 dict put def
+
+/Line {
+0 begin
+2 storexyn
+newpath
+x 0 get y 0 get moveto
+x 1 get y 1 get lineto
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+0 0 1 1 rightarrow
+end
+} dup 0 4 dict put def
+
+/MLine {
+0 begin
+storexyn
+newpath
+n 1 gt {
+x 0 get y 0 get moveto
+1 1 n 1 sub {
+/i exch def
+x i get y i get lineto
+} for
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Poly {
+3 1 roll
+newpath
+moveto
+-1 add
+{ lineto } repeat
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/Rect {
+0 begin
+/t exch def
+/r exch def
+/b exch def
+/l exch def
+newpath
+l b moveto
+l t lineto
+r t lineto
+r b lineto
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 4 dict put def
+
+/Text {
+ishow
+} def
+
+/idef {
+dup where { pop pop pop } { exch def } ifelse
+} def
+
+/ifill {
+0 begin
+gsave
+patternGrayLevel -1 ne {
+fgred bgred fgred sub patternGrayLevel mul add
+fggreen bggreen fggreen sub patternGrayLevel mul add
+fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
+eofill
+} {
+eoclip
+originalCTM setmatrix
+pathbbox /t exch def /r exch def /b exch def /l exch def
+/w r l sub ceiling cvi def
+/h t b sub ceiling cvi def
+/imageByteWidth w 8 div ceiling cvi def
+/imageHeight h def
+bgred bggreen bgblue setrgbcolor
+eofill
+fgred fggreen fgblue setrgbcolor
+w 0 gt h 0 gt and {
+l w add b translate w neg h scale
+w h true [w 0 0 h neg 0 h] { patternproc } imagemask
+} if
+} ifelse
+grestore
+end
+} dup 0 8 dict put def
+
+/istroke {
+gsave
+brushDashOffset -1 eq {
+[] 0 setdash
+1 setgray
+} {
+brushDashArray brushDashOffset setdash
+fgred fggreen fgblue setrgbcolor
+} ifelse
+brushWidth setlinewidth
+originalCTM setmatrix
+stroke
+grestore
+} def
+
+/ishow {
+0 begin
+gsave
+fgred fggreen fgblue setrgbcolor
+/fontDict printFont printSize scalefont dup setfont def
+/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
+transform exch pop def
+/vertoffset 1 printSize sub descender sub def {
+0 vertoffset moveto show
+/vertoffset vertoffset printSize sub def
+} forall
+grestore
+end
+} dup 0 3 dict put def
+/patternproc {
+0 begin
+/patternByteLength patternString length def
+/patternHeight patternByteLength 8 mul sqrt cvi def
+/patternWidth patternHeight def
+/patternByteWidth patternWidth 8 idiv def
+/imageByteMaxLength imageByteWidth imageHeight mul
+stringLimit patternByteWidth sub min def
+/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
+patternHeight mul patternHeight max def
+/imageHeight imageHeight imageMaxHeight sub store
+/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
+0 1 imageMaxHeight 1 sub {
+/y exch def
+/patternRow y patternByteWidth mul patternByteLength mod def
+/patternRowString patternString patternRow patternByteWidth getinterval def
+/imageRow y imageByteWidth mul def
+0 patternByteWidth imageByteWidth 1 sub {
+/x exch def
+imageString imageRow x add patternRowString putinterval
+} for
+} for
+imageString
+end
+} dup 0 12 dict put def
+
+/min {
+dup 3 2 roll dup 4 3 roll lt { exch } if pop
+} def
+
+/max {
+dup 3 2 roll dup 4 3 roll gt { exch } if pop
+} def
+
+/midpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 x1 add 2 div
+y0 y1 add 2 div
+end
+} dup 0 4 dict put def
+
+/thirdpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 2 mul x1 add 3 div
+y0 2 mul y1 add 3 div
+end
+} dup 0 4 dict put def
+
+/subspline {
+0 begin
+/movetoNeeded exch def
+y exch get /y3 exch def
+x exch get /x3 exch def
+y exch get /y2 exch def
+x exch get /x2 exch def
+y exch get /y1 exch def
+x exch get /x1 exch def
+y exch get /y0 exch def
+x exch get /x0 exch def
+x1 y1 x2 y2 thirdpoint
+/p1y exch def
+/p1x exch def
+x2 y2 x1 y1 thirdpoint
+/p2y exch def
+/p2x exch def
+x1 y1 x0 y0 thirdpoint
+p1x p1y midpoint
+/p0y exch def
+/p0x exch def
+x2 y2 x3 y3 thirdpoint
+p2x p2y midpoint
+/p3y exch def
+/p3x exch def
+movetoNeeded { p0x p0y moveto } if
+p1x p1y p2x p2y p3x p3y curveto
+end
+} dup 0 17 dict put def
+
+/storexyn {
+/n exch def
+/y n array def
+/x n array def
+n 1 sub -1 0 {
+/i exch def
+y i 3 2 roll put
+x i 3 2 roll put
+} for
+} def
+
+/SSten {
+fgred fggreen fgblue setrgbcolor
+dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+/FSten {
+dup 3 -1 roll dup 4 1 roll exch
+newpath
+0 0 moveto
+dup 0 exch lineto
+exch dup 3 1 roll exch lineto
+0 lineto
+closepath
+bgred bggreen bgblue setrgbcolor
+eofill
+SSten
+} def
+
+/Rast {
+exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+
+%I Idraw 10 Grid 8 8 
+
+
+Begin
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 0.754552 0 0 0.754552 0 0 ] concat
+/originalCTM matrix currentmatrix def
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 77 -28 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 261 9 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 343 51 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 70 42 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 164 61 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 69 93 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 277 -58.9999 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 281 95 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 444 91 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 356 -14 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 187 -33 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 435 521 ] concat
+%I
+[
+(bigend)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 261 532 ] concat
+%I
+[
+(litend)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 171 514 ] concat
+%I
+[
+(i386)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 167 563 ] concat
+%I
+[
+(pmax)
+] Text
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 182 -83 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 458 -3 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 461 43 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 547 563 ] concat
+%I
+[
+(hp)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 563 514 ] concat
+%I
+[
+(ibm)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 557 468 ] concat
+%I
+[
+(m88k)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 362 483 ] concat
+%I
+[
+(sun)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 455 457 ] concat
+%I
+[
+(sun3)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 287 439 ] concat
+%I
+[
+(sparc)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 371 417 ] concat
+%I
+[
+(sparc)
+(netbsd)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 269.75 387.75 ] concat
+%I
+[
+(sun4os4)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 165 444 ] concat
+%I
+[
+(sun4os5)
+] Text
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 201 -138 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 106 -139 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 80 -86 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 279 -105 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 281 -173 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 172 -184 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 164 386 ] concat
+%I
+[
+(sun4os40)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 286.5 333 ] concat
+%I
+[
+(sun4os41)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 187.75 331.5 ] concat
+%I
+[
+(sun4os411)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 253.25 287 ] concat
+%I
+[
+(sun4os412)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 361.75 297.75 ] concat
+%I
+[
+(sun4os413)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 371 566 ] concat
+%I
+[
+(allarchs)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 359.5 366 ] concat
+%I
+[
+(sun4os41B)
+] Text
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 282.5 458 ] concat
+%I
+300 389 97 292 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 282.5 458 ] concat
+%I
+539 354 594 285 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 282.5 458 ] concat
+%I
+806 283 968 372 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 282.5 458 ] concat
+%I
+833 232 1028 212 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 282.5 458 ] concat
+%I
+800 185 1028 49 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 282.5 458 ] concat
+%I
+558 201 458 112 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 282.5 458 ] concat
+%I
+494 38 613 -4 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 282.5 458 ] concat
+%I
+232 25 146 -48 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 130 458 ] concat
+%I
+450 244 335 207 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 130 458 ] concat
+%I
+469 324 332 397 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 191 290.5 ] concat
+%I
+288 594 120 586 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 191 290.5 ] concat
+%I
+570 545 677 501 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 191 290.5 ] concat
+%I
+433 493 421 437 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 191 290.5 ] concat
+%I
+262 369 131 357 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 191 290.5 ] concat
+%I
+551 350 671 303 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 191 290.5 ] concat
+%I
+448 292 489 219 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 191 290.5 ] concat
+%I
+337 154 237 146 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 191 290.5 ] concat
+%I
+433 75 409 30 Line
+%I 4
+End
+
+Begin %I Line
+%I b 65535
+2 1 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.25 -0 -0 0.25 191 290.5 ] concat
+%I
+611 109 692 46 Line
+%I 4
+End
+
+End %I eop
+
+showpage
+
+
+end
+%%EndDocument
+ @endspecial 1192 2094 a Fi(Fig.)16 b(5.)27 b Fn(Structure)g(of)h(Arc)n
+(hitectures)370 3296 y @beginspecial 83 @llx 255 @lly
+514 @urx 418 @ury 3448 @rwi @setspecial
+%%BeginDocument: xvertree.eps
+
+/arrowhead {
+0 begin
+transform originalCTM itransform
+/taily exch def
+/tailx exch def
+transform originalCTM itransform
+/tipy exch def
+/tipx exch def
+/dy tipy taily sub def
+/dx tipx tailx sub def
+/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
+gsave
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+patternNone not {
+originalCTM setmatrix
+/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
+arrowWidth div def
+/padtail brushWidth 2 div def
+tipx tipy translate
+angle rotate
+padtip 0 translate
+arrowHeight padtip add padtail add arrowHeight div dup scale
+arrowheadpath
+ifill
+} if
+brushNone not {
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+arrowheadpath
+istroke
+} if
+grestore
+end
+} dup 0 9 dict put def
+
+/arrowheadpath {
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+} def
+
+/leftarrow {
+0 begin
+y exch get /taily exch def
+x exch get /tailx exch def
+y exch get /tipy exch def
+x exch get /tipx exch def
+brushLeftArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+/rightarrow {
+0 begin
+y exch get /tipy exch def
+x exch get /tipx exch def
+y exch get /taily exch def
+x exch get /tailx exch def
+brushRightArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+
+/arrowHeight 11 def
+/arrowWidth 5 def
+
+/IdrawDict 51 dict def
+IdrawDict begin
+
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+/Encoding ISOLatin1Encoding def
+currentdict end definefont
+} def
+
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/Helvetica reencodeISO def
+
+/none null def
+/numGraphicParameters 17 def
+/stringLimit 65535 def
+
+/Begin {
+save
+numGraphicParameters dict begin
+} def
+
+/End {
+end
+restore
+} def
+
+/SetB {
+dup type /nulltype eq {
+pop
+false /brushRightArrow idef
+false /brushLeftArrow idef
+true /brushNone idef
+} {
+/brushDashOffset idef
+/brushDashArray idef
+0 ne /brushRightArrow idef
+0 ne /brushLeftArrow idef
+/brushWidth idef
+false /brushNone idef
+} ifelse
+} def
+
+/SetCFg {
+/fgblue idef
+/fggreen idef
+/fgred idef
+} def
+
+/SetCBg {
+/bgblue idef
+/bggreen idef
+/bgred idef
+} def
+
+/SetF {
+/printSize idef
+/printFont idef
+} def
+
+/SetP {
+dup type /nulltype eq {
+pop true /patternNone idef
+} {
+dup -1 eq {
+/patternGrayLevel idef
+/patternString idef
+} {
+/patternGrayLevel idef
+} ifelse
+false /patternNone idef
+} ifelse
+} def
+
+/BSpl {
+0 begin
+storexyn
+newpath
+n 1 gt {
+0 0 0 0 0 0 1 1 true subspline
+n 2 gt {
+0 0 0 0 1 1 2 2 false subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
+} if
+n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Circ {
+newpath
+0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/CBSpl {
+0 begin
+dup 2 gt {
+storexyn
+newpath
+n 1 sub dup 0 0 1 1 2 2 true subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
+n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
+patternNone not { ifill } if
+brushNone not { istroke } if
+} {
+Poly
+} ifelse
+end
+} dup 0 4 dict put def
+
+/Elli {
+0 begin
+newpath
+4 2 roll
+translate
+scale
+0 0 1 0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 1 dict put def
+
+/Line {
+0 begin
+2 storexyn
+newpath
+x 0 get y 0 get moveto
+x 1 get y 1 get lineto
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+0 0 1 1 rightarrow
+end
+} dup 0 4 dict put def
+
+/MLine {
+0 begin
+storexyn
+newpath
+n 1 gt {
+x 0 get y 0 get moveto
+1 1 n 1 sub {
+/i exch def
+x i get y i get lineto
+} for
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Poly {
+3 1 roll
+newpath
+moveto
+-1 add
+{ lineto } repeat
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/Rect {
+0 begin
+/t exch def
+/r exch def
+/b exch def
+/l exch def
+newpath
+l b moveto
+l t lineto
+r t lineto
+r b lineto
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 4 dict put def
+
+/Text {
+ishow
+} def
+
+/idef {
+dup where { pop pop pop } { exch def } ifelse
+} def
+
+/ifill {
+0 begin
+gsave
+patternGrayLevel -1 ne {
+fgred bgred fgred sub patternGrayLevel mul add
+fggreen bggreen fggreen sub patternGrayLevel mul add
+fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
+eofill
+} {
+eoclip
+originalCTM setmatrix
+pathbbox /t exch def /r exch def /b exch def /l exch def
+/w r l sub ceiling cvi def
+/h t b sub ceiling cvi def
+/imageByteWidth w 8 div ceiling cvi def
+/imageHeight h def
+bgred bggreen bgblue setrgbcolor
+eofill
+fgred fggreen fgblue setrgbcolor
+w 0 gt h 0 gt and {
+l w add b translate w neg h scale
+w h true [w 0 0 h neg 0 h] { patternproc } imagemask
+} if
+} ifelse
+grestore
+end
+} dup 0 8 dict put def
+
+/istroke {
+gsave
+brushDashOffset -1 eq {
+[] 0 setdash
+1 setgray
+} {
+brushDashArray brushDashOffset setdash
+fgred fggreen fgblue setrgbcolor
+} ifelse
+brushWidth setlinewidth
+originalCTM setmatrix
+stroke
+grestore
+} def
+
+/ishow {
+0 begin
+gsave
+fgred fggreen fgblue setrgbcolor
+/fontDict printFont printSize scalefont dup setfont def
+/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
+transform exch pop def
+/vertoffset 1 printSize sub descender sub def {
+0 vertoffset moveto show
+/vertoffset vertoffset printSize sub def
+} forall
+grestore
+end
+} dup 0 3 dict put def
+/patternproc {
+0 begin
+/patternByteLength patternString length def
+/patternHeight patternByteLength 8 mul sqrt cvi def
+/patternWidth patternHeight def
+/patternByteWidth patternWidth 8 idiv def
+/imageByteMaxLength imageByteWidth imageHeight mul
+stringLimit patternByteWidth sub min def
+/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
+patternHeight mul patternHeight max def
+/imageHeight imageHeight imageMaxHeight sub store
+/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
+0 1 imageMaxHeight 1 sub {
+/y exch def
+/patternRow y patternByteWidth mul patternByteLength mod def
+/patternRowString patternString patternRow patternByteWidth getinterval def
+/imageRow y imageByteWidth mul def
+0 patternByteWidth imageByteWidth 1 sub {
+/x exch def
+imageString imageRow x add patternRowString putinterval
+} for
+} for
+imageString
+end
+} dup 0 12 dict put def
+
+/min {
+dup 3 2 roll dup 4 3 roll lt { exch } if pop
+} def
+
+/max {
+dup 3 2 roll dup 4 3 roll gt { exch } if pop
+} def
+
+/midpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 x1 add 2 div
+y0 y1 add 2 div
+end
+} dup 0 4 dict put def
+
+/thirdpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 2 mul x1 add 3 div
+y0 2 mul y1 add 3 div
+end
+} dup 0 4 dict put def
+
+/subspline {
+0 begin
+/movetoNeeded exch def
+y exch get /y3 exch def
+x exch get /x3 exch def
+y exch get /y2 exch def
+x exch get /x2 exch def
+y exch get /y1 exch def
+x exch get /x1 exch def
+y exch get /y0 exch def
+x exch get /x0 exch def
+x1 y1 x2 y2 thirdpoint
+/p1y exch def
+/p1x exch def
+x2 y2 x1 y1 thirdpoint
+/p2y exch def
+/p2x exch def
+x1 y1 x0 y0 thirdpoint
+p1x p1y midpoint
+/p0y exch def
+/p0x exch def
+x2 y2 x3 y3 thirdpoint
+p2x p2y midpoint
+/p3y exch def
+/p3x exch def
+movetoNeeded { p0x p0y moveto } if
+p1x p1y p2x p2y p3x p3y curveto
+end
+} dup 0 17 dict put def
+
+/storexyn {
+/n exch def
+/y n array def
+/x n array def
+n 1 sub -1 0 {
+/i exch def
+y i 3 2 roll put
+x i 3 2 roll put
+} for
+} def
+
+/SSten {
+fgred fggreen fgblue setrgbcolor
+dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+/FSten {
+dup 3 -1 roll dup 4 1 roll exch
+newpath
+0 0 moveto
+dup 0 exch lineto
+exch dup 3 1 roll exch lineto
+0 lineto
+closepath
+bgred bggreen bgblue setrgbcolor
+eofill
+SSten
+} def
+
+/Rast {
+exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+
+%I Idraw 10 Grid 8 8 
+
+
+Begin
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 0.754552 0 0 0.754552 0 0 ] concat
+/originalCTM matrix currentmatrix def
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 270 68.9999 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 267 -17.0001 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 516 -13.0001 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 393 -17.0001 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 156 -17.0001 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 397 -82.0001 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 270 -80.0001 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 591 428 ] concat
+%I
+[
+(bison@hpux)
+(bison@linux)
+(bison@m88k)
+(bison@sun4os4)
+(bison@sun4os5)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 239 423 ] concat
+%I
+[
+(bison.hairy)
+(bison.simple)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 361 364 ] concat
+%I
+[
+(bison.dvi)
+(bison.ps)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 356 541 ] concat
+%I
+[
+(ver-1.22/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 618 458 ] concat
+%I
+[
+(bin/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 484 454 ] concat
+%I
+[
+(emacs/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 497 390 ] concat
+%I
+[
+(info/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 366 392 ] concat
+%I
+[
+(bison/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 368 454 ] concat
+%I
+[
+(doc/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 258 453 ] concat
+%I
+[
+(lib/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 487 361 ] concat
+%I
+[
+(bison.info)
+] Text
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 35 -15.0001 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Elli
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 38 -77.0002 ] concat
+%I
+111 466 33 17 Elli
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 134 364 ] concat
+%I
+[
+(bison.1)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 133 455 ] concat
+%I
+[
+(man/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 134 394 ] concat
+%I
+[
+(man1/)
+] Text
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.125 -0 -0 0.125 349.375 491 ] concat
+%I
+140 230 -539 -216 Line
+%I 8
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.125 -0 -0 0.125 349.375 491 ] concat
+%I
+58 262 -1443 -224 Line
+%I 8
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.125 -0 -0 0.125 529.75 449.75 ] concat
+%I
+-958 618 621 135 Line
+%I 8
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.125 -0 -0 0.125 446.5 449.75 ] concat
+%I
+-386 567 403 126 Line
+%I 8
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.125 -0 -0 0.125 321.625 449.75 ] concat
+%I
+471 545 472 129 Line
+%I 8
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.125 -0 -0 0.125 113.5 400.25 ] concat
+%I
+262 272 263 45 Line
+%I 8
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.125 -0 -0 0.125 321.625 400.25 ] concat
+%I
+465 254 464 21 Line
+%I 8
+End
+
+Begin %I Line
+%I b 65535
+2 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.125 -0 -0 0.125 460.375 400.25 ] concat
+%I
+359 254 359 5 Line
+%I 8
+End
+
+End %I eop
+
+showpage
+
+
+end
+%%EndDocument
+ @endspecial 1016 3479 a Fi(Fig.)16 b(6.)27 b Fn(Extended)h(structure)f
+(of)g(a)g(\\v)n(er-")f(T)-7 b(ree)365 3767 y(con)n(tains)23
+b(information)g(ab)r(out)h(the)g(application,)f(suc)n(h)h(as)f(the)h
+(name)g(of)g(the)g(application,)365 3867 y(the)37 b(source,)d(the)j
+(compilation)e(history)-7 b(,)35 b(who)h(is)g(resp)r(onsible)f(for)g
+(lo)r(cal)h(main)n(tenance,)365 3967 y(whic)n(h)29 b(v)n(ersions)d
+(that)j(are)e(a)n(v)-5 b(ailable)27 b(and)i(their)f(stabilit)n(y)-7
+b(,)28 b(etc.)h(It)g(can)f(b)r(e)g(considered)g(a)365
+4066 y(con\014guration)e(\014le)i(for)f(that)h(application.)490
+4166 y(The)h(system)g(as)g(it)h(has)f(b)r(een)g(describ)r(ed)g(so)g
+(far)g(is)g(not)h(v)n(ery)e(useful,)h(since)h(the)f(\014les)365
+4266 y(are)34 b(distributed)i(widely)f(in)h(a)f(large)e(n)n(um)n(b)r
+(er)i(of)g(directories.)f(Therefore,)g(the)i(second)365
+4365 y(part)k(of)g(Store)f(automatically)g(creates)f(a)i(linktree)g
+(under)f Fh(/store)p Fn(,)f(generated)h(from)365 4465
+y(all)29 b(applications)f(on)h(all)g(store)f(serv)n(ers.)f(E\013ectiv)n
+(ely)-7 b(,)29 b(it)h(creates)e(a)g(directory)g(hierarc)n(h)n(y)-7
+b(,)365 4565 y(whic)n(h)38 b(name)g(space)f(is)h(the)g(union)g(of)g
+(all)g(name)g(spaces)f(in)h(the)g(\\v)n(er-")e(trees)h(for)h(all)365
+4664 y(applications.)28 b(Ho)n(w)n(ev)n(er,)g(there)g(are)g(some)h
+(exceptions:)f(if)i(there)f(are)f(m)n(ultiple)h(v)n(ersions)365
+4764 y(of)24 b(an)g(application,)g(only)g(one)f(v)n(ersion)g(is)h(used)
+g(\(e.g.)h(the)g(new)n(est\);)f(if)h(there)f(are)f(m)n(ultiple)365
+4863 y(v)-5 b(arian)n(ts)34 b(of)h(a)g(\014le)g(\(for)g(sev)n(eral)e
+(arc)n(hitectures\),)h(only)h(the)g(\014le)h(most)f(relev)-5
+b(an)n(t)34 b(to)h(the)p eop
+%%Page: 8 8
+8 7 bop 701 368 a Fd(/sto)n(re/bin/bison)397 b Fc(->)q
+Fd(/sto)n(re/sto)n(re/khym/bison/ver-1.22/bin/bison@hpux)701
+460 y(/sto)n(re/lib/bison.hairy)240 b Fc(->)q Fd(/sto)n(re/sto)n
+(re/khym/bison/ver-1.22/lib/bison.hairy)701 551 y(/sto)n
+(re/lib/bison.simple)195 b Fc(->)q Fd(/sto)n(re/sto)n
+(re/khym/bison/ver-1.22/lib/bison.simple)701 642 y(/sto)n
+(re/man/man1/bison.1)85 b Fc(->)q Fd(/sto)n(re/sto)n
+(re/khym/bison/ver-1.22/man/man1/bison.1)701 734 y(/sto)n(re/do)r
+(c/bison/bison.dvi)63 b Fc(->)q Fd(/sto)n(re/sto)n
+(re/khym/bison/ver-1.22/bison/bison.dvi)701 825 y(/sto)n(re/do)r
+(c/bison/bison.ps)88 b Fc(->)q Fd(/sto)n(re/sto)n
+(re/khym/bison/ver-1.22/bison/bison.ps)701 916 y(/sto)n
+(re/emacs/info/bison.info)p Fc(->)s Fd(/sto)n(re/sto)n
+(re/khym/bison/ver-1.22/emacs/info/bison.info)1009 1097
+y Fi(Fig.)16 b(7.)27 b Fn(Symlinks)h(Generated)f(for)g(Application)h
+(in)f(Figure)g(6)h(\(HP\))681 1443 y(linktree)36 b(is)h(used,)g(and)f
+(the)i(su\016x)e(part)h(is)f(remo)n(v)n(ed)g(from)g(the)h(links)g(in)g
+(the)g Fh(/store)681 1542 y Fn(name)25 b(space.)h(The)f(linktree)h(is)g
+(a)f(view)h(in)n(to)f(the)i(\014le)f(rep)r(ository)e(under)i
+Fh(/store/store)p Fn(.)681 1642 y(F)-7 b(or)18 b(the)i(\014lenames)f
+(that)g(are)g(listed)g(in)h(\014gure)e(6,)h(the)h(corresp)r(onding)d
+(symlinks)i(generated)681 1742 y(are)26 b(listed)i(in)g(\014gure)f(7.)
+805 1847 y(Our)22 b(next)g(concerns)e(are)h(consistency)h(and)f(access)
+g(time.)i(Consistency)e(requires)f(that)681 1946 y(an)25
+b(application)f(is)h(only)g(stored)f(at)h(one)f(place)h(in)g(order)f
+(to)h(a)n(v)n(oid)f(t)n(w)n(o)g(div)n(erging)f(copies.)681
+2046 y(Access)29 b(time)g(requires)f(that)i(man)n(y)e(copies)h(are)f
+(distributed)i(among)e(the)i(computers)e(in)681 2146
+y(a)g(net)n(w)n(ork,)f(in)i(order)e(to)h(minimize)h(access)f(time)h
+(and)f(to)g(ensure)g(con)n(tin)n(uous)g(access)f(to)681
+2245 y(the)h(application)f(ev)n(en)g(if)h(parts)f(of)g(the)h(net)n(w)n
+(ork)e(are)h(inaccessible.)805 2350 y(In)39 b(order)f(to)g(satisfy)h
+(these)g(t)n(w)n(o)f(requiremen)n(ts,)f(Store)i(implemen)n(ts)g(\\sla)n
+(v)n(e)e(store)681 2450 y(serv)n(ers".)h(They)i(are)f(normal)g(stores,)
+h(except)g(that)g(applications)g(stored)f(on)h(a)g(sla)n(v)n(e)681
+2550 y(store)d(are)g(automatically)g(copied)g(from)h(the)g(normal)f
+(store)g(\(a.k.a.)24 b(\\master)37 b(store"\).)681 2649
+y(The)22 b(master)g(store)g(holds)g(a)g(rep)r(ository)f(of)h
+(application)g(co)r(de,)h(the)f(sla)n(v)n(e)f(stores)h(con)n(tains)681
+2749 y(replicas)e(of)h(it,)h(and)f(the)h(linktrees)f(pro)n(vides)f(a)g
+(view)i(in)f(to)g(the)h(rep)r(ositories)e(and)h(replicas.)681
+2849 y(Th)n(us,)31 b(consistency)g(is)g(ensured)g(b)n(y)h(uniqueness.)f
+(Ev)n(ery)f(piece)i(of)f(information)g(should)681 2948
+y(b)r(e)26 b(stored)e(at)i(only)f(one)g(lo)r(cation.)g(If)h(further)g
+(copies)e(are)h(required,)g(they)g(are)g(generated)681
+3048 y(from)i(the)h(master)f(cop)n(y)g(and)g(rep)r(eatedly)g(sync)n
+(hronized)f(later.)805 3153 y(All)32 b(main)n(tenance)e(is)g(p)r
+(erformed)h(at)f(the)i(master)e(serv)n(er.)f(The)h(main)h(function)g
+(of)g(a)681 3253 y(sla)n(v)n(e)18 b(store)g(is)i(mostly)f(to)h(cac)n
+(he)e(applications)h(from)g(the)h(master)f(serv)n(er)f(in)h(order)g(to)
+g(serv)n(e)681 3352 y(lo)r(cal)26 b(linktrees.)h(Calling)f(it)h
+(\\master")e(and)i(\\sla)n(v)n(e")e(serv)n(ers)f(is)j(a)g(bit)g
+(imprecise.)g(Stores)681 3452 y(are)33 b(either)h(masters)e(or)i(sla)n
+(v)n(es)e(on)h(a)h(p)r(er-application)f(basis:)g(Giv)n(en)h(t)n(w)n(o)f
+(serv)n(ers)f(and)681 3552 y(t)n(w)n(o)d(applications,)g(the)i(\014rst)
+e(serv)n(er)g(can)g(b)r(e)i(a)e(master)h(store)f(for)g(the)i(\014rst)e
+(application)681 3651 y(and)e(a)g(sla)n(v)n(e)f(store)h(for)g(the)h
+(second,)f(and)h(vice)f(v)n(ersa)f(for)h(the)h(second)f(store.)805
+3756 y(A)21 b(simple)f(directory)f(naming)h(con)n(v)n(en)n(tion)e
+(notes)i(the)g(di\013erence)g(b)r(et)n(w)n(een)h(sla)n(v)n(es)d(and)681
+3856 y(masters.)34 b(The)g(directory)g Fh(/store/store/khy)o(m/)o(tgr)o
+(in)o(d)29 b Fn(is)34 b(the)i(master)e(cop)n(y)-7 b(,)34
+b(while)681 3956 y Fh(/store/store/sto)o(rl)o(ind)o(/.)o(tg)o(rin)o(d)
+20 b Fn(is)26 b(a)f(replica,)g(due)i(to)e(the)i(name)f(starting)f(with)
+h(a)681 4055 y(dot.)f(This)g(con)n(v)n(en)n(tion)f(also)g(ensures)g
+(that)h(the)h(replica)e(directories)g(sta)n(y)g(out)h(of)g(sigh)n(t)f
+(in)681 4155 y(normal)i Fh(ls)p Fn(-listings.)805 4260
+y(Eac)n(h)k(linktree)g(under)g Fh(/store)e Fn(will)j(pic)n(k)f(an)g
+(application)g(from)g(a)g(master)g(or)f(sla)n(v)n(e)681
+4360 y(store)d(for)g(that)i(application,)e(and)h(it)g(p)r(oin)n(ts)g
+(its)h(symlinks)e(to)n(w)n(ards)f(it.)j(Whic)n(h)f(serv)n(er)e(it)681
+4459 y(c)n(ho)r(oses)31 b(dep)r(ends)h(on)h(whic)n(h)f(mac)n(hine)g(is)
+g(closest)g(measured)f(in)i(a)f(distance)g(metric,)g(a)681
+4559 y(metric)27 b(that)h(can)f(b)r(e)h(con\014gured)f(separately)f
+(for)h(eac)n(h)g Fh(/store)e Fn(linktree.)805 4664 y(Store)k(sla)n(v)n
+(e)e(serv)n(ers)g(only)h(cop)n(y)g(the)i(\014les)e(that)h(they)h(need,)
+f(i.e.)c(source)i(co)r(de)i(is)g(not)681 4764 y(copied,)g(are)g(arc)n
+(hitecture-dep)r(enden)n(t)g(\014les)h(for)f(hardw)n(are)f(that)i(none)
+f(of)h(the)g(linktrees)681 4863 y(connecting)d(to)g(that)h(serv)n(er)e
+(can)h(ev)n(er)g(use.)p eop
+%%Page: 9 9
+9 8 bop 365 387 a Fj(7)112 b(A)37 b(F)-9 b(ull-Scale)37
+b(Example)365 596 y Fn(T)-7 b(o)31 b(\015esh)f(out)h(the)g(description)
+g(giv)n(en)f(in)h(the)g(previous)e(section,)i(w)n(e)f(here)h(sho)n(w)f
+(a)g(full-)365 695 y(scale)39 b(example,)h(in)n(v)n(olving)e(t)n(w)n(o)
+h(stores,)f(one)i(application,)f(four)g(linktrees,)g(and)h(four)365
+795 y(arc)n(hitectures.)490 896 y(The)24 b(application)g(in)g(question)
+g(is)g(\\mpage",)e(whic)n(h)i(consists)g(of)g(a)g(binary)f(\014le)h
+Fh(mpage)365 996 y Fn(\(arc)n(hitecture)37 b(dep)r(enden)n(t\),)i(and)e
+(a)h(man)n(ual)e(page)h Fh(mpage.1)e Fn(\(arc)n(hitecture)i(indep)r
+(en-)365 1096 y(den)n(t\).)22 b(Figure)e(8)h(sho)n(ws)e(part)i(of)g
+(the)g(\014le)g(system)g(on)f(four)h(mac)n(hines:)f(kh)n(ym)h(and)g
+(storlind)365 1195 y(are)30 b(serv)n(ers,)e(master)h(and)h(sla)n(v)n(e)
+f(resp)r(ectiv)n(ely;)h(dekk)g(and)g(c)n(h)n(ur)f(are)h(linktree-only)f
+(ma-)365 1295 y(c)n(hines.)f(In)h(this)f(\014gure,)g(dotted,)h(p)r(oin)
+n(ted)f(lines)g(indicate)h(NFS-moun)n(ts;)f(solid,)g(p)r(oin)n(ted)365
+1394 y(lines)20 b(indicate)g(symlinks;)g(fat)g(lines)g(indicate)g
+(directory)f(structure;)h(and)g(thin)g(lines)g(group)365
+1494 y(directories)26 b(and)i(\014les)f(ph)n(ysically)g(b)r(elonging)g
+(on)g(one)g(mac)n(hine.)411 3648 y @beginspecial 2 @llx
+374 @lly 560 @urx 763.062500 @ury 3348 @rwi @setspecial
+%%BeginDocument: clients.eps
+
+/arrowhead {
+0 begin
+transform originalCTM itransform
+/taily exch def
+/tailx exch def
+transform originalCTM itransform
+/tipy exch def
+/tipx exch def
+/dy tipy taily sub def
+/dx tipx tailx sub def
+/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
+gsave
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+patternNone not {
+originalCTM setmatrix
+/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
+arrowWidth div def
+/padtail brushWidth 2 div def
+tipx tipy translate
+angle rotate
+padtip 0 translate
+arrowHeight padtip add padtail add arrowHeight div dup scale
+arrowheadpath
+ifill
+} if
+brushNone not {
+originalCTM setmatrix
+tipx tipy translate
+angle rotate
+arrowheadpath
+istroke
+} if
+grestore
+end
+} dup 0 9 dict put def
+
+/arrowheadpath {
+newpath
+arrowHeight neg arrowWidth 2 div moveto
+0 0 lineto
+arrowHeight neg arrowWidth 2 div neg lineto
+} def
+
+/leftarrow {
+0 begin
+y exch get /taily exch def
+x exch get /tailx exch def
+y exch get /tipy exch def
+x exch get /tipx exch def
+brushLeftArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+/rightarrow {
+0 begin
+y exch get /tipy exch def
+x exch get /tipx exch def
+y exch get /taily exch def
+x exch get /tailx exch def
+brushRightArrow { tipx tipy tailx taily arrowhead } if
+end
+} dup 0 4 dict put def
+
+
+/arrowHeight 8 def
+/arrowWidth 4 def
+
+/IdrawDict 51 dict def
+IdrawDict begin
+
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+/Encoding ISOLatin1Encoding def
+currentdict end definefont
+} def
+
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/Helvetica reencodeISO def
+
+/none null def
+/numGraphicParameters 17 def
+/stringLimit 65535 def
+
+/Begin {
+save
+numGraphicParameters dict begin
+} def
+
+/End {
+end
+restore
+} def
+
+/SetB {
+dup type /nulltype eq {
+pop
+false /brushRightArrow idef
+false /brushLeftArrow idef
+true /brushNone idef
+} {
+/brushDashOffset idef
+/brushDashArray idef
+0 ne /brushRightArrow idef
+0 ne /brushLeftArrow idef
+/brushWidth idef
+false /brushNone idef
+} ifelse
+} def
+
+/SetCFg {
+/fgblue idef
+/fggreen idef
+/fgred idef
+} def
+
+/SetCBg {
+/bgblue idef
+/bggreen idef
+/bgred idef
+} def
+
+/SetF {
+/printSize idef
+/printFont idef
+} def
+
+/SetP {
+dup type /nulltype eq {
+pop true /patternNone idef
+} {
+dup -1 eq {
+/patternGrayLevel idef
+/patternString idef
+} {
+/patternGrayLevel idef
+} ifelse
+false /patternNone idef
+} ifelse
+} def
+
+/BSpl {
+0 begin
+storexyn
+newpath
+n 1 gt {
+0 0 0 0 0 0 1 1 true subspline
+n 2 gt {
+0 0 0 0 1 1 2 2 false subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
+} if
+n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Circ {
+newpath
+0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/CBSpl {
+0 begin
+dup 2 gt {
+storexyn
+newpath
+n 1 sub dup 0 0 1 1 2 2 true subspline
+1 1 n 3 sub {
+/i exch def
+i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
+} for
+n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
+n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
+patternNone not { ifill } if
+brushNone not { istroke } if
+} {
+Poly
+} ifelse
+end
+} dup 0 4 dict put def
+
+/Elli {
+0 begin
+newpath
+4 2 roll
+translate
+scale
+0 0 1 0 360 arc
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 1 dict put def
+
+/Line {
+0 begin
+2 storexyn
+newpath
+x 0 get y 0 get moveto
+x 1 get y 1 get lineto
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+0 0 1 1 rightarrow
+end
+} dup 0 4 dict put def
+
+/MLine {
+0 begin
+storexyn
+newpath
+n 1 gt {
+x 0 get y 0 get moveto
+1 1 n 1 sub {
+/i exch def
+x i get y i get lineto
+} for
+patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
+brushNone not { istroke } if
+0 0 1 1 leftarrow
+n 2 sub dup n 1 sub dup rightarrow
+} if
+end
+} dup 0 4 dict put def
+
+/Poly {
+3 1 roll
+newpath
+moveto
+-1 add
+{ lineto } repeat
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+} def
+
+/Rect {
+0 begin
+/t exch def
+/r exch def
+/b exch def
+/l exch def
+newpath
+l b moveto
+l t lineto
+r t lineto
+r b lineto
+closepath
+patternNone not { ifill } if
+brushNone not { istroke } if
+end
+} dup 0 4 dict put def
+
+/Text {
+ishow
+} def
+
+/idef {
+dup where { pop pop pop } { exch def } ifelse
+} def
+
+/ifill {
+0 begin
+gsave
+patternGrayLevel -1 ne {
+fgred bgred fgred sub patternGrayLevel mul add
+fggreen bggreen fggreen sub patternGrayLevel mul add
+fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
+eofill
+} {
+eoclip
+originalCTM setmatrix
+pathbbox /t exch def /r exch def /b exch def /l exch def
+/w r l sub ceiling cvi def
+/h t b sub ceiling cvi def
+/imageByteWidth w 8 div ceiling cvi def
+/imageHeight h def
+bgred bggreen bgblue setrgbcolor
+eofill
+fgred fggreen fgblue setrgbcolor
+w 0 gt h 0 gt and {
+l w add b translate w neg h scale
+w h true [w 0 0 h neg 0 h] { patternproc } imagemask
+} if
+} ifelse
+grestore
+end
+} dup 0 8 dict put def
+
+/istroke {
+gsave
+brushDashOffset -1 eq {
+[] 0 setdash
+1 setgray
+} {
+brushDashArray brushDashOffset setdash
+fgred fggreen fgblue setrgbcolor
+} ifelse
+brushWidth setlinewidth
+originalCTM setmatrix
+stroke
+grestore
+} def
+
+/ishow {
+0 begin
+gsave
+fgred fggreen fgblue setrgbcolor
+/fontDict printFont printSize scalefont dup setfont def
+/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
+transform exch pop def
+/vertoffset 1 printSize sub descender sub def {
+0 vertoffset moveto show
+/vertoffset vertoffset printSize sub def
+} forall
+grestore
+end
+} dup 0 3 dict put def
+/patternproc {
+0 begin
+/patternByteLength patternString length def
+/patternHeight patternByteLength 8 mul sqrt cvi def
+/patternWidth patternHeight def
+/patternByteWidth patternWidth 8 idiv def
+/imageByteMaxLength imageByteWidth imageHeight mul
+stringLimit patternByteWidth sub min def
+/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
+patternHeight mul patternHeight max def
+/imageHeight imageHeight imageMaxHeight sub store
+/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
+0 1 imageMaxHeight 1 sub {
+/y exch def
+/patternRow y patternByteWidth mul patternByteLength mod def
+/patternRowString patternString patternRow patternByteWidth getinterval def
+/imageRow y imageByteWidth mul def
+0 patternByteWidth imageByteWidth 1 sub {
+/x exch def
+imageString imageRow x add patternRowString putinterval
+} for
+} for
+imageString
+end
+} dup 0 12 dict put def
+
+/min {
+dup 3 2 roll dup 4 3 roll lt { exch } if pop
+} def
+
+/max {
+dup 3 2 roll dup 4 3 roll gt { exch } if pop
+} def
+
+/midpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 x1 add 2 div
+y0 y1 add 2 div
+end
+} dup 0 4 dict put def
+
+/thirdpoint {
+0 begin
+/y1 exch def
+/x1 exch def
+/y0 exch def
+/x0 exch def
+x0 2 mul x1 add 3 div
+y0 2 mul y1 add 3 div
+end
+} dup 0 4 dict put def
+
+/subspline {
+0 begin
+/movetoNeeded exch def
+y exch get /y3 exch def
+x exch get /x3 exch def
+y exch get /y2 exch def
+x exch get /x2 exch def
+y exch get /y1 exch def
+x exch get /x1 exch def
+y exch get /y0 exch def
+x exch get /x0 exch def
+x1 y1 x2 y2 thirdpoint
+/p1y exch def
+/p1x exch def
+x2 y2 x1 y1 thirdpoint
+/p2y exch def
+/p2x exch def
+x1 y1 x0 y0 thirdpoint
+p1x p1y midpoint
+/p0y exch def
+/p0x exch def
+x2 y2 x3 y3 thirdpoint
+p2x p2y midpoint
+/p3y exch def
+/p3x exch def
+movetoNeeded { p0x p0y moveto } if
+p1x p1y p2x p2y p3x p3y curveto
+end
+} dup 0 17 dict put def
+
+/storexyn {
+/n exch def
+/y n array def
+/x n array def
+n 1 sub -1 0 {
+/i exch def
+y i 3 2 roll put
+x i 3 2 roll put
+} for
+} def
+
+/SSten {
+fgred fggreen fgblue setrgbcolor
+dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+/FSten {
+dup 3 -1 roll dup 4 1 roll exch
+newpath
+0 0 moveto
+dup 0 exch lineto
+exch dup 3 1 roll exch lineto
+0 lineto
+closepath
+bgred bggreen bgblue setrgbcolor
+eofill
+SSten
+} def
+
+/Rast {
+exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
+} def
+
+
+%I Idraw 10 Grid 8 8 
+
+
+Begin
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 0.754552 0 0 0.754552 0 0 ] concat
+/originalCTM matrix currentmatrix def
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 209 632 ] concat
+%I
+[
+(mpage@sun4os4)
+(mpage@sgi)
+(mpage@linux)
+(mpage@netbsd)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 242 817 ] concat
+%I
+[
+(store/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 270 783 ] concat
+%I
+[
+(khym/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 254 749 ] concat
+%I
+[
+(mpage/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 285 705 ] concat
+%I
+[
+(ver-2.13/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 191 857 ] concat
+%I
+[
+(/store)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 277 672 ] concat
+%I
+[
+(bin/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 332 677 ] concat
+%I
+[
+(man/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 328 639 ] concat
+%I
+[
+(man1/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 325 603 ] concat
+%I
+[
+(mpage.1)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 192 810 ] concat
+%I
+[
+(bin/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 137 810 ] concat
+%I
+[
+(man/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 129 768 ] concat
+%I
+[
+(man1/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 123 734 ] concat
+%I
+[
+(mpage.1)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 199 767 ] concat
+%I
+[
+(mpage)
+] Text
+End
+
+Begin %I BSpl
+%I b 65535
+2 0 1 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 58 361 ] concat
+%I 11
+88 355
+84 333
+83 299
+90 268
+104 239
+121 217
+150 203
+184 205
+218 212
+252 225
+263 231
+11 BSpl
+%I 1
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 315 731 ] concat
+%I
+[
+(registration)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 199 712 ] concat
+%I
+[
+(src-2.13)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 192 689 ] concat
+%I
+[
+(src-2.13-sun)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 560 810 ] concat
+%I
+[
+(store/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 557 764 ] concat
+%I
+[
+(khym/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 620 689 ] concat
+%I
+[
+(ver-2.13/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 607 648 ] concat
+%I
+[
+(bin/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 664 650 ] concat
+%I
+[
+(man/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 659 608 ] concat
+%I
+[
+(man1/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 658 579 ] concat
+%I
+[
+(mpage.1)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 495 800 ] concat
+%I
+[
+(bin/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 457 799 ] concat
+%I
+[
+(man/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 451 756 ] concat
+%I
+[
+(man1/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 454 713 ] concat
+%I
+[
+(mpage.1)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 505 746 ] concat
+%I
+[
+(mpage)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 551 700 ] concat
+%I
+[
+(registration)
+] Text
+End
+
+Begin %I BSpl
+%I b 65520
+2 0 1 [12 4] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 30 361 ] concat
+%I 8
+528 413
+505 446
+462 470
+421 481
+357 481
+322 466
+279 442
+269 428
+8 BSpl
+%I 1
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 554 615 ] concat
+%I
+[
+(mpage@sun4os4)
+(mpage@netbsd)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 69 971 ] concat
+%I
+[
+(/store/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 25 935 ] concat
+%I
+[
+(man/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 15 896 ] concat
+%I
+[
+(man1/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 74 934 ] concat
+%I
+[
+(bin/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 125 934 ] concat
+%I
+[
+(store/)
+] Text
+End
+
+Begin %I BSpl
+%I b 65520
+2 0 1 [12 4] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -63 559 ] concat
+%I 7
+221 338
+250 336
+288 322
+322 302
+347 277
+351 257
+352 236
+7 BSpl
+%I 1
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 10 859 ] concat
+%I
+[
+(mpage.1)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 66 905 ] concat
+%I
+[
+(mpage)
+] Text
+End
+
+Begin %I BSpl
+%I b 65535
+2 0 1 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -63 493 ] concat
+%I 16
+99 350
+102 309
+113 249
+122 218
+143 174
+158 151
+176 124
+192 104
+217 82
+249 65
+278 58
+295 57
+310 57
+342 64
+364 74
+393 93
+16 BSpl
+%I 1
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 527 969 ] concat
+%I
+[
+(/store/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 583 939 ] concat
+%I
+[
+(store/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 438 912 ] concat
+%I
+[
+(man1/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 461 938 ] concat
+%I
+[
+(man/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 511 939 ] concat
+%I
+[
+(bin/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 614 909 ] concat
+%I
+[
+(storlind/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 399 886 ] concat
+%I
+[
+(mpage.1)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 507 908 ] concat
+%I
+[
+(mpage)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 122 900 ] concat
+%I
+[
+(khym/)
+] Text
+End
+
+Begin %I CBSpl
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I 10
+63 502
+24 455
+21 399
+18 342
+35 307
+100 323
+201 392
+209 475
+137 508
+96 507
+10 CBSpl
+End
+
+Begin %I CBSpl
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I 10
+567 507
+480 486
+418 453
+366 380
+432 344
+525 387
+616 395
+728 369
+718 452
+642 491
+10 CBSpl
+End
+
+Begin %I CBSpl
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I 11
+245 398
+176 358
+120 307
+62 226
+94 88
+209 36
+328 47
+415 99
+419 199
+388 307
+320 375
+11 CBSpl
+End
+
+Begin %I CBSpl
+%I b 65535
+1 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I 10
+752 45
+736 152
+703 263
+642 334
+601 367
+511 374
+422 324
+423 207
+441 54
+577 6
+10 CBSpl
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 353 982 ] concat
+%I
+[
+(Linktree-only of )
+(server storlind)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 240 897 ] concat
+%I
+[
+(Masterserver )
+(              khym)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 667 792 ] concat
+%I
+[
+(Slaveserver)
+(   storlind)
+] Text
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+98 461 97 446 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+78 464 58 449 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+117 464 145 448 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+49 428 45 407 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+41 391 41 370 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+96 429 96 417 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+150 430 150 414 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+536 463 499 449 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+553 461 540 448 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+575 465 603 452 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+478 434 470 423 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+456 409 441 396 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+538 434 536 418 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+625 435 645 421 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+209 351 168 320 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+220 350 216 324 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+230 349 263 331 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+163 305 159 281 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+156 264 155 246 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+216 305 227 280 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+275 312 291 296 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+295 280 290 262 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+271 243 248 224 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+280 241 266 202 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+295 243 316 218 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+312 252 326 241 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+309 202 302 183 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+342 200 353 187 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+354 173 354 151 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+359 136 358 113 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+514 344 486 309 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+525 343 518 313 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+539 345 577 324 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+480 293 479 268 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+481 250 480 229 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+517 292 527 262 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+589 302 584 276 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+602 304 631 283 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+637 267 640 245 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+622 232 600 212 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+643 226 654 203 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+647 183 633 159 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+666 184 685 162 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+688 145 687 122 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I
+688 103 687 90 Line
+%I 1
+End
+
+Begin %I BSpl
+%I b 65520
+2 0 1 [12 4] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I 4
+660 403
+667 368
+660 318
+642 282
+4 BSpl
+%I 1
+End
+
+Begin %I BSpl
+%I b 65535
+2 0 1 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I 7
+537 240
+531 218
+521 194
+513 168
+516 134
+531 112
+561 117
+7 BSpl
+%I 1
+End
+
+Begin %I BSpl
+%I b 65535
+2 0 1 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I 11
+513 402
+481 369
+455 333
+444 282
+449 226
+456 172
+468 124
+481 91
+516 89
+544 96
+561 104
+11 BSpl
+%I 1
+End
+
+Begin %I BSpl
+%I b 65535
+2 0 1 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I 8
+95 395
+96 354
+102 270
+108 197
+130 143
+154 122
+180 123
+214 124
+8 BSpl
+%I 1
+End
+
+Begin %I BSpl
+%I b 65535
+2 0 1 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -12 493 ] concat
+%I 7
+230 254
+214 234
+195 204
+182 175
+178 146
+184 133
+214 135
+7 BSpl
+%I 1
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 315 871 ] concat
+%I
+[
+(SunOS)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 692 766 ] concat
+%I
+[
+(SunOS)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 369 957 ] concat
+%I
+[
+(netbsd)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 604 770 ] concat
+%I
+[
+(storlind/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 615 734 ] concat
+%I
+[
+(.mpage/)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 496 851 ] concat
+%I
+[
+(/store/)
+] Text
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1 -0 -0 1 -364.664 476.106 ] concat
+%I
+647 183 633 159 Line
+%I 1
+End
+
+Begin %I Line
+%I b 65535
+3 0 0 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 1.05588 -0 -0 1.05588 70.744 460.364 ] concat
+%I
+512 165 498 152 Line
+%I 1
+End
+
+Begin %I Pict
+%I b u
+%I cfg u
+%I cbg u
+%I f u
+%I p u
+%I t
+[ 1 0 0 1 27.4529 -14.7823 ] concat
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 145 1004 ] concat
+%I
+[
+(Linktree-only of )
+(     server "khym")
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 186 978 ] concat
+%I
+[
+(SGI)
+] Text
+End
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 140.15 1019.74 ] concat
+%I
+[
+(chur:)
+] Text
+End
+
+End %I eop
+
+Begin %I Text
+%I cfg Black
+0 0 0 SetCFg
+%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
+Helvetica 12 SetF
+%I t
+[ 1 0 0 1 355.497 996.777 ] concat
+%I
+[
+(dekk:)
+] Text
+End
+
+Begin %I BSpl
+%I b 65535
+2 0 1 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.633041 -0 -0 0.633041 46.8451 483.644 ] concat
+%I 9
+585 609
+574 522
+588 411
+602 299
+632 159
+698 84
+793 65
+912 83
+974 128
+9 BSpl
+%I 2
+End
+
+Begin %I BSpl
+%I b 65535
+2 0 1 [] 0 SetB
+%I cfg Black
+0 0 0 SetCFg
+%I cbg White
+1 1 1 SetCBg
+none SetP %I p n
+%I t
+[ 0.633041 -0 -0 0.633041 46.8451 483.644 ] concat
+%I 10
+681 335
+675 301
+673 247
+684 198
+706 152
+733 117
+779 95
+834 93
+890 100
+960 138
+10 BSpl
+%I 2
+End
+
+End %I eop
+
+showpage
+
+
+end
+%%EndDocument
+ @endspecial 1019 3831 a Fi(Fig.)15 b(8.)27 b Fn(F)-7
+b(ull-Scale)28 b(Example)e(of)i(Store)f(System)490 4164
+y(The)e(\014gure)f(sho)n(ws)f(that)i(the)g(sla)n(v)n(e)e(serv)n(er)g
+(only)h(copies)h(the)g(\014les)f(for)g(\\sun4os4")e(and)365
+4264 y(386)e(\\netbsd",)h(the)h(t)n(w)n(o)f(arc)n(hitectures)f(it)i
+(serv)n(es.)e(Names)h(ending)h(with)g(a)f(\\/"-c)n(haracter)365
+4363 y(refer)29 b(to)g(directories.)e(The)j(linktrees)e(generated)g
+(for)h(the)g(four)g(mac)n(hines)g(are)f(sho)n(wn)g(in)365
+4463 y(\014gure)f(9.)490 4565 y(Compared)f(with)i(a)f(traditional)g
+Fh(/usr/local)c Fn(directory)j(structure,)h(there)h(are)e(sev-)365
+4664 y(eral)d(practical)f(adv)-5 b(an)n(tages)22 b(of)h(this)h(sc)n
+(heme:)f(Giv)n(en)g(a)g(\014le)h(in)f(Store,)g(one)g(can)g(determine)
+365 4764 y(whic)n(h)k(application)f(and)g(v)n(ersion)g(it)h(b)r(elongs)
+f(to)g(merely)g(b)n(y)h(lo)r(oking)e(at)i(what)g(the)g(sym-)365
+4863 y(b)r(olic)33 b(link)g(expands)f(to.)g(By)h(follo)n(wing)e(the)i
+(sym)n(b)r(olic)g(link,)g(w)n(e)f(can)g(\014nd)h(an)n(y)f(and)h(all)p
+eop
+%%Page: 10 10
+10 9 bop 1740 368 a Fl(F)-6 b(or)25 b(master)h(store)g(kh)n(ym)680
+460 y Fd(/sto)n(re/bin/mpage)315 b Fc(->)p Fd(/sto)n(re/sto)n
+(re/khym/mpage/ver-2.13/bin/mpage@sun4os4)680 551 y(/sto)n
+(re/man/man1/mpage.1)p Fc(->)s Fd(/sto)n(re/sto)n
+(re/khym/mpage/ver-2.13/man/man1/mpage.)q(1)p 669 615
+2907 4 v 1840 679 a Fl(F)-6 b(or)26 b(linktree)g(c)n(h)n(ur)681
+770 y Fd(/sto)n(re/bin/mpage)314 b Fc(->)p Fd(/sto)n(re/sto)n
+(re/khym/mpage/ver-2.13/bin/mpage@sgi)681 861 y(/sto)n
+(re/man/man1/mpage.1)p Fc(->)r Fd(/sto)n(re/sto)n
+(re/khym/mpage/ver-2.13/man/man1/mpage.)q(1)p 669 925
+V 1737 989 a Fl(F)-6 b(or)26 b(sla)n(v)n(e)g(store)h(storlind)681
+1081 y Fd(/sto)n(re/bin/mpage)314 b Fc(->)p Fd(/sto)n(re/sto)n(re/sto)n
+(rlind/.mpage/ver-2.13/bin/mpage@sun4os4)681 1172 y(/sto)n
+(re/man/man1/mpage.1)p Fc(->)r Fd(/sto)n(re/sto)n
+(re/khym/mpage/ver-2.13/man/man1/mpage.)q(1)p 669 1236
+V 1834 1300 a Fl(F)-6 b(or)26 b(linktree)g(dekk)681 1391
+y Fd(/sto)n(re/bin/mpage)314 b Fc(->)p Fd(/sto)n(re/sto)n(re/sto)n
+(rlind/.mpage/ver-2.13/bin/mpage@netbsd)681 1482 y(/sto)n
+(re/man/man1/mpage.1)p Fc(->)r Fd(/sto)n(re/sto)n
+(re/khym/mpage/ver-2.13/man/man1/mpage.)q(1)1388 1659
+y Fi(Fig.)16 b(9.)27 b Fn(Symlinks)h(Generated)f(for)g(Figure)g(8)681
+1990 y(other)g(\014les)g(related)g(to)h(that)g(particular)e(v)n(ersion)
+g(of)i(the)f(application.)805 2091 y(Users)c(get)f(their)h(traditional)
+f Fh(/usr/local)d Fn(directory)j(structure)g(\(although)h(as)f(sym-)681
+2190 y(links\),)e(while)h(system)f(administrators)e(get)i(eac)n(h)f
+(application)h(separated)f(from)h(the)g(other)681 2290
+y(applications.)j(This)h(means)f(b)r(etter)h(o)n(v)n(erview)e(and)i
+(easier)f(system)g(main)n(tenance.)h(It)g(also)681 2390
+y(helps)j(automatic)g(generation)g(of)g(user)g(do)r(cumen)n(tation.)805
+2490 y(Eac)n(h)22 b(linktree)g(ma)n(y)g(b)r(e)h(con\014gured)f(to)g
+(comply)g(with)i(v)-5 b(arious)21 b(p)r(olicies)h(for)g(up)r(dating)681
+2590 y(to)34 b(new)h(v)n(ersions.)e(\\Progressiv)n(e")e(linktrees)j
+(upgrade)f(to)i(the)g(new)n(est)g(v)n(ersion)e(of)i(an)n(y)681
+2690 y(application,)20 b(ev)n(en)h(if)g(it)g(mark)n(ed)f(as)g
+(alpha-test)h(soft)n(w)n(are.)e(\\Co)n(w)n(ard")f(linktrees)i(only)h
+(use)681 2789 y(v)n(ersions)f(mark)n(ed)g(as)h(stable.)g(Bet)n(w)n(een)
+g(these,)h(sev)n(eral)d(other)i(p)r(olicies)h(exist.)f(In)h(addition)
+681 2889 y(p)r(olicies)h(ma)n(y)f(include)h(the)h(application's)e
+(origin,)g(i.e.)j(whic)n(h)e(stores)f(the)h(linktree)g(trusts.)805
+2989 y(Store)37 b(is)h(main)n(tained)f(b)n(y)g(a)g(n)n(um)n(b)r(er)g
+(of)h(P)n(erl)e(scripts.)h(The)g(scripts)g(p)r(erform)g(the)681
+3089 y(ma)5 b(jorit)n(y)25 b(of)i(the)g(tasks)g(needed,)g(except)g(for)
+f(most)h(of)f(the)i(compilation)e(pro)r(cess,)g(whic)n(h)681
+3189 y(ha)n(v)n(e)g(pro)n(v)n(ed)g(di\016cult)j(to)e(automate)g(on)g(a)
+h(general)e(basis.)681 3462 y Fj(8)112 b(Where)37 b(is)g(it)f(Being)h
+(Used?)681 3666 y Fn(Curren)n(tly)-7 b(,)32 b(Store)g(is)g(b)r(eing)h
+(used)g(at)f(the)h(Univ)n(ersit)n(y)f(of)h(T)-7 b(rondheim,)32
+b(where)g(10-20)f(of)681 3766 y(its)20 b(departmen)n(ts)g(and)g
+(faculties)g(co)r(op)r(erate)f(in)h(administering)g(third-part)n(y)f
+(applications)681 3865 y(through)f(a)h(common)g(Store)f(installation.)h
+(A)g(total)g(of)g(300)f(Unix)h(mac)n(hines)g(emplo)n(y)f(Store,)681
+3965 y(that)28 b(is)f(appro)n(ximately)f(half)i(the)g(n)n(um)n(b)r(er)f
+(of)h(Unix)f(mac)n(hines)g(at)h(the)g(Univ)n(ersit)n(y)-7
+b(.)805 4065 y(More)24 b(than)h(400)e(applications)h(are)g(installed)g
+(in)h(Store.)f(The)h(degree)f(to)g(whic)n(h)h(hard-)681
+4165 y(w)n(are)c(platforms)h(are)f(co)n(v)n(ered)g(v)-5
+b(aries.)21 b(Ho)n(w)n(ev)n(er,)f(most)j(of)f(the)h(common)f(Unix)g
+(platforms)681 4265 y(\(around)31 b(10\))h(are)f(reasonably)f(co)n(v)n
+(ered.)h(When)h(c)n(hec)n(k)n(ed,)f(appro)n(ximately)g(one)h(half)g(to)
+681 4364 y(t)n(w)n(o)27 b(thirds)h(of)h(the)f(most)g(frequen)n(tly)g
+(used)g(user-commands)f(at)h(a)g(t)n(ypical)g(w)n(orkstation)681
+4464 y(w)n(ere)f(loaded)f(from)i(Store.)f(The)h(remaining)e(commands)h
+(t)n(ypically)h(w)n(ere)e(shells)i(\(should)681 4564
+y(alw)n(a)n(ys)d(reside)i(under)h Fh(/bin)p Fn(\))e(and)i(standard)e
+(Unix)i(commands.)805 4664 y(Initial)38 b(installations)e(on)h
+(institutions)h(outside)f(the)h(Univ)n(ersit)n(y)f(of)g(T)-7
+b(rondheim)37 b(is)681 4764 y(b)r(eing)31 b(done,)h(although)e(none)i
+(of)f(these)h(are)e(y)n(et)h(of)h(the)g(same)e(size)i(as)e(the)i
+(installation)681 4863 y(at)27 b(the)h(Univ)n(ersit)n(y)f(of)g(T)-7
+b(rondheim.)p eop
+%%Page: 11 11
+11 10 bop 365 387 a Fj(9)112 b(Exp)s(eriences)365 619
+y Fn(W)-7 b(e)28 b(ha)n(v)n(e)f(learned)f(man)n(y)i(lessons)e(while)i
+(w)n(orking)e(with)i(Store.)365 833 y Fi(Higher)k(comp)s(etence.)41
+b Fn(While)35 b(Store)f(decreased)g(the)h(amoun)n(t)g(of)g(system)g(w)n
+(ork)e(re-)506 933 y(quired,)j(it)h(increased)e(the)h(need)h(for)e
+(those)h(few)n(er)g(p)r(ersons)f(to)h(ha)n(v)n(e)f(b)r(etter)i(skills)
+506 1033 y(regarding)26 b(the)i(applications)f(they)g(manage.)365
+1139 y Fi(Prev)-5 b(alence.)43 b Fn(As)25 b(so)r(on)f(as)g(w)n(e)h
+(reac)n(hed)e(a)i(threshold)f(\(i.e.)i(a)e(large)g(n)n(um)n(b)r(er)g
+(of)h(applica-)506 1238 y(tions)32 b(and)g(a)g(fair)f(n)n(um)n(b)r(er)h
+(of)g(hardw)n(are)e(platforms\),)i(new)g(faculties)g(and)g(depart-)506
+1338 y(men)n(ts)26 b(joining)f(the)h(Store-team)e(got)h(most)g(of)h
+(what)f(they)h(ev)n(er)e(needed)i(of)f(freew)n(are)506
+1438 y(and)e(third-part)n(y)e(applications.)g(Since)h(their)h(only)e
+(cost)h(w)n(as)f(the)i(price)f(of)g(extra)f(disk)506
+1537 y(space,)27 b(this)h(service)f(tended)h(to)f(b)r(ecome)h(v)n(ery)e
+(p)r(opular.)365 1643 y Fi(V)-8 b(ulnerabilit)m(y)g(.)45
+b Fn(After)24 b(ha)n(ving)e(used)i(Store)f(for)g(a)g(while,)g(w)n(e)h
+(ha)n(v)n(e)e(exp)r(erienced)h(higher)506 1743 y(vulnerabilit)n(y)34
+b(to)g(incorrect)f(installations.)h(W)-7 b(e)35 b(are)e(so)h(to)g(sp)r
+(eak)g(putting)h(all)f(the)506 1843 y(eggs)29 b(in)n(to)h(one)f(bask)n
+(et;)h(if)g(someone)f(in)n(tro)r(duces)g(a)h(fault)g(in)n(to)g(an)g
+(application)f(it)h(is)506 1942 y(spread)23 b(throughout)g(the)h(univ)n
+(ersit)n(y)f(within)h(the)g(next)g(da)n(y)-7 b(.)23 b(T)-7
+b(o)24 b(coun)n(ter)e(this,)i(m)n(uc)n(h)506 2042 y(w)n(ork)30
+b(has)h(b)r(een)g(put)h(in)n(to)e(authorization)g(and)h
+(con\014guration)e(mec)n(hanisms.)i(Also,)506 2141 y(Store)21
+b(mak)n(es)e(it)i(equally)f(easy)g(to)h(correct)e(faults)i(throughout)f
+(the)h(univ)n(ersit)n(y)f(within)506 2241 y(a)28 b(da)n(y)-7
+b(.)506 2347 y(A)34 b(metho)r(d)f(for)g(reducing)f(this)h(problem)g(is)
+g(to)g(ha)n(v)n(e)f(an)g(empiric)h(form)g(of)g(qualit)n(y)506
+2447 y(assurance:)j(No)g(automatic)h(up)r(dating)g(of)g(the)g(sla)n(v)n
+(e)e(stores,)h(and)h(only)f(man)n(ually)506 2546 y(initiated)29
+b(up)r(dating)e(of)h(sp)r(eci\014c)g(applications)e(on)i(the)g(sla)n(v)
+n(e)e(store)g(serv)n(ers.)365 2652 y Fi(Num)m(b)s(er)32
+b(of)f(arc)m(hitectures.)44 b Fn(During)25 b(the)i(\014rst)e(p)r(erio)r
+(d)h(of)g(Store,)g(w)n(e)f(exp)r(erienced)h(a)506 2752
+y(strong)g(trend)h(to)n(w)n(ards)f(standardization)f(on)i(a)f(small)h
+(n)n(um)n(b)r(er)g(of)g(OSes)f(supp)r(orted)506 2852
+y(b)n(y)k(Store.)g(Lately)-7 b(,)30 b(w)n(e)g(ha)n(v)n(e)f(exp)r
+(erienced)h(a)g(trend)g(the)h(other)e(w)n(a)n(y;)g(all)h(it)h(tak)n(es)
+e(is)506 2951 y(one)k(OS-bigot)f(willing)g(to)h(recompile)f(all)h
+(Store-applications)e(for)h(\\her")g(OS,)g(and)506 3051
+y(that)c(OS)g(is)g(supp)r(orted)f(throughout)g(the)h(univ)n(ersit)n(y)f
+(on)g(the)h(same)f(basis)g(as)g(ma)5 b(jor)506 3151 y(OSes.)365
+3257 y Fi(Consistency)-8 b(.)42 b Fn(Using)37 b(Store)g(as)g(a)g
+(framew)n(ork)f(for)h(installing)g(applications)g(ensures)506
+3356 y(that)i(one)f(application)f(is)h(installed)g(the)h(same)e(w)n(a)n
+(y)-7 b(,)37 b(indep)r(enden)n(t)i(of)f(hardw)n(are,)506
+3456 y(o)n(wnership,)22 b(and)g(disk-sharing)f(strategies.)g(Only)i
+(the)g(\014rst)f(p)r(erson)g(installing)g(a)g(new)506
+3555 y(application)34 b(decides)g(the)h(strategy)e(for)h(where)f(to)i
+(put)f(the)h(\014les.)f(Other)g(p)r(ersons,)506 3655
+y(recompiling)18 b(for)g(new)h(hardw)n(are)d(arc)n(hitectures)h(or)h
+(upgrading)f(v)n(ersions,)g(can)h(simply)506 3755 y(follo)n(w)23
+b(the)g(initial)g(setup.)h(This)f(often)g(implies)g(less)g(w)n(ork,)e
+(and)i(the)h(w)n(ork)d(remaining)506 3854 y(con)n(tains)27
+b(few)n(er)g(decisions.)365 3960 y Fi(Symlinks.)42 b
+Fn(Store)29 b(dep)r(ends)h(on)f(symlinks,)g(and)g(that)g(has)g(p)r
+(osed)g(some)f(problems,)h(al-)506 4060 y(though)c(not)g(as)f(man)n(y)g
+(as)h(feared)f(b)r(eforehand.)g(F)-7 b(or)25 b(instance,)f(the)i(maxim)
+n(um)e(n)n(um-)506 4160 y(b)r(er)32 b(of)g(links)g(allo)n(w)n(ed)f(b)n
+(y)g(Unix)h(\(normally)g(8,)f(although)g(some)h(OSes)f(ha)n(v)n(e)g
+(more\))506 4259 y(has)e(pro)n(v)n(en)e(to)r(o)h(small)h(in)g(some)f
+(circumstances.)g(When)h(using)f(the)h(automoun)n(ter,)506
+4359 y Fh(/store)f Fn(is)h(itself)i(a)e(symlink,)h(whic)n(h)f(increase)
+g(the)h(problem)f(quite)h(a)f(bit.)i(In)f(addi-)506 4458
+y(tion,)23 b(if)f(the)h(linktree)e(is)h(giv)n(en)g(a)f(partition)h(b)n
+(y)g(itself,)g(it)h(migh)n(t)f(require)f(an)g(increased)506
+4558 y(n)n(um)n(b)r(er)28 b(of)f(ino)r(des,)h(b)r(ecause)f(of)h(the)g
+(large)e(n)n(um)n(b)r(er)h(of)h(small)f(\014les.)365
+4664 y Fi(More)32 b(disk)g(usage.)41 b Fn(A)23 b(side)f(e\013ect)h(of)g
+(using)f(Store)g(is)h(an)f(increased)f(use)i(of)f(disk)h(space.)506
+4764 y(But)31 b(this)f(extra)e(cost)i(is)f(small)h(compared)e(to)i(the)
+g(p)r(erceiv)n(ed)f(reduction)h(of)g(system)506 4863
+y(administration)e(cost.)g(T)-7 b(o)28 b(compute)h(the)f(o)n(v)n
+(erhead)f(in)n(tro)r(duced)h(b)n(y)g(Store,)g(assume)p
+eop
+%%Page: 12 12
+12 11 bop 822 387 a Fn(a)24 b(system)g(consisting)g(of)g(2)h(master)e
+(stores)h(serving)f(4)h(sla)n(v)n(e)f(stores)g(eac)n(h,)h(four)g(arc)n
+(hi-)822 487 y(tectures,)e(10)g(linktrees)g(\(one)h(for)f(eac)n(h)g
+(serv)n(er\),)f(200)g(applications.)h(P)n(er)f(application,)822
+587 y(assume)32 b(3)g(arc)n(hitecture)f(dep)r(enden)n(t)i(\014les)f(of)
+h(an)f(a)n(v)n(erage)e(size)i(of)g(100)f(Kb)h(and)h(12)822
+686 y(arc)n(hitecture)d(indep)r(enden)n(t)j(\014les)f(of)f(an)h(a)n(v)n
+(erage)d(size)i(of)h(20)f(Kb.)g(The)h(extra)f(o)n(v)n(er-)822
+786 y(head)d(in)g(the)h(linktrees)e(is)h(10)f(serv)n(ers)f
+Fb(\002)i Fn(14)f(symlinks)h Fb(\002)g Fn(200)e(applications,)i(giving)
+822 886 y(24,000)18 b(symlinks.)i(If)g(eac)n(h)g(symlink)g(o)r(ccupies)
+g(512)e(b)n(ytes,)i(this)h(means)e(a)h(system)n(wide)822
+985 y(o)n(v)n(erhead)26 b(of)i(12)g(Mb)h(plus)f(some)g(extra,)f
+(minimal)i(space)f(for)f(directories.)g(The)i(\014les)822
+1085 y(in)35 b(a)g Fh(/usr/local)c Fn(tree)k(w)n(ould)g(b)r(e)g(10)f
+(serv)n(ers)f Fb(\002)i Fn(200)f(applications)g Fb(\002)h
+Fn([for)g(eac)n(h)822 1184 y(application)d(12)h(\014les)g(of)g(20)f(Kb)
+h(and)g(3)g(\014les)g(of)g(100)f(Kb],)h(resulting)g(in)g(a)g(total)g
+(of)822 1284 y(1080)28 b(Mb.)j(The)g(extra)e(\014les)h(in)h(Store)f
+(whic)n(h)g(are)g(not)g(directly)g(used)g(are)g(2)g(serv)n(ers)822
+1384 y Fb(\002)j Fn(200)g(applications)f Fb(\002)i Fn(3)f(v)-5
+b(arian)n(ts)32 b Fb(\002)i Fn(3)f(\014les)g Fb(\002)h
+Fn(100)e(Kb,)i(giving)e(360)h(Mb.)h(This)822 1483 y(means)27
+b(a)g(33\045)g(disk-space)f(o)n(v)n(erhead)g(for)h(this)h
+(con\014guration.)681 1594 y Fi(Con)m(tin)m(ued)33 b(main)m(tenance.)42
+b Fn(Con)n(tin)n(ued)d(main)n(tenance)g(is)g(imp)r(ortan)n(t.)g(W)-7
+b(e)40 b(receiv)n(e)822 1693 y(a)35 b(daily)h(mail,)f(rep)r(orting)g
+(the)h(status)g(of)f(the)h(Store)g(installation.)f(The)h(output)g(is)
+822 1793 y(adjustable.)27 b(The)g(rep)r(orts)f(ma)n(y)h(also)f(b)r(e)h
+(cen)n(tralized)g(if)g(one)g(supp)r(ort)g(sta\013)g(handles)822
+1893 y(m)n(ultiple)h(Store)f(installations.)681 2003
+y Fi(Reduced)k(Installation)j(time.)41 b Fn(When)22 b(a)f(new)g
+(computer)g(lab)g(with)h(10)e(mac)n(hines)h(w)n(as)822
+2103 y(installed,)34 b(it)g(to)r(ok)f(only)g(20)g(min)n(utes)h(to)g
+(link)g(up)g(all)f(applications)g(in)h(Store)f(that)822
+2202 y(supp)r(orted)24 b(the)h(giv)n(en)f(arc)n(hitecture.)f(This)h(is)
+h(v)n(ery)e(fast,)i(compared)e(with)i(the)g(alter-)822
+2302 y(nativ)n(e)i(situation:)g(recompilation)g(of)g(all)h(those)f
+(applications.)681 2413 y Fi(The)32 b(\014nal)h(decision)f(is)g(made)g
+(lo)s(cally)-8 b(.)43 b Fn(It)27 b(is)f(p)r(ossible)g(to)g
+Fe(fr)l(e)l(eze)h Fn(a)f(replica,)f(inhibit-)822 2512
+y(ing)32 b(further)g(automatic)g(up)r(dates)g(for)g(applications)f
+(considered)h(critically)f(imp)r(or-)822 2612 y(tan)n(t.)d(If)g(a)f
+(departmen)n(t)g(w)n(an)n(ts)g(to)h(use)f(a)h(sp)r(eci\014c)f(v)n
+(ersion)f(of)i(an)f(application,)h(they)822 2712 y(are)i(free)i(to)f
+(do)g(so.)g(They)h(can)f(ev)n(en)g(set)g(up)h(their)f(o)n(wn)g(master)g
+(for)g(that)h(applica-)822 2811 y(tion.)19 b(The)h Fh(/usr/local/bin)13
+b Fn(directory)18 b(can)h(b)r(e)h(placed)f(in)h(the)f(P)-7
+b(A)g(TH)20 b(en)n(vironmen)n(t)822 2911 y(v)-5 b(ariable)21
+b(b)r(efore)h Fh(/store/bin)p Fn(,)d(in)k(order)e(to)h(let)h(lo)r
+(cally)f(installed)g(applications)f(tak)n(e)822 3010
+y(precedence)27 b(o)n(v)n(er)f(Store-applications.)681
+3121 y Fi(Better)32 b(in)m(terdepartmen)m(tal)i(co)s(op)s(eration.)41
+b Fn(Departmen)n(ts)f(using)f(Store)h(are)f(im-)822 3221
+y(plicitly)e(encouraged)d(to)i(co)r(op)r(erate.)g(This)g(has)g
+(resulted)g(in)g(p)r(ositiv)n(e)g(side-e\013ects)822
+3320 y(at)e(this)h(univ)n(ersit)n(y:)f(a\))g(univ)n(ersit)n(y-wide)g
+(do)r(cumen)n(tation,)g(b\))h(sharing)e(of)i(h)n(uman)822
+3420 y(resources,)26 b(and)h(c\))h(the)g(qualit)n(y)f(p)r(er)g
+(application)g(is)h(maximized.)681 3530 y Fi(Less)j(duplication)j(of)e
+(w)m(ork.)42 b Fn(Store)29 b(has)g(resulted)h(in)g(a)g(reduced)f(w)n
+(orkload,)f(mainly)822 3630 y(due)g(to)f(less)g(duplication)h(of)f(w)n
+(ork)g(b)r(ecause)g(of)g(in)n(terdepartmen)n(tal)g(co)r(op)r(eration.)
+681 3740 y Fi(File)32 b(name)g(space)g(mangling.)42 b
+Fn(The)d(tec)n(hnique)g(of)g(mangling)f(the)i(attributes)f(in)n(to)822
+3840 y(the)28 b(\014le)f(system)g(name)h(space)e(ha)n(v)n(e)h(pro)n(v)n
+(ed)e(su\016cien)n(tly)j(strong.)e(In)i(addition,)f(it)h(is)822
+3940 y(simple,)e(p)r(ortable,)g(and)g(the)h(limit)g(of)f(255)f(c)n
+(haracters)e(in)k(\014le)f(names)g(do)r(es)g(not)g(p)r(ose)822
+4039 y(a)g(problem.)h(It)g(is)g(ev)n(en)g(preceden)n(ted,)f(as)g
+(compilers)g(use)h(the)h(\\\014le)e(t)n(yp)r(e")h(to)g(decide)822
+4139 y(the)h(t)n(yp)r(e)g(of)f(con)n(ten)n(ts)g(of)h(a)f(\014le.)681
+4250 y Fi(Name)k(space)h(dimensions.)41 b Fn(Store)35
+b(only)h(uses)f(t)n(w)n(o)g(dimensions:)h(arc)n(hitecture)f(and)822
+4349 y(domain.)24 b(Ho)n(w)n(ev)n(er,)e(w)n(e)i(en)n(vision)g(at)g
+(least)g(\014v)n(e)g(suc)n(h)g(dimensions:)g(hardw)n(are,)f(op)r(er-)
+822 4449 y(ating)e(system,)h(geographic)e(lo)r(cation,)h
+(organizational)f(a\016liation,)h(and)h(release)f(t)n(yp)r(e)822
+4548 y(\(alpha,)28 b(b)r(eta,)g(etc\).)h(Store)e(uses)h(one)f
+(dimension)h(\(arc)n(hitecture\))g(for)f(the)i(t)n(w)n(o)e(\014rst;)822
+4648 y(and)i(another)f(\(domain\))i(the)g(the)f(t)n(w)n(o)g(next.)h
+(The)f(last)g(dimension)g(is)g(put)h(in)n(to)f(the)822
+4748 y(con\014guration)21 b(\014le)i(for)g(the)g(application,)f(as)g
+(all)h(\014les)g(of)g(a)f(v)n(ersion)g(in)h(an)f(application)822
+4847 y(are)27 b(considered)f(to)i(b)r(e)g(of)f(the)h(same)f(release)f
+(t)n(yp)r(e.)p eop
+%%Page: 13 13
+13 12 bop 365 387 a Fj(10)112 b(F)-9 b(urther)38 b(Dev)m(elopmen)m(ts)
+365 629 y Fn(P)n(ossible)26 b(future)i(dev)n(elopmen)n(ts)f(include:)
+365 828 y Fi(Alternativ)m(e)35 b(transp)s(ort)d(mec)m(hanisms.)41
+b Fn(Curren)n(tly)-7 b(,)33 b(NFS)h(is)f(the)h(only)f(supp)r(orted)506
+928 y(transp)r(ort)f(mec)n(hanism.)h(In)g(the)g(future,)g(supp)r(ort)g
+(for)f(other)h(mec)n(hanisms)f(will)h(b)r(e)506 1027
+y(included:)k(ftp,)f(the)g(alex)f(\014le)h(system,)f(w)n(orld)f(wide)i
+(w)n(eb,)f(etc.)h(Also,)f(supp)r(ort)h(for)506 1127 y(transp)r(ort)27
+b(to)h(other)f(systems)g(than)g(Store)g(will)h(b)r(e)g(implemen)n(ted.)
+365 1235 y Fi(Non-Unix)33 b(platforms.)41 b Fn(Some)k(initial)g(exp)r
+(erimen)n(ts)g(ha)n(v)n(e)e(b)r(een)i(p)r(erformed)g(with)506
+1335 y(PCs)27 b(under)f(DOS,)i(using)e(PC-NFS)h(as)f(the)i(transp)r
+(ort)e(mec)n(hanism.)g(PC-NFS)h(han-)506 1434 y(dles)36
+b(symlinks,)f(and)g(tec)n(hnically)f(it)i(w)n(ork)n(ed)e(fairly)g(w)n
+(ell.)h(Ho)n(w)n(ev)n(er,)f(some)g(ma)5 b(jor)506 1534
+y(conceptual)26 b(problems)g(turned)g(up:)h(most)f(freew)n(are)f
+(applications)h(are)f(either)h(Unix-)506 1633 y(only)d(or)f(DOS-only)-7
+b(.)23 b(Th)n(us,)g(the)g(adv)-5 b(an)n(tage)22 b(of)h(main)n(taining)f
+(a)h(m)n(ulti-platform)g(con-)506 1733 y(\014guration)k(of)g(pac)n(k)-5
+b(ages)26 b(disapp)r(ears.)506 1841 y(Another)31 b(problem)f(is)h(that)
+g(site-sp)r(eci\014c-con\014guration)d(and)j(user-sp)r
+(eci\014c-con\014g-)506 1941 y(uration)d(are)g(often)g(mixed)h
+(together)f(in)g(the)h(same)f(con\014guration)f(\014le)i(under)f(DOS;)
+506 2040 y(under)g(Unix)g(these)f(are)g(generally)f(more)h(separated.)
+506 2148 y(F)-7 b(urthermore,)28 b(under)f(DOS)i(and)f(Windo)n(ws,)g
+(programs)d(p)r(erforming)j(certain)f(tasks)506 2248
+y(during)37 b(program)e(installation)h(that)h(Unix)g(t)n(ypically)g(p)r
+(erforms)f(during)g(program)506 2348 y(startup,)41 b(e.g.)24
+b(mail)40 b(programs)f(under)h(DOS)h(t)n(ypically)e(set)i(the)g(user)e
+(name)i(dur-)506 2447 y(ing)30 b(installation,)f(while)g(under)h(Unix)g
+(the)g(programs)d(read)i(the)g(user)g(name)h(during)506
+2547 y(startup.)g(Th)n(us,)h(DOS-applications)e(are)g(often)i
+(single-user)d(applications)i(that)g(are)506 2646 y(di\016cult)f(to)e
+(incorp)r(orate)f(in)n(to)i(a)f(system)g(lik)n(e)g(Store.)365
+2755 y Fi(Automatic)33 b(do)s(cumen)m(tation)g(for)f(the)f(end-user.)41
+b Fn(W)-7 b(e)31 b(ha)n(v)n(e)e(plans)h(for)g(a)g(WWW)506
+2854 y(gatew)n(a)n(y)38 b(to)h(semi-automatically)f(generated)h(h)n(yp)
+r(ertext)g(do)r(cumen)n(tation)g(ab)r(out)506 2954 y(the)30
+b(applications)e(in)h(Store,)f(where)h(the)g(user)f(can)h(na)n(vigate)e
+(b)r(et)n(w)n(een)i(information)506 3053 y(ab)r(out)k(applications,)f
+(the)g(p)r(ersons)g(that)h(installed)f(those)g(applications,)g(the)h
+(cate-)506 3153 y(gory)g(of)g(an)h(application)f(\(e.g.)g(image)g(pro)r
+(cessing,)f(games\),)h(the)i(licensing)e(condi-)506 3253
+y(tions,)27 b(the)h(man)n(ual)e(pages,)h(info)g(pages,)f(examples,)h
+(release)e(notes,)i(lo)r(cal)g(di\013s,)g(and)506 3352
+y(so)h(on.)g(Added)h(to)f(this,)g(some)g(searc)n(h)e(forms)i(should)g
+(also)f(b)r(e)h(presen)n(t,)g(so)f(that)i(the)506 3452
+y(end)20 b(user)g(can)f(easily)g(\014nd)h(the)g(program)e(needed)i(giv)
+n(en)f(some)g(k)n(eyw)n(ords)f(ab)r(out)h(what)506 3552
+y(the)k(user)e(w)n(an)n(ts)h(to)g(do.)g(This)g(w)n(ould)f(giv)n(e)h
+(one)f(W)-7 b(eb)23 b(\\home-page")d(p)r(er)i(application,)506
+3651 y(through)27 b(whic)n(h)h(all)f(information)g(ab)r(out)h(the)g
+(system)f(is)g(accessible.)365 3759 y Fi(Impro)m(v)m(ed)33
+b(feedbac)m(k.)42 b Fn(F)-7 b(eedbac)n(k)40 b(information)g(should)g
+(go)f(directly)h(b)n(y)g(electronic)506 3859 y(mail)26
+b(to)f(the)h(p)r(erson)f(that)h(installed)f(an)h(application,)f(not)g
+(just)h(to)g(a)f(supp)r(ort)g(team.)365 3967 y Fi(Av)-5
+b(ailabilit)m(y)37 b(monitor.)k Fn(NFS,)30 b(although)f(stateless,)g
+(is)g(v)n(ery)g(vulnerable)f(to)i(a)f(situa-)506 4066
+y(tion)g(where)f(the)h(serv)n(er)e(for)h(a)g(moun)n(ted)h(\014le)g
+(system)f(b)r(ecomes)g(una)n(v)-5 b(ailable.)28 b(If)h(the)506
+4166 y(serv)n(er)e(do)r(es)h(not)h(come)f(up)h(again,)e(programs)g
+(accessing)g(those)h(moun)n(t)h(p)r(oin)n(ts)f(will)506
+4266 y(hang,)h(causing)g(the)h(clien)n(t)g(mac)n(hine)f(to)g(b)r(ecome)
+h(rather)e(un)n(usable.)h(Neither)h(Sun's)506 4365 y(\\automoun)n(ter")
+h(nor)g(\\amd")h(pro)n(vide)f(the)i(needed)f(functionalit)n(y)h(to)f
+(switc)n(h)g(to)h(a)506 4465 y(di\013eren)n(t)c(serv)n(er)d
+(on-the-\015y)-7 b(.)27 b(By)h(ha)n(ving)f(iden)n(tical)h(stores)f
+(with)h(application)g(repli-)506 4565 y(cas)e(only)-7
+b(,)26 b(and)g(an)h(extra)e(lev)n(el)h(of)g(indirection,)h(one)f(can)g
+(switc)n(h)g(to)g(a)g(serv)n(er)f(that)h(is)506 4664
+y(a)n(v)-5 b(ailable)27 b(when)i(the)f(previous)f(one)h(b)r(ecomes)f
+(una)n(v)-5 b(ailable.)27 b(Note)i(that)f(this)g(is)g(also)506
+4764 y(p)r(ossible)f(with)g(the)h(traditional)e(approac)n(h,)f(just)i
+(let)g Fh(/usr/local)c Fn(b)r(e)k(a)g(symlink)f(to)506
+4863 y(e.g.)f Fh(/usr/locals/)p Fe(machine)p Fn(.)p eop
+%%Page: 14 14
+14 13 bop 681 387 a Fi(Virtual)34 b(stores.)40 b Fn(Curren)n(tly)-7
+b(,)34 b(stores)f(are)g(lo)r(cated)h(b)r(elo)n(w)g Fh(/store/store)p
+Fn(.)c(Ho)n(w)n(ev)n(er,)822 487 y(b)n(y)i(adding)g(an)g(extra)g(lev)n
+(el)g(of)g(indirection,)g(the)h(lev)n(el)f(sp)r(ecifying)g(the)h(lo)r
+(cation)f(of)822 587 y(the)i(store)f(can)g(b)r(e)h(remo)n(v)n(ed.)f(If)
+h Fh(/store/store/idt)27 b Fn(is)34 b(a)f(virtual)g(store,)g(then)h(it)
+822 686 y(can)c(dynamically)g(b)r(e)g(replaced)g(b)n(y)g(an)n(y)f(of)i
+(a)f(set)g(of)g(iden)n(tical)h(stores.)e(T)-7 b(o)30
+b(b)r(ecome)822 786 y(e\013ectiv)n(e,)25 b(this)g(feature)g(needs)g
+(the)h(a)n(v)-5 b(ailabilit)n(y)23 b(monitor.)i(Ho)n(w)n(ev)n(er,)e
+(for)i(t)n(w)n(o)f(stores)822 886 y(to)j(b)r(e)h(iden)n(tical,)g(they)g
+(cannot)f(b)r(e)h(master)f(stores)f(for)h(an)n(y)g(application.)681
+985 y Fi(Con\015ict)32 b(handling.)43 b Fn(When)c(con\015icts)f(b)r(et)
+n(w)n(een)g(applications)f(o)r(ccur,)h(they)g(can)g(b)r(e)822
+1085 y(resolv)n(ed,)32 b(based)h(up)r(on)h(metrics)g(describing)f(the)h
+(imp)r(ortance)f(of)h(the)g(application)822 1184 y(and)29
+b(the)h(source)e(of)h(an)h(application)e(\(i.e.)e(whic)n(h)j(master)f
+(store,)h(who)g(installed)g(the)822 1284 y(application\).)681
+1553 y Fj(11)112 b(More)38 b(Information)681 1752 y Fn(More)20
+b(information)g(ab)r(out)g(the)i(Store)e(system)g(can)h(b)r(e)g(found)g
+(at)g(the)g(anon)n(ymous)e(ftp)j(site)681 1852 y(ftp.p)n(vv.unit.no,)35
+b(in)g(the)g(directory)e(\\/pub/store",)f(and)i(through)g(W)-7
+b(orld)34 b(Wide)h(W)-7 b(eb)681 1952 y(from)27 b(h)n(ttp://www.p)n
+(vv.unit.no/~arnej/store/storedo)r(c.h)n(tml.)681 2221
+y Fj(12)112 b(Conclusion)681 2420 y Fn(W)-7 b(e)33 b(think)g(that)g
+(Store)f(pro)n(vides)f(a)h(suitable)g(en)n(vironmen)n(t)g(for)g
+(installing)g(third-part)n(y)681 2519 y(applications,)26
+b(and)h(eases)f(the)h(the)h(daily)f(tasks)f(of)h(the)h(computer)e
+(systems)h(administra-)681 2619 y(tion)34 b(sta\013s.)f(The)h(main)g
+(e\013ects)g(are)f(b)r(etter)h(o)n(v)n(erview;)e(the)i(automation)f(of)
+h(rep)r(etitiv)n(e)681 2719 y(and)23 b(trivial)f(tasks;)g(ensured)g
+(consistency;)h(the)g(considering)e(of)i(man)n(y)g(computers)f(as)g
+(one)681 2818 y(system.)805 2918 y(W)-7 b(e)22 b(ha)n(v)n(e)e(got)g(p)r
+(ositiv)n(e)h(exp)r(eriences)f(from)h(installing)g(Store)g(at)g(v)-5
+b(arious)20 b(installations)681 3018 y(at)f(the)h(Univ)n(ersit)n(y)f
+(of)h(T)-7 b(rondheim,)19 b(where)g(curren)n(tly)-7 b(,)19
+b(around)g(half)g(the)h(Unix-computers)681 3117 y(use)25
+b(Store.)f(The)i(feedbac)n(k)e(from)h(users)f(ha)n(v)n(e)g(b)r(een)i
+(generally)d(pleasan)n(t,)h(although)h(most)681 3217
+y(users)34 b(are)h(not)g(a)n(w)n(are)e(of)i(Store,)g(ev)n(en)g(though)g
+(most)g(of)h(their)f(to)r(ols)g(are)f(installed)h(in)681
+3316 y(Store.)681 3585 y Fj(References)681 3776 y Fl(1.)42
+b(Stephen)29 b(N.)c(Clark)32 b(Kenneth)23 b(Manheimer,)31
+b(Barry)g(A.)f(W)-6 b(arsa)n(w)32 b(and)e(W)-6 b(alter)31
+b(Ro)n(w)n(e.)49 b(The)782 3868 y(dep)r(ot:)23 b(A)f(framew)n(ork)h
+(for)g(sharing)h(soft)n(w)n(are)g(installation)h(across)f
+(organizational)h(and)d(unix)782 3959 y(platform)h(b)r(oundaries.)33
+b(Pro)r(ceedings)24 b(of)g(the)e(F)-6 b(ourth)21 b(Large)j
+(Installation)g(Systems)d(Admin-)782 4050 y(istration)27
+b(IV.)33 b(Colorado)28 b(Springs,)e(Colorado,)i(Octob)r(er)e(1990.)681
+4142 y(2.)42 b(Thomas)25 b(A.)40 b(Lundgren.)78 b(A)40
+b(\014le)h(serv)n(er)f(directory)h(tree)f(hierac)n(h)n(y)-6
+b(.)78 b(T)-6 b(ec)n(hnical)41 b(Rep)r(ort)782 4233 y
+(ETX/TX/DD-91:110,)28 b(Ericsson)f(T)-6 b(elecom,)26
+b(Jan)n(uary)g(1992.)681 4324 y(3.)42 b(S.)25 b(Bouc)n(her,)j(M.)e
+(Dagenais,)k(R.)24 b(G)n(\023)-36 b(erin-La)t(joie,)31
+b(P)-6 b(.)25 b(Laplan)n(te,)j(and)g(P)-6 b(.)25 b(Mailhot.)42
+b(LUDE:)28 b(A)782 4416 y(Distributed)d(Soft)n(w)n(are)i(Library)-6
+b(.)34 b(Univ)n(ersit)n(y)25 b(of)h(Mon)n(treal,)h(June)f(1993.)681
+4507 y(4.)42 b(Melvin)22 b(J.)k(Pleasan)n(t)g(Jr.)d(and)e(Eliot)26
+b(Lear.)34 b(T)-6 b(ranscending)22 b(administrativ)n(e)g(domains)f(b)n
+(y)g(au-)782 4598 y(tomating)e(system)g(managemen)n(t)f(tasks)i(in)f(a)
+h(large)h(heterogeneous)f(en)n(vironmen)n(t.)30 b(USENIX)782
+4690 y(W)-6 b(orkshop)25 b(Pro)r(ceedings.)36 b(New)26
+b(Orleans,)g(Louisiana,)i(April)d(1989.)681 4847 y(This)h(article)h(w)n
+(as)g(pro)r(cessed)f(using)g(the)f(L)1936 4830 y Fa(A)1969
+4847 y Fl(T)2011 4863 y(E)2055 4847 y(X)g(macro)h(pac)n(k)l(age)g(with)
+g(LLNCS)f(st)n(yle)p eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/td-drift/950209.referat.html b/td-drift/950209.referat.html
new file mode 100755 (executable)
index 0000000..7262613
--- /dev/null
@@ -0,0 +1,52 @@
+<HTML>
+<HEAD>
+<TITLE>Referat, møte i TD's driftsgruppe, Torsdag 9. Februar 1995</TITLE>
+<LINK REV="made" HREF="mailto:runeb@stud.cs.uit.no">
+</HEAD>
+<BODY>
+<H1>Referat, møte i TD's driftsgruppe, 
+<BR>9. Februar 1995</H1>
+
+Tilstede: Rune Braathen, Petter Reinholdtsen, Frode Fjeld, Per Harald Myrvang, Hans
+Ole Rafaelsen, mm
+
+<P>Fordeling av arbeidsoppgaver for semesteret, pr. maskin:
+
+<P><table border>
+<th>hostname           <th>maskintype          <th>Ansvarlig
+<tr><td>                       <td>PS/2                <td>-   Frode 
+<tr><td>spurv          <td>SPARC               <td>-   Hans Ole 
+<tr><td>dc9 *          <td>MicroVAX    <td>-   Michael 
+<tr><td>               <td>HP3000              <td>-   Per
+<tr><td>minerva                <td>386         <td>-   Petter
+</table>
+* dc9 er pr. nå ikke operativ
+
+
+<H2>Prioriterte oppgaver:</H2>
+
+<OL>
+<LI>Nameserver for domain td.org.uit.no på spurv
+<LI>eksportering av filsystemet v.h.a. STORE
+<LI>IBM4019 printer i drift
+<LI>w3-server på spurv
+</OL>
+
+
+<H2>Andre oppgaver:</H2>
+
+<P>Rune renskriver og sender Benchmark-resultater for maskiner
+tilhørende Nordix data og Cinet til de respektive.
+
+<P>Frode undersøker muligheter for konfigurert versjon av Doom for
+spilling på videokanon under UKA-95.
+
+<P>Petter undersøker muligheter for større lokaler, samt spørsmål
+rettet til EDB-utvalget angående Ether-kabel til TD-laben.
+
+<HR>
+<ADDRESS><A HREF="mailto:runeb@stud.cs.uit.no">Rune Braathen</A></ADDRESS>
+
+</BODY>
+</HTML>
+
diff --git a/td-drift/950330.referat.html b/td-drift/950330.referat.html
new file mode 100755 (executable)
index 0000000..8f9a7b9
--- /dev/null
@@ -0,0 +1,40 @@
+<HTML>
+<HEAD>
+<TITLE>Referat, TD's driftsmøte, Torsdag 30, Mars.</TITLE>
+<LINK REV="made" HREF="mailto:runeb@stud.cs.uit.no">
+</HEAD>
+<BODY>
+<H1>Referat, møte i TD's driftsgruppe,
+<BR> Torsdag 30, Mars. 1995</H1>
+
+Tilstede: Rune Braathen, Hans Ole Rafaelsen, Per Harald Myrvang, mm.
+
+<H2>1. Status for labben/maskinene (Hva er gjort siden sist)</H2>
+
+De driftsansvarlige for spurv avventer ankomst av Solaris 2.4 for å
+enklere installere en fungerende nameserver. Med operativ nameserver,
+vil det være mulig for TD å tilby medlemmer <STRONG>uten</STRONG> nettaccess mail,
+news og UNIX shell-konto. Dette vil åpne for nye medlemmer utenfor
+SfI, og vil føre til en betraktelig økning i medlems-massen, og
+derfor også TD's økonomi. 
+
+<H2>2. Utlevering av brukerlista til Informatikk/TK</H2>
+
+Forespørsel fra TK's leder Ørjan Robertsen, om jevnlig rapport over
+hvem som til enhver tid anvender TD's maskiner ble diskutert. Saken
+ble imidlertid ikke avgjort, pga. av at Robertsens begrunnelse for
+hvorfor han ønsket disse opplysningene ikke var tilgjengelige for møtet.
+
+
+<H2>3. Eventuelt</H2>
+
+Rune Braathen vil forespørre Studieadministrasjonen ved fagområdet
+Medisin om å donere noen utrangerte gamle 286-maskiner til TD's
+maskinpark. 
+
+<HR>
+<ADDRESS><A HREF="mailto:runeb@stud.cs.uit.no">Rune Braathen</A></ADDRESS>
+
+</BODY>
+</HTML>
+
diff --git a/td-drift/foreningstilgang.html b/td-drift/foreningstilgang.html
new file mode 100644 (file)
index 0000000..8153dad
--- /dev/null
@@ -0,0 +1,35 @@
+<HTML>
+<HEAD>
+<TITLE></TITLE>
+<!-- Changed by: Petter Reinholdtsen, 23-Oct-1996 -->
+<LINK REV="made" HREF="mailto:pere@td.org.uit.no">
+<BASE HREF="http://www.td.org.uit.no/">
+
+</HEAD>
+<BODY>
+Petter Reinholdtsen
+<BR>1996-10-23
+<HR>
+<H1>Om TD og andre foreninger</H1>
+
+Andre foreninger bør generelt sett få mulighet til å ha sine websider
+på TDs server når det ikke eksisterer andre muligheter.  Den eneste
+forutsetningen er at et medlem i TD har sagt seg villig til å vedlike
+holde sidene.  Den aktuelle foreningen bør først vurdere om
+EDB-senterets tilbud kan benyttes.  Kontakt Webmaster på EDB-senteret
+for å finne ut av dette.
+
+<P>Hvis foreningen ønsker dette, så kan de få en URL på rot-nivå, slik
+<A HREF="/studentsamfunnet/">Studentsamfunnet</A> og
+<A HREF="/hoyre/">Hoyre</A> har fått det.
+
+<P>I tvilstilfeller avgjør TD-drift hva som skal gjøres.  Foreningene
+har klagerett til TD-styret som endelig avgjør saken.
+
+<HR>
+<ADDRESS>Petter Reinholdtsen -
+<A HREF="mailto:pere@td.org.uit.no">pere@td.org.uit.no</A></ADDRESS>
+
+</BODY>
+</HTML>
+
diff --git a/td-drift/letter2.gif b/td-drift/letter2.gif
new file mode 100644 (file)
index 0000000..919d56e
Binary files /dev/null and b/td-drift/letter2.gif differ
diff --git a/td-drift/skjema.html b/td-drift/skjema.html
new file mode 100644 (file)
index 0000000..4a35657
--- /dev/null
@@ -0,0 +1,133 @@
+<html>
+<body>
+
+
+<title>TDs Bruker-skjema,</title>
+
+<hr>
+
+<IMG align="left"   SRC="/~tdadm/bilder/logo.gif"> 
+
+TD's driftsgruppe tilbyr internet-tilgang til alle medlemmer av
+TD.. Terminalene befinner seg på rom A-0602, innenfor bomberommet i
+kjelleren på IMR.  Brukerne av TDs maskinpark må fylle ut følgende
+skjema for å få tilgang til nettet.  Bruken av maskinparken er
+underlagt Universitetet i Tromsøs retningslinjer for bruk av
+universitetets edb-anlegg.  Kontakt "TD-drift
+&lt;td-drift@cs.uit.no&gt;" hvis du har spørsmål.
+
+<br clear=all>
+<hr>
+<H1>Brukerkontrakt</H3>
+<h2>Brukeropplysninger</h2>
+<ul>
+<TABLE>
+<TR><TH>Fornavn<TD>
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<TR><TH>Etternavn<TD>
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<TR><TH>Telefon<TD>
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<TR><TH>Brukernavn<TD>
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+</TABLE>
+
+<b>NB!</b> Brukernavn skal ideelt bestå av brukerens fornavn + første
+bokstav av etternavnet.Eks: Svenn Høgda = <tt>svennh</tt>, Ali Baba =
+<tt>alib</tt>. Kuriose brukernanvn som <tt>sohot4u</tt>,
+<tt>fantomet</tt> o.l. er ikke tillatt.  Brukernavnet kan bli
+annerledes pga. navnekollisjoner.
+
+<p>
+</ul>
+<hr>
+<h2>Oppsett</h2>
+<ul>
+<TABLE>
+<TR><TH>Email-addresse<TD>
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+<IMG  WIDTH=21 HEIGHT=25 SRC="letter2.gif">
+</TABLE>
+
+Hvis du vil at elektronisk post til din bruker skal videresendes til
+en annen addresse, fyll den inn her. Hvis ikke, kan du la feltet stå
+åpent.  <p> </h4> <p> </ul>
+
+<hr>
+<UL>
+Undertegnede bekrefter herved å ha lest gjennom og forstått gjeldende
+retningslinjer for bruk av universitetets edb-anlegg, og er
+inneforstått med det ansvar som bruk av utstyret medfører.
+</UL>
+<BR><BR>
+<HR align=left width=50%>
+Sted, dato og signatur
+
+</body>
+</html>
+
diff --git a/td-drift/tddb.gif b/td-drift/tddb.gif
new file mode 100644 (file)
index 0000000..a067946
Binary files /dev/null and b/td-drift/tddb.gif differ
diff --git a/td/jubile.budsjett.html b/td/jubile.budsjett.html
new file mode 100644 (file)
index 0000000..7eaa405
--- /dev/null
@@ -0,0 +1,41 @@
+
+
+Flyreise 2xOslo-Tromsø T/R         5600,-
+Hotell 2x1 natt                    1000,-
+Hybel, 4 dager                      600,-
+Div. bevertning debatt.             600,-
+
+Div. bevertning arr.               1400,-
+PR-materiell                        500,-
+Transport                           400,-
+Støtte DND  (1 reise og opphold)            4000,-
+Støtte IMR                     )            2000,-
+Støtte EDB-senteret                         3000,-
+Støtte Trygg Data                            500,-
+--------------------------------------------------
+                                   9100,-   9500,-
+
+<H2>Penger</H2>
+
+Har søkt penger hos:
+
+Seksjon for Informatikk              2000,- *
+IMR                                  2000,- *
+IRV                                  3000,- *
+EDB-Senteret                         2000,- *
+
+UniReiser AS            776 73422    (Reise) *
+
+CINET                  776 10099    3000,- -
+Comma                  776 80874    3000,-
+Datavarehuset          776 75754    3000,-
+EDB Kunnskap AS                776 11755    3000,-
+HøyskoleData           776 82252    3000,-
+ICL Service AS         776 74210    3000,-
+Polar Data             776 86020    3000,-
+Kabel Connection       776 31578    3000,- *
+KSEdb                  776 74078    3000,-
+MikroSys               776 15055    3000,-
+Sikker Data ANS                776 89800    3000,-
+Trygg Data             776 74044    3000,-
+NIT                    776 21800    3000,-
diff --git a/td/jubile.debatt.html b/td/jubile.debatt.html
new file mode 100644 (file)
index 0000000..069d44b
--- /dev/null
@@ -0,0 +1,59 @@
+<HTML>
+<HEAD>
+<TITLE>Debatt om nett og juss</TITLE>
+<LINK REV="made" HREF="mailto:petterr@cs.uit.no">
+</HEAD>
+<BODY>
+
+<H1>Debatt: Elekronisk informasjonsformidlings forhold i Norge</H1>
+Tid: Tirsdag 25. april kl. 18:15
+<BR>Sted: Store Auditorium, IMR/UiTø
+
+<P>Vi forsøker å få debatten sendt ut over MBONE.
+
+<H2>Tema</H2>
+<BLOCKQUOTE>
+Hvilke forhold skal elektroniske oppslagstavler og elektronisk
+formidling av informasjon ha i Norge.
+
+<P>Hvilke konsekvenser vil eventuell innføring av redaktøransvar for
+formidling av elektroniske konferansesystem få.
+
+<P>Hva innebærer en eventuell konsesjonsordning for videreformidling
+av nett-tjenester for ytringsfriheten og den nasjonale infrastrukturen
+på dette området.
+</BLOCKQUOTE>
+<H2>Paneldeltagere</H2>
+<DL>
+<DT>Gisle Hannemyr
+<DD>Oslonett A/S / <A HREF="http://www.oslonett.no/home/efn/">Elektronisk Forpost Norge</A>s Råd
+<DT>Stein A. J. Møllerhaug 
+<DD>DND/Skrivervik Data
+<DT>Ande Somby
+<DD>stipendiat ved Institutt for Rettsvitenskap
+</UL>
+
+<H2>Innleder</H2>
+<UL>
+<LI>Tage Stabell-Kulø
+</UL>
+
+<H2>Ordstyrer</H2>
+<UL>
+<LI>Terje Fallmyr
+</UL>
+
+Dette er et samarbeidsarangement med Den Norske Dataforening/Tromsø
+
+<P>Stein A. J. Møllerhaug lanserte ideen om konsesjonsordning for
+elektroniske oppslagstavler i rapperten 
+<A HREF="/~petterr/reports/oppslagstavler.regl.html">"Nytt Media Med
+Nye Muligheter: Elektroniske Oppslagstavler"</A> resultatet fra et
+prosjekt i Den Norske Dataforening.
+
+<HR>
+<ADDRESS>Petter Reinholdtsen - petterr@stud.cs.uit.no</ADDRESS>
+
+</BODY>
+</HTML>
+
diff --git a/td/jubile.gjest.html b/td/jubile.gjest.html
new file mode 100644 (file)
index 0000000..24fe035
--- /dev/null
@@ -0,0 +1,20 @@
+<HTML>
+<HEAD>
+<TITLE></TITLE>
+<LINK REV="made" HREF="mailto:petterr@cs.uit.no">
+</HEAD>
+<BODY>
+<H1>Gjester ved TDs jubileumsuke</H1>
+
+
+<UL>
+<LI>Stig S. Bakken &lt;ssb@pvv.unit.no&gt;
+        <BR>Programvareverkstedet, Universitetet i Trondheim
+        <BR>Kommer 24. april, trenger overnatting
+</UL>
+<HR>
+<ADDRESS>Petter Reinholdtsen - petterr@stud.cs.uit.no</ADDRESS>
+
+</BODY>
+</HTML>
+
diff --git a/td/jubile.jobb.txt b/td/jubile.jobb.txt
new file mode 100644 (file)
index 0000000..34da03a
--- /dev/null
@@ -0,0 +1,21 @@
+En del ting som må gjøres før TD jubilerer:
+
+- Kontakt hotell, skaff priser [Vegar]
+- Organiser kaffe til debatt [Vegar]
+
+- Kontakt UniReiser, skaff flypriser og sponsing? [Petter]
+- Søk om penger [Frode/Petter]
+- Sett opp budsjett og presenter det for DND [Petter]
+- Send program til DND [Petter]
+- Få kontakt med Hannemyr/Møllehaug [Petter]
+- Skaff ordstyrer / innleder til debatten [Petter]
+
+- Kontakt Stig Johansen og hør om han er interessert i å forelese [Espen]
+- Organiser kaffe til foredrag [Espen]
+
+- Annonser/PR (edb-kons/plakater/div.) [??]
+- Lage en aktivitetsplan for de 3-4 stykkene som kommer fra sør. [??]
+- Skaff overnatting for 2-3 personer [??]
+- Organiser stereo og drikke til Klassisk forum [?]
+
+Alle må sende mail når de kommer tilbake fra påskeferie.
\ No newline at end of file
diff --git a/td/jubile.oppsum.html b/td/jubile.oppsum.html
new file mode 100644 (file)
index 0000000..9da5e9c
--- /dev/null
@@ -0,0 +1,38 @@
+<HTML>
+<HEAD>
+<TITLE></TITLE>
+<LINK REV="made" HREF="mailto:petterr@stud.cs.uit.no">
+</HEAD>
+<BODY>
+<H1>Tromsøstudentenes Dataforening fyller 10 år</H1>
+
+<H2>Oppsummering</H2>
+
+<DL>
+<DT>Otto Anshus/SfI - Multimaskiner/distribuerte systemer
+<DD>Rundt 15 stykker var møtt opp til en presentasjon av bakgrunnen
+for seksjonens prosjekt DOPS - Distribuerte og Parallelle System
+
+<DT>Debatt om elekronisk informasjonsformidlings forhold i Norge
+<DD>Nesten 60 stykker deltok på debatten der motsetningene ikke ble så
+store, mens informasjonsverdien var desto høyere.  Undertegnede fikk i
+allefall en del ny innsikt i temaet.
+
+<DT>Stig Sæter Bakken/PVV - STORE &amp; Rune Braathen/TD - SATAN
+
+<DD>I overkant av 20 stykker var møtt opp for å få tips om drift av
+UNIX-maskiner.
+
+STORE ble presentert som løsningen på drift av mange skapt av
+frustrasjoner i drift av et heterogent system og mange programpakker.
+
+</DL>
+
+
+<HR>
+<ADDRESS>Petter Reinholdtsen -
+<A HREF="mailto:petterr@stud.cs.uit.no">petterr@stud.cs.uit.no</A></ADDRESS>
+
+</BODY>
+</HTML>
+
diff --git a/td/jubile.prog.html b/td/jubile.prog.html
new file mode 100644 (file)
index 0000000..2beedc8
--- /dev/null
@@ -0,0 +1,72 @@
+<HTML>
+<HEAD>
+<TITLE>Program for TDs Jubileumsuke</TITLE>
+<LINK REV="made" HREF="mailto:petterr@cs.uit.no">
+</HEAD>
+<BODY>
+<H1><A HREF="/~tdadm/">Tromsøstudentenes Dataforening</A> fyller 10 år</H1>
+
+25. april er det 10 år siden Tromsøstudentenes Dataforening ble
+stiftet. TD har bestemt seg for å markere denne hendelsen med en hel
+ukes feiring. Til feiringen er det invitert gjester fra
+dataforeningene over hele Norge,
+
+<H2>Program</H2>
+
+<DL>
+<DT>Lørdag 22. 19:00
+<DD>Prøvekjøring av bilsimulator med alkotest mm. (Begrenset)
+<DT>Mandag 24. 18:15 - 19:00 IMR Lille Aud.
+<DD><A HREF="http://www.cs.uit.no/~otto/">Otto Anshus</A>/<A HREF="/">SfI</A> - <B>Multimaskiner/distribuerte systemer</B>.[1]
+<DT>Tirsdag 25. 18:15 IMR Store Aud.
+<DD><A HREF="jubile.debatt.html"><B>Debatt om elekronisk informasjonsformidlings forhold i Norge</B></A>
+<BR>Med <A HREF="http://www.oslonett.no/html/profiles/gisle.html">Gisle Hannemyr</A>, Stein A. J. Møllerhaug og Ande Somby.
+<DT>Onsdag 26. 18:15 - 19:00, 19:15 - 20:00 IMR Store Aud.
+<DD><A HREF="http://www.pvv.unit.no/~ssb/">Stig Sæter Bakken</A>/<A HREF="http://www.pvv.unit.no/">PVV</A> - <B><A HREF="http://www.pvv.unit.no/~arnej/store/storedoc.html">STORE</A> - Automatisk programvaredistribusjon</B>.[2]
+       <BR><A HREF="http://www.cs.uit.no/~runeb/">Rune Braathen</A>/TD - <B>SATAN - Digitalt dyr i åpenbaringen eller verktøy for økt sikkerhet</B>.[3]
+<DT>Torsdag 27. 18:15 - 19:00, 19:15 - 20:00 IMR Store Aud.
+<DD>Jo Asplin/<A HREF="/">SfI</A> - <B>Volumavbilding av atmosfæriske og molekylære datasett.</B>[4]
+<BR><A HREF="/~stig/">Stig Johansen</A>/SfI - <B>Om
+raytracing</B>
+
+<DT>Fredag 28. 18:15 IMR Undervisningsrom 4
+<DD><B>Klassisk forum</B>.[5]
+</DL>
+
+Arrangementene er i utgangspunktet åpne for alle interesserte.
+
+<HR>
+<B>[1]</B> Dette er en presentasjon av en av de faglige sidene av prosjektet
+Distribuerte og Parallelle System (DOPS) ved Seksjon for Informatikk
+
+<P><B>[2]</B>
+STORE er et system for installasjon, distribusjon og vedlikehold
+av store mengder programvare.  Dets hensikter er å forenkle
+installasjon på flere arktitekturer, tillate flere versjoner av samme
+applikasjon, være usynlig for sluttbrukere, ta vare på informasjon om
+lokale modifikasjoner og la administratorer enkelt velge hvilke
+applikasjoner som skal installeres eller ikke
+
+<P><B>[3]</B>
+Presentasjon av Security Administrators Tool for Analyzing
+Networks (SATAN), et brukervennlig brekkjern for systemcrackere.
+
+<P><B>[4]</B>
+Volumavbilding er en metode for visualisering av den indre
+strukturen i volumetriske skalarfelt. I dette foredraget presenteres
+StormView, et volumavbildings-program skrevet i C og med
+bruker-grensesnitt basert på X.  Eksempler på visualisering av både
+atmosfæriske og molekylære datasett vil bli gitt. Volumavbilding er
+svært ressurskrevende, og ulike strategier for optimalisering vil bli
+skissert.
+
+<P><B>[5]</B>
+Dette er et gammelt konsept der man setter seg ned over en bok-øl
+med dempet klassisk musikk fra stereoanlegget og et datafaglig
+starttema.
+
+<HR>
+<ADDRESS><A HREF="/~petterr/">Petter Reinholdtsen</A> - petterr@stud.cs.uit.no</ADDRESS>
+</BODY>
+</HTML>
+
diff --git a/td/saker.940913.html b/td/saker.940913.html
new file mode 100644 (file)
index 0000000..7ee8b43
--- /dev/null
@@ -0,0 +1,54 @@
+<HTML>
+<HEAD>
+<TITLE>Saksliste til Styremøte i TD 940913</TITLE>
+</HEAD>
+<BODY>
+
+<DL>
+<DT> <B>Dato:</B> 
+Tirsdag 13.september 1994
+<DT> <B>Sted:</B> Møterommet utenfor Ekspedisjonen, IMR
+<DT> <B>Når:</B> kl. 16:15
+<DT> <B>Styret:</B>
+<DD> Petter Reinholdtsen, (Bjørn Stabell,) Espen Skoglund, Terje Marthinussen,
+Ronny H. Arild, Dag-Frode Olsen, Vegar Næss, Bengt Norbakken, Frode Fjeld
+</DL>
+<HR>
+<H1>Saksliste til Styremøte i TD</H1>
+
+<OL>
+0. Godkjenning av styremøtereferat
+<LI> Gjennomgang av post [Espen]
+
+<LI> Orienteringer
+<UL>
+<LI> Kvinneandelen på informatikk [Frode &amp; Terje]
+<LI> Oppstart av vaktordningen [Ronny &amp; Dag Frode]
+<LI> Tur til Autosom [Terje]
+</UL>
+<LI> Medlemsmøtet Torsdag 22. september [Frode]
+<UL>
+<LI> Omorganisering i styret?
+</UL>
+
+<LI> ISI-Cupen - 17. september [Petter]<BR>
+Jeg ber om at vi spanderer pizza på laget som takk for innsatsen.
+
+<LI> 10 års Jubileum,  tirsdag 25. april 1995
+<UL>
+<LI> Jublieumshefte
+<LI> Ideer?
+</UL>
+
+<LI>Eventuelt
+</OL>
+
+Vedlegg: Tidsplan <A HREF="http://www.cs.uit.no/~tdadm/tidsplan.94h.html">H94</A> / 
+<A HREF="http://www.cs.uit.no/~tdadm/tidsplan.95v.html">V95</A>. <P>
+
+
+<ADDRESS>Petter Reinholdtsen - Leder TD</ADDRESS>
+12.09.94
+</BODY>
+</HTML>
+
diff --git a/td/saker.941003.html b/td/saker.941003.html
new file mode 100644 (file)
index 0000000..4df96db
--- /dev/null
@@ -0,0 +1,43 @@
+<HTML>
+<HEAD>
+<TITLE>Saksliste til Styremøte i TD 941003</TITLE>
+</HEAD>
+<BODY>
+
+<DL>
+<DT> <B>Dato:</B> 
+Tirsdag 3.oktober 1994
+<DT> <B>Sted:</B> Møterommet utenfor Ekspedisjonen, IMR
+<DT> <B>Når:</B> kl. 16:15
+<DT> <B>Styret:</B>
+<DD> Petter Reinholdtsen, Espen Skoglund, Terje Marthinussen,
+Ronny H. Arild, Vegar Næss, (Bengt Norbakken,) Frode Fjeld, Runar Karlsen, 
+Heidi Hundåla Villmones
+</DL>
+<HR>
+<H1>Saksliste til Styremøte i TD</H1>
+Velkommen til de nye styremedlemmene.
+<OL>
+0. Godkjenning av styremøtereferat
+<LI> Gjennomgang av post [Espen]
+
+<LI> Orienteringer
+<UL>
+<LI> Kvinneandelen på informatikk [Frode &amp; Terje]
+<LI> SUN SPARCstation 5 er SUN SPARCclassic [Petter]
+<LI> Tur til Autosom [Terje] <BR>
+Terje orienterer om mulig tur til Autosim
+</UL>
+<LI> Oppsummering fra Medlemsmøtet
+<LI> Publisitet rundt TD <BR>
+Vi må markere oss mer blant studentene og i miljøet.
+<LI> Arrangement for Høsten. <BR>
+Noen gode ideer til hva vi skal ta oss til. :-)
+<LI> Eventuelt
+</OL>
+
+<ADDRESS>Petter Reinholdtsen - Leder TD</ADDRESS>
+02.10.94
+</BODY>
+</HTML>
+
diff --git a/td/saker.941025.html b/td/saker.941025.html
new file mode 100644 (file)
index 0000000..1c98bee
--- /dev/null
@@ -0,0 +1,46 @@
+<HTML>
+<HEAD>
+<TITLE>Saksliste til Styremøte i TD 941025</TITLE>
+</HEAD>
+<BODY>
+
+<DL>
+<DT> <B>Dato:</B> Tirsdag 25.oktober 1994
+<DT> <B>Sted:</B> Møterommet utenfor Ekspedisjonen, IMR
+<DT> <B>Når:</B> kl. 16:15
+<DT> <B>Styret:</B>
+<DD> Petter Reinholdtsen, Espen Skoglund, Terje Marthinussen,
+Ronny H. Arild, Vegar Næss, Bengt Norbakken, Frode Fjeld, Runar Karlsen, 
+Heidi Hundåla Villmones
+</DL>
+<HR>
+<H1>Saksliste til Styremøte i TD</H1>
+Velkommen til de nye styremedlemmene.
+<OL>
+0. Godkjenning av styremøtereferat
+<LI> Gjennomgang av post [Espen]
+
+<LI> Orienteringer
+       <UL>
+       <LI> Pakke fra Skrivervik AS [Petter]
+       <LI> Bedriftsbesøk [Terje]
+       <LI> XPilot-konkurranse [Vegar]
+       <LI> Programmeringskonkurranse [Frode]
+       <LI> Juleavslutning [Espen]
+       <LI> Økonomi [Bengt]
+
+       <LI> Kontakt med Jentegruppa [Frode &amp; Terje]
+       <LI> Nytt nummer av Vinduet [Vegar]
+</UL>
+
+<LI> Samarbeid med fagutvalget [Ronny &amp; Frode]<BR>
+<I>Hvilken arbeidsdeling skal være mellom TD og fagutvalget?
+</I>
+<LI> Eventuelt
+</OL>
+
+<ADDRESS>Petter Reinholdtsen - Leder TD</ADDRESS>
+24.10.94
+</BODY>
+</HTML>
+
diff --git a/td/saker.941122.html b/td/saker.941122.html
new file mode 100644 (file)
index 0000000..09680d5
--- /dev/null
@@ -0,0 +1,61 @@
+<HTML>
+<HEAD>
+<TITLE>Saksliste til Styremøte i TD 941122</TITLE>
+</HEAD>
+<BODY>
+
+<DL>
+<DT> <B>Dato:</B> Tirsdag 22. november 1994
+<DT> <B>Sted:</B> Møterommet utenfor Ekspedisjonen, IMR
+<DT> <B>Når:</B> kl. 16:15
+<DT> <B>Styret:</B>
+<DD> Petter Reinholdtsen, Espen Skoglund, Terje Marthinussen,
+Ronny H. Arild, Vegar Næss, Bengt Norbakken, Frode Fjeld, Runar Karlsen, 
+Heidi Hundåla Villmones
+</DL>
+<HR>
+<H1>Saksliste til Styremøte i TD</H1>
+<OL>
+0. Godkjenning av styremøtereferat
+<LI> Gjennomgang av post [Espen]
+<LI> Orienteringer
+       <UL>
+       <LI> Programmeringskonkurranse [Frode]
+       <LI> Nytt nummer av Vinduet [Vegar]
+       <LI> Fagutvalget [Ronny &amp; Frode]<BR>
+       <LI> Status for TD-maskinene [Petter]
+</UL>
+
+<LI> Oppsummering fra XPilot-konkurransen
+<LI> Oppsummering fra Jentegruppas info for 1.klasse
+<LI> Bedriftsbesøk [Terje]
+<I> Skal vi ta en tur til Autosim? Hvor sent kan vi arrangere en tur? </I>
+<LI> Juleavslutning [Espen] <BR>
+<I> Hva gikk galt med årets juleavsluttning. Er det for sent å arrangere en?</I>
+<LI> Planer for våren
+<DL>   <DT> 3.-5. februar?? (1.uke i feb.)
+       <DD>Skibotntur. [Vegar]
+       <DT> 25. april
+       <DD> 10 års jubileum
+       <DT> ?
+       <DD> Programmeringskonkurranse [Frode]
+       <DT> ?
+       <DD> Auksjon
+       <DT> ?
+       <DD> Forelesninger
+       <DT> ?
+       <DD> Bedriftsbesøk
+       <DT> ??
+       <DD> Hva som helst...
+</DL>
+
+<LI> Eventuelt
+</OL>
+
+BTW: Hvor i svarte er protokollen!
+
+<ADDRESS>Petter Reinholdtsen - Leder TD</ADDRESS>
+21.11.94
+</BODY>
+</HTML>
+
diff --git a/td/saker.950119.html b/td/saker.950119.html
new file mode 100644 (file)
index 0000000..eda9392
--- /dev/null
@@ -0,0 +1,66 @@
+<HTML>
+<HEAD>
+<TITLE>Saksliste til Styremøte i TD 950119</TITLE>
+</HEAD>
+<BODY>
+
+<DL>
+<DT> <B>Dato:</B> Torsdag 19. Januar 1995
+<DT> <B>Sted:</B> Møterommet utenfor Ekspedisjonen, IMR
+<DT> <B>Når:</B> kl. 12:15
+<DT> <B>Styret:</B>
+<DD> Petter Reinholdtsen, Espen Skoglund, Terje Marthinussen,
+(Ronny H. Arild, Vegar Næss,) Bengt Norbakken, Frode Fjeld, Runar Karlsen, 
+Heidi Hundåla Villmones
+</DL>
+<HR>
+<H1>Saksliste til Styremøte i TD</H1>
+<OL>0. <B>Godkjenning av styremøtereferat</B>
+<LI><B>Gjennomgang av post</B> [Espen]
+<LI><B>Orienteringer</B>
+       <UL>    <LI>Status for TD-maskinene [Petter]
+               <LI>Skibotnturen 3.-5. febr. [Frode &amp; Vegar]
+               <BR>Skrivervik Data sender to stykker. Søknad om
+                       støtte sendt IMR, SfI og Skrivervik Data.
+       </UL>
+
+
+<LI><B>Vaktordningen</B> [Ronny]
+<BR>Det bør settes opp en ny ansvarlig, da Ronny ville trekke seg
+tilbake på årsmøtet.
+
+<LI><B>Forelesninger</B> [Petter]
+<BR>Jeg har vært å snakket med folk på SfI om forelesninger, og
+interessen var OK.  Vi kan klare å kjøre igang 3-4 forelesninger med
+folk fra seksjonen.
+
+<LI><B>10 års jubileum</B>  (24.-28. april) [Petter, Espen, Frode &amp; Vegar]
+<BR>Debattarrangement Bing/Hannemyr - planlegging igang
+<BR>Invitasjon av andre dataforeninger
+<BR>Jubileumsaften (Bespisning &amp; taler)
+<BR>...
+
+<LI><B>Forsikring til TD-maskinene</B>
+
+<BR> Forsikringsordningen for TD-maskinene gikk ut ved årsskiftet.  Vi
+må organisere en ny.  Jeg foreslår å spørre forsikringsselskap om å
+sponse dette mot at vi legger ut litt informasjon om dem på WWW.
+
+<LI><B>Vinduet</B> [Alle]
+<BR>De artiklene som ble avtalt skrevet til vinduet bør være ferdig
+snarest.
+
+<LI><B>Eventuelt</B>
+</OL>
+Vedlegg:
+<UL><LI><A HREF="/~tdadm/tidsplan.95v.html">Arrangementsplaner V95</A>
+<LI><A HREF="saker.950119.vinduet.txt">Huskeliste for vinduet</A>
+</UL>
+
+Beklager at denne kom så sent. 
+<HR>
+<ADDRESS>Petter Reinholdtsen - Leder TD</ADDRESS>
+18.1.95
+</BODY>
+</HTML>
+
diff --git a/td/saker.950119.vinduet.txt b/td/saker.950119.vinduet.txt
new file mode 100644 (file)
index 0000000..65f1889
--- /dev/null
@@ -0,0 +1,41 @@
+Return-Path: vegarn@stud.cs.uit.no Thu
+Received: from hpserv0.cs.uit.no by lgserv1.cs.uit.no (1.37.109.13.2/Task/HJ-5)
+       id AA298491405; Thu, 24 Nov 1994 22:10:06 +0100
+Received: from lgserv1.cs.uit.no by hpserv0.cs.uit.no (1.37.109.13.2/Task/HJ-5)
+       id AA072111404; Thu, 24 Nov 1994 22:10:04 +0100
+Received: from hpserv0.cs.uit.no by lgserv1.cs.uit.no (1.37.109.13.2/Task/HJ-5)
+       id AA298421402; Thu, 24 Nov 1994 22:10:03 +0100
+Received: from pserv0.cs.uit.no (plab06.cs.UiT.No) by hpserv0.cs.uit.no (1.37.109.13.2/Task/HJ-5)
+       id AA071981400; Thu, 24 Nov 1994 22:10:01 +0100
+Received: by pserv0.cs.uit.no (1.37.109.11/Task/HJ-5)
+       id AA061661399; Thu, 24 Nov 1994 22:09:59 +0100
+Date: Thu, 24 Nov 1994 22:09:59 +0100
+From: vegarn@stud.cs.uit.no (Vegar Naess)
+Message-Id: <199411242109.AA061661399@pserv0.cs.uit.no>
+To: td@cs.uit.no
+Subject: Temaer for neste Vindu
+
+Huskeliste vinduet Våren 95
+
+Internet :                                     vegarn
+Tilbud på internet:                            Terje
+Skadelige skjermer:                            vegarn
+Fotball turneringen:                           petter
+Skibotnturen:                                  vegarn
+Td labben, nettforbindelser:                   Frode
+Modemforbindelser til lglab:                   Petter ordner
+Fagutvalget:                                   Ronny
+Derfor programerer ikke Japanerne:             vegarn
+Pornobilder på labben:                         petter
+
+Espen står parat med scanneren til bilder fra skibotn(Se 
+pornobilder på labben) og fotballturneringen.
+
+Andre ideer:
+               Markedsføring av systemadministrator Våren 95
+               Revolverint. av Heidi
+
+
+
+
+Hvis det er noen gode ideer så kom med dem......
diff --git a/td/saker.950201.html b/td/saker.950201.html
new file mode 100644 (file)
index 0000000..f543c81
--- /dev/null
@@ -0,0 +1,68 @@
+<HTML>
+<HEAD>
+<TITLE>Saksliste til Styremøte i TD 950201</TITLE>
+</HEAD>
+<BODY>
+
+<DL>
+<DT> <B>Dato:</B> Onsdag 1. Februar 1995
+<DT> <B>Sted:</B> Møterommet utenfor Ekspedisjonen, IMR
+<DT> <B>Når:</B> kl. 16:15
+<DT> <B>Styret:</B>
+<DD> Petter Reinholdtsen, Espen Skoglund, Terje Marthinussen,
+Ronny H. Arild, Vegar Næss, Bengt Norbakken, Frode Fjeld, Runar Karlsen, 
+Heidi Hundåla Villmones
+</DL>
+<HR>
+<H1>Saksliste til Styremøte i TD</H1>
+<OL>0. <B>Godkjenning av styremøtereferat</B>
+<LI><B>Gjennomgang av post</B> [Espen]
+<LI><B>Orienteringer</B>
+       <UL>    <LI>Skibotnturen 3.-5. febr. [Frode &amp; Vegar]
+               <LI>Skifte av ansvarlig for vaktordningen [Ronny &amp; Heidi]
+               <LI>Forsikring til TD-maskinenen [Terje]
+               <LI>10 års jubileum  (24.-28. april) [Petter, Espen, Frode &amp; Vegar]
+               <LI>Programmeringskonkurranse [Frode]
+               <LI>Forelesninger [Petter]
+               <LI>Artikler til Vinduet [Alle]
+               <LI>Bedriftsbesøk [Terje &amp; Heidi]
+       </UL>
+
+<LI><B>Vaktordningen</B> [Ronny]
+
+<BR>- Instituttrådet har bedt om en henvendelse der de får presentert
+et forslag fra TD om kompensasjon for gjennomføringen av
+vaktordningen.  Tore Larsen nevnte i den forbindelse at vi også burde
+fokusere på brukerkurset som vi har gjennomført i lengre tid.  Skal vi
+legge oss på honorering av enkeltvakter, eller en honnorering av TD
+som helhet?
+<BR>- Tom Grydeland (Inst.råds repr) satte opp denne lista som innspill
+til hva henvendelsen burde inneholde.
+
+<UL><LI>Sett opp hvor mye (i kr) som er rimelig honorering for å sitte
+       vakt i 3.5 t. (Det er tenkelig å bruke en "stige" i
+       honoreringen, eks. 1 gang: 150,- 2 ganger: 250,- 3 ganger
+       350,- osv)
+<LI>Beregn 5 vakter i uka, (18 vår+15 høst) 33 uker pr. år.
+<LI>Foreslå hvordan utgiftene skal fordeles
+
+</UL>
+<LI><B>Saker til Årsmøtet</B>
+<BR>Saker til årsmøtet må planlegges.
+
+<LI><B>Valg av revisor</B>
+<BR>Vi må velge en revisor til å gå gjennom regnskapet sammen med Bengt.
+
+<LI><B>Eventuelt</B>
+</OL>
+Vedlegg:
+<UL><LI><A HREF="/~tdadm/tidsplan.95v.html">Arrangementsplaner V95</A>
+<LI><A HREF="saker.950119.vinduet.txt">Huskeliste for vinduet</A>
+</UL>
+
+<HR>
+<ADDRESS>Petter Reinholdtsen - Leder TD</ADDRESS>
+31.1.95
+</BODY>
+</HTML>
+
diff --git a/td/saker.950215.html b/td/saker.950215.html
new file mode 100644 (file)
index 0000000..98a4140
--- /dev/null
@@ -0,0 +1,53 @@
+<HTML>
+<HEAD>
+<TITLE>Saksliste til Styremøte i TD 950201</TITLE>
+</HEAD>
+<BODY>
+
+<DL>
+<DT> <B>Dato:</B> Onsdag 15. Februar 1995
+<DT> <B>Sted:</B> Møterommet utenfor Ekspedisjonen, IMR
+<DT> <B>Når:</B> kl. 16:15
+<DT> <B>Styret:</B>
+<DD> Petter Reinholdtsen, Espen Skoglund, Terje Marthinussen,
+Ronny H. Arild, Vegar Næss, Bengt Norbakken, Frode Fjeld, Runar Karlsen, 
+Heidi Villmones Hundåla 
+</DL>
+<HR>
+<H1>Saksliste til Styremøte i TD</H1>
+<OL>0. <B>Godkjenning av styremøtereferat</B>
+<LI><B>Gjennomgang av post</B> [Espen]
+<LI><B>Orienteringer</B>
+       <UL>    <LI>"Datapub" i forbindelse med Uka95
+               <LI>Forsikring til TD-maskinenen [Terje]
+               <LI>10 års jubileum  (24.-28. april) [Petter, Espen, Frode &amp; Vegar]
+               <LI>Programmeringskonkurranse [Frode]
+               <LI>Bedriftsbesøk [Terje &amp; Heidi]
+               <LI>Framdrift for Vinduet [Vegar]
+       </UL>
+
+<LI><B>Vaktordningen</B> [Ronny]
+
+<BR>- Brev til Instituttet ang. vaktordningspenger presenteres[Bengt]
+
+<LI><B>Oppsummering Skibotnturen 3.-5. febr.</B> [Frode, Petter &amp; Vegar]
+               
+<LI><B>Saker til Årsmøtet</B> [Espen & Ronny]
+<BR>Saksliste til Årsmøtet må gjøres klart og innkalling sendes ut.
+
+<LI><B>Valg av revisor</B> [Bengt]
+<BR>Vil Ole Kristian? være revisor?
+
+<LI><B>Eventuelt</B>
+</OL>
+Vedlegg:
+<UL><LI><A HREF="/~tdadm/tidsplan.95v.html">Arrangementsplaner V95</A>
+<LI><A HREF="saker.950119.vinduet.txt">Huskeliste for vinduet</A>
+</UL>
+
+<HR>
+<ADDRESS>Petter Reinholdtsen - Leder TD</ADDRESS>
+13.2.95
+</BODY>
+</HTML>
+
diff --git a/td/saker.950301.html b/td/saker.950301.html
new file mode 100644 (file)
index 0000000..e547f74
--- /dev/null
@@ -0,0 +1,61 @@
+<HTML>
+<HEAD>
+<TITLE>Saksliste til Styremøte i TD 950301</TITLE>
+</HEAD>
+<BODY>
+
+<DL>
+<DT><B>Dato:</B> Onsdag 1. Mars 1995
+<DT><B>Sted:</B> Møterommet utenfor Ekspedisjonen, IMR
+<DT><B>Når:</B> kl. 16:15
+<DT><B>Styret:</B>
+<DD>Petter Reinholdtsen, Espen Skoglund, Terje Marthinussen,
+Ronny H. Arild, Vegar Næss, Bengt Norbakken, Frode Fjeld, Runar Karlsen, 
+Heidi Villmones Hundåla 
+</DL>
+<HR>
+<H1>Saksliste til Styremøte i TD</H1>
+<OL>0. <B>Godkjenning av styremøtereferat</B>
+<LI><B>Gjennomgang av post</B> [Espen]
+<LI><B>Orienteringer</B>
+       <UL>    <LI>10 års jubileum  (24.-28. april) [Petter, Espen, Frode &amp; Vegar]
+               <LI>Programmeringskonkurranse [Frode]
+               <LI>Brev til Instituttet sendt [Petter &amp; Bengt]
+       </UL>
+
+<LI><B>Bedriftsbesøk</B> [Terje &amp; Heidi]
+<BR>Dato for besøk på Autosim og Spacetec skulle nå være klart, og
+alle praktiske ting må fordeles til noen av de som fortsetter i
+styret.
+
+<LI><B>Forsikring til TD-maskinenen</B> [Terje]
+<BR>Terje har undersøkt priser på forsikring, og vi må bestemme oss
+for hvilken vi tar.
+
+<LI><B>Årsmøtet</B> [Espen & Ronny]
+<BR>Alt skulle nå være klart til årsmøtet.
+
+<LI><B>Godkjenning av regnskap for 1994</B>
+<BR>Regnskapet som ble godkjent per mail må refereres i
+styreprotokollen.
+
+<LI><B>Regnskap 1995 fram til nå</B> [Bengt]
+<BR>Bengt legger fram regnskapet før perioden hans er over..
+
+<LI><B>Abonnement på Linux Journal</B>
+<BR>Jeg foreslår at vi gjennomfører abonnement på tidsskrfter til
+utlegging på TD-labben.  Som en start foreslår jeg at vi bestiller
+abonnemet på Linux Journal, et tidsskrift for linux-brukere.
+
+<LI><B>Eventuelt</B>
+</OL>
+Vedlegg:
+<UL><LI><A HREF="/~tdadm/tidsplan.95v.html">Arrangementsplaner V95</A>
+</UL>
+
+<HR>
+<ADDRESS>Petter Reinholdtsen - Leder TD</ADDRESS>
+13.2.95
+</BODY>
+</HTML>
+
diff --git a/tm/backuprutine.html b/tm/backuprutine.html
new file mode 100644 (file)
index 0000000..8b9b9f3
--- /dev/null
@@ -0,0 +1,67 @@
+<HTML>
+<HEAD>
+<TITLE>Backup-rutiner på Origo</TITLE>
+<!-- Changed by: Petter Reinholdtsen, 11-Jun-1996 -->
+<LINK REV="made" HREF="mailto:petterr@stud.cs.uit.no">
+</HEAD>
+<BODY>
+Origo drift - 1996-06-11
+<BR>Petter Reinholdtsen &lt;pere@td.org.uit.no&gt;
+<HR>
+
+<H1>Backup-rutiner på Origo</H1>
+
+Backup foretas daglig av den som sitter nærmest DAT-spilleren. Pr.
+1996-06-11 er dette Geir Frierstad.
+
+<P>Tanken er at det for hver maskin skal være 1 tidligere backup på
+tape fra de siste tre ukene.  Eneste unntak er kjell, valborg og egon,
+som er prioritert opp og som vil få dobbelt så mange backup.
+
+<P>Backup tas av cron-jobber som kjøres fra valborg hver natt
+vha. <CODE>rsh</CODE>.  Hver morgen skal nattens backup tas vare på og
+neste dags backup-tape gjøres klar.
+
+<P>Alle DAT-tapene merkes med maskin, ukedag og nummer og rotes i
+løpet av tre uker.
+
+<H2>Daglig rutine</H2>
+
+<OL>
+<LI>Ta ut DAT-tape og merk med dato.  Kontroller at DAT-nummer stemmer
+overens med mail utsendt av cron.
+<LI>Sett i neste DAT-tape (ett nummer større)
+<LI>Frakt tapen merket med dagens dato til safe el.
+</OL>
+
+<H2>Dagsoversikt, backuptaper</H2>
+Det er 11 maskiner - kjell,  valborg og egon er viktigst.
+
+<TABLE border>
+<TR><TH>Maskin <TH>Natt til    <TH>Dagsnummer
+
+<TR><TD>Kjell  <TD>Mandag      <TD>1
+<TR><TD>Valborg        <TD>Tirsdag     <TD>2
+<TR><TD>egon   <TD>Onsdag      <TD>3
+<TR><TD>gunnar <TD>Torsdag     <TD>4
+<TR><TD>Kjell  <TD>Fredag      <TD>5
+
+<TR><TD>benny  <TD>Mandag      <TD>6
+<TR><TD>basse  <TD>Tirsdag     <TD>7
+<TR><TD>cola   <TD>Onsdag      <TD>8
+<TR><TD>Valborg        <TD>Torsdag     <TD>9
+<TR><TD>death  <TD>Fredag      <TD>10
+<TR><TD>eurosong<TD>Mandag     <TD>11
+<TR><TD>pcpdy  <TD>Tirsdag     <TD>12
+<TR><TD>egon   <TD>Onsdag      <TD>13
+<TR><TD>romeo  <TD>Torsdag     <TD>14
+<TR><TD>gunnar <TD>Fredag      <TD>15
+</TABLE>
+
+<HR>
+<ADDRESS>Petter Reinholdtsen -
+<A HREF="mailto:petterr@stud.cs.uit.no">petterr@stud.cs.uit.no</A></ADDRESS>
+
+</BODY>
+</HTML>
+
diff --git a/tm/perl.compile.html b/tm/perl.compile.html
new file mode 100644 (file)
index 0000000..c159413
--- /dev/null
@@ -0,0 +1,39 @@
+<HTML>
+<HEAD>
+<TITLE></TITLE>
+<!-- Changed by: Petter Reinholdtsen,  4-Dec-1995 -->
+<LINK REV="made" HREF="mailto:petterr@stud.cs.uit.no">
+</HEAD>
+<BODY>
+<H1>Compilering av perl</H1>
+<PRE>
+./Configure -Dprefix=/store
+
+Use which C compiler?
+ gcc
+Any additional cc flags?
+ none
+Any additional ld flags (NOT including libraries)?
+ -L/store/lib
+Do you wish to use dynamic loading?
+ n (Irix)
+Local directory for additional library files? (~name ok)
+ /store/lib/perl
+Where do the Perl5 library man pages (source) go? (~name ok)
+ /store/man/man3
+</PRE>
+
+<H1>Compiling gcc</H1>
+
+<PRE>
+./configure --prefix=/store --local-prefix=/store --gxx-include-dir=/store/lib/g++-include <hosttype>
+make bootstrap
+</PRE>
+
+<HR>
+<ADDRESS>Petter Reinholdtsen -
+<A HREF="mailto:petterr@stud.cs.uit.no">petterr@stud.cs.uit.no</A></ADDRESS>
+
+</BODY>
+</HTML>
+
diff --git a/tm/xntpd.conf.html b/tm/xntpd.conf.html
new file mode 100644 (file)
index 0000000..6919e0a
--- /dev/null
@@ -0,0 +1,22 @@
+<HTML>
+<HEAD>
+<TITLE></TITLE>
+<!-- Changed by: Petter Reinholdtsen,  4-Dec-1995 -->
+<LINK REV="made" HREF="mailto:petterr@stud.cs.uit.no">
+</HEAD>
+<BODY>
+<H1>Konfigurering av xntpd(8)</H1>
+
+xntp er kompilert i store.
+
+For å starte brukes '/store/etc/init.d/xntpd start'.
+
+<P>Konfigurasjonsfilene ligger på valborg:/local/config (ntp.conf*).
+
+<HR>
+<ADDRESS>Petter Reinholdtsen -
+<A HREF="mailto:petterr@stud.cs.uit.no">petterr@stud.cs.uit.no</A></ADDRESS>
+
+</BODY>
+</HTML>
+