Annotation of 43BSDReno/usr.sbin/sendmail/src/sendmail.cf, revision 1.1.1.1

1.1       root        1: #
                      2: # Copyright (c) 1983 Eric P. Allman
                      3: # Copyright (c) 1988 The Regents of the University of California.
                      4: # All rights reserved.
                      5: #
                      6: # Redistribution and use in source and binary forms are permitted
                      7: # provided that the above copyright notice and this paragraph are
                      8: # duplicated in all such forms and that any documentation,
                      9: # advertising materials, and other materials related to such
                     10: # distribution and use acknowledge that the software was developed
                     11: # by the University of California, Berkeley.  The name of the
                     12: # University may not be used to endorse or promote products derived
                     13: # from this software without specific prior written permission.
                     14: # THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                     15: # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                     16: # WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     17: #
                     18: #      @(#)sendmail.cf 5.1 (Berkeley) 6/25/90
                     19: #      @(#)sendmail.cf 5.1 (Berkeley) 6/25/90
                     20: #
                     21: # built by root on Mon Aug 21 13:47:04 PDT 1989
                     22: # in /usr/src/local/nettables/sendmail.cf/cf on monet.Berkeley.EDU
                     23: #
                     24: ############################################################
                     25: ############################################################
                     26: #####
                     27: #####          SENDMAIL CONFIGURATION FILE
                     28: #####
                     29: ############################################################
                     30: ############################################################
                     31: 
                     32: 
                     33: ##################
                     34: #   local info   #
                     35: ##################
                     36: 
                     37: # file containing our internet aliases
                     38: Fw/etc/sendmail.cw
                     39: 
                     40: # uucp hostnames
                     41: DUokeeffe
                     42: CUokeeffe
                     43: 
                     44: # local UUCP connections
                     45: CV     blia
                     46: CV     ccicpg
                     47: CV     mjk
                     48: CV     oxford
                     49: CV     zulu
                     50: 
                     51: 
                     52: #############################
                     53: ###   Setup Information   ###
                     54: #############################
                     55: 
                     56: 
                     57: ######################
                     58: #   General Macros   #
                     59: ######################
                     60: 
                     61: # local domain name
                     62: DDBerkeley.EDU
                     63: 
                     64: # Internet relay host -- machines in our domain that are not
                     65: # registered with the NIC will be "hidden" behind this relay machine
                     66: # with the % kludge, although SMTP delivery will still be performed
                     67: # by the sending machine.  Someday this will go away.
                     68: DAucbvax.Berkeley.EDU
                     69: 
                     70: # UUCP relay host
                     71: DRucbvax.Berkeley.EDU
                     72: 
                     73: # csnet relay host
                     74: DCrelay.cs.net
                     75: 
                     76: # bitnet relay host
                     77: DBjade.Berkeley.EDU
                     78: 
                     79: # my official hostname
                     80: Dj$w
                     81: 
                     82: 
                     83: 
                     84: ###############
                     85: #   Classes   #
                     86: ###############
                     87: 
                     88: # Internal ("fake") domains that we use in rewriting
                     89: CIUUCP BITNET CSNET
                     90: 
                     91: 
                     92: 
                     93: ############################################################
                     94: ############################################################
                     95: #####
                     96: #####  BERKELEY HOSTS REGISTERED WITH THE NIC
                     97: #####
                     98: ############################################################
                     99: ############################################################
                    100: 
                    101: 
                    102: CNbach ucbbach
                    103: CNbizet ucbbizet
                    104: CNcad ucbcad
                    105: CNdegas ucbdegas
                    106: CNeast ucbeast
                    107: CNernie ucbernie
                    108: CNesvax ucbesvax
                    109: CNjade ucbjade
                    110: CNji ucbji
                    111: CNmike ucbmike
                    112: CNmonet ucbmonet
                    113: CNpostgres
                    114: CNrenoir ucbrenoir
                    115: CNucbarpa
                    116: CNucbvax
                    117: CNviolet ucbviolet
                    118: 
                    119: 
                    120: ######################
                    121: #   Version Number   #
                    122: ######################
                    123: 
                    124: DZ1.37
                    125: 
                    126: 
                    127: ######################
                    128: #   Special macros   #
                    129: ######################
                    130: 
                    131: # my name
                    132: DnMAILER-DAEMON
                    133: # UNIX header format
                    134: DlFrom $g  $d
                    135: # delimiter (operator) characters
                    136: Do.:%@!^=/[]
                    137: # format of a total name
                    138: Dq$g$?x ($x)$.
                    139: # SMTP login message
                    140: De$j Sendmail $v/$Z ready at $b
                    141: 
                    142: ###############
                    143: #   Options   #
                    144: ###############
                    145: 
                    146: # location of alias file
                    147: OA/etc/aliases
                    148: # wait up to ten minutes for alias file rebuild
                    149: Oa10
                    150: # substitution for space (blank) characters
                    151: OB.
                    152: # (don't) connect to "expensive" mailers
                    153: #Oc
                    154: # default delivery mode (deliver in background)
                    155: Odbackground
                    156: # temporary file mode
                    157: OF0600
                    158: # default GID
                    159: Og1
                    160: # location of help file
                    161: OH/usr/share/misc/sendmail.hf
                    162: # log level
                    163: OL9
                    164: # default network name
                    165: ONARPA
                    166: # default messages to old style
                    167: Oo
                    168: # queue directory
                    169: OQ/var/spool/mqueue
                    170: # read timeout -- violates protocols
                    171: Or2h
                    172: # status file
                    173: OS/var/log/sendmail.st
                    174: # queue up everything before starting transmission
                    175: Os
                    176: # default timeout interval
                    177: OT3d
                    178: # time zone names (V6 only)
                    179: OtPST,PDT
                    180: # default UID
                    181: Ou1
                    182: # wizard's password
                    183: OW*
                    184: # load average at which we just queue messages
                    185: Ox8
                    186: # load average at which we refuse connections
                    187: OX12
                    188: 
                    189: ###########################
                    190: #   Message precedences   #
                    191: ###########################
                    192: 
                    193: Pfirst-class=0
                    194: Pspecial-delivery=100
                    195: Pbulk=-60
                    196: Pjunk=-100
                    197: 
                    198: #####################
                    199: #   Trusted users   #
                    200: #####################
                    201: 
                    202: Troot
                    203: Tdaemon
                    204: Tuucp
                    205: 
                    206: #########################
                    207: #   Format of headers   #
                    208: #########################
                    209: 
                    210: H?P?Return-Path: <$g>
                    211: HReceived: $?sfrom $s $.by $j ($v/$Z)
                    212:        id $i; $b
                    213: H?D?Resent-Date: $a
                    214: H?D?Date: $a
                    215: H?F?Resent-From: $q
                    216: H?F?From: $q
                    217: H?x?Full-Name: $x
                    218: HSubject:
                    219: # HPosted-Date: $a
                    220: # H?l?Received-Date: $b
                    221: H?M?Resent-Message-Id: <$t.$i@$j>
                    222: H?M?Message-Id: <$t.$i@$j>
                    223: 
                    224: 
                    225: 
                    226: ###########################
                    227: ###   Rewriting Rules   ###
                    228: ###########################
                    229: 
                    230: 
                    231: ################################
                    232: #  Sender Field Pre-rewriting  #
                    233: ################################
                    234: S1
                    235: #R$*<$*>$*             $1$2$3                          defocus
                    236: 
                    237: ###################################
                    238: #  Recipient Field Pre-rewriting  #
                    239: ###################################
                    240: S2
                    241: #R$*<$*>$*             $1$2$3                          defocus
                    242: 
                    243: 
                    244: 
                    245: #################################
                    246: #  Final Output Post-rewriting  #
                    247: #################################
                    248: S4
                    249: 
                    250: R@                     $@                              handle <> error addr
                    251: 
                    252: # resolve numeric addresses to name if possible
                    253: R$*<@[$+]>$*           $:$1<@$[[$2]$]>$3               lookup numeric internet addr
                    254: 
                    255: # externalize local domain info
                    256: R$*<$+>$*              $1$2$3                          defocus
                    257: R@$+:@$+:$+            @$1,@$2:$3                      <route-addr> canonical
                    258: 
                    259: # UUCP must always be presented in old form
                    260: R$+@$-.UUCP            $2!$1                           [email protected] => h!u
                    261: 
                    262: # delete duplicate local names
                    263: R$+%$=w@$=w            $1@$w                           u%host@host => u@host
                    264: R$+%$=w@$=w.$D         $1@$w                           u%host@host => u@host
                    265: 
                    266: 
                    267: ###########################
                    268: #  Name Canonicalization  #
                    269: ###########################
                    270: S3
                    271: 
                    272: # handle "from:<>" special case
                    273: R$*<>$*                        $@@                             turn into magic token
                    274: 
                    275: # basic textual canonicalization -- note RFC733 heuristic here
                    276: R$*<$*<$*<$+>$*>$*>$*  $4                              3-level <> nesting
                    277: R$*<$*<$+>$*>$*                $3                              2-level <> nesting
                    278: R$*<$+>$*              $2                              basic RFC821/822 parsing
                    279: 
                    280: # make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later
                    281: R@$+,$+                        @$1:$2                          change all "," to ":"
                    282: 
                    283: # localize and dispose of route-based addresses
                    284: R@$+:$+                        $@$>6<@$1>:$2                   handle <route-addr>
                    285: 
                    286: # more miscellaneous cleanup
                    287: R$+                    $:$>8$1                         host dependent cleanup
                    288: R$+:$*;@$+             $@$1:$2;@$3                     list syntax
                    289: R$+:$*;                        $@$1:$2;                        list syntax
                    290: R$+@$+                 $:$1<@$2>                       focus on domain
                    291: R$+<$+@$+>             $1$2<@$3>                       move gaze right
                    292: R$+<@$+>               $@$>6$1<@$2>                    already canonical
                    293: 
                    294: # convert old-style addresses to a domain-based address
                    295: R$+^$+                 $1!$2                           convert ^ to !
                    296: R$-!$+                 $@$>6$2<@$1.UUCP>               resolve uucp names
                    297: R$+.$-!$+              $@$>6$3<@$1.$2>                 domain uucps
                    298: R$+!$+                 $@$>6$2<@$1.UUCP>               uucp subdomains
                    299: R$+%$+                 $:$>9$1%$2                      user%host
                    300: R$+<@$+>               $@$>6$1<@$2>                    already canonical
                    301: R$-.$+                 $@$>6$2<@$1>                    host.user
                    302: 
                    303: 
                    304: #################################
                    305: #   special local conversions   #
                    306: #################################
                    307: 
                    308: S6
                    309: R$*<@$=w>$*            $:$1<@$w>$3                     get into u@$w form
                    310: R$*<@$=w.$D>$*         $:$1<@$w>$3
                    311: R$*<@$=U.UUCP>$*       $:$1<@$w>$3
                    312: 
                    313: 
                    314: ################################
                    315: #   Change rightmost % to @.   #
                    316: ################################
                    317: 
                    318: S9
                    319: R$*%$*                 $1@$2                           First make them all @'s.
                    320: R$*@$*@$*              $1%$2@$3                        Undo all but the last.
                    321: R$*@$*                 $@$1<@$2>                       Put back the brackets.
                    322: 
                    323: 
                    324: 
                    325: ###################
                    326: ###   Mailers   ###
                    327: ###################
                    328: 
                    329: 
                    330: ############################################################
                    331: ############################################################
                    332: #####
                    333: #####          Local and Program Mailer specification
                    334: #####
                    335: ############################################################
                    336: ############################################################
                    337: 
                    338: Mlocal,        P=/usr/libexec/delivermail, F=lsDFMmn, S=10, R=20, A=mail -r $g -d $u
                    339: Mprog, P=/bin/sh,   F=lsDFMe,   S=10, R=20, A=sh -c $u
                    340: 
                    341: S10
                    342: R@                     $n                      errors to mailer-daemon
                    343: 
                    344: 
                    345: ############################################################
                    346: ############################################################
                    347: #####
                    348: #####          Local Domain SMTP Mailer specification
                    349: #####
                    350: #####  Messages processed by this specification are assumed to remain
                    351: #####  the local domain.  Hence, they can refer to hosts that are
                    352: #####  not registered in the NIC host table.
                    353: #####
                    354: ############################################################
                    355: ############################################################
                    356: 
                    357: Mtcpld,        P=[IPC], F=mDFMueXLC, S=17, R=27, A=IPC $h, E=\r\n
                    358: 
                    359: S17
                    360: 
                    361: # cleanup forwarding a bit
                    362: R$*<$*>$*              $1$2$3                          defocus
                    363: R$*                    $:$>3$1                         canonicalize
                    364: R$*%$*<@$w>            $:$>9$1%$2                      user%localhost@localdomain
                    365: 
                    366: # pass <route-addr>'s through
                    367: R<@$+>$*               $@<@$[$1$]>$2                   resolve <route-addr>
                    368: 
                    369: # map colons to dots everywhere
                    370: R$*:$*                 $1.$2                           map colons to dots
                    371: 
                    372: 
                    373: 
                    374: # output local host as [email protected]
                    375: R$-                    $@$1<@$w>                       user w/o host
                    376: R$+<@$w>               $@$1<@$w>                       this host
                    377: R$+<@$=w>              $@$1<@$w>                       or an alias
                    378: R$+<@$->               $:$1<@$[$2$]>                   ask nameserver
                    379: R$+<@$w>               $@$1<@$w>                       this host
                    380: R$+<@$->               $@$1<@$2.$D>                    if nameserver fails
                    381: 
                    382: # if not local, and not a "fake" domain, ask the nameserver
                    383: R$+<@$+.$~I>           $@$1<@$[$2.$3$]>                [email protected]
                    384: R$+<@[$+]>             $@$1<@[$2]>                     already ok
                    385: 
                    386: # output fake domains as user%fake@relay
                    387: 
                    388: R$+<@$+.BITNET>                $@$1%$2.BITNET<@$B>             [email protected]
                    389: R$+<@$+.CSNET>         $@$1%$2.CSNET<@$C>              [email protected]
                    390: R$+<@$+.UUCP>          $@$2!$1<@$w>                    [email protected]
                    391: 
                    392: 
                    393: S27
                    394: 
                    395: # cleanup
                    396: R$*<$*>$*              $1$2$3                          defocus
                    397: R$*                    $:$>3$1                         now canonical form
                    398: R$*%$*<@$w>            $:$>9$1%$2                      user%localhost@localdomain
                    399: 
                    400: # pass <route-addr>'s through
                    401: R<@$+>$*               $@<@$[$1$]>$2                   resolve <route-addr>
                    402: 
                    403: # map colons to dots everywhere
                    404: R$*:$*                 $1.$2                           map colons to dots
                    405: 
                    406: # output local host as [email protected]
                    407: R$-                    $@$1<@$w>                       user w/o host
                    408: R$+<@$w>               $@$1<@$w>                       this host
                    409: R$+<@$=w>              $@$1<@$w>                       or an alias
                    410: R$+<@$->               $:$1<@$[$2$]>                   ask nameserver
                    411: R$+<@$w>               $@$1<@$w>                       this host
                    412: R$+<@$->               $@$1<@$2.$D>                    if nameserver fails
                    413: 
                    414: # if not local, and not a "fake" domain, ask the nameserver
                    415: R$+<@$+.$~I>           $@$1<@$[$2.$3$]>                [email protected]
                    416: R$+<@[$+]>             $@$1<@[$2]>                     already ok
                    417: 
                    418: # output fake domains as user%fake@relay
                    419: 
                    420: R$+<@$+.BITNET>                $@$1%$2.BITNET<@$B>             [email protected]
                    421: R$+<@$+.CSNET>         $@$1%$2.CSNET<@$C>              [email protected]
                    422: R$+<@$+.UUCP>          $@$2!$1                         [email protected]
                    423: 
                    424: 
                    425: 
                    426: ############################################################
                    427: ############################################################
                    428: #####
                    429: #####          Internet SMTP Mailer specification
                    430: #####
                    431: #####  Messages processed by this specification are assumed to leave
                    432: #####  the local domain -- hence, they must be canonical according to
                    433: #####  RFC822 etc.  This means that machines not registered with
                    434: #####  the NIC must be hidden behind our Internet relay.
                    435: #####
                    436: ############################################################
                    437: ############################################################
                    438: 
                    439: Mtcp,  P=[IPC], F=mDFMueXLC, S=14, R=24, A=IPC $h, E=\r\n
                    440: 
                    441: S14
                    442: 
                    443: # pass <route-addr>'s through
                    444: R<@$+>$*               $@<@$[$1$]>$2                   resolve <route-addr>
                    445: 
                    446: # map colons to dots everywhere
                    447: R$*:$*                 $1.$2                           map colons to dots
                    448: 
                    449: # output local host in [email protected] syntax
                    450: R$-                    $1<@$w>                         user w/o host
                    451: R$+<@$=w>              $:$1<@$w>                       this host
                    452: R$+<@$->               $:$1<@$[$2$]>                   canonicalize into dom
                    453: R$+<@$->               $:$1<@$2.$D>                    if nameserver fails
                    454: R$+<@$=N.$D>           $@$1<@$2.$D>                    nic-reg hosts are ok
                    455: R$+<@$*.$D>            $@$1%$2.$D<@$A>                 else -> u%h@gateway
                    456: 
                    457: # if not local, and not a "fake" domain, ask the nameserver
                    458: R$+<@$+.$~I>           $@$1<@$[$2.$3$]>                [email protected]
                    459: R$+<@[$+]>             $@$1<@[$2]>                     already ok
                    460: 
                    461: # output internal ("fake") domains as "user%host@relay"
                    462: 
                    463: R$+<@$+.BITNET>                $@$1%$2.BITNET<@$B>             [email protected]
                    464: R$+<@$+.CSNET>         $@$1%$2.CSNET<@$C>              [email protected]
                    465: R$+<@$+.UUCP>          $@$2!$1<@$w>                    [email protected]
                    466: 
                    467: 
                    468: S24
                    469: 
                    470: # put in <> kludge
                    471: R$*<$*>$*              $1$2$3                          defocus
                    472: R$*                    $:$>3$1                         now canonical form
                    473: 
                    474: # pass <route-addr>'s through
                    475: R<@$+>$*               $@<@$[$1$]>$2                   resolve <route-addr>
                    476: 
                    477: # map colons to dots everywhere.....
                    478: R$*:$*                 $1.$2                           map colons to dots
                    479: 
                    480: # output local host in [email protected] syntax
                    481: R$-                    $1<@$w>                         user w/o host
                    482: R$+<@$=w>              $:$1<@$w>                       this host
                    483: R$+<@$->               $:$1<@$[$2$]>                   canonicalize into dom
                    484: R$+<@$->               $:$1<@$2.$D>                    if nameserver fails
                    485: R$+<@$=N.$D>           $@$1<@$2.$D>                    nic-reg hosts are ok
                    486: R$+<@$*.$D>            $@$1%$2.$D<@$A>                 else -> u%h@gateway
                    487: 
                    488: # if not local, and not a "fake" domain, ask the nameserver
                    489: R$+<@$+.$~I>           $@$1<@$[$2.$3$]>                [email protected]
                    490: R$+<@[$+]>             $@$1<@[$2]>                     already ok
                    491: 
                    492: # Hide fake domains behind relays
                    493: 
                    494: R$+<@$+.BITNET>                $@$1%$2.BITNET<@$B>             [email protected]
                    495: R$+<@$+.CSNET>         $@$1%$2.CSNET<@$C>              [email protected]
                    496: R$+<@$+.UUCP>          $@$2!$1                         [email protected]
                    497: 
                    498: 
                    499: 
                    500: ############################################################
                    501: ############################################################
                    502: #####
                    503: #####          UUCP Mailer specification
                    504: #####
                    505: ############################################################
                    506: ############################################################
                    507: 
                    508: 
                    509: Muucp, P=/usr/bin/uux, F=DFMhuU, S=13, R=23, M=100000,
                    510:        A=uux - -r -z -a$f -gC $h!rmail ($u)
                    511: 
                    512: S13
                    513: R$+                    $:$>5$1                         convert to old style
                    514: R$*<@$=w>$*            $1<@$w>$2                       resolve abbreviations
                    515: R$*<@$->$*             $1<@$2.$D>$3                    resolve abbreviations
                    516: R$+<@$+>               $2!$1                           uucpize (no @'s in addr)
                    517: R$w!$+                 $1                              strip local name
                    518: R$+                    $:$U!$1                         stick on our host name
                    519: R$=U!$-%$-             $:$1!$2@$3.$D                   [email protected]
                    520: 
                    521: S23
                    522: R$+                    $:$>5$1                         convert to old style
                    523: R$*<@$=w>$*            $1<@$w>$2                       resolve abbreviations
                    524: R$*<@$->$*             $1<@$2.$D>$3                    resolve abbreviations
                    525: R$+<@$w>               $U!$1                           a!b@here -> here!a!b
                    526: R$=U!$+                        $2                              here!a!b -> a!b
                    527: # sanity ... should not happen.
                    528: R$=U.$D!$+             $2                              strip local name.domain
                    529: 
                    530: 
                    531: ############################################################
                    532: ############################################################
                    533: #####
                    534: #####          Provide Backward Compatibility
                    535: #####
                    536: ############################################################
                    537: ############################################################
                    538: 
                    539: #####################################################
                    540: #  General code to convert back to old style names  #
                    541: #####################################################
                    542: S5
                    543: 
                    544: R$+<@$w>               $1                              strip host
                    545: R$+<@$-.UUCP>          $2!$1                           [email protected] => host!u
                    546: 
                    547: 
                    548: 
                    549: #####################
                    550: ###   Rule Zero   ###
                    551: #####################
                    552: 
                    553: 
                    554: ############################################################
                    555: ############################################################
                    556: #####
                    557: #####          RULESET ZERO PREAMBLE
                    558: #####
                    559: #####  The beginning of ruleset zero is constant through all
                    560: #####  configurations.
                    561: #####
                    562: ############################################################
                    563: ############################################################
                    564: 
                    565: S0
                    566: 
                    567: # first make canonical
                    568: R$*<$*>$*              $1$2$3                          defocus
                    569: R$+                    $:$>3$1                         make canonical
                    570: 
                    571: # handle special cases
                    572: R$*<@[$+]>$*           $:$1<@$[[$2]$]>$3               numeric internet addr
                    573: R$*<@[$+]>$*           $#tcp$@[$2]$:$1@[$2]$3          numeric internet spec
                    574: R$+                    $:$>6$1
                    575: R$-<@$w>               $#local$:$1
                    576: R@                     $#error$:Invalid address        handle <> form
                    577: 
                    578: # canonicalize using the nameserver if not internal domain
                    579: R$*<@$*.$~I>$*         $:$1<@$[$2.$3$]>$4
                    580: R$*<@$->$*             $:$1<@$[$2$]>$3
                    581: R$*<@$->$*             $:$1<@$2.$D>$3                  if nameserver fails
                    582: 
                    583: # now delete the local info
                    584: R<@$w>:$*              $@$>0$1                         @here:... -> ...
                    585: R$*<@$w>               $@$>0$1                         ...@here -> ...
                    586: 
                    587: ##################################
                    588: #  End of ruleset zero preamble  #
                    589: ##################################
                    590: 
                    591: 
                    592: ###############################################
                    593: ###   Machine dependent part of Rule Zero   ###
                    594: ###############################################
                    595: 
                    596: 
                    597: 
                    598: # resolve local UUCP connections
                    599: R<@$=V.UUCP>:$+                $#uucp$@$1$:$2                          @host.UUCP:...
                    600: R$+<@$=V.UUCP>         $#uucp$@$2$:$1                          [email protected]
                    601: 
                    602: 
                    603: 
                    604: 
                    605: # resolve fake top level domains by forwarding to other hosts
                    606: R$*<@$+.BITNET>$*      $#tcp$@$B$:$1<@$2.BITNET>$3             [email protected]
                    607: R$*<@$+.CSNET>$*       $#tcp$@$C$:$1<@$2.CSNET>$3              [email protected]
                    608: 
                    609: 
                    610: # forward non-local UUCP traffic to our UUCP relay
                    611: R$*<@$*.UUCP>$*                $#tcpld$@$R$:$1<@$2.UUCP>       uucp mail
                    612: 
                    613: # resolve SMTP traffic
                    614: R$*<@$*.$D>$*          $#tcpld$@$2.$D$:$1<@$2.$D>$3    [email protected]
                    615: R$*<@$+>$*             $#tcp$@$2$:$1<@$2>$3            [email protected]
                    616: 
                    617: # remaining names must be local
                    618: R$+                    $#local$:$1                     everything else
                    619: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.