home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / de / comp / sources / os9 / 7 < prev    next >
Encoding:
Internet Message Format  |  1992-12-23  |  58.4 KB

  1. Xref: sparky de.comp.sources.os9:7 comp.os.os9:1549
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!saimiri.primate.wisc.edu!ames!sun-barr!news2me.EBay.Sun.COM!seven-up.East.Sun.COM!sungy!stasys!stasys!not-for-mail
  3. From: frank.kaefer@stasys.sta.sub.org (Frank Kaefer)
  4. Newsgroups: de.comp.sources.os9,comp.os.os9
  5. Subject: MNews Prerelease Part06/09
  6. Message-ID: <1hafdiINNptb@stasys.sta.sub.org>
  7. Date: 23 Dec 92 19:41:38 GMT
  8. Sender: news@stasys.sta.sub.org
  9. Followup-To: de.comp.sources.d
  10. Organization: Stasys News Server, Starnberg, Germany
  11. Lines: 1786
  12. Approved: frank.kaefer@stasys.sta.sub.org (Frank Kaefer)
  13. NNTP-Posting-Host: stasys.sta.sub.org
  14.  
  15. Submitted-by: Ulrich Dessauer <ud@Nightmare.ddt.sub.org>
  16. Archive-name: mnews/part06
  17.  
  18. : ----- Cut here ----- Cut here ----- Cut here ----- Cut here -----
  19. : Use  sh filename  to extract shell archive
  20. : This shell archive contains following files:
  21. :     'INEWS/uidummy.c                               350 bytes'
  22. :     'INEWS/unln.c                                 1503 bytes'
  23. :     'INEWS/wact.c                                 2455 bytes'
  24. :     'INEWS/wgrp.c                                 5347 bytes'
  25. :     'INEWS/wit.c                                  3258 bytes'
  26. :     'LIB/Active                                      0 bytes'
  27. :     'LIB/Aliases                                   183 bytes'
  28. :     'LIB/Archive                                   298 bytes'
  29. :     'LIB/Checkgroups                               251 bytes'
  30. :     'LIB/Convtable                                 270 bytes'
  31. :     'LIB/Distributions                             330 bytes'
  32. :     'LIB/Followup                                  331 bytes'
  33. :     'LIB/Logfile                                     0 bytes'
  34. :     'LIB/Sys                                       600 bytes'
  35. :     'LIB/send_uuname                                78 bytes'
  36. :     'LOCK/Makefile                                 139 bytes'
  37. :     'LOCK/lock.c                                  1888 bytes'
  38. :     'LOCK/lock.h                                   130 bytes'
  39. :     'MAN/8bit.prf                                 2752 bytes'
  40. :     'MAN/Active.prf                               1141 bytes'
  41. :     'MAN/Checkgroups.prf                           808 bytes'
  42. :     'MAN/Delold.prf                                499 bytes'
  43. :     'MAN/Distributions.prf                         650 bytes'
  44. :     'MAN/Followup.prf                              721 bytes'
  45. :     'MAN/Inews.prf                                5236 bytes'
  46. :     'MAN/Manuals.t.Z.uu                          20145 bytes'
  47. if test -f 'INEWS/uidummy.c' ; then
  48.   echo 'File INEWS/uidummy.c already exists, overwriting it'
  49.   del 'INEWS/uidummy.c'
  50. fi
  51. echo Extracting \"'INEWS/uidummy.c'\"
  52. sed "s/^X//" >'INEWS/uidummy.c' <<'__END__OF__THIS__FILE__'
  53. X/*
  54. X * $Log:    uidummy.c_v $
  55. X * Revision 1.1  90/08/31  15:36:35  cs
  56. X * Initial revision
  57. X * 
  58. X */
  59. X# ifndef    LINT
  60. Xstatic char rcsid[] = "$Id: uidummy.c_v 1.1 90/08/31 15:36:35 cs Exp $";
  61. X# endif        LINT
  62. X# include    "inews.h"
  63. X
  64. Xvoid
  65. Xuser_interface (a, b)
  66. Xint a;
  67. Xchar *b;
  68. X{
  69. X    _errmsg (1, "This version doesn't support the user-inteface feature, try `mnews'\n");
  70. X}
  71. __END__OF__THIS__FILE__
  72. if test -f 'INEWS/unln.c' ; then
  73.   echo 'File INEWS/unln.c already exists, overwriting it'
  74.   del 'INEWS/unln.c'
  75. fi
  76. echo Extracting \"'INEWS/unln.c'\"
  77. sed "s/^X//" >'INEWS/unln.c' <<'__END__OF__THIS__FILE__'
  78. X/*
  79. X * $Log:    unln.c_v $
  80. X * Revision 1.1  90/08/31  15:36:38  cs
  81. X * Initial revision
  82. X * 
  83. X */
  84. X# ifndef    LINT
  85. Xstatic char rcsid[] = "$Id: unln.c_v 1.1 90/08/31 15:36:38 cs Exp $";
  86. X# endif        LINT
  87. X# include    <c8type.h>
  88. X# include    <errno.h>
  89. X# include    <dir.h>
  90. X# include    "inews.h"
  91. X
  92. Xextern char    *malloc ();
  93. X
  94. Xchar *
  95. Xcreate_fn (s)
  96. Xregister char *s;
  97. X{
  98. X    register char    *fn;
  99. X
  100. X    if (!(fn = malloc (strlen (newsdir) + strlen (s) + 6)))
  101. X        return (NULL);
  102. X    strcpy (fn, newsdir);
  103. X    strcat (fn, "/");
  104. X    strcat (fn, s);
  105. X    return (fn);
  106. X}
  107. X
  108. Xvoid
  109. Xunlink_in_newsdir_dir (dir)
  110. Xchar *dir;
  111. X{
  112. X    DIR        *dp;
  113. X    struct direct    *ent;
  114. X    int        rmdir;
  115. X    char        *fulldir;
  116. X    char        *cmd;
  117. X    register char    *ptr;
  118. X
  119. X    if (!(fulldir = create_fn (dir)))
  120. X        return;
  121. X    if (!(cmd = malloc (strlen (fulldir) + 36))) {
  122. X        free (fulldir);
  123. X        return;
  124. X    }
  125. X    if (!(dp = opendir (fulldir))) {
  126. X        free (cmd);
  127. X        free (fulldir);
  128. X        return;
  129. X    }
  130. X    rmdir = TRUE;
  131. X    while (ent = readdir (dp))
  132. X        if (ent->d_name[0] != '.') {
  133. X            ptr = ent->d_name;
  134. X            while (is8digit (*ptr))
  135. X                ++ptr;
  136. X            if (*ptr)
  137. X                rmdir = FALSE;
  138. X            else {
  139. X                sprintf (cmd, "%s/%s", fulldir, ent->d_name);
  140. X                unlink (cmd);
  141. X            }
  142. X        }
  143. X    closedir (dp);
  144. X    if (rmdir) {
  145. X        sprintf (cmd, "deldir -qf '%s'", fulldir);
  146. X        xshell (cmd);
  147. X    }
  148. X    free (fulldir);
  149. X    free (cmd);
  150. X}
  151. X
  152. Xint
  153. Xunlink_in_newsdir_file (file)
  154. Xchar *file;
  155. X{
  156. X    char    *fn;
  157. X    int    err;
  158. X
  159. X    if (!(fn = create_fn (file)))
  160. X        return (-1);
  161. X    errno = 0;
  162. X    if (((err = unlink (fn)) < 0) && (errno != E_PNNF))
  163. X        do_log ("FATAL: Can't unlink %s (errno %d)\n", fn, errno);
  164. X    free (fn);
  165. X    return (err);
  166. X}
  167. __END__OF__THIS__FILE__
  168. if test -f 'INEWS/wact.c' ; then
  169.   echo 'File INEWS/wact.c already exists, overwriting it'
  170.   del 'INEWS/wact.c'
  171. fi
  172. echo Extracting \"'INEWS/wact.c'\"
  173. sed "s/^X//" >'INEWS/wact.c' <<'__END__OF__THIS__FILE__'
  174. X/*
  175. X * $Log:    wact.c_v $
  176. X * Revision 1.3  91/12/26  13:37:51  ud
  177. X * Added the writing of size limitations in the active file
  178. X * 
  179. X * Revision 1.2  91/12/06  14:47:26  ud
  180. X * Changed format of active file to be compatible to BNews/CNews
  181. X * 
  182. X * Revision 1.1  90/08/31  15:36:42  cs
  183. X * Initial revision
  184. X * 
  185. X */
  186. X# ifndef    LINT
  187. Xstatic char rcsid[] = "$Id: wact.c_v 1.3 91/12/26 13:37:51 ud Exp $";
  188. X# endif        LINT
  189. X# include    <stdio.h>
  190. X# include    <modes.h>
  191. X# include    "inews.h"
  192. X
  193. Xextern int    errno;
  194. X
  195. Xvoid
  196. Xsort_active ()
  197. X{
  198. X    register active    *at2, *aact;
  199. X
  200. X    if (!hact)
  201. X        return;
  202. X    aact = hact;
  203. X    at2 = NULL;
  204. X    while (aact->next) {
  205. X        if (_strccmp (aact->grp, aact->next->grp) < 0) {
  206. X            if (at2) {
  207. X                at2->next = aact->next;
  208. X                aact->next = aact->next->next;
  209. X                at2->next->next = aact;
  210. X                aact = at2;
  211. X                if (aact == hact)
  212. X                    at2 = NULL;
  213. X                else {
  214. X                    at2 = hact;
  215. X                    while (at2)
  216. X                        if (at2->next == aact)
  217. X                            break;
  218. X                        else
  219. X                            at2 = at2->next;
  220. X                }
  221. X            } else {
  222. X                aact = hact->next;
  223. X                hact->next = aact->next;
  224. X                aact->next = hact;
  225. X                hact = aact;
  226. X                aact = hact;
  227. X                at2 = NULL;
  228. X            }
  229. X        } else {
  230. X            at2 = aact;
  231. X            aact = aact->next;
  232. X        }
  233. X    }
  234. X}
  235. X
  236. Xstatic int
  237. Xfull_restore_active ()
  238. X{
  239. X    register int    t;
  240. X    register active    *atmp;
  241. X    register FILE    *fp;
  242. X
  243. X    unlink (ACT_BAK_FILE);
  244. X    rename (ACTIVE_FILE, ACT_BAK_FILE);
  245. X    if (!(fp = fopen (ACTIVE_FILE, "w"))) {
  246. X        do_log ("FATAL: Can't write %s\n", ACTIVE_FILE);
  247. X        return (-1);
  248. X    }
  249. X    sort_active ();
  250. X    atmp = hact;
  251. X    while (atmp) {
  252. X        fprintf (fp, "%s %08d %08d %c%c",
  253. X            atmp->grp,
  254. X            atmp->high, atmp->low,
  255. X            atmp->aflag[0], atmp->aflag[1]);
  256. X        if (atmp -> kblimit != -1)
  257. X            fprintf (fp, " %d", atmp -> kblimit);
  258. X        if (atmp->aflag[0] == M_MOD) {
  259. X            for (t=0;atmp->moderator[t];++t)
  260. X                fprintf (fp, " %s", atmp->moderator[t]);
  261. X        }
  262. X        fprintf (fp, "\n");
  263. X        atmp = atmp->next;
  264. X    }
  265. X    fclose (fp);
  266. X    chmod (ACTIVE_FILE, 013);
  267. X    return (0);
  268. X}
  269. X
  270. Xint
  271. Xrestore_active ()
  272. X{
  273. X    register active    *tmp;
  274. X    register int    fd;
  275. X    char        nrbuf[32];
  276. X
  277. X    if (act_rewrite)
  278. X        return (full_restore_active ());
  279. X    if ((fd = open (ACTIVE_FILE, S_IREAD | S_IWRITE)) < 0) {
  280. X        do_log ("FATAL: Can't open to write %s\n", ACTIVE_FILE);
  281. X        return (-1);
  282. X    }
  283. X    tmp = hact;
  284. X    while (tmp) {
  285. X        if (tmp->changed) {
  286. X            if (lseek (fd, tmp->pos, 0) != -1) {
  287. X                sprintf (nrbuf, "%08d %08d", tmp->high, tmp->low);
  288. X                write (fd, nrbuf, strlen (nrbuf));
  289. X            } else
  290. X                do_log ("FATAL: Can't seek to %d (errno %d)\n", tmp->pos, errno);
  291. X        }
  292. X        tmp = tmp->next;
  293. X    }
  294. X    close (fd);
  295. X    return (0);
  296. X}
  297. __END__OF__THIS__FILE__
  298. if test -f 'INEWS/wgrp.c' ; then
  299.   echo 'File INEWS/wgrp.c already exists, overwriting it'
  300.   del 'INEWS/wgrp.c'
  301. fi
  302. echo Extracting \"'INEWS/wgrp.c'\"
  303. sed "s/^X//" >'INEWS/wgrp.c' <<'__END__OF__THIS__FILE__'
  304. X/*
  305. X * $Log:    wgrp.c_v $
  306. X * Revision 1.4  91/09/11  18:14:39  ud
  307. X * Moved del_obsolete_header from rhead to here; so we can allow
  308. X * the mailing feature out of news (copy a written article to
  309. X * someone via mail)
  310. X * 
  311. X * Revision 1.3  91/05/22  13:15:41  ud
  312. X * Added in memory option
  313. X * 
  314. X * Revision 1.2  91/01/02  21:25:26  ud
  315. X * Added ndbm support for history
  316. X * 
  317. X * Revision 1.1  90/08/31  15:36:46  cs
  318. X * Initial revision
  319. X * 
  320. X */
  321. X# ifndef    LINT
  322. Xstatic char rcsid[] = "$Id: wgrp.c_v 1.4 91/09/11 18:14:39 ud Exp $";
  323. X# endif        LINT
  324. X# include    <c8type.h>
  325. X# include    <modes.h>
  326. X# include    <time.h>
  327. X# include    "inews.h"
  328. X# include    "hist.h"
  329. X
  330. Xextern char    *index ();
  331. Xextern char    *itoa ();
  332. Xextern char    *malloc ();
  333. Xextern char    *strdup ();
  334. X
  335. Xstatic void
  336. Xmake_path (fn)
  337. Xregister char *fn;
  338. X{
  339. X    register char    *ptr;
  340. X
  341. X    ptr = fn;
  342. X    do {
  343. X        if (ptr = index (ptr, '/')) {
  344. X            *ptr = '\0';
  345. X            if (access (fn, S_IFDIR) < 0)
  346. X                makdir (fn, ACCESS_PATH, 033);
  347. X            *ptr++ = '/';
  348. X        }
  349. X    } while (ptr);
  350. X}
  351. X
  352. Xvoid
  353. Xmake_fn (fn)
  354. Xregister char *fn;
  355. X{
  356. X    while (*fn)
  357. X        if (*fn == '.')
  358. X            *fn++ = '/';
  359. X        else if (((!is8alnum (*fn)) || (!is8ascii (*fn)) || ((unsigned char) *fn >= 0x80)) && (*fn != '/'))
  360. X            *fn++ = '_';
  361. X        else
  362. X            ++fn;
  363. X}
  364. X
  365. Xint
  366. Xwrite_groups ()
  367. X{
  368. X    register int    n;
  369. X    register char    *ptr, *p2;
  370. X    int        fd;
  371. X    int        siz;
  372. X    int        fdi;
  373. X    int        bufsiz;
  374. X    char        *fn;
  375. X    char        *orig;
  376. X    char        *buf;
  377. X    char        *mid;
  378. X    register charc    *tmp;
  379. X    charc        *htmp;
  380. X    charc        *xtmp;
  381. X    time_t        tim;
  382. X# ifdef        IN_MEMORY
  383. X    list        *ltmp;
  384. X# endif        /* IN_MEMORY */
  385. X
  386. X# ifdef        CAN_MAIL
  387. X    send_private_mail ();
  388. X# endif        /* CAN_MAIL */
  389. X    del_obsolete_header ();
  390. X    if (chdir (newsdir) < 0) {
  391. X        do_log ("FATAL: Can't chdir to %s.\n", newsdir);
  392. X        return (-1);
  393. X    }
  394. X    siz = 0;
  395. X    tmp = isctrl ? isctrl : ngs;
  396. X    while (tmp) {
  397. X        if (strlen (tmp->text) > siz)
  398. X            siz = strlen (tmp->text);
  399. X        tmp = tmp->next;
  400. X    }
  401. X    if (!(fn = malloc (siz + 20))) {
  402. X        do_log ("FATAL: Can't alloc memory\n");
  403. X        return (-1);
  404. X    }
  405. X    bufsiz = 5000;
  406. X    do {
  407. X        if (!(buf = malloc (bufsiz + 16)))
  408. X            bufsiz -= 500;
  409. X    } while ((!buf) && (bufsiz >= 500));
  410. X    if (!buf) {
  411. X        do_log ("FATAL: Can't alloc memory\n");
  412. X        return (-1);
  413. X    }
  414. X    tmp = isctrl ? isctrl : ngs;
  415. X    orig = NULL;
  416. X    while (tmp) {
  417. X        sprintf (fn, "%s/%d", tmp->text, tmp->nr);
  418. X        make_fn (fn);
  419. X        make_path (fn);
  420. X# ifdef        SOFT_LINKS
  421. X        if ((fd = create (fn, S_IWRITE, 013)) < 0) {
  422. X            do_log ("FATAL: Can't create %s.\n", fn);
  423. X            return (-1);
  424. X        } else if (!orig) { /* } */
  425. X# else        /* SOFT_LINKS */
  426. X        if (! orig) {
  427. X            if ((fd = create (fn, S_IWRITE, 013)) < 0) {
  428. X                do_log ("FATAL: Can't create %s.\n", fn);
  429. X                return (-1);
  430. X            }
  431. X# endif        /* SOFT_LINKS */
  432. X# ifdef        USE_XREF
  433. X# ifdef        USE_FULLHOST
  434. X            strcpy (buf, fhost);
  435. X# else        /* USE_FULLHOST */
  436. X            strcpy (buf, hostname);
  437. X# endif        /* USE_FULLHOST */
  438. X            xtmp = isctrl ? isctrl : ngs;
  439. X            while (xtmp) {
  440. X                if ((strlen (buf) + strlen (xtmp->text)) < 500) {
  441. X                    strcat (buf, " ");
  442. X                    strcat (buf, xtmp->text);
  443. X                    strcat (buf, ":");
  444. X                    strcat (buf, itoa (xtmp->nr));
  445. X                } else
  446. X                    break;
  447. X                xtmp = xtmp->next;
  448. X            }
  449. X            insert_header (H_XREF, buf, TRUE);
  450. X# endif        /* USE_XREF */
  451. X            htmp = head;
  452. X            while (htmp) {
  453. X                write (fd, htmp->text, strlen (htmp->text));
  454. X                write (fd, "\n", 1);
  455. X                htmp = htmp->next;
  456. X            }
  457. X            write (fd, "\n", 1);
  458. X# ifndef    IN_MEMORY
  459. X            if ((fdi = open (newstmp, S_IREAD)) != -1) {
  460. X                while ((n = read (fdi, buf, bufsiz)) > 0)
  461. X                    write (fd, buf, n);
  462. X                close (fdi);
  463. X            } else {
  464. X                do_log ("FATAL: Can't read previously created %s\n", newstmp);
  465. X                return (-1);
  466. X            }
  467. X# else        /* IN_MEMORY */
  468. X            for (ltmp = newstmp; ltmp; ltmp = ltmp->next)
  469. X                write (fd, ltmp->text, ltmp->len);
  470. X# endif        /* IN_MEMORY */
  471. X            orig = strdup (fn);
  472. X# ifndef    SOFT_LINKS
  473. X            close (fd);
  474. X# endif        /* SOFT_LINKS */
  475. X        } else {
  476. X# ifdef        SOFT_LINKS
  477. X            write (fd, LINK_ID, strlen (LINK_ID));
  478. X            write (fd, orig, strlen (orig));
  479. X            write (fd, "\n", 1);
  480. X# else        /* SOFT_LINKS */
  481. X            link (orig, fn);
  482. X# endif        /* SOFT_LINKS */
  483. X        }
  484. X# ifdef        SOFT_LINKS
  485. X        close (fd);
  486. X# endif        /* SOFT_LINKS */
  487. X        tmp = tmp->next;
  488. X    }
  489. X    if (chdir (newslib) != -1) {
  490. X        mid = get_msgid ();
  491. X# ifndef    USE_NDBM
  492. X        if ((fd = open_hist (mid, S_IREAD | S_IWRITE)) < 0) {
  493. X            do_log ("FATAL: Can't open/create %s\n", HIST_FILE);
  494. X            return (-1);
  495. X        } else
  496. X            lseek (fd, 0, 2);
  497. X        time (&tim);
  498. X        sprintf (buf, "%d %s %c", tim, mid, ART_EXISTS);
  499. X        write (fd, buf, strlen (buf));
  500. X        tmp = isctrl ? isctrl : ngs;
  501. X        while (tmp) {
  502. X            sprintf (fn, "%s/%d", tmp->text, tmp->nr);
  503. X            make_fn (fn);
  504. X            write (fd, " ", 1);
  505. X            write (fd, fn, strlen (fn));
  506. X            tmp = tmp->next;
  507. X        }
  508. X        write (fd, "\n", 1);
  509. X        close (fd);
  510. X# else        /* USE_NDBM */
  511. X        if (!(db = open_hist (S_IREAD | S_IWRITE))) {
  512. X            do_log ("FATAL: Can't open/create %s\n", HISTORY);
  513. X            return (-1);
  514. X        }
  515. X        key.dptr = lower_mid (mid);
  516. X        key.dsize = strlen (mid) + 1;
  517. X        time (&hist.tim);
  518. X        hist.flag = ART_EXISTS;
  519. X        ptr = hist.fns;
  520. X        n = 0;
  521. X        tmp = isctrl ? isctrl : ngs;
  522. X        while (tmp && (n < 768)) {
  523. X            sprintf (fn, "%s/%d", tmp->text, tmp->nr);
  524. X            make_fn (fn);
  525. X            if (ptr != hist.fns) {
  526. X                *ptr++ = ' ';
  527. X                ++n;
  528. X            }
  529. X            p2 = fn;
  530. X            while (*p2) {
  531. X                *ptr++ = *p2++;
  532. X                ++n;
  533. X            }
  534. X            tmp = tmp->next;
  535. X        }
  536. X        *ptr = '\0';
  537. X        ++n;
  538. X        fill_hist ();
  539. X        dbm_store (db, key, dat, DBM_INSERT);
  540. X        dbm_close (db);
  541. X# endif        /* USE_NDBM */
  542. X    }
  543. X    free (fn);
  544. X    free (buf);
  545. X    if (!orig) {
  546. X        do_log ("FATAL: Haven't stored the proper filename\n");
  547. X        return (-1);
  548. X    } else
  549. X        realfile = orig;
  550. X    return (0);
  551. X}
  552. __END__OF__THIS__FILE__
  553. if test -f 'INEWS/wit.c' ; then
  554.   echo 'File INEWS/wit.c already exists, overwriting it'
  555.   del 'INEWS/wit.c'
  556. fi
  557. echo Extracting \"'INEWS/wit.c'\"
  558. sed "s/^X//" >'INEWS/wit.c' <<'__END__OF__THIS__FILE__'
  559. X/*
  560. X * $Log:    wit.c_v $
  561. X * Revision 1.2  91/12/26  13:36:28  ud
  562. X * Added forwarding of flags to sendbatch (currently only N for non
  563. X * convert from 8 bit, C for convert from 8 bit and S=<siz> to
  564. X * specify the largest article to be forwarded
  565. X * 
  566. X * Revision 1.1  90/08/31  15:36:51  cs
  567. X * Initial revision
  568. X * 
  569. X */
  570. X# ifndef    LINT
  571. Xstatic char rcsid[] = "$Id: wit.c_v 1.2 91/12/26 13:36:28 ud Exp $";
  572. X# endif        LINT
  573. X# include    <stdio.h>
  574. X# include    <modes.h>
  575. X# include    <direct.h>
  576. X# include    <c8type.h>
  577. X# include    "inews.h"
  578. X
  579. X# define    TEMPFILE    ".wit_2_vanish"
  580. X
  581. Xextern char    *malloc ();
  582. Xextern char    *rindex ();
  583. X
  584. Xstatic int
  585. Xcheck_overflow (fd)
  586. Xint fd;
  587. X{
  588. X    struct fildes    fdes;
  589. X    register int    t;
  590. X
  591. X    if (_gs_gfd (fd, &fdes, sizeof (fdes)) == -1)
  592. X        return (FALSE);
  593. X    for (t = 0; t < 45; ++t)
  594. X        if (! (fdes.fdseg[t].addr[0] || fdes.fdseg[t].addr[1] || fdes.fdseg[t].addr[2]))
  595. X            return (FALSE);
  596. X    return (TRUE);
  597. X}
  598. X
  599. Xstatic void
  600. Xdo_copy (src, dest)
  601. Xchar *src, *dest;
  602. X{
  603. X    int    siz;
  604. X    int    n;
  605. X    char    *buf;
  606. X    char    c;
  607. X    int    fd1, fd2;
  608. X
  609. X    if ((fd1 = open (src, S_IREAD)) == -1)
  610. X        return;
  611. X    siz = _gs_size (fd1);
  612. X    if ((fd2 = create (dest, S_IWRITE | S_ISIZE, 03, siz)) == -1) {
  613. X        close (fd1);
  614. X        return;
  615. X    }
  616. X    if (siz > 8192)
  617. X        siz = 8192;
  618. X    if (! (buf = malloc (siz + 2)))
  619. X        while (read (fd1, &c, 1) == 1)
  620. X            write (fd2, &c, 1);
  621. X    else {
  622. X        while ((n = read (fd1, buf, siz)) > 0)
  623. X            write (fd2, buf, n);
  624. X        free (buf);
  625. X    }
  626. X    close (fd1);
  627. X    close (fd2);
  628. X}
  629. X
  630. Xvoid
  631. Xwrite_it (st)
  632. Xsys *st;
  633. X{
  634. X    register char    *ptr;
  635. X    char        *fn, *fn2;
  636. X    FILE        *fp;
  637. X
  638. X    if (st->cmd && (st->cmd[0] == '-')) {
  639. X        ptr = st->cmd + 1;
  640. X        if (*ptr != '/') {
  641. X            if (!(fn = malloc (strlen (batchdir) + strlen (ptr) + 40))) {
  642. X                do_log ("FATAL: Can't malloc for file %s\n", ptr);
  643. X                return;
  644. X            }
  645. X            sprintf (fn, "%s/%s", batchdir, ptr);
  646. X        } else if (access (ptr, S_IFDIR) == 0) {
  647. X            if (!(fn = malloc (strlen (ptr) + strlen (st->site) + 40))) {
  648. X                do_log ("FATAL: Can't malloc for file %s in %s\n", st->site, ptr);
  649. X                return;
  650. X            }
  651. X            sprintf (fn, "%s/%s", ptr, st->site);
  652. X        } else {
  653. X            if (!(fn = malloc (strlen (ptr) + 40))) {
  654. X                do_log ("FATAL: Can't malloc for file %s\n", ptr);
  655. X                return;
  656. X            }
  657. X            strcpy (fn, ptr);
  658. X        }
  659. X    } else {
  660. X        if (!(fn = malloc (strlen (batchdir) + strlen (st->site) + 40))) {
  661. X            do_log ("FATAL: Can't malloc for site %s\n", st->site);
  662. X            return;
  663. X        }
  664. X        sprintf (fn, "%s/%s", batchdir, st->site);
  665. X    }
  666. X    if (ptr = rindex (fn, '/'))
  667. X        ++ptr;
  668. X    else
  669. X        ptr = fn;
  670. X    while (*ptr)
  671. X        if (*ptr == '.') {
  672. X            *ptr = '\0';
  673. X            break;
  674. X        } else if (is8alnum (*ptr) && is8ascii (*ptr))
  675. X            ++ptr;
  676. X        else
  677. X            *ptr++ = '_';
  678. X    if (!(fp = fopen (fn, "a+"))) {
  679. X        do_log ("FATAL: Can't open %s\n", fn);
  680. X        return;
  681. X    }
  682. X    if (check_overflow (fp->_fd) && (fn2 = malloc (strlen (fn) + 40))) {
  683. X        fclose (fp);
  684. X        strcpy (fn2, fn);
  685. X        if (ptr = rindex (fn2, '/'))
  686. X            ++ptr;
  687. X        else
  688. X            ptr = fn2;
  689. X        strcpy (ptr, "wittempXXXXXX");
  690. X        mktemp (fn2);
  691. X        if (rename (fn, fn2)) {
  692. X            do_log ("Can't rename %s to %s\n", fn, fn2);
  693. X            free (fn);
  694. X            free (fn2);
  695. X            return;
  696. X        }
  697. X        do_copy (fn2, fn);
  698. X        unlink (fn2);
  699. X        free (fn2);
  700. X        if (! (fp = fopen (fn, "a"))) {
  701. X            do_log ("FATAL: Can't open recreated file %s\n", fn);
  702. X            free (fn);
  703. X            return;
  704. X        }
  705. X    }
  706. X    if (st -> fflags)
  707. X        fprintf (fp, "%s|", st -> fflags);
  708. X    fprintf (fp, "%s/%s\n", newsdir, realfile);
  709. X    fclose (fp);
  710. X    free (fn);
  711. X}
  712. __END__OF__THIS__FILE__
  713. if test -f 'LIB/Active' ; then
  714.   echo 'File LIB/Active already exists, overwriting it'
  715.   del 'LIB/Active'
  716. fi
  717. echo Extracting \"'LIB/Active'\"
  718. sed "s/^X//" >'LIB/Active' <<'__END__OF__THIS__FILE__'
  719. __END__OF__THIS__FILE__
  720. if test -f 'LIB/Aliases' ; then
  721.   echo 'File LIB/Aliases already exists, overwriting it'
  722.   del 'LIB/Aliases'
  723. fi
  724. echo Extracting \"'LIB/Aliases'\"
  725. sed "s/^X//" >'LIB/Aliases' <<'__END__OF__THIS__FILE__'
  726. X#
  727. X# $Log$
  728. X#
  729. X#    A file to alias newgroup
  730. X#    Warning: Only acts on incoming messages,
  731. X#    doesn't makes a revers aliasing on outgoing
  732. X#    messages
  733. X#    Format:
  734. X#    newsgroup newsgroup{,newsgroup}
  735. __END__OF__THIS__FILE__
  736. if test -f 'LIB/Archive' ; then
  737.   echo 'File LIB/Archive already exists, overwriting it'
  738.   del 'LIB/Archive'
  739. fi
  740. echo Extracting \"'LIB/Archive'\"
  741. sed "s/^X//" >'LIB/Archive' <<'__END__OF__THIS__FILE__'
  742. X#
  743. X# $Log$
  744. X#
  745. X#    You can archive articles during expire
  746. X#    instead of deleting them
  747. X#    Format:
  748. X#    newsgroup destination-directory prefix
  749. Xcomp.sources.unix    /h0/SPOOL/ARCHIVE/SOURCE    csu
  750. Xcomp.sources.misc    /h0/SPOOL/ARCHIVE/SOURCE    csm
  751. Xde.comp.os.os9        /h0/SPOOL/ARCHIVE/OSK
  752. Xcomp.text*        /h0/SPOOL/ARCHIVE/TEXT
  753. __END__OF__THIS__FILE__
  754. if test -f 'LIB/Checkgroups' ; then
  755.   echo 'File LIB/Checkgroups already exists, overwriting it'
  756.   del 'LIB/Checkgroups'
  757. fi
  758. echo Extracting \"'LIB/Checkgroups'\"
  759. sed "s/^X//" >'LIB/Checkgroups' <<'__END__OF__THIS__FILE__'
  760. X#
  761. X# $Log$
  762. X#
  763. X#    This file limits a checkgroupsmessage to
  764. X#    a subset of newsgroups, so if a checkgroup
  765. X#    for a subnetwork is posted only the newsgroups
  766. X#    of this network are checked
  767. X#    Format:
  768. X#    distribution newsgroups
  769. Xworld        !de.alt.*,de.*
  770. Xlocal        local*
  771. __END__OF__THIS__FILE__
  772. if test -f 'LIB/Convtable' ; then
  773.   echo 'File LIB/Convtable already exists, overwriting it'
  774.   del 'LIB/Convtable'
  775. fi
  776. echo Extracting \"'LIB/Convtable'\"
  777. sed "s/^X//" >'LIB/Convtable' <<'__END__OF__THIS__FILE__'
  778. X#
  779. X# $Log$
  780. X#
  781. X#    This file is used by sbatch when a conversion from
  782. X#    international 8 bit character to 7 bit ASCII is
  783. X#    required
  784. X#    Format
  785. X#    character replace-sequence
  786. X$c4    Ae
  787. X$d6    Oe
  788. X$dc    Ue
  789. X$e4    ae
  790. X$f6    oe
  791. X$fc    ue
  792. X$df    ss
  793. X$a7    Par.
  794. X$a0    \ 
  795. X$a9    (C)
  796. X$a3    Pound
  797. X$ae    (R)
  798. X$b0    Grad
  799. X$b5    u
  800. __END__OF__THIS__FILE__
  801. if test -f 'LIB/Distributions' ; then
  802.   echo 'File LIB/Distributions already exists, overwriting it'
  803.   del 'LIB/Distributions'
  804. fi
  805. echo Extracting \"'LIB/Distributions'\"
  806. sed "s/^X//" >'LIB/Distributions' <<'__END__OF__THIS__FILE__'
  807. X#
  808. X# $Log$
  809. X#
  810. X#    Some examples of default distribuitons
  811. X#    (the newsgroups are in regular expression)
  812. X#
  813. X^local\..*    local        Local groups
  814. X^muc\..*    muc        Some groups for the munich area
  815. X^sub\..*    sub        Subnet groups
  816. X^de\..*        world        sub&dnet --> de
  817. X^dnet\.and\..*    sub,dnet    Mixed group for two networks
  818. X^(rec|comp)\..*    world        Worldwide groups
  819. __END__OF__THIS__FILE__
  820. if test -f 'LIB/Followup' ; then
  821.   echo 'File LIB/Followup already exists, overwriting it'
  822.   del 'LIB/Followup'
  823. fi
  824. echo Extracting \"'LIB/Followup'\"
  825. sed "s/^X//" >'LIB/Followup' <<'__END__OF__THIS__FILE__'
  826. X#
  827. X# $Log$
  828. X#
  829. X#    This file is used during creation of a new
  830. X#    article. In some newsgroups a followup should
  831. X#    be placed to a different group. To ensure that
  832. X#    there is a proper Followup-To: Line in the article,
  833. X#    this file is used.
  834. X#    Format:
  835. X#    newsgroup newsgroup{,newsgroup}
  836. Xalt.sources        alt.sources.d
  837. Xde.talk.jokes        de.talk.jokes.d
  838. __END__OF__THIS__FILE__
  839. if test -f 'LIB/Logfile' ; then
  840.   echo 'File LIB/Logfile already exists, overwriting it'
  841.   del 'LIB/Logfile'
  842. fi
  843. echo Extracting \"'LIB/Logfile'\"
  844. sed "s/^X//" >'LIB/Logfile' <<'__END__OF__THIS__FILE__'
  845. __END__OF__THIS__FILE__
  846. if test -f 'LIB/Sys' ; then
  847.   echo 'File LIB/Sys already exists, overwriting it'
  848.   del 'LIB/Sys'
  849. fi
  850. echo Extracting \"'LIB/Sys'\"
  851. sed "s/^X//" >'LIB/Sys' <<'__END__OF__THIS__FILE__'
  852. X#
  853. X# $Log$
  854. X#
  855. X#    Send all local written news and all news not received
  856. X#    (expect local distributions and local groups)
  857. X#    from `myfeed' to `myfeed':
  858. Xmyfeed> C:!local\..* .*:!local *
  859. X#
  860. X#    Send articles to scndfeed if articles haven't passed scndfeed
  861. X#    and myfeed (expect local stuff):
  862. Xscndfeed/myfeed> C:!local\..* .*:!local *
  863. X#
  864. X#    Hisfeed just get articles with distribution sub and muc, don't
  865. X#    convert eight bit characters to a seven bit sequence
  866. Xhisfeed> N:.*:sub muc
  867. X#
  868. X#    Forward all articels to local notes system (No change takes
  869. X#    place on direct feeding to another program):
  870. Xto-notes:.*:*:newsinput
  871. __END__OF__THIS__FILE__
  872. if test -f 'LIB/send_uuname' ; then
  873.   echo 'File LIB/send_uuname already exists, overwriting it'
  874.   del 'LIB/send_uuname'
  875. fi
  876. echo Extracting \"'LIB/send_uuname'\"
  877. sed "s/^X//" >'LIB/send_uuname' <<'__END__OF__THIS__FILE__'
  878. Xmyfeed        My main feed
  879. Xscndfeed    My 2nd feed
  880. Xhisfeed        A system I forward news to
  881. __END__OF__THIS__FILE__
  882. if test -f 'LOCK/Makefile' ; then
  883.   echo 'File LOCK/Makefile already exists, overwriting it'
  884.   del 'LOCK/Makefile'
  885. fi
  886. echo Extracting \"'LOCK/Makefile'\"
  887. sed "s/^X//" >'LOCK/Makefile' <<'__END__OF__THIS__FILE__'
  888. X# $Log$
  889. X#
  890. X#
  891. X# $Id$
  892. X#
  893. XG=    -g
  894. XCC=    cc
  895. XCFLAGS=    -qt=/dd/TMP -V=.. $G
  896. XOBJS=    lock.r
  897. XLIBDIR=    /dd/LIB
  898. X
  899. X$(LIBDIR)/lock.l:    $(OBJS)
  900. X    merge $(OBJS) >-$@
  901. __END__OF__THIS__FILE__
  902. if test -f 'LOCK/lock.c' ; then
  903.   echo 'File LOCK/lock.c already exists, overwriting it'
  904.   del 'LOCK/lock.c'
  905. fi
  906. echo Extracting \"'LOCK/lock.c'\"
  907. sed "s/^X//" >'LOCK/lock.c' <<'__END__OF__THIS__FILE__'
  908. X# include    <signal.h>
  909. X# include    <events.h>
  910. X# include    "news.h"
  911. X# include    "lock.h"
  912. X
  913. Xextern char    *_prgname ();
  914. Xextern char    *malloc ();
  915. X
  916. Xtypedef struct _lock    lock;
  917. X
  918. Xstruct _lock {
  919. X    char    name[14];
  920. X    int    evid;
  921. X    lock    *next;
  922. X};
  923. X
  924. Xint        _got_alarm;
  925. Xstatic lock    *lroot = NULL;
  926. X
  927. Xint
  928. Xdo_lock (name, timeout)
  929. Xchar *name;
  930. Xint timeout;
  931. X{
  932. X    int        evid;
  933. X    int        almid;
  934. X    int        err;
  935. X    register lock    *tmp;
  936. X    register int    len;
  937. X
  938. X    if (! name)
  939. X        if (! (name = _prgname ()))
  940. X            return (-1);
  941. X    if ((len = strlen (name)) > 12)
  942. X        len = 12;
  943. X    for (tmp = lroot; tmp; tmp = tmp -> next)
  944. X        if (_cmpnam (tmp -> name, name, len) == 0)
  945. X            break;
  946. X    if (tmp)
  947. X        return (0);
  948. X    if (! (tmp = (lock *) malloc (sizeof (lock))))
  949. X        return (-1);
  950. X    strncpy (tmp -> name, name, 12);
  951. X    tmp -> name[12] = '\0';
  952. X    if ((evid = _ev_link (tmp -> name)) == -1)
  953. X        if ((evid = _ev_creat (1, -1, 1, tmp -> name)) == -1)
  954. X            if ((evid = _ev_link (tmp -> name)) == -1) {
  955. X                free ((char *) tmp);
  956. X                return (-1);
  957. X            }
  958. X    if (timeout > 0) {
  959. X        _got_alarm = FALSE;
  960. X        almid = alm_set (SIGALRM, (timeout << 8) | (1 << 31));
  961. X        err = _ev_wait (evid, 1, 1);
  962. X        if ((! _got_alarm) && (almid != -1))
  963. X            alm_delete (almid);
  964. X    } else if (timeout == 0)
  965. X        err = _ev_wait (evid, 1, 1);
  966. X    else
  967. X        if (_ev_read (evid) != 1)
  968. X            err = -1;
  969. X        else
  970. X            err = _ev_wait (evid, 1, 1);
  971. X    if (err == -1) {
  972. X        _ev_unlink (evid);
  973. X        free ((char *) tmp);
  974. X        return (-1);
  975. X    }
  976. X    tmp -> evid = evid;
  977. X    tmp -> next = lroot;
  978. X    lroot = tmp;
  979. X    return (0);
  980. X}
  981. X
  982. Xvoid
  983. Xdo_unlock (name)
  984. Xchar *name;
  985. X{
  986. X    register lock    *tmp, *prev;
  987. X    int        len;
  988. X
  989. X    prev = NULL;
  990. X    tmp = lroot;
  991. X    if ((len = strlen (name)) > 12)
  992. X        len = 12;
  993. X    while (tmp)
  994. X        if (_cmpnam (tmp -> name, name, len) == 0) {
  995. X            _ev_signal (tmp -> evid, 0);
  996. X            if (prev)
  997. X                prev -> next = tmp -> next;
  998. X            else
  999. X                lroot = lroot -> next;
  1000. X            free ((char *) tmp);
  1001. X            if (prev)
  1002. X                tmp = prev -> next;
  1003. X            else
  1004. X                tmp = lroot;
  1005. X        } else {
  1006. X            prev = tmp;
  1007. X            tmp = tmp -> next;
  1008. X        }
  1009. X}
  1010. __END__OF__THIS__FILE__
  1011. if test -f 'LOCK/lock.h' ; then
  1012.   echo 'File LOCK/lock.h already exists, overwriting it'
  1013.   del 'LOCK/lock.h'
  1014. fi
  1015. echo Extracting \"'LOCK/lock.h'\"
  1016. sed "s/^X//" >'LOCK/lock.h' <<'__END__OF__THIS__FILE__'
  1017. X# ifndef    _LOCK_H
  1018. X# define    _LOCK_H
  1019. Xextern int    _got_alarm;
  1020. X
  1021. Xextern int    do_lock ();
  1022. Xextern void    do_unlock ();
  1023. X# endif        /* _LOCK_H */
  1024. __END__OF__THIS__FILE__
  1025. if test -f 'MAN/8bit.prf' ; then
  1026.   echo 'File MAN/8bit.prf already exists, overwriting it'
  1027.   del 'MAN/8bit.prf'
  1028. fi
  1029. echo Extracting \"'MAN/8bit.prf'\"
  1030. sed "s/^X//" >'MAN/8bit.prf' <<'__END__OF__THIS__FILE__'
  1031. X.THS 8Bit 3L News
  1032. X.SH NAME
  1033. X$N - A small Library to manage language dependent character with 8th bit
  1034. Xsupport. 
  1035. X.SH FUNCTIONS
  1036. Xvoid
  1037. X.B setup_convtable
  1038. X(doit, rev)
  1039. X.br
  1040. Xint doit;
  1041. X.br
  1042. Xint rev;
  1043. X
  1044. Xvoid
  1045. X.B conv_charset
  1046. X(buf, siz)
  1047. X.br
  1048. Xchar *buf;
  1049. X.br
  1050. Xint siz;
  1051. X
  1052. Xchar
  1053. X.B conv_char
  1054. X(c)
  1055. X.br
  1056. Xchar c;
  1057. X.SH DESCRIPTION
  1058. X.ti +3
  1059. XThis library allows software to handle different standards of
  1060. Xinternational character sets. As a suggestion all characters should be
  1061. Xtransformed to a unique standard (ISO 8859/1). The MNews system converts
  1062. Xthe local written character to the ISO character set and the Newsreader
  1063. Xcan convert it back if desired.
  1064. X.PP
  1065. XTo use the library you have to call first
  1066. X.B setup_convtable()
  1067. Xwith two arguments. The first tells the library if converting should
  1068. Xtake place and the second one if the converting should be done to or
  1069. Xfrom ISO (e.g. MNews uses to ISO, so the 2nd parameter is FALSE, the
  1070. XNewsreader converts back from ISO, so the parameter is TRUE.) To convert
  1071. Xa block of characters use
  1072. X.B conv_charset()
  1073. Xwith two arguments. The first is a pointer to a buffer where the data is
  1074. Xplaced (and will be stored back) and the second is the number of bytes
  1075. Xto convert. To convert a single character use
  1076. X.B conv_char()
  1077. Xwith the source character as an argument; the matching character will be
  1078. Xreturned. 
  1079. X.PP
  1080. XThe library determinates the type of the used character set by examnin
  1081. Xthe enviroment variable
  1082. X.B CHARSET
  1083. Xto examine then a file where the converting table is stored. The file
  1084. Xhas the name of the value of the enviroment variable and is located in
  1085. X.B /h0/USR/LIB/CHARSET
  1086. Xor can be specified with the entry
  1087. X.B CHARSET.LIB
  1088. Xin the Sysinfo database.
  1089. X.SH FORMAT OF A CONVERTING TABLE
  1090. X.ti +3
  1091. XEach line in this file is a converting rule for one character. A line
  1092. Xwith a leading hash (`#') is treated as a comment. The format of a line
  1093. Xis
  1094. X.ce
  1095. X<local-char>     <iso-char>
  1096. Xwhere one can use several versions of expressing these characters. The
  1097. Xtype of expression is determinated using the prefix. Following prefixes
  1098. Xare allowed:
  1099. X.O '
  1100. Xthe following character is the used literal.
  1101. X.NO 1..9
  1102. XThe number is treated as a decimal number.
  1103. X.NO 0x
  1104. Xthe following number is treated as a hexadecimal number in the range of
  1105. Xa byte (0 - 255).
  1106. X.NO 0
  1107. Xthe number is teated as an octal number.
  1108. X.NO %
  1109. Xthe number is treated as a binary number.
  1110. X.EO
  1111. X.PP
  1112. XFor hexadecimal there may also be a dollar sign (`\$') instead of the `0x'
  1113. Xand for decimal numbers there may be a hash sign (`#') to mark them.
  1114. XNOTE: never use the hash sign at the beginning of a line; this line will
  1115. Xbe treated as a comment.
  1116. X.SH EXAMPLE OF A FILE
  1117. X.raw 3
  1118. X#
  1119. X#  Convert IBM to ISO characterset
  1120. X#  (only german Umlaut)
  1121. X#
  1122. X\$8e    \$c4
  1123. X\$99    \$d6
  1124. X\$9a    \$dc
  1125. X\$84    \$e4
  1126. X\$94    \$f6
  1127. X\$81    \$fc
  1128. X\$e1    \$df
  1129. X.noraw
  1130. __END__OF__THIS__FILE__
  1131. if test -f 'MAN/Active.prf' ; then
  1132.   echo 'File MAN/Active.prf already exists, overwriting it'
  1133.   del 'MAN/Active.prf'
  1134. fi
  1135. echo Extracting \"'MAN/Active.prf'\"
  1136. sed "s/^X//" >'MAN/Active.prf' <<'__END__OF__THIS__FILE__'
  1137. X.THS Active 5L News
  1138. X.SH NAME
  1139. XActive - List of existing newsgroups with indicies.
  1140. X.SH DESCRIPTION
  1141. X.ti +3
  1142. XThis file contains a list of all existing newsgroup on the local
  1143. Xinstallation. The file is in general managed via
  1144. X.B controlmessages
  1145. Xbut for some reasons you may edit it. It
  1146. X.I must
  1147. Xbe sorted to ensure that news works properly. the format is in general
  1148. X.ce
  1149. X<group> <last> <first> n<flag> [<sizelimit>]
  1150. Xfor non moderated groups,
  1151. X.ce
  1152. X<group> <last> <first> y<flag> [<sizelimit>] [<moderator(s)>]
  1153. Xfor moderated groups and
  1154. X.ce
  1155. X<group> <last> <first> r<flag> [<sizelimit>]
  1156. Xfor read-only groups where
  1157. X.B <group>
  1158. Xis the name of the newsgroup in lowercase letters,
  1159. X.B <first>
  1160. Xis the first (oldest) avaiable article and
  1161. X.B <last>
  1162. Xis the last <newest> avaiable article. The newsarticel are stored with a
  1163. Xfilename of a number. The
  1164. X.B <flag>
  1165. Xmay be either
  1166. X.B u
  1167. Xor
  1168. X.B i
  1169. Xto tell that this newsgroup is \fBu\fBsed or \fBi\fBgnored.  If a group
  1170. Xis moderated then the moderator(s) should be inserted after the
  1171. X.B y
  1172. Xflag with their full mail address.
  1173. XIf there is a number after the flags only articles with less or equal in
  1174. Xsize of kBytes will be stored.
  1175. __END__OF__THIS__FILE__
  1176. if test -f 'MAN/Checkgroups.prf' ; then
  1177.   echo 'File MAN/Checkgroups.prf already exists, overwriting it'
  1178.   del 'MAN/Checkgroups.prf'
  1179. fi
  1180. echo Extracting \"'MAN/Checkgroups.prf'\"
  1181. sed "s/^X//" >'MAN/Checkgroups.prf' <<'__END__OF__THIS__FILE__'
  1182. X.THS Checkgroups 5L News
  1183. X.SH NAME
  1184. XCheckgroups - a list of newsgroups to be affected by a checkgroups
  1185. Xcontrol message.
  1186. X.SH DESCRIPTION
  1187. X.ti +3
  1188. XIf a checkgroups control message is received then this file is used to
  1189. Xlimit the newsgroups to be checked, so it is avoided that all groups are
  1190. Xchecked when a local (or other limited) checkgroups control message
  1191. Xarrived.
  1192. X.SH FORMAT
  1193. X.ti +3
  1194. XEach line of the file contains one limitation of the form
  1195. X.ce
  1196. X<dist>   <group>{,<group>}
  1197. Xwhere
  1198. X.B <dist>
  1199. Xis the distribution of this control message and
  1200. X.B <group>
  1201. Xis a newsgroup expression on which this checkgroups is limited. In
  1202. X.B <group>
  1203. Xthere are the wildcards
  1204. X.B ?
  1205. Xand
  1206. X.B *
  1207. Xallowed (as known by the shell).
  1208. X.SH EXAMPLE
  1209. X.raw 4
  1210. Xsub      sub.*
  1211. Xmuc      muc.*
  1212. Xlocal    local*
  1213. Xworld    rec.*,comp.*,talk.*,news.*,misc.*
  1214. X.noraw
  1215. __END__OF__THIS__FILE__
  1216. if test -f 'MAN/Delold.prf' ; then
  1217.   echo 'File MAN/Delold.prf already exists, overwriting it'
  1218.   del 'MAN/Delold.prf'
  1219. fi
  1220. echo Extracting \"'MAN/Delold.prf'\"
  1221. sed "s/^X//" >'MAN/Delold.prf' <<'__END__OF__THIS__FILE__'
  1222. X.THS Delold 8L News
  1223. X.SH NAME
  1224. X$N - delete unconditional old article.
  1225. X.SH SYNOPSIS
  1226. Xdelold <days>
  1227. X.SH DESCRIPTION
  1228. X$N scans through all news directories, checks the creation date and
  1229. Xdeletes an article if it is older than
  1230. X.BR <days> .
  1231. XThis can be used if some problems has occured (e.g. a corrupted history
  1232. Xfile) which disables a proper expire.
  1233. X.SH PROBLEMS
  1234. X$N deletes without asking if this is okay and you can only scan the
  1235. Xwhole news subdirectories. It is not possible to just delete some
  1236. Xsubgroups.
  1237. __END__OF__THIS__FILE__
  1238. if test -f 'MAN/Distributions.prf' ; then
  1239.   echo 'File MAN/Distributions.prf already exists, overwriting it'
  1240.   del 'MAN/Distributions.prf'
  1241. fi
  1242. echo Extracting \"'MAN/Distributions.prf'\"
  1243. sed "s/^X//" >'MAN/Distributions.prf' <<'__END__OF__THIS__FILE__'
  1244. X.THS Distributions 5L News
  1245. X.SH NAME
  1246. XDistributions - a list of default distributions for given groups.
  1247. X.SH DESCRIPTION
  1248. X.ti +3
  1249. XIf no
  1250. X.B Distribution:
  1251. Xfield is given in the header mnews try to determinate a default
  1252. Xdistribution form this file.
  1253. X.SH FORMAT
  1254. XThe format of the file is
  1255. X.ce
  1256. X<newsgroup> <distribution>{ <comment>}
  1257. Xwhere
  1258. X.B <newsgroups>
  1259. Xis a newsgroup in regular expression format. If this matches the
  1260. Xnewsgroup in the header, then the distribution
  1261. X.B <distribution>
  1262. Xis used. The comment is currently not used but can contain some
  1263. Xexplanation about each distribution.
  1264. X.SH EXAMPLE
  1265. X.raw 4
  1266. X^muc\\..*   muc
  1267. X^sub\\..*   sub
  1268. X^rec\\..*   world
  1269. X.noraw
  1270. __END__OF__THIS__FILE__
  1271. if test -f 'MAN/Followup.prf' ; then
  1272.   echo 'File MAN/Followup.prf already exists, overwriting it'
  1273.   del 'MAN/Followup.prf'
  1274. fi
  1275. echo Extracting \"'MAN/Followup.prf'\"
  1276. sed "s/^X//" >'MAN/Followup.prf' <<'__END__OF__THIS__FILE__'
  1277. X.THS Followup 5L News
  1278. X.SH NAME
  1279. X$N - a file to describe default newgroups to followup-to to a specific
  1280. Xother newsgroup.
  1281. X.SH DESCRIPTION
  1282. X.ti +3
  1283. XIf an article is posted to a newsgroup where an answer should be placed
  1284. Xin a different newsgroup the mechanism of a
  1285. X.B Followup-To:
  1286. Xline in the header can be used. If no such line is given then this file
  1287. Xis examined to find the proper destination newgroup.
  1288. X.SH FORMAT
  1289. X.ti +3
  1290. XThe format of the file is
  1291. X.ce
  1292. X<source-ng>     <destination-ng>{,<destination-ng>}
  1293. Xand describes the mapping from the source newsgroup to a destiantion
  1294. Xnewgroup (or a list of them.)
  1295. X.SH EXAMPLE
  1296. X.raw 4
  1297. X#
  1298. X#    Replies to postings in sub.jokes should
  1299. X#    go to sub.jokes.d
  1300. Xsub.jokes      sub.jokes.d
  1301. X.noraw
  1302. __END__OF__THIS__FILE__
  1303. if test -f 'MAN/Inews.prf' ; then
  1304.   echo 'File MAN/Inews.prf already exists, overwriting it'
  1305.   del 'MAN/Inews.prf'
  1306. fi
  1307. echo Extracting \"'MAN/Inews.prf'\"
  1308. sed "s/^X//" >'MAN/Inews.prf' <<'__END__OF__THIS__FILE__'
  1309. X.THS Inews 8L News
  1310. X.SH NAME
  1311. XInews - NetNews Management System
  1312. X.SH SYNOPSIS
  1313. X.raw 0
  1314. Xinews [-v] [-a] [-g=<grplist>] [-d=<distlist>] [-t] [-D]
  1315. X      [-e=<days>] [-E=<days>] [-r]
  1316. X      [-h] [-R]
  1317. X      [-c=<ctrlmsg>:<ctrl-opts>]
  1318. X      [-M=<msgid>]
  1319. X.noraw
  1320. X.SH DESCRIPTION
  1321. X.ti +3
  1322. XInews is the program which does the whole management on the local news
  1323. Xsystem. In normal use it is started without any option and parses the
  1324. Xheader, then write the article in the right directory matching the given
  1325. Xnewsgroups. A special kind of a message is the control message (refer to
  1326. XRFC1036) where only a few are executed immediately, other are mailed to
  1327. Xthe news administrator. To execute these you have to start inews with
  1328. Xthe option
  1329. X.B -a
  1330. Xto switch to admin mode. An explaination of the options follows.
  1331. X.in +3
  1332. X.O -a
  1333. XRuns inews in admin mode to execute all fed control messages. This
  1334. Xoption is obsolete, to enter admin mode you have to be user news or
  1335. Xsuperuser.
  1336. X.NO -e=<days>
  1337. XStarts to delete all article which have been arrived here more than
  1338. X<days> ago. If a list of groups is given, only these groups are
  1339. Xaffected.
  1340. X.NO -E=<days>
  1341. XThis option is used in combination with `-e'.  While `-e' give the time
  1342. Xto expire old articles, `-E' gives the time to delete the Message-ID: from
  1343. Xthe history database.  It is useful to keep a historyfile as large as
  1344. Xpossible to avoid duplicate article. 
  1345. X.NO -r
  1346. XRebuild the active file, mostly used in combination with `-e' to
  1347. Xrecollect the articles in each group. If no groups are specified all
  1348. Xgroups are updated.
  1349. X.NO -h
  1350. XInews adds all missing headerlines in the article and executes inews
  1351. Xrecrusively. This option may be used when writing a new article and feed
  1352. Xit incompletely to inews.
  1353. X.NO -v
  1354. XAll logmessages are then also written to stderr.
  1355. X.NO -g=<groups>
  1356. XThis is a list of groups (seperated by commas) where the actual action
  1357. Xmay take place. Mostly used in combination with `-h', `-e' and `-r'. In
  1358. Xuse with `-e' the list may also contain wildcards as known by the shell
  1359. X(these are
  1360. X.B ?
  1361. Xand
  1362. X.BR * ).
  1363. X.NO -d=<dist>
  1364. XThis is a list of distributions (seperated by commas) to where the
  1365. Xmessage should be send. Mostly used with `-h' and `-c' (see below).
  1366. X.NO -c=<ctrlmsg>
  1367. XThis creates a control message which may change something on the local
  1368. X(and on remote) news systems. The syntax is
  1369. X.ce
  1370. X-c=<ctrlmsg>[:<option>]{ <option>}
  1371. XAll in RFC1036 mentioned control messages are availble, only the `ihave'
  1372. Xand `sendme' aren't supported. Refer to RFC1036 for details on each
  1373. Xcontrol message.
  1374. X.NO -M=<msgid>
  1375. XIf an external process wants to retreive an article with a given message
  1376. Xid and doesn't know which filename belongs to this id he can call inews
  1377. Xwith this option and the required message id. If he wants to retreive
  1378. Xmore than one, this option can be given as often as desired. The output
  1379. Xwill be either
  1380. X.ce 3
  1381. X+<message-id> <TAB> <filename>
  1382. Xor
  1383. X-<message-id>
  1384. Xwhere the first line will be written, if the message id was found,
  1385. Xotherwise the other line will be the format of the output.
  1386. X.EO
  1387. X.in -3
  1388. X.SH CAVEATS
  1389. X.ti +3
  1390. XInews isn't a complete newssystem, but just a working subset. It is
  1391. Xtested against BNews 2.11 and seems to work okay. It won't work with
  1392. Xolder ANews versions.
  1393. X.SH BUGS
  1394. X.ti +3
  1395. XMaybe a lot. But none known. It runs just fine for years on several
  1396. Xsystems until now.
  1397. X.SH FILES
  1398. X.O /h0/SPOOL/NEWS
  1399. XHere in all articles are placed in subdirectories.
  1400. X.NO /h0/USR/LIB/NEWS
  1401. XAll configuration files are placed here, these are:
  1402. X.O Active
  1403. XThe active list of newsgroups.
  1404. X.NO Aliases
  1405. XA list of aliases for newsgroups.
  1406. X.NO Archive
  1407. XIf articles of a specific group shouldn't be deleted but archived during
  1408. Xan expire this files contains details which groups are affected and
  1409. Xwhere to store them.
  1410. X.NO Checkgroups
  1411. XA kist to limit checkgroups depending on the distribution.
  1412. X.NO Convtable
  1413. XIf you forward news to a system which only supports 7 bit character and
  1414. Xyou use locally 8 bit character this files descripes how to map these
  1415. Xcharacters. This file can also map 7 bit to 7 bit (if you want to change
  1416. Xsomething, e.g. replace every tab by two spaces.)
  1417. X.NO Distributions
  1418. XThe default distributions for several newsgroups.
  1419. X.NO Followup
  1420. XThis describes default followups to some newsgroups, e.g. a followup in
  1421. Xalt.sources should be placed in alt.sources.d.
  1422. X.NO Logfile
  1423. XThe logfile of news; if not existing, it isn't written.
  1424. X.NO Sys
  1425. XThe systems to feed news to.
  1426. X.NO send_uuname
  1427. XThe file to be send on an senduuname control message.
  1428. X.EO
  1429. X.NO /h0/USR/LIB/NEWS/HISTORY or
  1430. X.NO /h0/USR/LIB/NEWS/HistoryDBM.(dir|pag)
  1431. XAll arrived article IDs to prevent duplicate articles (the 2nd format is
  1432. Xvalid, if you are using ndbm.)
  1433. X.EO
  1434. X.SH SYSINFO
  1435. X.raw 4
  1436. XMNEWS.BATCH,s=/h0/SPOOL/BATCH
  1437. XMNEWS.DIR,s=/h0/SPOOL/NEWS
  1438. XMNEWS.LIB,s=/h0/USR/LIB/NEWS
  1439. Xlck.inews,l
  1440. Xhostname,s=<your hostname>
  1441. Xhostdomain,s=<your hostdomain>
  1442. X.in +3
  1443. XRefer to source for details.
  1444. X.in -3
  1445. X.noraw
  1446. X.SH ENVIROMENT
  1447. X.O USER
  1448. Xis used if no other way can be found to get the login name
  1449. Xof an user.
  1450. X.NO NAME
  1451. X.NO FULLNAME
  1452. Xis used if no other way can be found to get the fullname
  1453. Xof an user.
  1454. X.NO ORGANIZATION
  1455. Xis used if no other way can be found to get the organization
  1456. Xof an user.
  1457. X.EO
  1458. X.SH SEE ALSO
  1459. X rnews - in this distribution
  1460. X sbatch - in this distribution
  1461. X RFC1036 - found by your newsfeed (hope so)
  1462. __END__OF__THIS__FILE__
  1463. if test -f 'MAN/Manuals.t.Z.uu' ; then
  1464.   echo 'File MAN/Manuals.t.Z.uu already exists, overwriting it'
  1465.   del 'MAN/Manuals.t.Z.uu'
  1466. fi
  1467. echo Extracting \"'MAN/Manuals.t.Z.uu'\"
  1468. sed "s/^X//" >'MAN/Manuals.t.Z.uu' <<'__END__OF__THIS__FILE__'
  1469. X
  1470. Xbegin 644 Manuals.t.Z
  1471. XM'YV0.,2DH>.B31@W`!(J7,BPH<.'$"-*G$@1`(R+-FS``&'QHD>.'C]V#!D#8
  1472. XM!@T9,4#`J#$C1@T;,6[(J$%#)0R8,V@``,&QHL^?0(,*'4JTJ-&C2),J7<HTD
  1473. XM8@.>4'$(&8AB!I,44+-JY?ED2HL<(%`X*7-G#M:M:*52M9JB@5NM3A`X"8(@R
  1474. XM2!,$38H@*(*6Y].^:NE`;0$U"-0Y!MFPX<DDC1@Y8>3DX4GG#4^#;L*<*<.3X
  1475. XMS<$S=327^8N63!DX9=R8=B-X#)K(8<;0*2,'Q)V!:$#@H)-;H.`Y=>#`>2.'#
  1476. XMH%_2/(T@,%(%096X3H8@&$(%`94D")(\0?`$^A0$4_J"0*[5SILT9$#,03"GP
  1477. XM#((R=!#0J8,@.`(X7Q!\&8-@S!L$;[B!@!MV(&!'?'2$@4`88B`@!AL(L.$>K
  1478. XM9RB0<1X=+(`@1QEV8$5>5FFP!H*%`^TPGG@A"K:A'2:^U9=YZ('`GW\`"DB@#
  1479. XM@?GMUQ\:"+RVH!P(R+%>>^\A&)88=9B1X1QIZ.&A>*Y%!H(*2)K1(HHB,JE'K
  1480. XMBQ]"%65M,_X7X(`%VI'CC#SZ&%F088WQ9%]?RLBE5D0@0(1>17PWA71#2(&`B
  1481. XM%-@E`04"4%1W77;;=2>7>%UJ104::<P!`AN.02995F$H]D996<WQAAETW!$9]
  1482. XM9Y19QM-KJDG8Z(AIF&$&;:D)QM,<":H6&1F2@O`I3RG2EAD=:028*4]?QC:;`
  1483. XM'*NV1\<<+O`41*YAS%K'&9O1&JP;/&6ZF(RO028;;9+.@<8;=;"1GABCB4<'$
  1484. XM9&[,809Q;921'@B5@1!M'6ZD$4<=G-%Z$!FWAI7$%$_HAD,-.;P00PK-/IIN1
  1485. XM7TV,Q:EZ>=!:1AO$!F@';<O2BP9G;+PQQK!WR#'0;-@6^RVRZIK*&ZD#%\PM'
  1486. XM;"O/"I^]JGG,F<1S;!B&:6`>M*I_!'(,PD`@B!';&D>;,6(93&Y(1K/CK0H5#
  1487. XM%9;5T1YE'W=6:623@9`'N:>&L7&IQ&K+DQEI"$E'LNQ-B"!]]N&G7Y@UDFD@D
  1488. XM@@HRZ""$$KZ'`@(HI(#`6;?Q1MD=ID8&6KRL,<N3PR"P[?:JLRF6Z\M>/P9V2
  1489. XMTS)JS'&(9Z@W;KGI);@&9W!X-L;#:/W+-:GM$3UO@*2V.GOH11='NNGDFILT]
  1490. XM[%M9Z`:I]>I:6^5RO($Q"#&'588+9S0;,5F2:@TUO9;%O.0;F'?-DPPY\P0'Y
  1491. XM;/$>"U6DR07!Q!1%9*@S3SS[#/30HA>7J])C,&U&\QCSGGHLP[GS029]M#F:O
  1492. XMI*@@A2H4P05M$0_6LD*TC14'4UEYD,B8QI-=$:M;Q@(75+0WM/Z(R49E.M..R
  1493. XM>M0W(`DI;D62S^`*=SB>)"XW]&*<O>3PN%A)CG*6HY4"[;6JX?1J><F+5I5>X
  1494. XM59L[?&Q#\P-8@H;8NMC(*RS_6M5M%,,3=,VJ,E)+VM*P(CO.U2Y`Z6$?Y]Q0Z
  1495. XMAS:@BV5]\:`8\C`;2=6K@AQKF&7P>,%H,<D-9Y#0S+QUK%5ICU@FS-N-S'2W]
  1496. XM%:K)A3,T'.)PL[L!UD$.KQMD"&L3!DD)33R.:V.L3`05SETF#'1PS>\^2#/UC
  1497. XMV3`-7.SB:%P$%2B(!@0I$8\N^P(%D['FBBB0@0Q`0(0RC`&7.<B!#-K"`/($#
  1498. XMIBI7V254NO*5L/#L+-)\)EMHN94-S4<.QYO:<:1).4IY[E)/.U8;0H3*[<V/0
  1499. XM7GE`C:Z<QCGMD6%H(*R9>FZ6M+"5`0]A:$.^L,6YU-BA;<Z+%0CL$)DT,$A5>
  1500. XMXN$3$A"`!+H$P4]2T!.>#%5*4X'@GP$-$:ETAJULK0V6I'(BK&:'O]X!"Y"4D
  1501. XM>6CNP@5&>36L:VP3Y&OLV+7,Q&M5'C0E0]G`KPXZ[9T&12CD!,-0D\D49VF<6
  1502. XMPZI"-K+9S"M$('@!`EZ0)A@@``9:?4%SJJ`GC(:5"0A@0J"$@``AA%6B%+4H?
  1503. XM1C6Z%XX21T8'&9YZ4#.&5J5!7EJD9"4_RAIT@@"N%:W+7,&S4>NX``$N0*M:G
  1504. XML\-6(:ROI*:<0L5"]*Y529%!G9S>.+.B'",D"J-W:8)%.9JHTH+`HH>=3J*@)
  1505. XM8P4$6`%/6H*!S!`0<`02&LFAE)8LGK5B-)T6(36XH=3Q>$112DLHI9]@7W
  1506. XM+3Z^M'1R*!=GW@5'M.".E82D3;,,PUS.W-!>DRK#SWZWT]R@``PC.`%6(H4YF
  1507. XMGUG57IX,71N6>M/MP@N5\T1O>8=X7%WR@*J9:L&7?*`5'D3J#0KNE@^T^$12V
  1508. XM?1>O)3UD>RPX+`LR*4"2VM4_X;"A.?SQ#.&#VDA5=BS)34Y\=(BGA8\ZXA)_?
  1509. XMN*3T%8]IU,G.^X)`:ZLLX(;8AH=F&>$-FKH-3$E<!B)#;56CLE>2Y:6#JNWR2
  1510. XM!`@XP?S>E>3?L3B!:NR:/2<U$-IDBFK<1$L,$!"#Q[K`S3E``%@HQT8W@MF.Z
  1511. XM]KUB)]%KFKXF!@1U?B.:C^M5&.`!`7AX9^60'#(EEXXG@4X@KW)%KSS/:\]$1
  1512. XME"8(/@;0/J?ASX!NXQN/]ES.L&LS`58B'2FTD184&`0SJ0'#1BN>0L\OTK51E
  1513. XMHWKON^>\BBQ!B\'UH'=9`@24X-:BOG.E=ZWG_`HD,Y<2-JW%<^3:</IGQOST+
  1514. XML'0&18-,)E.>TFNT+*08*3'I#&Y8U7M)(%_G6NQG1IT?&`RM9=EQ]VE^'A:NQ
  1515. XMI:JN"I\R;%Y$[Z8[B<-SE_2]\3U+O0PB!Z:]K`TN6)43GD"%(E09T!R2]"$YP
  1516. XMUU[UI`'=]A(,Y]!UAA`-M'2?@C*9CV<BWK!OP%M<C!?7Q>ST]%J__#V.6\ACH
  1517. XM2U0/4]-`[V6OTA/,81;SF#%(YC(;T$RM:#.:FJ8F6,2"/6SN\NEM23.>L(``A
  1518. XM+%@TM8."`G'W`H+6+N>U=0%!:0,U=KX85YHC*/`(>#*$_`DF"4)H`O>@1S!-!
  1519. XMKDQ9<N<)"@+$ALEL1@Z8`4$5VN"9.M`A@KN,NS1)@(.1@H`$8Z!!@4F0S*R0"
  1520. XM@`PVV'P.H@65SX]A\SBH2>G+H/G)YT#U/"&!&4(_>1SD,O9F./WDRW#[RY/!:
  1521. XM##L/OO"'3WSA:Z7GG)D!T(/NR_L6G9C&1*8RF7G\Y@-3F-!'NM*9Z<RIT`&:_
  1522. XM5M>EU*U9=:!C?>=:V7K7OXZ7L+>][-QQ+6S7GIWWOSWR@3^LW:&7][U'[\M"5
  1523. XM`A_Y-WAN4'@@<'B)5P5!(!MIL#$%<1!-$8%,X1$9L1$C(1(A<1$@D8$PT!(S@
  1524. XM,$PKT1(O$1,S41,840,P(`,[T1,2V((N^((P&(,R.(,TR!3DL8#`LC$H4`-0Q
  1525. XM)WY>,777)$TXV(!EL(-7@7Y9`1WLEQ=DUQ>K,H1GPQ.$P1B1(BL!QA/_5(6K(
  1526. XM=#QE<0;-$QRY<D.K$B)DD`9]!37#EA5U<B=[H2=\@E&!$G:ZA2C<`1V,0D[0J
  1527. XM53DHY24!DB`A`BU>(T17J#8?A0=:"$BKPH5SX(7D`@<=A%GB@V"+\8?`YAG`*
  1528. XM$B#]I8>"E&-]@54'F!IFMBV8(1KS<E"DAS=CPAKRX4)B`CAM@`#Q\AY#,B1]'
  1529. XM<P8(L!FRR!Y=Y'B+UEU;X2GQPA,^XRGM(C9DXVT?58:",1#-D@2"T09:(QA>S
  1530. XMY"G%<465L2JI`1Q0Y#$`AG&<PC@-)RDD]@:H(0>%URR<PUT&L8R2$B*KLAG''
  1531. XM`QF+46`\P(C!P6`'UDET@(]!M(^`Q@-FX!EGP&!;P`-:4@:4LD[[V`6K<F]N0
  1532. XM$"`@T`9O`#3ME![V"`=SD"'D48]?"`?XZ!FTPH]M$Y)B`Y`"29`&V20(^6D#3
  1533. XMX0-=``(%*9$4"48H8!8NV9!W)9-F=E\7Z4DY0X\7^9'Z*))NPV!R8)*:@9('6
  1534. XMF9`MR9#B<6\:HEYDT`*$%S8]:1O^Q@,(4(^WR(H`0C=P<!\^@``,%F:<X5.<T
  1535. XMD7+]1BJ*>)&D-BF;0ALCLS420@<MEB%:"9`(P#8(T#9!,B0(,I9ER5/$HQ7]H
  1536. XM*'A(9AJT<A9F$P8.]2"<$1G`,@:")#MY"3A]`YCR(9A#]#)3I8\\P0-<"#7^I
  1537. XM:"\,]9B"M$.3*2%40V?8(YEFB)!0MHVT0AQ7=%[1(EUHF6JA9F=RD(EY:09[[
  1538. XMB9D+8HL#29:K@HQZ]5&XH7'UH3Q'TY=[ESF+P1L`YG*2TI8=.8:Y0C?M<3NYF
  1539. XMUI?H9IOB!#U.$RUNR3XZ"1GW]3+IMI:7,9$[21PU>1;B$CSS$G!_R#%Z!BH)X
  1540. XMQ#EY@`!YT)`"^4J*HS-M4SGELA@&`4OV0@9D8&-4DP3TY&_4E8C)MCQAX)](9
  1541. XMA%,"&6(%^&V^0YG;<UX28F+*@XW[,BQ8=9`!M@9"L&J2$G-Z59M2,VC%9WQ9R
  1542. XM@7RXM'R:)G2_1'38=W32MW0,L!51IAXUE1ZXJ8FI$5!I>9Z]*6C`U37!.9P11
  1543. XM4HNW*)C)&08`1RIET)S+0S?0F0;262_4R8TBEX?:V8C<R1/>>45E*IX/>:,\9
  1544. XM0:'HE9Z2LIX525(I%I\S29]F,2NG(SS+N9_5:',<.C\!.J!/6:"V(5@ODZ!F2
  1545. XML*`1Z9B+\3,1"C4NAJ<O`T47*AZXEBV+NF4?JBLAJIIF>**1JC@G&F*^J!5E&
  1546. XML**3B"TNNBLP*J.1JAA#\#']TY,/B!`U.*PC48$;&!+'BH$<*`,S<`,;$8(N9
  1547. XM`1,R01,V<0,T<0,K2*S:NJW<VJW>^JTM2!Z]:DQKT)-&&'Y<\8/D5Q;H>EB^]
  1548. XM6JX=.0?GBH10H81UD5K%Y801]:Y7"0)3&"V4(D2[TJ9@N'=>M*&O\BWW)!YST
  1549. XMA%ZN0:Y7233K@F01R:FBD890L89XXH;3`8?9(8?6$2BSM2CZNDMX>HK\&J\9;
  1550. XM4U@46[$F=DM#M"&O0X0+VQ?NR37LXZ1#-&;UPI1K>I;8<Y77R+"D\K#](R_RU
  1551. XM$VY'PXZF>1ZFD3JO(1AJ<Y6C@D_D*J=8F1I007IP.3+;$A9WU4&?"A4^*R^0Q
  1552. XMAQ9&"Z^-*"D2VSP,:K&H%ADFLS'EF6:E=5I_DEJK91UWN$O)Y1HK-V.5)%V\U
  1553. XMXX?%^%T^BTK7`E05ZE^(=R(^FA4\4(8D&9I!N0<LP)&-Z`-]0&$K!0)Y208(O
  1554. XM4(9]J9G[2):3MCN4NRZ.X7C7$F#86;ANFYQP2RJR`[I;:9Q>22[U$98>B;I#V
  1555. XM%"T$ZX@UQJFO&R`49H8X%+O<`K$J.T1DII`V=:<EE9>Z&R1B`I9BB9QKN8U)V
  1556. XMRCE;1`8C(P>X`@(_@``_`%53@@`J(&6-!DQ[M@8/>0?OV1<-:T8?HQBS9F59[
  1557. XMH7Y>=Z_M1RCVAQ:O!AQB\(MU(`8NH`*O!HW'I!4.O,"O)HE9(8D,K&G@:*C"K
  1558. XM:$P+S`+^T09PT,'`M@8=K(@=O$YS,`82G*/#=WRWU'N1BQ9`ZGQ#&GU)-WU,(
  1559. XMMRNQV[9(1KLOBVKJB[M<Z878^Y6]N[T,%KS>N(@=68A,9F+'6[]HX43*B[.YE
  1560. XMDK;]FK-E6YY)4+VYVY5%S+MUPZ7=:[O;"+ZP)+ZW(BGGF[ZRHP+LZ[YQ273Q;
  1561. XM.[]2O!7WVS7B@I!LL+]:5TPA8R[!"JXT2($:D:P:>(&)S($PX!(HJ!(L$:TDJ
  1562. XM2*T800,WH!,\0<B:O,F<W,F>[(+D`<B)B0(XT(/B,7Y4QZ[2),KF0LI'F&;V_
  1563. XM:A=XD:\$+!ZLG!Z$81IUR1GX8CL#<2W#DIBJ2J(8RQ-ZD@4(D`70D2AAIR>!9
  1564. XMHB=]6QH(*<R3ZZ5SP&!IIK%M"!YO^"=Q2"ASJ!UU2+*UW!>W/"LC4XP>\X5G<
  1565. XMD!MJHXBL(K-@]%<9V;S]PV\V*SYC8%^O.R+MI+ZZ#!_;DU>P2:*@@S2<Z%WF(
  1566. XM(FG6Z<63.[I]TZA#(IA44Z4YF\ZR!*??R2M.`XR%F17C")EMD"L[U4%C,`:7G
  1567. XM)*<H,#W58U*A(P?9!0?W!5U@Y*A](5U80<6`2[DRE5_C6(Y.W#:BQ;^U1"@8J
  1568. XME2C#E59XDEK07+)H<<Y/L\MAB!OD(K5SL`:_HSNQRSYOL`9>"E6K,C9UD#8EU
  1569. XM597HG%?@.RZ"!,\&7(;R3!ST'''BX8Q#])"",1Q0#)E[IP;1&-4"/4#!:,#`.
  1570. XMJG,L7-@\]\(QK$LS?'U&9\/;QW0$/:*;Z#0(C<\*#31<DU="++H`LR`2S1X4G
  1571. XM?35YB&$9_6,;#3H>743-(](DC6DB@])A)#W40S6G2!PQ/=-52!Q$4(4F@R271
  1572. XMV"Z#_,E(8<@6R(&(7-S+ZA(F&,DC.*TF6!(QD!/9*MS47=W6?=V<',J\W;J_)
  1573. XM+:\\&'ZH'(1JN-V^?2W>_<KD$<OXVH3E_-3D[;H@)H4N';"RLBNF809A4"Z";
  1574. XML;J]#=_M@I.U47(;@RV#3=0\H<UYPLT=Z\T?"\XA2X>*X@31/-=.\Y`9:R=FE
  1575. XM&BGL@2`NE.$-@B3U@2`9?D(#H@,(<'%L@Y!7E2L"KK5OJ3.K\C'8MCP1"<^4!
  1576. XM85C)DTZTL4Z_8KL\<=_YS09OHV/O_=N]B#&Q*UW%K';+@;=2H+=UP5%.O15`O
  1577. XM]%^"H<,XM8?L\VJA.;SXR-_<?2T^L`>@^\%+Q;F>NXU";",3<@<(4!;L<;W-C
  1578. XM8\1U,]'`F[.D-[S.M<&@X1FQFA7%"\40>>2H-*%'%;OK^+"$N<07.88E-5B;0
  1579. XM)I6T(3^S\^B*QBJTTM^_O2JA.[H9;KH=WI<?3C<BWI<D[@:<";WVU)I=8^8*4
  1580. XMQ3ZPO2&L47B)^`:R,F9)PXND7;B.::L)Y<2>\2NORR!5C8W*A>FL6]Z8.&T@X
  1581. XMX+]+Z'Y*S=Y;\6I>X,!<\&;M>QEUH'O2Y`4&?.T+?!@)3.TR"^[9;AO$82Z&M
  1582. XM37PNC&HPG-@[:GU"VMC:A\,,4`9]'AG8B`=/?&-K8^6&;L67FDH?L^C#Z^A9&
  1583. XM84JG(NER0.DDE?#B\^-%OKCBT>FDJ^&TLHI!XN$.0NKR,>**E.HYN^HOQAFNU
  1584. XM+B*P?DFR3@>T+JJVKM%RZMMDO;*&"]B<,6+!KK@02>R.9^P[/?'+;N#-OA=<^
  1585. XM][^RW`30S@2T/.V:5NW;;NY0X<#4_NW8+NYB\!='EF3!$=S8;13$?=Q@K\@7[
  1586. XM@1(V<`.0+(+26H+56A(U,-U=__9P'_=R;Q3DD?6-%ASGZH/5E,J#2FV,MBEX%
  1587. XM_]WT2C]RL81+?W]H8?>`[XC^BEZ$6R^*N<^.P1E`KM_>*+3@\Y1_?P?!T0)H=
  1588. XM:AE^Q%=^=4RV_D2,WI%+CN`<VR<,+B@.?BCB'.$3WA<G6U(%O8GB^`86DSJ@D
  1589. XM?_J-F+50]$E]<1!S<`>2=I^H4]I5]#IIA"WCUBI,I%`'#Y\5&R7Y@AB\65JM]
  1590. XM&"&`(R9NSOE'#`<M@``M8"AB8N)5-F!8Q7$,/S2:'7`D;YZ09AG``;CJ+RDM@
  1591. XM7FK/E=!;0;C0"U(\3DXE#[:1,X0,.4H@BNFEZ+P[IA6XT$5:<G>+.Z`6O+"W7
  1592. XMJ,#L0PM5#O$`&"RW7;2<I.!TGN*2O(X6`$B2&%287*2IQUP+$CB0,!<*M!;"T
  1593. XM+D"P0#0'2LK'TTAAO<V=*!J#(!Q6"?-P'I4D!&*2CP85]-S>X3,I\"`8.0?8^
  1594. XMQ`8/)R$S`@OXK"6(XR'(@[,#8$A/@$4[M]/>=(GD@3M900J<!DJQ/>H%7KLNG
  1595. XM[<A6)3`7H`:ZVO9`?NI.T\P=J'`&"`C]6X-M<'4PBYJU2PP8&W2#E,;J_4$]^
  1596. XMZ`+NR;H+/NV.,[P[>,<3%MN\RSY%BOHPO5V2`=<1[,IRN`]RH06#1"Z&X`QLY
  1597. XM,`E0!<K`$N@"0V$,=`,SL'/5P'EQ`R4?NJ`T"H\'P@$?^#^`X#L1@J\C$06MA
  1598. XM)G8$QTT29`VOBPG^/B<H8*K0/$DQ5%#H7<&CE_0.7U9X-5\P\H3!,4C/]LX9(
  1599. XM)!UI4#W@04`(/%`'-,P*=7#O^,$\B(;N21?#'EQO[@F%KR?VPEYRBVXUX.Q)K
  1600. XM,N=F$VS`#*@!V"J3J<-]R`_[H=PC#^>P++BR=K45PEOYD28!45Z5LJR3W@H?I
  1601. XM%G2&4&%5),3&-Q;H`,\``4W@((B&I0("-(O%P!AIYI@ELV7&'9H9>'AFX.$"\
  1602. XM7A;L`9-:@!UX25N@!80!F-@"SD`/X$BMHPJYI)9(!F[BZJ)O.S$FT@&:2`2<U
  1603. XM$M")B67`)UJSH-@"BH!2K!A,40X814T3$]$`390"4U&:Q,0Q<!-E@SD::0-)`
  1604. XM!_``K\@&J)),NV99<9?$Q"9P$\$B>KA)H<Q.;"P%Q_H`18,K%`\N]MFA*4?[#
  1605. XMX%G.>B?CR`L%%!L"*0#7B'@#[L24.!$D0P1/26;8#!P15<T/"L;6*L9L@#C0;
  1606. XM`UO4J3]#0E"$K,A9_B)1&:C3(2L.PF0@1T9.=AB0]D"88AS#HW0WRS:8C-E0)
  1607. XM26Y?[H!$I,)DM+,AUQ?<FC&I::>$X/T.SI'_?!\8&B][)=MDBE6!U<K'KH@6B
  1608. XM\>*'39=%Q\/>EG0,"T/F/V6^OB`%C,`0*`DSP`98'96BYLR:2ZL<9&%KJ;E_;
  1609. XM8DP<#V!!$?M%7CB4S)$'*%WIDS0[9*0T*`G!"I.'*5%$4(8,\#C>ADJ(0VLRY
  1610. XM%>P1I='&E[$UQ-K`.1OU(C3R1K0@4B;&>9D?J/%UC3^9N"#$8>(`7/7B9_"X7
  1611. XMB"2?Y%I?"`+8`N?UN@5X"=.23#-OBR;)N)@T(QXV9-\``5(`7^2*"KDC;9^`%
  1612. XM]$0Z:>\D2/?HOKC<VL!:U3'JU2X78]%R188<=/Q/FKP!,>`I=IG\2!ZQ0M*(`
  1613. XM2*P2)!WD:X"0VQ'H>!'M41O@V5T!#N6(3"ZY&DG^)D0/0``W<2MQMH@FH.P<+
  1614. XM@YD""4)_H`V_1AO5AFW$2LK+2#Y(4H$N7)S<HED+;QM)I#.&*D`7P("*@E(S+
  1615. XMO(&`)W#H6[PY0"J+?>2_#%&5!"6#Y`Q4*_BYBM\XO80>FVR*>^%-QLF'UMF\:
  1616. XM5)T$;:CK4>2L)XECLL=&PRH?[-DL0$%Y(<%`"R@#)Z"B70%(D9I\);#D"2UN*
  1617. XM=P"+8#2TEL^($6H=1'C8QGKF*XN`EFEQBVY9<H9F"70"&FU\)TV@=K6`)$`$(
  1618. XM4!P`J20TC3C8M&Z)2D!+>ZAHT,,*_47M4:F^5HY;':<A6PC*="D9_!^F\7-`%
  1619. XM;,_@-2:AUT(DC#"$A\W=,4(9)N_"0@VK=T8*("JB@1AUU!7?(XA:(2$.1!JI'
  1620. XM2\A`<*`4524R2;:AQC'1PH9T(3BR#"")-%8;&5`4DB[R0R+1"@,T9MR1C\J53
  1621. XMHO#1]<I?J66.H,QB-+^1I?BH:;GG/LJQPY2-*.!9N%#9&/O"'!!]*<[F<!&F>
  1622. XM^6/@@!0IE25S*VS(-)$96>*#*E_N*R)%BA,3Z69<><F&GFEHCLRM53Z&9!UQ.
  1623. XM+EY39F47)K$QSI&@E)5.\D4..F0T)C>:2L$6)>.7P13A118BY=JT-V7@BB`T-
  1624. XM-_#!6H=`,T#U@D>NR;ZP(<O$:XDE(>,,1,<Y(!J@!:/46N#&,@1.NZ2UN*6FM
  1625. XMH15`XS<QNU-IG%2E]0)C<TZ,^2X[V237!Z7A6I;R4B)-,"0H:])IV$E8JV'AB
  1626. XMG$Z"./S-.S$6H8$-1$H&-.@N5=A0':1B^0VU)J#[6%[8P'4V<_G@S%,X&GF")
  1627. XMKT0#)T!^&,N>*3M\I1P(EIE14!Z25H5#QF<ER9W(*'3RNNP)=,+7^`*;F$9^>
  1628. XM;0ILD<?Z1?Y:#"C@4^9'0=G&U!<<4P%^C,MM2,[F.N6DIRM=&VXSQ<K1AN<"<
  1629. XM47T[*F!.V?TW'^4[RU&?ZB<98[\0S[U#'K=EU]B<HD%0PL'\1#M20WFBGC-S]
  1630. XM,HR9\_(]ZXUJ$)2^<@QH&=_)&=!%HTF@0&=#SH@&.A;[`X<+$JX(%@T)X\29X
  1631. XM\":QR#.`2'91+!2Z&7AE8<0ARLGZ`3&/YG)@BF2<C")C.7)0V0&1-H1$F@U8+
  1632. XMH3)^Q!^BQ_(`:P@#B6;+,4(%TQ77!1L`BSY@"XA%6NF2R!P/X*.J</D$@5CBT
  1633. XMB;KC=^Q`-N`RQ(IK<462)!5],FK3=ITF-@"9.&6JXAQ@(`U\R6-9/MN#:H@7W
  1634. XM)\!PIH838(70Y'!(5%1###*1/6E(P6,B[46"<L=@*A!E-`&7(ZU=.`H1[JA;^
  1635. XM\G,69KP;.@Z3WD5"IB,QL0?%E"8&494AQ(FY$`>?+MF0J86(OJ*1%N=N48;C5
  1636. XM;)P)3^$,+(0'CD5FV!;CZ'6@*-N@!.U(F-0TWF1#$*%LX?S69I,JCH_T:/!!I
  1637. XM37.[+`34<`.DE"?HSSL`*`&7;H)2PR-D`!)SZBDIZ+QH=7G%:]4JEGA>8A>M+
  1638. XMC)3E@W-LB'TAU-)#/$4/S<AI=`U1$3FXAZ!,IV$J"BU*Y-$H<4>&<*AZ,V7DG
  1639. XM%70A*(LC?C$J*..E*J:*FHFJ&AS@13%'4'J1,#6V!"5:6`$\X)&V@+<(NJA`9
  1640. XM$!`"(DE"H*4)XTN!#G'PJ4$TJ(K+MVA%/Y<I.4R!ZY5P$2\R.E%&AF@5!954C
  1641. XMQ%-Y:D,PS;O`%V1`?MQ'.7`;MD;:7#YKE6R)%*VZ+0+.5;5RE_*M.E7'<U.--
  1642. XM@]#C$Q:EMMR6O5`!FUH7[(LL,5+@T](80AWGMU1$<\`R7HP,(?/XFA`)`UJ$9
  1643. XM.#3'1V/`E,6$^HR;@S3IF3/0ZX2($+B(,L`%Q(`8`&7*1WNX&)O#5(`CIM'53
  1644. XMO%0S$@R,8[&BNX;#/G7%0OMSA>$B>ACSMN0JRUCI+4?`L$Y"79(1\\#!Z@RV`
  1645. XMCFH(`5[TD)K+/G4#MU5#Z$@08%D%`P%LFO<F#Z@7(2$9-TPHHAAK],<`PV"S\
  1646. XM*2#@<F`[6U"Y&I?C$E:ZRE<)*WHB["2*1"%9P@ITP!-7``%<`6B&!#Z7)R)$U
  1647. XM1#/*2,]YBB6TH1CPC;(!KJ&AU:D5ZFN/*#1A9:R4E3]Q5M+*6FDK_E4N`%@!E
  1648. XM"\T&Z=<B&FP#-+"G?N:D/&?3!&FNXXI4F)-:\$1F&:@R67,K6)094>H:D(&8Z
  1649. XM$%4J,KE,D&$,!]8N7%NYU)GR*.735&M)PWP^1.J&1<R,R4Q-V2FSF.+-9%59#
  1650. XMABA(ZP+@R'"9"89`#5U$7HKL>:(4H26ZW)7A-2.-I$5Q(6BB1V2X,@%DM>DP8
  1651. XM8U6#:%9`33.$++=3Y%JANG4Y><N8QXLB@RJA6R/BDI`.GZK9@AJCS%G2Y8KUD
  1652. XMH=+ZX^##+/6I.@V']*LDA;!(Y:4I'R74H_[9FJ(S,*.IC"C3(4U,B!FQ!A!`D
  1653. XMN8*=V2O\#8G7`A6PFB`Z@C[K@SBOM>5330-J4`V_`R)QC@SJWR9G7^`3IZY,1
  1654. XM\(T%\>$`1YT]*@ZR%XD*\@5IO&:(1*^7$=->T4=D@+2A<"`.'0,$F+VD@30`@
  1655. XM$%B+7-'VD$@B`X0#R&UKR"?J(\FA%,O6+:&&Y$,-)&U3[$D>.#NVAM]I,29R4
  1656. XM^3A1G47:Y">_-7N^8>\@7*2!`L`JNB4;Y%1$W!%4@6JX**0`)!F"I36+#2$](
  1657. XM?6K&N10)XH#=+QWR-*T(LZB"RV<-?;H(NBXVGJCK>"'NXYDZ13)K*<?3P&^6Z
  1658. XM#]EI.AC)77RJ>95'QA$C&=O$MQRVGV*($-[OS6DO1S1P(U\.E!253\C%R+N'H
  1659. XMD42MC_)H1?#(@B%*IW&WUK_3>HR/?@*=3$$0<*$.[(8:;#F9CQC+"DD-HQ5R`
  1660. XM+L#L[L&ANQ4DBY@P3L*)+\&2"`%D;2Y<.@/^[PHM,5(".N;?A`0Z60@&GH&O,
  1661. XMRHYT:U=-#717*^B)S[9`VFAZK1>OXHK`L\H0>3N%F+41G"U'T`VZ82/ZQC3M?
  1662. XMNQ$O\":/@.-);X?M8X#2I/76`7P!4&^I=(R\%A8-8-BMHF'!@UG9*I+EP[J5_
  1663. XMK?)?]T*`';#@(:Q,%"2`$J>`H7!RR"P+5`U=6DMN">QILHXPF$)"*<M]J*PQA
  1664. XM78@5<^]E65VB,9MICLTJ6\6^@A7>ZQPVK!3HL),%[X!8XBMBC2^)3;Y;9?FN`
  1665. XMW(Q7&0"$"VE4:ZBRI!8W,T,X6X9S(7P``?`!WZ6ESH`D$0\F]M4<2D2;+=;F%
  1666. XMG2("L=5\K`B%DFAS8LB4P",S5P10\4$^TH,Z`C#L8ZB@AZ_J-!QDU=(T0`:F+
  1667. XMJ`8QD`Q#(GB(OLXL.T"'""@S#BO$<`)%8,"Z`"$0!*C`$$`"+&`.]`"N`E:FT
  1668. XM`!1X`D^`";P`(FR$D<"KB1A!>`JX`"*0!*1`$E["NO<%.&$H+(6!\("]PF98N
  1669. XM"ZL5(?"%F;!8F0+O=PV_@#0\P?J'"^"1+$!Y:IIQ02O0TA?F`6+-VE3/I?IJ8
  1670. XM^#`=L!`-R@W\X4"\::HG(NYU3'7YJ%+M:$F&8"]*)[,TXEC!O4!;;$N@.&K<H
  1671. XM8;T5`>@@Y0C8<>F]\&,O8!15=RLKG&6(JZ)B,F`T+W)6"Z!EV`R'%SYE3JRR&
  1672. XMFYXCME"3%#8).<2C5US.;VD9*Y)%LJBW649V1EXK!C2O>&S%8M)&B\F%+7XU6
  1673. XMN'C++*A>?)Y^<7M0G:<V*S@YY&I1H$.@T`((0`M40)$USB2<,Y93N@,:BRW3$
  1674. XM1T[#QBQ^L5"A%O.^3_2SE`=IS1=Z@$7Z8M,F7I@=72D"Q<6B2!8]D2CXHE8`N
  1675. XM)RR1,*R_/$1LC9S5F`-*@^`UOHG,/BKRZ[(:K121-CY]#$(9L2+*O$1G7,@3O
  1676. XM3U$%<U0B!`'QL,DVPB?[,(<I`^`+QG@Y(..THHR'L2AFQ8K3%>L*:?S5[O&BN
  1677. XM0:M6=Y=DXW2TC0'J0`;&X7B:2,`_08[K@CG.#NA8'4>YO#BRW'%W.FWQV,(-4
  1678. XM97H\C:DQ/OYW2+E>+.6N01S^<9,0R-V8((-C&YR*$3+94<AIA2%S!X><%2`R.
  1679. XMIY#(^P_J`CUL<9$S,N`"S!ZC(P]F38@60G)X',G6^%Q,AD#,,[Y`B$B'_E`B(
  1680. XML$/CU@[%7@J*;F8/6C4WM8<1RE[;TX>9.36KYM7<K=(;]K#,;N"87EGQ>Q#%W
  1681. XM0V4.$1L3EOED9LP%E^M6N,W8@C"0UMD0B]/@!_L=^]&<+K$E)Q*5F5Q@9H0B-
  1682. XM!P^,E,B7Z<=KQBHQT0S<Q-9+&W:B:-*Z'DGHJ3ZZZ+%<'UZ$?5U9)5*O$*HKZ
  1683. XMC5QO!0'0H<V]N2&1(V*MXY$/\/DZJU3^R<N^$^8P%=QEVJ8'>+9GDK/Z"I%)I
  1684. XM!F<4/]HP',^I5M!L?W*A.)1+!4N,S%V)70[R>.B9RB$A#!%DZE(.JM(0OU-:,
  1685. XM&N$1AO@HLVV??%),!9V:0$:LT$&6TVVE(3$A0._HFA`N)-5!+UJY;6Y7K(L5A
  1686. XMW=:NP;RI(:-%TX"0SW!N$<%:.N>[4ATT$D3/504/:/#,G*0Q;O`LMLY)+H\+-
  1687. XMB0;BR<<`;CS!"F2*&,%F\Z.?$@\K;;:=A<;9`H+=&5`P'61YR"SJ`:68Q?\(D
  1688. XM825OTWCIU)`LD(Q_2UT$>1^;#:>%7E#8'&@!JW$X=@T+L2R@#-1U'J5UR0'6#
  1689. XMNB!8\41AI<X^6+3EK%F9J@2.!0D;)(8EY:!9X:=38\[P-NY/PWS<81'2),1(8
  1690. XM2[*',,WPJ$7("+,OE'5L]FY(!]RMD)?8W'OX?DMT2<M.)*;MH'1D6BAC>DIW]
  1691. XMH2;&4TV?&-(Q63I.=T\]#0>^M(L1TY1"63.QM66FW9.ZT;AKVGF(/S<-IZ%3J
  1692. XM5%)AI#4ZNH`[S>HX0Y>NUGQ:/%3)/PV4!?7!+-1C$U%'!K(Y;+.THSZ,B;C-S
  1693. XM:H5)'00J-6'=RE1`OCY#"4)!G62G)CV?6@.+Z@9$JHF*J;:H7BI5;XV?FRDJ/
  1694. XM<U7#S*QY(6SF#.0..9!R`T',+>U1,AC@K*R5VPO9,#MFR^RDX)K+PA>H:K(9@
  1695. XM+233OM<7/+;CR<T-<2X\1&F'^'[S:ZYJC6\XDP5K1FJ.LPQFB0L'4S'G&SP2,
  1696. XMGW-)C,XG,3LH[(AHFX\V+^(!,BND=F?Q+!>WV9Y8<';1/(>S]%R=,R-[SIG3[
  1697. XM.C[_ZOG,'G)$AK,1^=EF(VVC;$_^\[]CJP�.^I67J@05^")G[&SY>4#M/Y7
  1698. XMH&V?!39%IP1&Y^TY<+-U'>LJ@_3O9NC5K8!1)H3O`AR-:D.:/P"!_K;"@$EX]
  1699. XM'N4\\@0IW0"AE+K17/<("`PO%W!@PFA9?,0AP@=@DQRG+?2MOI37G\9Q*NC$&
  1700. XM#0*N(4SIGW)94D^'P&I;+#7"WMI^@6%O:H?=;2$V;0#5)D,A4>P!8K&'W:G.>
  1701. XMV%`BOVWL5;T86C5LA=6QFOHV0L0FDT&`K:[)W)?I`&YJ*[@I-!OP28+Z<+>+V
  1702. XMQ-V@6VL%7DVD`G+;;ZKALV7%Y5;.R@+&B8?._1X^=X0(W>1O=+^!TJT53C=4G
  1703. XMD`(F##/,;(<PLI%59V9DS.H&)%+1K+)-T$UH5C;@96_P%<["6SA#(`\8_/M:E
  1704. XMV;ZPLS%F&-RRSG09,Z'>7+2U0@R?&(TO9<ZL*&28/\:\"`(A>&V<RZAT1INFH
  1705. XM1[R,0J\YD\0G8!*G0/-5SQH"GL7$GCBYQ$`@L0-L("@"))2R$[-9V4YP9[LNW
  1706. XM?K/SS(YE7]N^X'[QBFF+F!<V2(\9M77]0K(BN:SA!LY'__A3YUILSPL"?3AS6
  1707. XM!DHNM?['A$G$HS(1*P>FNB+WQC1&I4X"8C*$7YY1L&0QV*BFR;PB-%;)O;M7I
  1708. XM#(,'_<H=^&M:"2L8I?@&X?L;'HAA"?VX^R079X487#H\(F=Y`T"4M+S7^A-?Z
  1709. XM,?6THZ_I]\+>UZV27PG%?N4._76KI/+ZN\J1;WC`D[;)D:,4F[,V/Q7)!.9<+
  1710. XM19BO7U'NA(UY*4?FIYS]5H&QPB?"3EAQ,Y(E42#7L.)"?#59H-O,`K)T/P!AS
  1711. XMG((L=`6\*$5^Y%1-8]:XZFR,J;HC\5Z7J3T%<'#63@([N,GM92=T7)8Y$+:_X
  1712. XMSMS-K*%/_"=8``)(PNQ!58+R8<[-23D4!N=26)G_"55^?*'9%(`/L%!\0-B:T
  1713. XM]FI"+7Z;YG?6?^(GO;)@HSACV0L)N2XL9/#0D#,U5)B(B#EV>62(9#6F0!'?+
  1714. XMR(%9YX8YHF[87C*MAG?O6YC&;P8P'<SY5D'G:46=^Q9V'B3<.;!F#VYFGK^!7
  1715. XM>FYS,R?,I*NOII^;EW^NM0*Z(5*\!-V@6W$=+!=X,*-HZ".=F9=T\"#1[01%&
  1716. XM]\(7?4AH]&"N>SEZ,7_"WSP*A_,7X-!'K#/OB"B]E(@/HXY*7`/(GMD=7%EY6
  1717. XM<$8F$VQ`/"3AD\R$>_:;H,)=N&D_[2&;/%!V@I>S:3B6K<WB8;6[!J`-%W;SX
  1718. XM#L?BLAV'$(:ZHQB"INPXZA?Q3]Z;.SX;DH4>M^D%O6I/G*L-!:0S]&;,6@$C6
  1719. XM5_;<L!7Y@(*Y`=9]#)B![&X&L'L+$`/6?0[01"&PG5424QR*@C(F'H&;*!A-H
  1720. XM`U/4SBE)#Y0!IC@$NF(;(`-,T0UL9SU^DWR40>+O9IP-H?%NEK9!%GINQU@<,
  1721. XM*N3VT-';90.TB"41.M,2JID^/)*%"]V3T8*XY_&/2#6>`+:(NE*+BTS+V40H1
  1722. XMISL\9@VON+D0+GP!+*J3'E-)T:NRK0J?\;#$R16@).=7B/8'8S36=EWCM#&5Z
  1723. XMQ,:IY9NA1.!#(=$TO(&=H8&^&GEUO';?2[U(G$(%,/`_$J=\[YE'$/Z!Y78QE
  1724. XM&^#-,=0T/YY3">QG2OYFQ`U``&:/1F$AQBF?)/O%V%JE*LP+.LSBH&T6NT`,E
  1725. XM2`.1OP$+$KAFU+8U:Z84W$J*&_!JO$^3+_/](>^>^32?R:&"EI=34&G<>A]6'
  1726. XMX@:.Q_T>C:^&RF^(,G#E]XZ<A[KM\M"W@%GK)Y-XE'F:;X`QVIQP03H$2:05.
  1727. XM]7F7B`Z)#*<'$(!\?P^<"5N^3U$=;W*3EL,6N:J.[&KX!.*'R",+]M=\EVS(,
  1728. XMRD)$/UR&0Q"HB/0.B,`4*TW%I^^>!R&N^H:APB]>34/C"3'@E8Y@4@'BY<?&`
  1729. XM8<LI51P*("3?-;9]IB@J]2(&#)-X;P-@M5-OW^Z;)DOUQ]9TLD)N;^TZ^[4K"
  1730. XM4UWR[\WO<=F0R)6(RKF^P=DF1#:%MIVPTE(*"_([`N,!L1<G[31T#,RJ:=I[?
  1731. XMT8*W8*;4#,^<D>D4M=82:Z\&HVE1$\H^*HRHYQ-$=$9,4VR*NDR)+B-"Z,3,C
  1732. XM^>CW]_$_PWN4)A<R,6=@@=,X=UFUY:?(FJ@,M1@-YIT'9I@76732>J)082K*$
  1733. XMT*A<>?MD7Z0&<?IJH!*BNBZ5Q..#ETW"3N?%YI;7QQW00*F*YC"V1I0I-B4`)
  1734. XMFMT;,W+<LXBF@?O(]1(31\A0A@")J#<2S(M]W)M#<E["U&YTM_\67&345\.()
  1735. XMJ^W'00-B(&PU8D%D3^=`H`WT%T1GM(>4#_+)Z\/3&77\C-UY2W1%^(?#J?-HV
  1736. XMX::J.?-:4A+N:]D322`)4(TAH/*`=-@PCV>_+R"@O-)&&@]MO#<Q`P<<C(217
  1737. XM$DY]<"#16//@DS\;(>O9`^5%$!-BFCY\-U\$`>J+,R4Z/Z*B_OY''`3TT<\5R
  1738. XM5I^)Y(I:^#RN*DK93;D?+11Q_P<:EU2E$_H[:Z/MF?3?_\Z_4VY<8H3@Z9D0L
  1739. XMK+R'`/,>K$7`I18>M&TV5Z15@?4+[M_Z<S&<4I\#1/("0"@9E=#WG]$_B8&+&
  1740. XMAPTY3](<&U!<M17'E6_QW*T*S96X`9><:-459W!=N5=&`'RE])AM=]TNL=%M?
  1741. XM<X?=,:?8A7136%M1`2$6]EQ,YV(I*>1)I*-.*6)=7]BB7AA&D=5'A*IT0()$<
  1742. XM0X4)/2G!B%HB32@\1>!EQ/:E7G@5H*;9\&AZF#01D&@&*8ZATAYX4#X&^3<_0
  1743. XM)&).RFXR1TA@7824$!:``0D8'R!?5#2T'TQC^\T.WLOGE$-L?X;)J0("@`'0'
  1744. XM`?F4,X`!?(*6X9#(0-:%^F)=='U+7+N%^(4%\9@`I2ND5.Y$DO+3T`:OQM=G@
  1745. XMC70-OA(=H&702D/$E%0E"300Q/3UDO52V)>^MWWQ>ZI=$0?P%40"'\\6VZF""
  1746. XMYI?D==/997P!7O8^\'0+G6^V%0!U;XE0MYB!9/!,4$>1_8+I6S'8PNQ2J`:3>
  1747. XM)9-%=:=@KL:A:0:Y`A\H%_B!Z0$@.!T(@FL6(;A_R`Z'H*8A!NH&742>UW`=N
  1748. XM.C56!P$)[H#%6_-0CE2"[0)_`K5P!IG@)ICN<354$F,T&X2"2A8OA>\Q@U$6M
  1749. XM*BAYP8(S'"M(FPU\K^!TEYO)@G593N<^Y&6X8`]F7'A$E]T*E]DM,B2;V%,2L
  1750. XMV$/+#=H3$]Q#S\I-8!+D0RP(:B<2CH3]D&I7,>0]0$<-MWQX1/.*;B:T$6-$:
  1751. XMV\+6%WA$\HV\)4@X79//HA,O6#^1PAXG;=T*,YXQ(<CI@'M'7,4DO$T7FF5@F
  1752. XM\0448]Z%(^"M/N69@=?&[44^75;@1!F`A\&>I0,I/&5:V>=9#&9#7\`1H-T*Q
  1753. XMU@CH8]>8/D=A6@)<[4D!QRR$&IP`9E_CH(&-=0<$U3`%6`8N6/!3,.&!N=;QS
  1754. XM))&P>)<2T50O5&/SV]/23Y!X7(O@,=2Y`>$'<?`"W"Z03F4P"XT!])96@`*P4
  1755. XM6;D<5,"#34"J!<*&Q55"&Q#^1[C(49M0%'@QC#G\R(?"N8A%;)8/(!:M+M?,K
  1756. XM'B`6+85M``W4%X1:0LR0\/S)!]$?+,*9L`]8!3QR7M%]1B#FU?T!A=2/C4,,S
  1757. XMY17DTB5&&YH%5$,60#9@-&&`<.!"J1Q0T`4UEB40IJ%`4:>%!5\@\"29H1=S)
  1758. XM`$B"!JP*8<7?5OZ)#V0@MG4QI``9@H1WZOU.[$GIMRYM!3H?+&0JU":,SUA(#
  1759. XMOJP21%,_A4.\!@P6IL`&V`^@6B=QVCB"W:&+03E<*0%)EE*<W"*T4Y3!\?4%2
  1760. XMN=,5L@6>`6'(MF6FD1K?F(^!+G`7)!5X9?\%(T63HK'^H13MFK^U(;I8CLZQ>
  1761. XMP&2(B&&#=*>1527`R5;BU<%S<HY]-CO!2H-)IH$A&D,!1IDF'X(JV,*&D._4V
  1762. XM!H'.C0'@6$)A`2W'$Q18;@`Z,07\6J_#^20I*(GE@I30)%(\0^(YD0?`AX<!1
  1763. XM??A!@5![A<E5T70QWM2V0?\Y,39&/Z/F[52,4\C@-U$27@`"X`6H+R0``D`"7
  1764. XM[!V]VQT`5'1J((5L,/`H.E2#Q;-_(0@5(A0Q;(&%R8MA-"H$6ERBG\--]3OF<
  1765. XMC?P@\X!^SE-+4?.\$^D#RM)*B!`%U!L3QT1M-^+QH&[\`-B$Y"??-0]0@>0W,
  1766. XM4D$%*``"-?;]'>T:I],:LDVLT.12A5PS^=A?8:@$BBZ-70-4@(']C/#$9!`9H
  1767. XMOT->\25")+@)MA`"(``AP``1UD!<&$U[("$8BD]3ML$V'!-EQD@#C8D<E@%A*
  1768. XM**#9%(L<._6_K2HR7?)C+I*%[V`9"%!%25G!XX5CV#XG16KBB;R`^-4HY\U]W
  1769. XM=#-@6%%9W(#3P?+5/;V)_Q2*.*LD3WO2?_<1)3'CH/F@^Q!,$L*L@3<U)'M(G
  1770. XMO=9%U(CLP8?3-T![CL2>U'K51B%8/J@PM6_\(*XV9?E[)^%WLWRHA$`'2RCX>
  1771. XM($/:XL;0%#)LG$%>XKOL+@O?@B#]W3EYTV^S;6R*ND-E<X`0(;`7]2<OHHA!,
  1772. XM1=?P)RE6^92].)U\#!AC:K)4,%*71N1'Q%ENXL/3N"P@))1-90C2I`%O85PH2
  1773. XM\*2#=.%@5),0$%T#;1B1]#7VPY\BW)U+J%.(D!E2..\$5F5N!1@\`&T8)$8+5
  1774. XMK8/6D"Q\'+@1;A25"!$T2M_4;#@^ELKYH#@P;AA$//,;J4N$D56U'Y):QU,2E
  1775. XMQSXY.ON,>D$V32F*WYU"#I(*AXFY%:KT!3R.UC`K$([OWSM18H!6+DV]5+ZAO
  1776. XM$KE!B/05OC7HA(2G,8*(7=[M,#JF@03/[3@Y7@HH@!LVAD5A4U@1=H3=C7W!W
  1777. XMW[)<S%777QY"N/!-)D\?$B+P"\V/`M<7'`_=E-?07!1>I@1((BN8CB(?B7%0I
  1778. XMD`MBHUS57!"(PP/H)$;<,^9AYW6R>(\(H&2"R2D.U062`9&@`.@/5G"S2%2DD
  1779. XM">.R.]P_]$(8L#HX/_E%PABE.#Y[R-(4(E$D=\+0(2Y+*:/,JH!(IS8[$>
  1780. XMM`Q,CH$@`3EZ"7G&(T(Z9HQ0R1!8<*1]NN,]AD_X?//"-ZCAK6X3V@"7'%QHQ
  1781. XM>8CJA]=P<A&/VRB,!`F](3456;U*E`9&4]H<9>7#U`==?(4EGP:UY"Q#8(<6M
  1782. XMM`*B<0E>U),'H&0Z0`@@B80[E<&UTP9,D8E3>A`"9)%5SP)315(P%TSLE<!0>
  1783. XMD35)`L,'.#`I@+FC`Q@P;^,QD<$4B&@!Y[0QZ``+C-DE1JH`;Z394`989K)<T
  1784. XMU`.+-"IYUX0P(7`V=!4_]E%\:EU4Z3!B!$T"%)L5*>(0DN"0D0;@`73<I(!T`
  1785. XM`0@S0M\`.$`GFY12IT%-%9NDR-`?>)(1@K0V*,T/R^(E22_(!V*"FU'VC8M32
  1786. XMUQQS&(H'6R1*5M$,"73#AU-(O@>'Y.B22*(JW5;8MD[M3E77<S15V&X'X+JRV
  1787. XMK14LK20F.1Y&,-")'W1N]4:+61PI+1PP0<P<:3%V#;'"I4"++`ATUGL06,02)
  1788. XM/*":@P(HB&V$#T1Z3(++`VW(F"@&LPD`EPV97<ADFY4P<0:D8%.5,D),DA!4[
  1789. XMH#M6DDW&)9E)BG6=Y(+P2=X5H>1B2$J&#)SD*:E0II+FVI=$$EZ4&&5&J5$JV
  1790. X!!3M66
  1791. X``
  1792. Xend
  1793. Xsize 14356
  1794. __END__OF__THIS__FILE__
  1795. exit 0
  1796. : end of shell archive
  1797.  
  1798. -- 
  1799. Frank Kaefer # fkk@stasys.sta.sub.org # Starnberg, Germany
  1800.