summaryrefslogtreecommitdiff
path: root/web/funnelAC/hackman/h_manual.ps
blob: 3fa3273717389e435d4e9bcbea6b8c928bc7692c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
%!PS-Adobe-2.0
%%Creator: dvips 5.493 Copyright 1986, 1992 Radical Eye Software
%%Title: h_manual.dvi
%%CreationDate: Sat Aug 14 17:07:29 1993
%%Pages: 62
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%EndComments
%DVIPSCommandLine: dvips h_manual
%DVIPSSource:  TeX output 1993.08.14:1707
%%BeginProcSet: tex.pro
/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}
B /TR{translate}N /isls false N /vsize 11 72 mul N /@rigin{isls{[0 -1 1 0 0 0]
concat}if 72 Resolution div 72 VResolution div neg scale isls{Resolution hsize
-72 div mul 0 TR}if Resolution VResolution vsize -72 div 1 add mul TR matrix
currentmatrix dup dup 4 get round 4 exch put dup dup 5 get round 5 exch put
setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed
true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N
/IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin /FontType 3 N /FontMatrix
fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{
CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn
put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0
0 sf neg 0 0]N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data
dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128
ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127
sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type
/stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N
/cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get
S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height
sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0
-1 -.1 ch-xoff sub ch-yoff .1 add]{ch-image}imagemask restore}B /D{/cc X dup
type /stringtype ne{]}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1
ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}
B /I{cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add
.99 lt{/FV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage userdict
/eop-hook known{eop-hook}if}N /@start{userdict /start-hook known{start-hook}
if pop /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255
{IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76
div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N
/ruley 0 N /v{/ruley X /rulex X V}B /V{}B /RV statusdict begin /product where{
pop product dup length 7 ge{0 7 getinterval dup(Display)eq exch 0 4
getinterval(NeXT)eq or}{pop false}ifelse}{false}ifelse end{{gsave TR -.1 -.1
TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1
-.1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /FV{
gsave transform round exch round exch itransform moveto rulex 0 rlineto 0
ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N
/tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B
/w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}B /r{
p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save
N}B /eos{SS restore}B end
%%EndProcSet
TeXDict begin 40258437 52099154 1000 300 300
(/users/onl2/coates/startup/tmp/funnelweb/hackman/h_manual.dvi)
@start /Fa 37 123 df<000FF000007FFC0001F80E0003E01F0007C03F000F803F000F803F00
0F801E000F800C000F8000000F8000000F8000000F800000FFFFFF00FFFFFF000F801F000F801F
000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F80
1F000F801F000F801F000F801F000F801F000F801F000F801F007FF0FFE07FF0FFE01B237FA21F
>12 D<387CFEFEFE7C3807077C8610>46 D<00180000780001F800FFF800FFF80001F80001F800
01F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F800
01F80001F80001F80001F80001F80001F80001F80001F80001F80001F8007FFFE07FFFE013207C
9F1C>49 D<03FC000FFF003C1FC07007E07C07F0FE03F0FE03F8FE03F8FE01F87C01F83803F800
03F80003F00003F00007E00007C0000F80001F00003E0000380000700000E01801C01803801807
00180E00380FFFF01FFFF03FFFF07FFFF0FFFFF0FFFFF015207D9F1C>I<00FE0007FFC00F07E0
1E03F03F03F03F81F83F81F83F81F81F03F81F03F00003F00003E00007C0001F8001FE0001FF00
0007C00001F00001F80000FC0000FC3C00FE7E00FEFF00FEFF00FEFF00FEFF00FC7E01FC7801F8
1E07F00FFFC001FE0017207E9F1C>I<00FE0003FFC00703E00E00F01C00F01C00783C00783E00
783F00783F80783FE0F01FF9E01FFFC00FFF8007FFC003FFE007FFF01E7FF83C1FFC7807FC7801
FEF000FEF0003EF0001EF0001EF0001CF8001C7800383C00381F01F00FFFC001FF0017207E9F1C
>56 D<0003FE0080001FFF818000FF01E38001F8003F8003E0001F8007C0000F800F800007801F
800007803F000003803F000003807F000001807E000001807E00000180FE00000000FE00000000
FE00000000FE00000000FE00000000FE00000000FE00000000FE000000007E000000007E000001
807F000001803F000001803F000003801F800003000F8000030007C000060003F0000C0001F800
380000FF00F000001FFFC0000003FE000021227DA128>67 D<FFFFFF8000FFFFFFF00007F003FC
0007F0007E0007F0003F0007F0001F8007F0000FC007F00007E007F00007E007F00007F007F000
03F007F00003F007F00003F007F00003F807F00003F807F00003F807F00003F807F00003F807F0
0003F807F00003F807F00003F807F00003F807F00003F007F00003F007F00003F007F00007E007
F00007E007F0000FC007F0001F8007F0003F0007F0007E0007F003FC00FFFFFFF000FFFFFF8000
25227EA12B>I<FFFFFFFCFFFFFFFC07F000FC07F0003C07F0001C07F0000C07F0000E07F0000E
07F0000607F0180607F0180607F0180607F0180007F0380007F0780007FFF80007FFF80007F078
0007F0380007F0180007F0180007F0180307F0180307F0000307F0000607F0000607F0000607F0
000E07F0000E07F0001E07F0003E07F001FCFFFFFFFCFFFFFFFC20227EA125>I<FFFFFFF8FFFF
FFF807F001F807F0007807F0003807F0001807F0001C07F0001C07F0000C07F0000C07F0180C07
F0180C07F0180007F0180007F0380007F0780007FFF80007FFF80007F0780007F0380007F01800
07F0180007F0180007F0180007F0000007F0000007F0000007F0000007F0000007F0000007F000
0007F00000FFFFE000FFFFE0001E227EA123>I<FFFFE0FFFFE003F80003F80003F80003F80003
F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003
F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F800FF
FFE0FFFFE013227FA115>73 D<FFF000000FFFFFF800001FFF07F800001FE006FC000037E006FC
000037E006FC000037E0067E000067E0067E000067E0063F0000C7E0063F0000C7E0061F800187
E0061F800187E0060FC00307E0060FC00307E0060FC00307E00607E00607E00607E00607E00603
F00C07E00603F00C07E00601F81807E00601F81807E00601F81807E00600FC3007E00600FC3007
E006007E6007E006007E6007E006003FC007E006003FC007E006001F8007E006001F8007E00600
1F8007E006000F0007E0FFF00F00FFFFFFF00600FFFF30227EA135>77 D<FFF8001FFEFFFC001F
FE07FC0000C007FE0000C006FF0000C0067F8000C0063FC000C0061FE000C0060FE000C0060FF0
00C00607F800C00603FC00C00601FE00C00600FE00C00600FF00C006007F80C006003FC0C00600
1FE0C006000FF0C0060007F0C0060007F8C0060003FCC0060001FEC0060000FFC00600007FC006
00007FC00600003FC00600001FC00600000FC006000007C006000003C006000003C0FFF00001C0
FFF00000C027227EA12C>I<FFFFFF00FFFFFFE007F007F007F001FC07F000FC07F0007E07F000
7E07F0007F07F0007F07F0007F07F0007F07F0007F07F0007E07F0007E07F000FC07F001FC07F0
07F007FFFFE007FFFF0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007
F0000007F0000007F0000007F0000007F0000007F00000FFFF8000FFFF800020227EA126>80
D<FFFFFE0000FFFFFFC00007F007F00007F001F80007F000FC0007F0007E0007F0007F0007F000
7F0007F0007F0007F0007F0007F0007F0007F0007F0007F0007E0007F000FC0007F001F80007F0
07F00007FFFFC00007FFFF800007F00FE00007F007F00007F003F80007F001FC0007F001FC0007
F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0607F000FE06
07F000FF0CFFFF803FF8FFFF800FF027227EA12A>82 D<01FC0407FF8C1F03FC3C007C7C003C78
001C78001CF8000CF8000CFC000CFC0000FF0000FFE0007FFF007FFFC03FFFF01FFFF80FFFFC03
FFFE003FFE0003FF00007F00003F00003FC0001FC0001FC0001FE0001EE0001EF0003CFC003CFF
00F8C7FFE080FF8018227DA11F>I<07FC001FFF803F07C03F03E03F01E03F01F01E01F00001F0
0001F0003FF003FDF01FC1F03F01F07E01F0FC01F0FC01F0FC01F0FC01F07E02F07E0CF81FF87F
07E03F18167E951B>97 D<FF000000FF0000001F0000001F0000001F0000001F0000001F000000
1F0000001F0000001F0000001F0000001F0000001F0000001F0FE0001F3FF8001FF07C001F801E
001F001F001F000F801F000F801F000FC01F000FC01F000FC01F000FC01F000FC01F000FC01F00
0FC01F000FC01F000F801F001F801F801F001FC03E001EE07C001C3FF800180FC0001A237EA21F
>I<00FF8007FFE00F83F01F03F03E03F07E03F07C01E07C0000FC0000FC0000FC0000FC0000FC
0000FC00007C00007E00007E00003E00301F00600FC0E007FF8000FE0014167E9519>I<0001FE
000001FE0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E000000
3E0000003E0000003E0001FC3E0007FFBE000F81FE001F007E003E003E007E003E007C003E00FC
003E00FC003E00FC003E00FC003E00FC003E00FC003E00FC003E00FC003E007C003E007C003E00
3E007E001E00FE000F83BE0007FF3FC001FC3FC01A237EA21F>I<00FE0007FF800F87C01E01E0
3E01F07C00F07C00F8FC00F8FC00F8FFFFF8FFFFF8FC0000FC0000FC00007C00007C00007E0000
3E00181F00300FC07003FFC000FF0015167E951A>I<003F8000FFC001E3E003C7E007C7E00F87
E00F83C00F80000F80000F80000F80000F80000F8000FFFC00FFFC000F80000F80000F80000F80
000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80
000F80007FF8007FF80013237FA211>I<FF000000FF0000001F0000001F0000001F0000001F00
00001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F07E0001F1FF8001F
307C001F403C001F803E001F803E001F003E001F003E001F003E001F003E001F003E001F003E00
1F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E00FFE1FFC0FFE1FF
C01A237EA21F>104 D<1C003E007F007F007F003E001C000000000000000000000000000000FF
00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
FFE0FFE00B247EA310>I<FF00FF001F001F001F001F001F001F001F001F001F001F001F001F00
1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FF
E0FFE00B237EA210>108 D<FF07F007F000FF1FFC1FFC001F303E303E001F403E403E001F801F
801F001F801F801F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F
001F001F001F001F001F001F001F00FFE0FFE0FFE0FFE0FFE0FFE02B167E9530>I<FF07E000FF
1FF8001F307C001F403C001F803E001F803E001F003E001F003E001F003E001F003E001F003E00
1F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E00FFE1FF
C0FFE1FFC01A167E951F>I<00FE0007FFC00F83E01E00F03E00F87C007C7C007C7C007CFC007E
FC007EFC007EFC007EFC007EFC007EFC007E7C007C7C007C3E00F81F01F00F83E007FFC000FE00
17167E951C>I<FE1F00FE3FC01E67E01EC7E01E87E01E87E01F83C01F00001F00001F00001F00
001F00001F00001F00001F00001F00001F00001F00001F00001F0000FFF000FFF00013167E9517
>114 D<0FF3003FFF00781F00600700E00300E00300F00300FC00007FE0007FF8003FFE000FFF
0001FF00000F80C00780C00380E00380E00380F00700FC0E00EFFC00C7F00011167E9516>I<01
80000180000180000180000380000380000780000780000F80003F8000FFFF00FFFF000F80000F
80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F81800F81800F81800F
81800F81800F830007C30003FE0000F80011207F9F16>I<FF01FE00FF01FE001F003E001F003E
001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F00
3E001F003E001F003E001F003E001F007E001F00FE000F81BE0007FF3FC001FC3FC01A167E951F
>I<FFE01FE0FFE01FE00F8006000F8006000FC00E0007C00C0007E01C0003E0180003E0180001
F0300001F0300000F8600000F86000007CC000007CC000007FC000003F8000003F8000001F0000
001F0000000E0000000E00001B167F951E>I<FFE7FF07F8FFE7FF07F81F007800C00F80780180
0F807C01800F807C018007C07E030007C0DE030007E0DE070003E0DF060003E18F060001F18F0C
0001F38F8C0001FB079C0000FB07D80000FE03D800007E03F000007E03F000007C01F000003C01
E000003800E000001800C00025167F9528>I<FFE07FC0FFE07FC00F801C0007C0380003E07000
03F0600001F8C00000F98000007F8000003F0000001F0000001F8000003FC0000037C0000063E0
0000C1F00001C0F8000380FC0007007E000E003E00FF80FFE0FF80FFE01B167F951E>I<FFE01F
E0FFE01FE00F8006000F8006000FC00E0007C00C0007E01C0003E0180003E0180001F0300001F0
300000F8600000F86000007CC000007CC000007FC000003F8000003F8000001F0000001F000000
0E0000000E0000000C0000000C00000018000078180000FC380000FC300000FC60000069C00000
7F8000001F0000001B207F951E>I<7FFFF07FFFF07C03E07007C0600FC0E01F80C01F00C03E00
C07E0000FC0000F80001F00003F03007E03007C0300F80701F80703F00603E00E07C03E0FFFFE0
FFFFE014167E9519>I E /Fb 44 122 df<00FCF807839C0E079C1C07081C07001C07001C0700
1C07001C0700FFFFE01C07001C07001C07001C07001C07001C07001C07001C07001C07001C0700
1C07001C0700FF1FE01617809615>11 D<00FC000782000E07001C07001C02001C00001C00001C
00001C0000FFFF001C07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C
07001C0700FF1FE01317809614>I<60F0F070101020204040040A7D830A>44
D<60F0F06004047D830A>46 D<03000700FF000700070007000700070007000700070007000700
07000700070007000700070007007FF00C157E9412>49 D<01F00608080C181C301C70006000E0
00E3E0EC30F018F00CE00EE00EE00E600E600E300C3018183007C00F157F9412>54
D<07E018302018600C600C700C78183E101F600FC00FF018F8607C601EC00EC006C006C004600C
38300FE00F157F9412>56 D<07C0183030186018E00CE00CE00EE00EE00E601E301E186E0F8E00
0E000C001C70187018603020C01F800F157F9412>I<001000003800003800003800005C00005C
00005C00008E00008E00008E0001070001070003078002038002038007FFC00401C00401C00800
E00800E01800E03800F0FE03FE17177F961A>65 D<00FC100383300E00B01C0070380030300030
700010600010E00010E00000E00000E00000E00000E00000E00010600010700010300020380020
1C00400E008003830000FC0014177E9619>67 D<FFFFE01C00E01C00601C00201C00101C00101C
00101C04001C04001C04001C0C001FFC001C0C001C04001C04001C04001C00001C00001C00001C
00001C00001C0000FFC00014177F9617>70 D<007E080381980600580C00381800183000187000
08700008E00008E00000E00000E00000E00000E003FEE000387000387000383000381800380C00
380600380380D8007F0817177E961C>I<FF83FE1C00701C00701C00701C00701C00701C00701C
00701C00701C00701C00701FFFF01C00701C00701C00701C00701C00701C00701C00701C00701C
00701C0070FF83FE17177F961A>I<FFE00E000E000E000E000E000E000E000E000E000E000E00
0E000E000E000E000E000E000E000E000E000E00FFE00B177F960D>I<FE0003F81E0003C01700
05C0170005C0170005C0138009C0138009C011C011C011C011C011C011C010E021C010E021C010
7041C0107041C0107041C0103881C0103881C0101D01C0101D01C0100E01C0100E01C0380E01C0
FE040FF81D177F9620>77 D<FC00FE1E00381F001017001013801011C01011C01010E010107010
103810103810101C10100E10100F101007101003901001D01001D01000F0100070100030380030
FE001017177F961A>I<00FC000303000E01C01C00E0380070300030700038600018E0001CE000
1CE0001CE0001CE0001CE0001CE0001C7000387000383000303800701C00E00E01C003030000FC
0016177E961B>I<7FFFF860381840380840380880380480380480380400380000380000380000
380000380000380000380000380000380000380000380000380000380000380000380007FFC016
177F9619>84 D<FF80FE1C00381C00101C00101C00101C00101C00101C00101C00101C00101C00
101C00101C00101C00101C00101C00101C00101C00100E0020060020030040018180007E001717
7F961A>I<FF07FC3F803C01E00E001C00E004001C00E004001C017004000E017008000E017008
000E023808000702381000070238100007041C100003841C200003841C200003880E200001C80E
400001C80E400001D80F400000F007800000F007800000F0078000006003000000600300000060
03000021177F9624>87 D<1FC0386038301038003803F81E3830387038E039E039E07970FF1F1E
100E7F8D12>97 D<FC00001C00001C00001C00001C00001C00001C00001C00001C00001CF8001F
06001C03001C03801C01801C01C01C01C01C01C01C01C01C01801C03801C03001B0E0010F80012
17809614>I<07F01838303870106000E000E000E000E000600070083008183007C00D0E7F8D10>
I<007E00000E00000E00000E00000E00000E00000E00000E00000E0007CE001C3E00300E00700E
00600E00E00E00E00E00E00E00E00E00600E00700E00301E00182E0007CFC012177F9614>I<0F
C0186030307038E018FFF8E000E000E000600070083010183007C00D0E7F8D10>I<03E006700E
701C201C001C001C001C001C00FF801C001C001C001C001C001C001C001C001C001C001C001C00
FF800C1780960B>I<0F9E18E33060707070707070306018C02F80200060003FE03FF83FFC600E
C006C006C006600C38380FE010157F8D12>I<FC00001C00001C00001C00001C00001C00001C00
001C00001C00001C7C001D8E001E07001C07001C07001C07001C07001C07001C07001C07001C07
001C07001C0700FF9FE01317809614>I<183C3C1800000000007C1C1C1C1C1C1C1C1C1C1C1C1C
FF081780960A>I<0300078007800300000000000000000000001F800380038003800380038003
800380038003800380038003800380038003804380E300E7007C00091D82960B>I<FC00001C00
001C00001C00001C00001C00001C00001C00001C00001C3F801C1C001C18001C20001C40001CC0
001FE0001CF0001C70001C78001C3C001C1E001C1E00FF3FC01217809613>I<FC001C001C001C
001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80
091780960A>I<FC7C1F001D8E63801E0781C01C0701C01C0701C01C0701C01C0701C01C0701C0
1C0701C01C0701C01C0701C01C0701C01C0701C0FF9FE7F81D0E808D1E>I<FC7C001D8E001E07
001C07001C07001C07001C07001C07001C07001C07001C07001C07001C0700FF9FE0130E808D14
>I<07C018303018600C600CE00EE00EE00EE00EE00E701C3018183007C00F0E7F8D12>I<FCF800
1F0E001C03001C03801C01801C01C01C01C01C01C01C01C01C01801C03801C07001F0E001CF800
1C00001C00001C00001C00001C0000FF80001214808D14>I<07C2001C2600381E00700E00600E
00E00E00E00E00E00E00E00E00600E00700E00301E001C2E0007CE00000E00000E00000E00000E
00000E00007FC012147F8D13>I<FCF01D381E381C101C001C001C001C001C001C001C001C001C
00FF800D0E808D0E>I<1F4060C0C040C040E000FF007F801FC001E080608060C060E0C09F000B
0E7F8D0E>I<080008000800180018003800FF8038003800380038003800380038003840384038
4038401C800F000A147F930E>I<FC3F001C07001C07001C07001C07001C07001C07001C07001C
07001C07001C07001C0F000E170003E7E0130E808D14>I<FE1F3C0E3C0C1C081C080E100E1007
20072003C003C003C001800180100E7F8D13>I<FCFE7C3838383838101C3C201C3C201C4C200E
4E400E4E400E8640078780078780070380030300030300160E7F8D19>I<FE1F3C0E3C0C1C081C
080E100E100720072003C003C003C00180018001000100E200E200A400780010147F8D13>121
D E /Fc 1 50 df<0C003C00CC000C000C000C000C000C000C000C000C000C000C000C000C00FF
8009107E8F0F>49 D E /Fd 1 50 df<0C001C00EC000C000C000C000C000C000C000C000C000C
000C000C000C000C000C000C00FFC00A137D9211>49 D E /Fe 59 122
df<0001FF0000001FFFC000007F80F00000FC00F80001F801F80003F803FC0007F003FC0007F0
03FC0007F003FC0007F001F80007F000F00007F000000007F000000007F000000007F0000000FF
FFFFFC00FFFFFFFC00FFFFFFFC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC00
07F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC
0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001
FC007FFF1FFFC07FFF1FFFC07FFF1FFFC0222A7FA926>12 D<0001FF803FE000001FFFE3FFF800
007F80FFF01E0000FE007F801F0001F800FF003F0003F801FF007F8007F001FE007F8007F001FE
007F8007F001FE007F8007F000FE003F0007F000FE001E0007F000FE00000007F000FE00000007
F000FE00000007F000FE000000FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF8007F000FE00
3F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F0
00FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F
8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000
FE003F8007F000FE003F8007F000FE003F8007F000FE003F807FFF0FFFE3FFF87FFF0FFFE3FFF8
7FFF0FFFE3FFF8352A7FA939>14 D<1C007F007F00FF80FFC0FFC07FC07FC01CC000C000C00180
018001800300030006000C001800300020000A157BA913>39 D<FFFF80FFFF80FFFF80FFFF80FF
FF80FFFF8011067F9017>45 D<1C003E007F00FF80FF80FF807F003E001C0009097B8813>I<00
000300000007800000078000000F8000000F0000000F0000001F0000001E0000003E0000003C00
00003C0000007C0000007800000078000000F8000000F0000001F0000001E0000001E0000003E0
000003C0000003C0000007C00000078000000F8000000F0000000F0000001F0000001E0000003E
0000003C0000003C0000007C0000007800000078000000F8000000F0000001F0000001E0000001
E0000003E0000003C0000003C0000007C00000078000000F8000000F0000000F0000001F000000
1E0000001E0000003E0000003C0000007C0000007800000078000000F8000000F0000000F00000
0060000000193C7CAC22>I<003F800001FFF00007E0FC000FC07E001F803F001F803F003F001F
803F001F807F001FC07F001FC07F001FC07F001FC0FF001FE0FF001FE0FF001FE0FF001FE0FF00
1FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF
001FE07F001FC07F001FC07F001FC07F001FC03F001F803F001F801F803F001F803F000FC07E00
07E0FC0001FFF000003F80001B277DA622>I<000E00001E00007E0007FE00FFFE00FFFE00F8FE
0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
0000FE0000FE0000FE007FFFFE7FFFFE7FFFFE17277BA622>I<00FF800003FFF0000FFFFC001F
03FE003800FF007C007F80FE003FC0FF003FC0FF003FE0FF001FE0FF001FE07E001FE03C003FE0
00003FE000003FC000003FC000007F8000007F000000FE000000FC000001F8000003F0000003E0
0000078000000F0000001E0000003C00E0007000E000E000E001C001C0038001C0070001C00FFF
FFC01FFFFFC03FFFFFC07FFFFFC0FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007F800003FF
F00007FFFC000F81FE001F00FF003F80FF003F807F803F807F803F807F801F807F800F007F8000
00FF000000FF000000FE000001FC000001F8000007F00000FFC00000FFF0000001FC0000007E00
00007F0000007F8000003FC000003FC000003FE000003FE03C003FE07E003FE0FF003FE0FF003F
E0FF003FC0FF007FC07E007F807C007F003F01FE001FFFFC0007FFF00000FF80001B277DA622>
I<00000E0000001E0000003E0000007E000000FE000000FE000001FE000003FE0000077E00000E
7E00000E7E00001C7E0000387E0000707E0000E07E0000E07E0001C07E0003807E0007007E000E
007E000E007E001C007E0038007E0070007E00E0007E00FFFFFFF8FFFFFFF8FFFFFFF80000FE00
0000FE000000FE000000FE000000FE000000FE000000FE000000FE00007FFFF8007FFFF8007FFF
F81D277EA622>I<0C0003000F803F000FFFFE000FFFFC000FFFF8000FFFF0000FFFE0000FFFC0
000FFE00000E0000000E0000000E0000000E0000000E0000000E0000000E7FC0000FFFF8000F80
FC000E003E000C003F0000001F8000001FC000001FC000001FE000001FE018001FE07C001FE0FE
001FE0FE001FE0FE001FE0FE001FC0FC001FC078003F8078003F803C007F001F01FE000FFFF800
03FFF00000FF80001B277DA622>I<0007F000003FFC0000FFFE0001FC0F0003F01F8007E03F80
0FC03F801FC03F801F803F803F801F003F8000007F0000007F0000007F000000FF000000FF0FC0
00FF3FF800FF707C00FFC03E00FFC03F00FF801F80FF801FC0FF001FC0FF001FE0FF001FE0FF00
1FE07F001FE07F001FE07F001FE07F001FE03F001FE03F001FC01F801FC01F803F800FC03F0007
E07E0003FFFC0000FFF000003FC0001B277DA622>I<380000003E0000003FFFFFF03FFFFFF03F
FFFFF07FFFFFE07FFFFFC07FFFFF807FFFFF0070000E0070000E0070001C00E0003800E0007000
E000E0000000E0000001C000000380000007800000078000000F0000000F0000001F0000001F00
00003F0000003E0000003E0000007E0000007E0000007E0000007E000000FE000000FE000000FE
000000FE000000FE000000FE000000FE000000FE0000007C0000003800001C297CA822>I<003F
C00001FFF00003FFFC0007C07E000F003F001E001F001E000F803E000F803E000F803F000F803F
000F803FC00F003FF01F001FFC1E001FFE3C000FFFF80007FFE00003FFF80001FFFC0001FFFE00
07FFFF000F0FFF801E03FFC03C01FFC07C007FE078001FE0F80007E0F80007E0F80003E0F80003
E0F80003E0F80003C07C0003C07C0007803F000F001FC03E000FFFFC0003FFF800007FC0001B27
7DA622>I<007F800001FFF00007FFF8000FE0FC001F807E003F803F007F003F007F001F80FF00
1F80FF001FC0FF001FC0FF001FC0FF001FE0FF001FE0FF001FE0FF001FE07F001FE07F003FE03F
003FE01F807FE00F807FE007C1DFE003FF9FE0007E1FE000001FE000001FC000001FC000001FC0
00003F801F003F803F803F003F803F003F807E003F807C001F01F8001E03F0000FFFE00007FF80
0001FE00001B277DA622>I<01FF000FFFE01E03F03801F87801FCFC01FEFE01FEFE01FEFE01FE
7C01FE3801FC0003F80007F00007C0000F80001F00001E00003C00003800003800007800007000
00700000700000700000700000700000000000000000000000000000000000000000700000F800
01FC0003FE0003FE0003FE0001FC0000F800007000172A7CA920>63 D<000003800000000007C0
0000000007C0000000000FE0000000000FE0000000000FE0000000001FF0000000001FF0000000
003FF8000000003FF8000000003FF80000000073FC0000000073FC00000000F3FE00000000E1FE
00000000E1FE00000001C0FF00000001C0FF00000003C0FF80000003807F80000007807FC00000
07003FC0000007003FC000000E003FE000000E001FE000001E001FF000001C000FF000001FFFFF
F000003FFFFFF800003FFFFFF80000780007FC0000700003FC0000700003FC0000E00001FE0000
E00001FE0001E00001FF0001C00000FF0001C00000FF00FFFE001FFFFEFFFE001FFFFEFFFE001F
FFFE2F297EA834>65 D<FFFFFFF80000FFFFFFFF8000FFFFFFFFC00003F8001FF00003F8000FF8
0003F80007FC0003F80003FC0003F80003FC0003F80003FE0003F80001FE0003F80001FE0003F8
0001FE0003F80003FE0003F80003FC0003F80003FC0003F80007F80003F8000FF00003F8001FE0
0003F800FFC00003FFFFFE000003FFFFFFE00003F80007F00003F80003FC0003F80001FE0003F8
0001FE0003F80000FF0003F80000FF0003F80000FF8003F80000FF8003F80000FF8003F80000FF
8003F80000FF8003F80000FF8003F80000FF0003F80001FF0003F80003FE0003F80007FC0003F8
001FF800FFFFFFFFF000FFFFFFFFC000FFFFFFFE000029297DA831>I<00003FF001800003FFFE
0380000FFFFF8780003FF007DF8000FF8001FF8001FE00007F8003FC00003F8007F000001F800F
F000000F801FE0000007801FE0000007803FC0000007803FC0000003807FC0000003807F800000
03807F8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF
8000000000FF8000000000FF8000000000FF80000000007F80000000007F80000000007FC00000
03803FC0000003803FC0000003801FE0000003801FE0000007000FF00000070007F000000E0003
FC00001E0001FE00003C0000FF8000F800003FF007E000000FFFFFC0000003FFFF000000003FF8
000029297CA832>I<FFFFFFF80000FFFFFFFF8000FFFFFFFFE00003FC001FF80003FC0007FC00
03FC0001FE0003FC0000FF0003FC00007F8003FC00003FC003FC00001FC003FC00001FE003FC00
001FE003FC00000FF003FC00000FF003FC00000FF003FC00000FF003FC00000FF803FC00000FF8
03FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00
000FF803FC00000FF803FC00000FF003FC00000FF003FC00000FF003FC00001FE003FC00001FE0
03FC00001FC003FC00003FC003FC00007F8003FC00007F0003FC0001FE0003FC0003FC0003FC00
1FF800FFFFFFFFE000FFFFFFFF8000FFFFFFFC00002D297DA835>I<FFFFFFFFC0FFFFFFFFC0FF
FFFFFFC003FC003FC003FC000FE003FC0003E003FC0001E003FC0001E003FC0000E003FC0000E0
03FC0000E003FC0000F003FC03807003FC03807003FC03807003FC03800003FC07800003FC0780
0003FC1F800003FFFF800003FFFF800003FFFF800003FC1F800003FC07800003FC07800003FC03
800003FC03800003FC03800003FC03800003FC00000003FC00000003FC00000003FC00000003FC
00000003FC00000003FC00000003FC00000003FC000000FFFFFC0000FFFFFC0000FFFFFC000024
297DA82B>70 D<00007FE003000003FFFC0700001FFFFF0F00003FF00FFF0000FF8001FF0001FE
0000FF0003F800003F0007F000003F000FF000001F001FE000000F001FE000000F003FC000000F
003FC0000007007FC0000007007F80000007007F8000000000FF8000000000FF8000000000FF80
00000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8001FFFF
F87F8001FFFFF87F8001FFFFF87FC00000FF003FC00000FF003FC00000FF001FE00000FF001FE0
0000FF000FF00000FF0007F00000FF0003F80000FF0001FE0000FF0000FF8001FF00003FF007BF
00001FFFFF1F000003FFFE0F0000007FF003002D297CA836>I<FFFFF01FFFFEFFFFF01FFFFEFF
FFF01FFFFE03FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC0000
7F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003
FC00007F8003FC00007F8003FC00007F8003FFFFFFFF8003FFFFFFFF8003FFFFFFFF8003FC0000
7F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003
FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC0000
7F8003FC00007F8003FC00007F8003FC00007F80FFFFF01FFFFEFFFFF01FFFFEFFFFF01FFFFE2F
297DA836>I<FFFFFCFFFFFCFFFFFC01FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE00
01FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE00
01FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE00
01FE00FFFFFCFFFFFCFFFFFC16297EA81A>I<FFFFFC0000FFFFFC0000FFFFFC000003FC000000
03FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC0000
0003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00
000003FC00000003FC00000003FC00000003FC00000003FC0001C003FC0001C003FC0001C003FC
0001C003FC0003C003FC00038003FC00038003FC00078003FC00078003FC000F8003FC000F8003
FC001F8003FC007F8003FC01FF00FFFFFFFF00FFFFFFFF00FFFFFFFF0022297DA829>76
D<FFFE0000001FFFC0FFFE0000001FFFC0FFFF0000003FFFC003FF0000003FF00003FF0000003F
F00003BF80000077F00003BF80000077F000039FC00000E7F000039FC00000E7F000038FE00001
C7F000038FE00001C7F0000387F0000387F0000387F0000387F0000387F0000387F0000383F800
0707F0000383F8000707F0000381FC000E07F0000381FC000E07F0000380FE001C07F0000380FE
001C07F0000380FF003807F00003807F003807F00003807F003807F00003803F807007F0000380
3F807007F00003801FC0E007F00003801FC0E007F00003800FE1C007F00003800FE1C007F00003
800FE1C007F000038007F38007F000038007F38007F000038003FF0007F000038003FF0007F000
038001FE0007F000038001FE0007F000038000FC0007F000038000FC0007F000FFFE00FC01FFFF
C0FFFE007801FFFFC0FFFE007801FFFFC03A297DA841>I<FFFC0000FFFEFFFE0000FFFEFFFF00
00FFFE03FF8000038003FF8000038003BFC0000380039FE0000380039FF0000380038FF8000380
0387F80003800383FC0003800381FE0003800381FF0003800380FF80038003807FC0038003803F
C0038003801FE0038003800FF0038003800FF80380038007FC0380038003FC0380038001FE0380
038000FF0380038000FF83800380007FC3800380003FE3800380001FE3800380000FF380038000
07FB8003800007FF8003800003FF8003800001FF8003800000FF80038000007F80038000007F80
038000003F80038000001F80038000000F80FFFE00000780FFFE00000380FFFE000003802F297D
A836>I<0000FFE000000007FFFC0000003FC07F8000007F001FC00001FC0007F00003F80003F8
0007F00001FC000FF00001FE001FE00000FF001FE00000FF003FC000007F803FC000007F807FC0
00007FC07F8000003FC07F8000003FC07F8000003FC0FF8000003FE0FF8000003FE0FF8000003F
E0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF80
00003FE07F8000003FC07FC000007FC07FC000007FC03FC000007F803FC000007F801FE00000FF
001FE00000FF000FF00001FE0007F00001FC0003F80003F80001FC0007F00000FF001FE000003F
C07F8000000FFFFE00000000FFE000002B297CA834>I<FFFFFFF800FFFFFFFF00FFFFFFFFC003
FC003FE003FC000FF003FC0007F803FC0007FC03FC0003FC03FC0003FE03FC0003FE03FC0003FE
03FC0003FE03FC0003FE03FC0003FE03FC0003FE03FC0003FC03FC0007FC03FC0007F803FC000F
F003FC003FE003FFFFFF8003FFFFFE0003FC00000003FC00000003FC00000003FC00000003FC00
000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC
00000003FC00000003FC00000003FC000000FFFFF00000FFFFF00000FFFFF0000027297DA82F>
I<FFFFFFE00000FFFFFFFE0000FFFFFFFF800003FC007FE00003FC000FF00003FC0007F80003FC
0007FC0003FC0003FC0003FC0003FE0003FC0003FE0003FC0003FE0003FC0003FE0003FC0003FE
0003FC0003FE0003FC0003FC0003FC0007F80003FC0007F80003FC001FE00003FC007FC00003FF
FFFE000003FFFFF0000003FC00FC000003FC007F000003FC003F800003FC003F800003FC001FC0
0003FC001FE00003FC001FE00003FC001FE00003FC001FE00003FC001FE00003FC001FF00003FC
001FF00003FC001FF00003FC001FF00703FC001FF80703FC000FF80703FC0007F80EFFFFF003FE
1CFFFFF001FFF8FFFFF0003FF030297DA834>82 D<007F806003FFF0E007FFF9E00F807FE01F00
1FE03E0007E07C0003E07C0001E0FC0001E0FC0001E0FC0000E0FE0000E0FE0000E0FF000000FF
C000007FFE00007FFFE0003FFFFC001FFFFE000FFFFF8007FFFFC003FFFFE000FFFFE00007FFF0
00007FF000000FF8000007F8000003F8600001F8E00001F8E00001F8E00001F8F00001F0F00001
F0F80003F0FC0003E0FF0007C0FFE01F80F3FFFF00E0FFFE00C01FF0001D297CA826>I<7FFFFF
FFFFC07FFFFFFFFFC07FFFFFFFFFC07F803FC03FC07E003FC007C078003FC003C078003FC003C0
70003FC001C0F0003FC001E0F0003FC001E0E0003FC000E0E0003FC000E0E0003FC000E0E0003F
C000E0E0003FC000E000003FC0000000003FC0000000003FC0000000003FC0000000003FC00000
00003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003F
C0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC00000
00003FC0000000003FC0000000003FC0000000003FC00000007FFFFFE000007FFFFFE000007FFF
FFE0002B287EA730>I<FFFFF001FFFCFFFFF001FFFCFFFFF001FFFC03FC0000070003FC000007
0003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC
0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC000007
0003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC
0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC000007
0001FC00000E0001FE00000E0000FE00001C00007E00001C00007F00003800003FC000F000000F
F007E0000007FFFFC0000001FFFF000000001FF800002E297DA835>I<FFFFF0003FFF80FFFFF0
003FFF80FFFFF0003FFF8003FE000001E00001FE000001C00001FF000003C00000FF0000038000
00FF0000038000007F8000070000007F8000070000007FC0000F0000003FC0000E0000003FE000
1E0000001FE0001C0000001FF0001C0000000FF000380000000FF0003800000007F80070000000
07F8007000000007FC00F000000003FC00E000000003FE01E000000001FE01C000000001FF01C0
00000000FF038000000000FF038000000000FF8780000000007F8700000000007FCF0000000000
3FCE00000000003FFE00000000001FFC00000000001FFC00000000000FF800000000000FF80000
0000000FF8000000000007F0000000000007F0000000000003E0000000000003E0000000000001
C000000031297FA834>I<FFFFE07FFFF007FFF0FFFFE07FFFF007FFF0FFFFE07FFFF007FFF003
FC0001FE00001C0003FC0001FE00001C0001FE0001FF0000380001FE0000FF0000380001FF0000
FF0000780000FF0000FF8000700000FF0000FF8000700000FF8000FF8000F000007F8001FFC000
E000007F8001FFC000E000003FC003FFE001C000003FC0039FE001C000003FE0039FE003C00000
1FE0070FF0038000001FE0070FF0038000001FF00F0FF0078000000FF00E07F8070000000FF00E
07F80700000007F81E07FC0E00000007F81C03FC0E00000007FC1C03FC1E00000003FC3801FE1C
00000003FC3801FE1C00000001FE7801FF3800000001FE7000FF3800000001FE7000FF38000000
00FFF000FFF000000000FFE0007FF000000000FFE0007FF0000000007FC0003FE0000000007FC0
003FE0000000003FC0003FC0000000003F80001FC0000000003F80001FC0000000001F80001F80
000000001F00000F80000000001F00000F80000000000E00000700000044297FA847>I<01FF80
0007FFF0000F81F8001FC07E001FC07E001FC03F000F803F8007003F8000003F8000003F800000
3F80000FFF8000FFFF8007FC3F800FE03F803F803F803F003F807F003F80FE003F80FE003F80FE
003F80FE003F807E007F807F00DF803F839FFC0FFF0FFC01FC03FC1E1B7E9A21>97
D<FFE0000000FFE0000000FFE00000000FE00000000FE00000000FE00000000FE00000000FE000
00000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE1
FE00000FE7FF80000FFE07E0000FF801F0000FF000F8000FE000FC000FE000FE000FE0007F000F
E0007F000FE0007F000FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F80
0FE0007F800FE0007F000FE0007F000FE0007F000FE000FE000FE000FC000FF001F8000FF803F0
000F9E07E0000F07FF80000E01FC0000212A7EA926>I<001FF80000FFFE0003F01F0007E03F80
0FC03F801F803F803F801F007F800E007F0000007F000000FF000000FF000000FF000000FF0000
00FF000000FF000000FF0000007F0000007F0000007F8000003F8001C01F8001C00FC0038007E0
070003F01E0000FFFC00001FE0001A1B7E9A1F>I<00003FF80000003FF80000003FF800000003
F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8000000
03F800000003F800000003F800000003F800001FE3F80000FFFBF80003F03FF80007E00FF8000F
C007F8001F8003F8003F8003F8007F0003F8007F0003F8007F0003F800FF0003F800FF0003F800
FF0003F800FF0003F800FF0003F800FF0003F800FF0003F8007F0003F8007F0003F8007F0003F8
003F8003F8001F8003F8000F8007F80007C00FF80003F03BFF8000FFF3FF80003FC3FF80212A7E
A926>I<003FE00001FFF80003F07E0007C01F000F801F801F800F803F800FC07F000FC07F0007
C07F0007E0FF0007E0FF0007E0FFFFFFE0FFFFFFE0FF000000FF000000FF0000007F0000007F00
00007F0000003F8000E01F8000E00FC001C007E0038003F81F0000FFFE00001FF0001B1B7E9A20
>I<0007F0003FFC00FE3E01F87F03F87F03F07F07F07F07F03E07F00007F00007F00007F00007
F00007F00007F000FFFFC0FFFFC0FFFFC007F00007F00007F00007F00007F00007F00007F00007
F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007
F0007FFF807FFF807FFF80182A7EA915>I<00FF81F003FFE7F80FC1FE7C1F80FC7C1F007C383F
007E107F007F007F007F007F007F007F007F007F007F007F007F003F007E001F007C001F80FC00
0FC1F8001FFFE00018FF800038000000380000003C0000003E0000003FFFF8001FFFFF001FFFFF
800FFFFFC007FFFFE01FFFFFF03E0007F07C0001F8F80000F8F80000F8F80000F8F80000F87C00
01F03C0001E01F0007C00FC01F8003FFFE00007FF0001E287E9A22>I<FFE0000000FFE0000000
FFE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000
000FE00000000FE00000000FE00000000FE00000000FE00000000FE07F00000FE1FFC0000FE787
E0000FEE03F0000FF803F0000FF803F8000FF003F8000FF003F8000FE003F8000FE003F8000FE0
03F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000F
E003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800FFFE3FFF80FFFE3FFF80
FFFE3FFF80212A7DA926>I<07000F801FC03FE03FE03FE01FC00F800700000000000000000000
0000000000FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
0FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2B7DAA14>I<FFE00000FFE00000FFE00000
0FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000
000FE000000FE000000FE01FFC0FE01FFC0FE01FFC0FE007800FE00F000FE01E000FE03C000FE0
78000FE0E0000FE3C0000FE7C0000FEFE0000FFFE0000FFFF0000FF3F8000FE3F8000FC1FC000F
C0FE000FC07F000FC07F000FC03F800FC01FC00FC00FC00FC00FE0FFFC3FFEFFFC3FFEFFFC3FFE
1F2A7EA924>107 D<FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F
E00FE00FE00FE00FE0FFFEFFFEFFFE0F2A7DA914>I<FFC07F800FF000FFC1FFE03FFC00FFC383
F0707E000FC603F8C07F000FCC01F9803F000FD801FF003F800FF001FE003F800FF001FE003F80
0FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC
003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800F
E001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F80FFFE1FFFC3
FFF8FFFE1FFFC3FFF8FFFE1FFFC3FFF8351B7D9A3A>I<FFC07F0000FFC1FFC000FFC787E0000F
CE03F0000FD803F0000FD803F8000FF003F8000FF003F8000FE003F8000FE003F8000FE003F800
0FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8
000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800FFFE3FFF80FFFE3FFF80FFFE3F
FF80211B7D9A26>I<003FE00001FFFC0003F07E000FC01F801F800FC03F800FE03F0007E07F00
07F07F0007F07F0007F0FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF
0007F87F0007F07F0007F03F800FE03F800FE01F800FC00FC01F8007F07F0001FFFC00003FE000
1D1B7E9A22>I<FFE1FE0000FFE7FF8000FFFE07E0000FF803F0000FF001F8000FE000FC000FE0
00FE000FE000FF000FE0007F000FE0007F000FE0007F800FE0007F800FE0007F800FE0007F800F
E0007F800FE0007F800FE0007F800FE0007F000FE000FF000FE000FF000FE000FE000FE001FC00
0FF001F8000FF803F0000FFE0FE0000FE7FF80000FE1FC00000FE00000000FE00000000FE00000
000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000000FFFE000000FFFE00
0000FFFE00000021277E9A26>I<FFC1F0FFC7FCFFCE3E0FD87F0FD87F0FF07F0FF03E0FF01C0F
E0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000F
E0000FE0000FE000FFFF00FFFF00FFFF00181B7E9A1C>114 D<03FE300FFFF01E03F03800F070
0070F00070F00070F80070FC0000FFE0007FFE007FFF803FFFE01FFFF007FFF800FFF80003FC00
00FC60007CE0003CF0003CF00038F80038FC0070FF01E0F7FFC0C1FF00161B7E9A1B>I<007000
00700000700000700000F00000F00000F00001F00003F00003F00007F0001FFFF0FFFFF0FFFFF0
07F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F000
07F03807F03807F03807F03807F03807F03803F03803F87001F86000FFC0001F8015267FA51B>
I<FFE03FF800FFE03FF800FFE03FF8000FE003F8000FE003F8000FE003F8000FE003F8000FE003
F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE0
03F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE007F80007E007F80007
E00FF80003F03BFF8001FFF3FF80003FC3FF80211B7D9A26>I<FFFE03FF80FFFE03FF80FFFE03
FF8007F000700007F000700007F800F00003F800E00003FC01E00001FC01C00001FC01C00000FE
03800000FE038000007F070000007F070000007F8F0000003F8E0000003FDE0000001FDC000000
1FDC0000000FF80000000FF80000000FF800000007F000000007F000000003E000000003E00000
0001C00000211B7F9A24>I<FFFE7FFC0FFEFFFE7FFC0FFEFFFE7FFC0FFE0FE007E000E007F003
F001C007F003F001C007F807F803C003F807F8038003F807F8038001FC0EFC070001FC0EFC0700
01FE1EFC0F0000FE1C7E0E0000FE1C7E0E0000FF383F1E00007F383F1C00007F783F3C00003FF0
1FB800003FF01FB800003FF01FF800001FE00FF000001FE00FF000000FC007E000000FC007E000
000FC007E00000078003C00000078003C0002F1B7F9A32>I<FFFC0FFF00FFFC0FFF00FFFC0FFF
0007F003C00003F807800001FC07800000FE0F000000FF1E0000007F3C0000003FF80000001FF0
0000000FF00000000FF000000007F000000007F80000000FFC0000001FFE0000001EFE0000003C
7F000000783F800000F01FC00001E01FE00001C00FE00003C007F000FFF01FFF80FFF01FFF80FF
F01FFF80211B7F9A24>I<FFFE03FF80FFFE03FF80FFFE03FF8007F000700007F000700007F800
F00003F800E00003FC01E00001FC01C00001FC01C00000FE03800000FE038000007F070000007F
070000007F8F0000003F8E0000003FDE0000001FDC0000001FDC0000000FF80000000FF8000000
0FF800000007F000000007F000000003E000000003E000000001C000000001C000000003800000
000380000038078000007C07000000FE0F000000FE0E000000FE1E000000FE3C0000007C780000
003FE00000000FC000000021277F9A24>I E /Ff 17 121 df<00001E000000003E00000000FE
00000003FE0000003FFE0000FFFFFE0000FFFFFE0000FFFFFE0000FFCFFE0000000FFE0000000F
FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000000
0FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000
000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00
00000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE
0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000F
FE0000000FFE0000000FFE00007FFFFFFFC07FFFFFFFC07FFFFFFFC07FFFFFFFC0223879B731>
49 D<0007FE0000007FFFE00001FFFFF80003FFFFFE0007F01FFF000F8007FF801F0001FFC03E
0000FFE07F8000FFF07FC0007FF0FFE0007FF8FFF0003FF8FFF0003FFCFFF0003FFCFFF0003FFC
FFF0003FFC7FE0003FFC3FC0003FFC1F80003FFC0000003FFC0000003FF80000007FF80000007F
F00000007FF0000000FFE0000000FFC0000001FF80000001FF00000003FE00000007FC00000007
F80000000FF00000001FC00000003F800000007F00000000FC00000001F800000001F0003C0003
E0003C0007C0003C000F000078001E000078003C00007800780000F800F00000F801FFFFFFF803
FFFFFFF007FFFFFFF00FFFFFFFF01FFFFFFFF03FFFFFFFF07FFFFFFFF0FFFFFFFFF0FFFFFFFFE0
FFFFFFFFE0FFFFFFFFE026387BB731>I<0003FF8000001FFFF000007FFFFE0000FE03FF0001F0
00FF8003C000FFC00780007FE00FF0007FF00FF8007FF01FFC007FF81FFE007FF81FFE007FF81F
FE007FF81FFE007FF81FFE007FF80FFC007FF007F8007FF003F0007FF0000000FFE0000000FFC0
000001FF80000001FF00000003FE00000007FC0000001FF000000FFFC000000FFF8000000FFFF8
00000003FE00000000FF800000007FE00000003FF00000003FF80000003FFC0000001FFC000000
1FFE0000001FFE0200001FFF1FC0001FFF3FE0001FFF7FF0001FFF7FF0001FFFFFF8001FFFFFF8
001FFFFFF8001FFEFFF8001FFEFFF0001FFE7FF0003FFC7FE0003FFC3FC0003FF81F80007FF01F
E000FFE007FC03FFC003FFFFFF0001FFFFFE00003FFFF0000007FF800028397CB731>I<000000
07C0000000000FC0000000000FC0000000001FC0000000003FC0000000007FC000000000FFC000
000000FFC000000001FFC000000003FFC000000007FFC00000000FFFC00000000FFFC00000001E
FFC00000003CFFC00000007CFFC0000000F8FFC0000000F0FFC0000001E0FFC0000003C0FFC000
0007C0FFC000000F80FFC000000F00FFC000001E00FFC000003C00FFC000007C00FFC00000F800
FFC00000F000FFC00001E000FFC00003C000FFC00007C000FFC0000F8000FFC0000F0000FFC000
1E0000FFC0003C0000FFC0007C0000FFC000F80000FFC000FFFFFFFFFFC0FFFFFFFFFFC0FFFFFF
FFFFC0FFFFFFFFFFC0000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000
000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0000007FFFFFFC00007FF
FFFFC00007FFFFFFC00007FFFFFFC02A377DB631>I<00000001F80000000000000001F8000000
0000000003FC0000000000000003FC0000000000000007FE0000000000000007FE000000000000
0007FE000000000000000FFF000000000000000FFF000000000000001FFF800000000000001FFF
800000000000001FFF800000000000003FFFC00000000000003FFFC00000000000007FFFE00000
000000007DFFE00000000000007DFFE0000000000000FDFFF0000000000000F8FFF00000000000
01F8FFF8000000000001F07FF8000000000001F07FF8000000000003F07FFC000000000003E03F
FC000000000007E03FFE000000000007C01FFE00000000000FC01FFF00000000000F801FFF0000
0000000F800FFF00000000001F800FFF80000000001F0007FF80000000003F0007FFC000000000
3E0003FFC0000000003E0003FFC0000000007E0003FFE0000000007C0001FFE000000000FC0001
FFF000000000F80000FFF000000000F80000FFF000000001FFFFFFFFF800000001FFFFFFFFF800
000003FFFFFFFFFC00000003FFFFFFFFFC00000003E000003FFC00000007E000003FFE00000007
C000001FFE0000000FC000001FFF0000000F8000000FFF0000001F8000000FFF8000001F000000
0FFF8000001F00000007FF8000003F00000007FFC000003E00000003FFC000007E00000003FFE0
0000FF00000001FFE000FFFFFC0001FFFFFFF0FFFFFC0001FFFFFFF0FFFFFC0001FFFFFFF0FFFF
FC0001FFFFFFF0443B7DBA4B>65 D<FFFFFFFFFFC00000FFFFFFFFFFFC0000FFFFFFFFFFFF0000
FFFFFFFFFFFFC000007FF00001FFF000007FF000007FF800007FF000003FFC00007FF000001FFE
00007FF000001FFE00007FF000000FFF00007FF000000FFF00007FF0000007FF80007FF0000007
FF80007FF0000007FF80007FF0000007FF80007FF0000007FF80007FF0000007FF80007FF00000
07FF80007FF0000007FF00007FF000000FFF00007FF000000FFF00007FF000001FFE00007FF000
001FFC00007FF000003FF800007FF000007FF000007FF00001FFE000007FF0000FFF8000007FFF
FFFFFE0000007FFFFFFFFE0000007FFFFFFFFFC000007FF000007FF000007FF000001FFC00007F
F000000FFE00007FF0000007FF00007FF0000007FF80007FF0000003FFC0007FF0000003FFC000
7FF0000001FFE0007FF0000001FFE0007FF0000001FFF0007FF0000001FFF0007FF0000001FFF0
007FF0000001FFF0007FF0000001FFF0007FF0000001FFF0007FF0000001FFF0007FF0000001FF
F0007FF0000001FFE0007FF0000003FFE0007FF0000003FFC0007FF0000007FFC0007FF000000F
FF80007FF000001FFF00007FF000003FFE00007FF00001FFFC00FFFFFFFFFFFFF800FFFFFFFFFF
FFE000FFFFFFFFFFFF8000FFFFFFFFFFF800003C3B7CBA46>I<0000001FFF000030000001FFFF
E000F000000FFFFFFC01F000007FFFFFFE03F00001FFFE007F87F00003FFE0000FCFF0000FFF00
0003FFF0001FFC000001FFF0003FF80000007FF0007FF00000003FF000FFC00000003FF001FFC0
0000001FF003FF800000000FF007FF000000000FF00FFF0000000007F00FFE0000000007F01FFE
0000000003F01FFE0000000003F03FFC0000000003F03FFC0000000001F03FFC0000000001F07F
FC0000000001F07FF80000000001F07FF80000000000007FF8000000000000FFF8000000000000
FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF80000000000
00FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF800000000
00007FF80000000000007FF80000000000007FF80000000000007FFC0000000000F03FFC000000
0000F03FFC0000000000F03FFC0000000000F01FFE0000000000F01FFE0000000001E00FFE0000
000001E00FFF0000000001E007FF0000000003C003FF8000000003C001FFC0000000078000FFE0
0000000F00007FF00000001F00003FF80000003E00001FFC0000007C00000FFF000001F8000003
FFE00007F0000001FFFE003FC00000007FFFFFFF000000000FFFFFFC0000000001FFFFF0000000
00001FFF0000003C3D7BBB47>I<001FFF00000001FFFFF0000003FFFFFC000007F007FE00000F
F801FF00001FFC00FF80001FFC007FC0001FFC007FE0001FFC003FE0000FF8003FF0000FF8003F
F00007F0003FF00001C0003FF0000000003FF0000000003FF0000000003FF0000000FFFFF00000
0FFFFFF000007FF83FF00001FF803FF00007FE003FF0000FF8003FF0001FF0003FF0003FE0003F
F0007FE0003FF0007FE0003FF000FFC0003FF000FFC0003FF000FFC0003FF000FFC0003FF000FF
C0007FF0007FE0007FF0007FE000DFF0003FF0039FF8001FFC0F0FFFF007FFFE0FFFF001FFFC07
FFF0003FE000FFF02C267DA530>97 D<000000003FC00000003FFFC00000003FFFC00000003FFF
C00000003FFFC000000001FFC000000000FFC000000000FFC000000000FFC000000000FFC00000
0000FFC000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC000000000FF
C000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC00000FFC0FFC0000F
FFF8FFC0003FFFFEFFC000FFE03FFFC001FF000FFFC003FE0003FFC007FC0001FFC00FF80000FF
C01FF00000FFC01FF00000FFC03FF00000FFC03FE00000FFC07FE00000FFC07FE00000FFC07FE0
0000FFC0FFE00000FFC0FFE00000FFC0FFE00000FFC0FFE00000FFC0FFE00000FFC0FFE00000FF
C0FFE00000FFC0FFE00000FFC0FFE00000FFC07FE00000FFC07FE00000FFC07FE00000FFC03FF0
0000FFC03FF00000FFC01FF00000FFC00FF80001FFC007F80003FFC003FC0007FFC001FE000FFF
E000FFC07EFFFF003FFFFCFFFF000FFFF0FFFF0001FF80FFFF303C7DBB37>100
D<0001FFC000000FFFF800003FFFFE0000FF80FF0001FE003F8007FC001FC00FF8000FE00FF800
0FF01FF00007F03FF00007F83FF00007F87FE00007F87FE00003FC7FE00003FC7FE00003FCFFE0
0003FCFFFFFFFFFCFFFFFFFFFCFFFFFFFFFCFFE0000000FFE0000000FFE0000000FFE00000007F
E00000007FE00000007FE00000003FE00000003FF000003C1FF000003C1FF000003C0FF8000078
07FC0000F803FE0001F001FF0007E000FFC03FC0003FFFFF000007FFFC000000FFE00026267DA5
2D>I<00FF00000000FFFF00000000FFFF00000000FFFF00000000FFFF0000000007FF00000000
03FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00
00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00000000
03FF0000000003FF0000000003FF0000000003FF007FC00003FF01FFF80003FF07FFFC0003FF0F
03FE0003FF1C01FF0003FF3001FF8003FF6000FF8003FFE000FFC003FFC000FFC003FF8000FFC0
03FF8000FFC003FF8000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC0
03FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFFFF
FFFFFC3FFFFFFFFFFC3FFFFF303C7CBB37>104 D<01F00007FC000FFE000FFE001FFF001FFF00
1FFF001FFF001FFF000FFE000FFE0007FC0001F000000000000000000000000000000000000000
00000000000000000000000000FF00FFFF00FFFF00FFFF00FFFF0007FF0003FF0003FF0003FF00
03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00
03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00FFFFF8
FFFFF8FFFFF8FFFFF8153D7DBC1B>I<00FE007FC000FFFE01FFF800FFFE07FFFC00FFFE0F03FE
00FFFE1C01FF0007FE3001FF8003FE6000FF8003FEE000FFC003FEC000FFC003FF8000FFC003FF
8000FFC003FF8000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF
C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF
0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF
C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFFFFFFFF
FC3FFFFFFFFFFC3FFFFF30267CA537>110 D<00FF01FF8000FFFF0FFFF000FFFF3FFFFC00FFFF
FE03FF00FFFFF000FF8003FFC0007FC003FF80003FE003FF00003FF003FF00001FF803FF00001F
FC03FF00000FFC03FF00000FFE03FF00000FFE03FF000007FE03FF000007FF03FF000007FF03FF
000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007
FF03FF000007FE03FF000007FE03FF00000FFE03FF00000FFC03FF00000FFC03FF00001FF803FF
00001FF803FF00003FF003FF80003FE003FFC0007FC003FFF001FF8003FFFC07FF0003FF3FFFFC
0003FF0FFFF00003FF01FF000003FF0000000003FF0000000003FF0000000003FF0000000003FF
0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF000000
0003FF0000000003FF00000000FFFFFC000000FFFFFC000000FFFFFC000000FFFFFC0000003037
7DA537>112 D<00FE03F000FFFE0FFE00FFFE1FFF00FFFE3C3F80FFFE707FC007FE60FFE003FE
E0FFE003FEC0FFE003FFC0FFE003FF807FC003FF807FC003FF803F8003FF800E0003FF00000003
FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF000000
03FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF0000
0003FF00000003FF00000003FF00000003FF000000FFFFFE0000FFFFFE0000FFFFFE0000FFFFFE
000023267DA529>114 D<0007800000078000000780000007800000078000000F8000000F8000
000F8000000F8000001F8000001F8000003F8000003F8000007F800000FF800001FF800007FF80
001FFFFFF0FFFFFFF0FFFFFFF0FFFFFFF001FF800001FF800001FF800001FF800001FF800001FF
800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001
FF800001FF800001FF800001FF800001FF803C01FF803C01FF803C01FF803C01FF803C01FF803C
01FF803C01FF803C00FF807800FFC078007FC070003FE0E0001FFFC00007FF800001FF001E377E
B626>116 D<FFFFF007FFFCFFFFF007FFFCFFFFF007FFFCFFFFF007FFFC01FF8000FC0000FFC0
00F80000FFE001F000007FF003E000003FF007C000001FF80FC000000FFC1F8000000FFE1F0000
0007FF3E00000003FFFC00000001FFF800000000FFF0000000007FE0000000007FF0000000003F
F8000000001FF8000000001FFC000000003FFE000000007FFF00000000FBFF80000001F9FF8000
0003F0FFC0000003E07FE0000007C07FF000000F803FF800001F001FFC00003E000FFC00007C00
07FE0000FC0003FF0001FC0003FF80FFFF801FFFFEFFFF801FFFFEFFFF801FFFFEFFFF801FFFFE
2F267EA534>120 D E /Fg 1 98 df<00200000700000700000700000B80000B80000B800011C
00011C00011C00020E00020E0004070004070007FF000803800803800803801801C03803C0FE0F
F815157F9419>97 D E /Fh 36 122 df<0001FC000703000C03001C07001C0300180000380000
380000380000380000700007FFFC00701C00701C00701C00E03800E03800E03800E03800E07001
C07001C07001C07001C0E201C0E201C0E20380E4038064038038038000030000070000060000C6
0000E40000CC00007000001825819C17>12 D<183C3C3C0404080810204080060C779C0D>39
D<0000180000001800000038000000380000007800000078000000B8000001B800000138000002
380000023C0000041C0000041C0000081C0000181C0000101C0000201C0000201C00007FFC0000
401C0000801C0001801C0001001C0002001C0002001C0004000E000C000E001C001E00FF00FFC0
1A1D7E9C1F>65 D<0003F020001E0C60003002E000E003C001C001C0038001C0070000C00E0000
801E0000801C0000803C0000803C000000780000007800000078000000F0000000F0000000F000
0000F0000000F0000400F0000400F0000400F0000800700008007000100038002000180040000C
0180000706000001F800001B1E7A9C1E>67 D<01FFFFC0003C01C0003800C00038008000380080
003800800070008000700080007020800070200000E0400000E0400000E0C00000FFC00001C080
0001C0800001C0800001C080000381000003800000038000000380000007000000070000000700
0000070000000F000000FFF000001A1C7D9B1B>70 D<01FFCFFE003C01E0003801C0003801C000
3801C0003801C00070038000700380007003800070038000E0070000E0070000E0070000FFFF00
01C00E0001C00E0001C00E0001C00E0003801C0003801C0003801C0003801C0007003800070038
0007003800070038000F007800FFE7FF001F1C7D9B1F>72 D<01FFC0003C000038000038000038
0000380000700000700000700000700000E00000E00000E00000E00001C00001C00001C00001C0
000380000380000380000380000700000700000700000700000F0000FFE000121C7E9B10>I<00
7FF0000780000700000700000700000700000E00000E00000E00000E00001C00001C00001C0000
1C0000380000380000380000380000700000700000700000700060E000E0E000C0C00081C00083
80004700003C0000141D7B9B16>I<01FE0007F8003E000780002E000F00002E001700002E0017
00002E002700004E002E00004E004E00004E004E00004E008E00008E011C00008E011C00008E02
1C00008E021C000107043800010704380001070838000107103800020710700002072070000207
2070000207407000040740E000040780E000040700E0000C0700E0001C0601E000FF861FFC0025
1C7D9B25>77 D<01FFFC00003C070000380380003801C0003801C0003801C0007003C0007003C0
007003C00070038000E0078000E0070000E00E0000E0380001FFE00001C0000001C0000001C000
0003800000038000000380000003800000070000000700000007000000070000000F000000FFE0
00001A1C7D9B1C>80 D<000F8400304C00403C0080180100180300180300180600100600100600
0007000007000003E00003FC0001FF00007F800007C00001C00001C00000C00000C02000C02000
C0600180600180600300600200F00400CC180083E000161E7D9C17>83 D<1FFFFFC01C0701C030
0E00C0200E0080600E0080400E0080401C0080801C0080801C0080001C00000038000000380000
00380000003800000070000000700000007000000070000000E0000000E0000000E0000000E000
0001C0000001C0000001C0000001C0000003C000007FFE00001A1C799B1E>I<7FF0FF800F001C
000E0018000E0010000E0010000E0010001C0020001C0020001C0020001C002000380040003800
4000380040003800400070008000700080007000800070008000E0010000E0010000E0010000E0
020000E0020000E0040000E00400006008000030300000104000000F800000191D779B1F>I<FF
83FF0FF03C007001C038007001803800F001003800F00200380170020038017004003802700400
38027008001C047008001C047010001C087010001C087020001C107020001C107040001C207040
001C207080001C407180001C407100001C807200001D807200001D007400001E007400001E0078
00001C007800001C00700000180070000018006000001000600000241D779B29>87
D<03CC063C0C3C181C3838303870387038E070E070E070E070E0E2C0E2C0E261E462643C380F12
7B9115>97 D<3F00070007000E000E000E000E001C001C001C001C0039C03E6038303830703870
3870387038E070E070E070E060E0E0C0C0C1C0618063003C000D1D7B9C13>I<01F007080C0818
1C3838300070007000E000E000E000E000E000E008E010602030C01F000E127B9113>I<001F80
000380000380000700000700000700000700000E00000E00000E00000E0003DC00063C000C3C00
181C00383800303800703800703800E07000E07000E07000E07000E0E200C0E200C0E20061E400
6264003C3800111D7B9C15>I<01E007100C1018083810701070607F80E000E000E000E000E000
E0086010602030C01F000D127B9113>I<0003C0000670000C70001C60001C00001C0000380000
380000380000380000380003FF8000700000700000700000700000700000E00000E00000E00000
E00000E00001C00001C00001C00001C00001C000038000038000038000030000030000070000C6
0000E60000CC00007800001425819C0D>I<00F3018F030F06070E0E0C0E1C0E1C0E381C381C38
1C381C383830383038187818F00F700070007000E000E0C0C0E1C0C3007E00101A7D9113>I<0F
C00001C00001C0000380000380000380000380000700000700000700000700000E78000E8C000F
0E000E0E001C0E001C0E001C0E001C0E00381C00381C00381C0038380070388070388070708070
7100E03200601C00111D7D9C15>I<01800380010000000000000000000000000000001C002600
470047008E008E000E001C001C001C0038003800710071007100720072003C00091C7C9B0D>I<
0FC00001C00001C0000380000380000380000380000700000700000700000700000E0F000E1100
0E23800E43801C83001C80001D00001E00003F800039C00038E00038E00070E20070E20070E200
70E400E06400603800111D7D9C13>107 D<1F800380038007000700070007000E000E000E000E
001C001C001C001C0038003800380038007000700070007000E400E400E400E40068003800091D
7C9C0B>I<3C1E0780266318C04683A0E04703C0E08E0380E08E0380E00E0380E00E0380E01C07
01C01C0701C01C0701C01C070380380E0388380E0388380E0708380E0710701C0320300C01C01D
127C9122>I<3C3C002646004687004707008E07008E07000E07000E07001C0E001C0E001C0E00
1C1C00381C40381C40383840383880701900300E0012127C9117>I<01E007180C0C180C380C30
0E700E700EE01CE01CE01CE018E038E030E06060C031801E000F127B9115>I<07870004D98008
E0C008E0C011C0E011C0E001C0E001C0E00381C00381C00381C003818007038007030007070007
06000E8C000E70000E00000E00001C00001C00001C00001C00003C0000FF8000131A7F9115>I<
3C3C26C2468747078E068E000E000E001C001C001C001C0038003800380038007000300010127C
9112>114 D<01F006080C080C1C18181C001F001FC00FF007F0007800386030E030C030806060
C01F000E127D9111>I<00C001C001C001C00380038003800380FFE00700070007000E000E000E
000E001C001C001C001C00384038403840388019000E000B1A7D990E>I<1E0300270700470700
470700870E00870E000E0E000E0E001C1C001C1C001C1C001C1C00383880383880183880183900
1C5900078E0011127C9116>I<1E01832703874703874703838707018707010E07010E07011C0E
021C0E021C0E021C0E04180C04181C04181C081C1C100C263007C3C018127C911C>119
D<070E0019910010E38020E38041C30041C00001C00001C0000380000380000380000380000702
00670200E70400CB04008B080070F00011127D9113>I<1E03270747074707870E870E0E0E0E0E
1C1C1C1C1C1C1C1C38383838183818381C7007F00070007000E0E0C0E1C0818047003C00101A7C
9114>I E /Fi 91 127 df<60F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0600000000060F0F0600419
779816>33 D<E038F078F078F078F078F078F078F078E038E03860300D0B7C9816>I<00C00001
C00001C00001C00007F0001FFC003FFE007DCF0071C780E1C380E1C780E1C780F1C30079C0003F
C0001FF00007FC0001FE0001CF0001C70061C380F1C380F1C380E1C38071C70079DF003FFE001F
F80007E00001C00001C00000C00011207E9C16>36 D<03800007E0000FE0001E70001C70001C70
001C70001C77E01CE7E01DE7E00FC7000F8E000F0E001E0E003F1C007F1C00739C00E3F800E1F8
00E0F1C0E0F1C071F9C07FFFC03F9F801E070013197F9816>38 D<30787C3C1C1C1C1C3878F0E0
40060D789816>I<00E001E0038007000E001C001C0038003800700070007000E000E000E000E0
00E000E000E000E000E000700070007000380038001C001C000E000700038001E000E00B217A9C
16>I<C000E000700038001C000E000E000700070003800380038001C001C001C001C001C001C0
01C001C001C0038003800380070007000E000E001C0038007000E000C0000A217B9C16>I<01C0
0001C00001C00001C00071C700F9CF807FFF001FFC0007F00007F0001FFC007FFF00F9CF8071C7
0001C00001C00001C00001C00011127E9516>I<01C00001C00001C00001C00001C00001C00001
C00001C000FFFF80FFFF80FFFF8001C00001C00001C00001C00001C00001C00001C00001C00011
137E9516>I<387C7E7E3E0E1E1C78F060070B798416>I<FFFF80FFFF80FFFF8011037E8D16>I<
70F8F8F8700505788416>I<000180000380000380000700000700000E00000E00001C00001C00
00380000380000700000700000E00000E00001C00001C0000380000380000700000700000E0000
0E00001C00001C0000380000380000700000700000E00000E00000C0000011207E9C16>I<03E0
000FF8001FFC001E3C00380E00780F00700700700700E00380E00380E00380E00380E00380E003
80E00380E00380F00780700700700700780F003C1E001E3C001FFC000FF80003E00011197E9816
>I<01800380038007800F807F80FF807380038003800380038003800380038003800380038003
800380038003807FF87FFC7FF80E197C9816>I<07E0001FF8003FFC00783E00E00700F00780F0
0380600380000380000380000700000700000E00001C0000380000700000E00001C0000380000F
00001E03803803807FFF80FFFF807FFF8011197E9816>I<07E0001FF8003FFC00781E00780700
300700000700000700000E00003E0007FC0007F00007FC00001E00000700000300000380000380
600380F00380E00700781E003FFC001FF80007E00011197E9816>I<007C0000FC0000DC0001DC
00039C00039C00071C000F1C000E1C001E1C003C1C00381C00781C00F01C00FFFFE0FFFFE0FFFF
E0001C00001C00001C00001C00001C0001FFC001FFC001FFC013197F9816>I<3FFE003FFE003F
FE003800003800003800003800003800003800003800003BF0003FFC003FFE003C0F0030070000
0380000380600380F00380F00380E00700781E003FFC001FF80007E00011197E9816>I<00F800
03FC0007FE000F07001C0F00380F00780600700000700000E3F800EFFC00FFFE00F80F00F00700
F00380E00380E003807003807003807007803807003C1E001FFC000FF80003E00011197E9816>
I<E00000FFFF80FFFF80FFFF80E00F00E01E00001C0000380000780000700000E00000E00001C0
0001C00001C0000380000380000380000380000700000700000700000700000700000700000700
00111A7E9916>I<07F0001FFC003FFE007C1F00F00780E00380E00380E003807007007C1F001F
FC0007F0001FFC003C1E00700700F00780E00380E00380E00380F007807007007C1F003FFE001F
FC0007F00011197E9816>I<03E0000FF8001FFC003C1E00700E00700700E00700E00780E00380
E00380E00780700780780F803FFF801FFB800FE380000700000700300700780E00781C00707800
3FF0001FE0000F800011197E9816>I<70F8F8F870000000000000000070F8F8F8700512789116>
I<387C7C7C38000000000000000038787C7C3C1C1C3870E0400618799116>I<00018000078000
1F80003E0000F80001F00007C0000F80003E0000FC0000F00000FC00003E00000F800007C00001
F00000F800003E00001F8000078000018011157E9616>I<7FFF00FFFF80FFFF80000000000000
000000000000000000FFFF80FFFF807FFF00110B7E9116>I<C00000F00000FC00003E00000F80
0007C00001F00000F800003E00001F80000780001F80003E0000F80001F00007C0000F80003E00
00FC0000F00000C0000011157E9616>I<0FE03FF87FFCF01EF00EF00E601E003C007800F001C0
038003800380038003800300000000000000000003000780078003000F197D9816>I<00F80003
FC0007FE000F07001C3F80387F8078FF8071C3C071C3C0E381C0E381C0E381C0E381C0E381C0E3
81C0E381C071C38071C38078FF00387E001C3C000F03C007FFC003FF0000FC0012197E9816>I<
00E00001F00001F00001B00001B00003B80003B80003B800031800071C00071C00071C00071C00
071C000E0E000E0E000FFE000FFE001FFF001C07001C07001C07007F1FC0FF1FE07F1FC013197F
9816>I<7FF800FFFE007FFF001C0F001C07801C03801C03801C03801C07801C07001FFF001FFE
001FFE001C1F001C03801C03C01C01C01C01C01C01C01C01C01C03C01C07807FFF80FFFF007FFC
0012197F9816>I<01F18007FB800FFF801F0F803C0780380380700380700380F00000E00000E0
0000E00000E00000E00000E00000E00000F000007003807003803803803C07001F0F000FFE0007
FC0001F00011197E9816>I<7FF800FFFE007FFF001C0F001C07801C03C01C01C01C01C01C01E0
1C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01C01C03C01C07801C0F80
7FFF00FFFE007FF8001319809816>I<7FFFC0FFFFC07FFFC01C01C01C01C01C01C01C01C01C00
001C00001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C00001C00E01C00E01C00E01C00
E01C00E07FFFE0FFFFE07FFFE013197F9816>I<FFFFE0FFFFE0FFFFE01C00E01C00E01C00E01C
00E01C00001C00001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C00001C00001C00001C
00001C00001C0000FF8000FFC000FF800013197F9816>I<03E30007FF000FFF001E1F003C0F00
380700700700700700F00000E00000E00000E00000E00000E03F80E07FC0E03F80F00700700700
700700380F003C0F001E1F000FFF0007F70003E70012197E9816>I<7F1FC0FFBFE07F1FC01C07
001C07001C07001C07001C07001C07001C07001FFF001FFF001FFF001C07001C07001C07001C07
001C07001C07001C07001C07001C07007F1FC0FFBFE07F1FC013197F9816>I<FFFEFFFEFFFE03
80038003800380038003800380038003800380038003800380038003800380038003800380FFFE
FFFEFFFE0F197D9816>I<07FE07FF07FE00380038003800380038003800380038003800380038
003800380038003800386038F038F0707FF07FE01F8010197D9816>I<7F0FE0FF8FF07F0FE01C
07801C0F001C0E001C1C001C3C001C78001CF0001CE0001DF0001FF0001FF8001F38001E1C001C
1C001C0E001C0E001C07001C07001C03807F07E0FF8FF07F07E01419809816>I<FFC000FFC000
FFC0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0000
1C00001C00001C00401C00E01C00E01C00E01C00E0FFFFE0FFFFE0FFFFE013197F9816>I<FC07
E0FE0FE0FE0FE03A0B803B1B803B1B803B1B803B1B803B1B803BBB8039B38039B38039B38039B3
8039F38038E38038E380380380380380380380380380380380FE0FE0FE0FE0FE0FE013197F9816
>I<7E1FC0FF3FE07F1FC01D07001D87001D87001D87001DC7001DC7001CC7001CC7001CE7001C
E7001CE7001C67001C67001C77001C77001C37001C37001C37001C17007F1F00FF9F007F0F0013
197F9816>I<1FFC003FFE007FFF00780F00F00780E00380E00380E00380E00380E00380E00380
E00380E00380E00380E00380E00380E00380E00380E00380F00780F00780780F007FFF003FFE00
1FFC0011197E9816>I<7FF800FFFE007FFF001C0F801C03801C03C01C01C01C01C01C01C01C03
C01C03801C0F801FFF001FFE001FF8001C00001C00001C00001C00001C00001C00001C00007F00
00FF80007F000012197F9816>I<1FFC003FFE007FFF00780F00F00780E00380E00380E00380E0
0380E00380E00380E00380E00380E00380E00380E00380E00380E00380E0E380E1E380F0F78078
7F007FFF003FFE001FFC00001C00001E00000E00000F00000700000700111F7E9816>I<7FE000
FFF8007FFC001C1E001C0F001C07001C07001C07001C07001C0F001C1E001FFC001FF8001FFC00
1C1C001C0E001C0E001C0E001C0E001C0E201C0E701C0E707F07E0FF87E07F03C014197F9816>
I<07E3001FFF003FFF00781F00F00700E00700E00700E00000F000007800003F80001FF00007FC
0000FE00000F00000700000380000380600380E00380E00700F80F00FFFE00FFFC00C7F0001119
7E9816>I<7FFFE0FFFFE0FFFFE0E0E0E0E0E0E0E0E0E0E0E0E000E00000E00000E00000E00000
E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00007FC000FFE0007
FC0013197F9816>I<7F07F0FF8FF87F07F01C01C01C01C01C01C01C01C01C01C01C01C01C01C0
1C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C00E03800E038007070007FF00
03FE0000F8001519809816>I<FE0FE0FF1FE0FE0FE03803801C07001C07001C07001C07000E0E
000E0E000E0E000E0E00060C00071C00071C00071C00071C0003180003B80003B80003B80001B0
0001F00001F00000E00013197F9816>I<FC07E0FE0FE0FC07E07001C07001C07001C030018038
038038038038038038E38039F38039F38039B38019B30019B30019B30019B30019B30019B30019
13001B1B000F1E000F1E000E0E0013197F9816>I<7F1F807F3F807F1F800E1E000E1C00073C00
07380003B80003F00001F00001E00000E00001E00001F00003F00003B80007B800071C00071C00
0E0E000E0E001C07007F1FC0FF1FE07F1FC013197F9816>I<FE0FE0FF1FE0FE0FE01C07001C07
000E0E000E0E00071C00071C00071C0003B80003B80001F00001F00000E00000E00000E00000E0
0000E00000E00000E00000E00003F80007FC0003F80013197F9816>I<7FFF80FFFF80FFFF80E0
0700E00F00E01E00E01C00003C0000780000700000F00001E00001C00003C0000780000700000F
00001E03801C03803C0380780380700380FFFF80FFFF80FFFF8011197E9816>I<FFF0FFF0FFF0
E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
00E000E000E000E000E000E000FFF0FFF0FFF00C20789C16>I<C00000E00000E0000070000070
00003800003800001C00001C00000E00000E000007000007000003800003800001C00001C00000
E00000E000007000007000003800003800001C00001C00000E00000E0000070000070000038000
038000018011207E9C16>I<FFF0FFF0FFF0007000700070007000700070007000700070007000
70007000700070007000700070007000700070007000700070007000700070FFF0FFF0FFF00C20
7F9C16>I<03000F803FE0FDF8F07840100D067C9816>I<FFFF80FFFF80FFFF8011037E7E16>I<
081C3C7870E0E0E0E0F0F87830060D789B16>I<1FE0003FF0007FF800783C00300E00000E0000
0E0003FE001FFE003E0E00700E00E00E00E00E00E00E00783E007FFFE03FE7E00F83E013127E91
16>I<7E0000FE00007E00000E00000E00000E00000E00000E3E000EFF000FFF800F83C00F00E0
0E00E00E00700E00700E00700E00700E00700E00700E00E00F01E00F83C00FFF800EFF00063C00
1419809816>I<03F80FFC1FFE3C1E780C7000E000E000E000E000E000F000700778073E0E1FFC
0FF803F010127D9116>I<003F00007F00003F0000070000070000070000070003C7000FF7001F
FF003C1F00780F00700700E00700E00700E00700E00700E00700E00700700F00700F003C1F001F
FFE00FE7F007C7E014197F9816>I<03E00FF81FFC3C1E780E7007E007FFFFFFFFFFFFE000E000
700778073C0F1FFE0FFC03F010127D9116>I<001F00007F8000FF8001E78001C30001C00001C0
007FFF00FFFF00FFFF0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0
0001C00001C0003FFE007FFF003FFE0011197F9816>I<03E3C007F7E00FFFE01C1CC0380E0038
0E00380E00380E00380E001C1C000FF8001FF0001BE0003800001800001FFC001FFF003FFF8078
03C0E000E0E000E0E000E0E000E07001C07C07C03FFF800FFE0003F800131C7F9116>I<7E0000
FE00007E00000E00000E00000E00000E00000E3C000EFE000FFF000F87800F03800E03800E0380
0E03800E03800E03800E03800E03800E03800E03800E03807FC7F0FFE7F87FC7F01519809816>
I<018003C003C0018000000000000000007FC07FC07FC001C001C001C001C001C001C001C001C0
01C001C001C001C07FFFFFFF7FFF101A7D9916>I<003000780078003000000000000000001FF8
1FF81FF80038003800380038003800380038003800380038003800380038003800380038003800
3800386070F0F0FFE07FC03F800D237E9916>I<7E0000FE00007E00000E00000E00000E00000E
00000E7FE00E7FE00E7FE00E0F000E1E000E3C000E78000EF0000FF0000FF8000FBC000F1E000E
0E000E07000E07807F87F0FFCFF07F87F01419809816>I<FFC000FFC000FFC00001C00001C000
01C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
01C00001C00001C00001C000FFFF80FFFF80FFFF8011197E9816>I<F9C380FFEFC0FFFFE03C78
E03C78E03870E03870E03870E03870E03870E03870E03870E03870E03870E03870E0FE7CF8FE7C
F8FE3C781512809116>I<7E3C00FEFE007FFF000F87800F03800E03800E03800E03800E03800E
03800E03800E03800E03800E03800E03807FC7F0FFE7F87FC7F01512809116>I<03E0000FF800
1FFC003C1E00780F00700700E00380E00380E00380E00380E00380F00780700700780F003C1E00
1FFC000FF80003E00011127E9116>I<7E3E00FEFF007FFF800F83C00F00E00E00E00E00700E00
700E00700E00700E00700E00700E00E00F01E00F83C00FFF800EFF000E3C000E00000E00000E00
000E00000E00000E00007FC000FFE0007FC000141B809116>I<07C7000FE7001FF7003C1F0070
0F00700F00E00700E00700E00700E00700E00700E00700700F00700F003C3F003FF7001FE70007
C700000700000700000700000700000700000700003FE0007FF0003FE0141B7E9116>I<FF0FC0
FF3FE0FF7FE007F04007C000078000078000070000070000070000070000070000070000070000
070000FFFC00FFFC00FFFC0013127F9116>I<0FEC3FFC7FFCF03CE01CE01C70007F801FF007F8
003C600EE00EF00EF81EFFFCFFF8C7E00F127D9116>I<0300000700000700000700000700007F
FF00FFFF00FFFF0007000007000007000007000007000007000007000007010007038007038007
038007870003FE0001FC0000F80011177F9616>I<7E1F80FE3F807E1F800E03800E03800E0380
0E03800E03800E03800E03800E03800E03800E03800E03800E0F800FFFF007FBF803E3F0151280
9116>I<7F1FC0FF1FE07F1FC01C07001E0F000E0E000E0E000E0E00071C00071C00071C00071C
0003B80003B80003B80001F00001F00000E00013127F9116>I<FF1FE0FFBFE0FF1FE038038038
038038038038038038E38019F30019F30019B3001DB7001DB7001DB7001DB7000F1E000F1E000F
1E0013127F9116>I<7F1FC07F3FC07F1FC00F1C00073C0003B80003F00001F00000E00001E000
01F00003B800073C00071C000E0E007F1FC0FF3FE07F1FC013127F9116>I<7F1FC0FF9FE07F1F
C01C07000E07000E0E000E0E00070E00071C00071C00039C00039C0003980001B80001B80000F0
0000F00000F00000E00000E00000E00001C00079C0007BC0007F80003F00003C0000131B7F9116
>I<001F80007F8000FF8001E00001C00001C00001C00001C00001C00001C00001C00001C00001
C00003C0007F8000FF0000FF00007F800003C00001C00001C00001C00001C00001C00001C00001
C00001C00001C00001E00000FF80007F80001F8011207E9C16>123 D<E0E0E0E0E0E0E0E0E0E0
E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E00320779C16>I<7C0000FF0000FF800003
C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001E00000FF00007F8000
7F8000FF0001E00001C00001C00001C00001C00001C00001C00001C00001C00001C00003C000FF
8000FF00007C000011207E9C16>I<1C303F78FFF8F7E061C00D057C9816>I
E /Fj 8 111 df<60F0F06004047C830C>58 D<0000038000000F0000003C000000F0000003C0
00000F0000003C000000F0000003C000000F0000003C000000F0000000F00000003C0000000F00
000003C0000000F00000003C0000000F00000003C0000000F00000003C0000000F000000038019
187D9520>60 D<E0000000780000001E0000000780000001E0000000780000001E000000078000
0001E0000000780000001E00000007800000078000001E00000078000001E00000078000001E00
000078000001E00000078000001E00000078000000E000000019187D9520>62
D<00000C0000000C0000001C0000001C0000003C0000007C0000005C0000009C0000008E000001
0E0000010E0000020E0000040E0000040E0000080E0000080E0000100E0000200E00003FFE0000
400700004007000080070001000700010007000200070002000700060007001E000700FF807FF0
1C1D7F9C1F>65 D<01FFFF00003C01C0003800E0003800F0003800700038007000700070007000
F0007000F0007001E000E003C000E0078000E01F0000FFFC0001C00F0001C0078001C003C001C0
03C0038003C0038003C0038003C0038003C0070007800700070007000E0007001C000E007800FF
FFC0001C1C7E9B1F>I<01FFC0FF80001E003C00001E003000000E002000000F00400000070080
000007010000000782000000038400000003C800000001D000000001F000000000E000000000E0
00000000F00000000170000000027000000004380000000838000000103C000000201C00000040
1E000000800E000001800E000003000F000006000700001E000F8000FF803FF000211C7F9B22>
88 D<FFE007F80F0001E00F0001800700010007000200078004000380080003C0100001C03000
01C0200001E0400000E0800000F100000072000000760000007C00000038000000380000007000
0000700000007000000070000000E0000000E0000000E0000000E0000001C000001FFC00001D1C
7F9B18>I<381F004E61804681C04701C08F01C08E01C00E01C00E01C01C03801C03801C03801C
0700380710380710380E10380E2070064030038014127E9119>110 D E
/Fk 71 123 df<003FE3F801F03F1C03C03E3E07C07C3E0F807C3E0F807C1C0F807C000F807C00
0F807C000F807C000F807C00FFFFFFC0FFFFFFC00F807C000F807C000F807C000F807C000F807C
000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C007FE1
FFC07FE1FFC01F1D809C1C>11 D<003FC00001F0300003C0380007C07C000F807C000F807C000F
8038000F8000000F8000000F8000000F800000FFFFFC00FFFFFC000F807C000F807C000F807C00
0F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C
000F807C007FE1FF807FE1FF80191D809C1B>I<003FC1FE0001F03F818003C03E01C007C07E03
E00F807C03E00F807C03E00F807C01C00F807C00000F807C00000F807C00000F807C0000FFFFFF
FFE0FFFFFFFFE00F807C03E00F807C03E00F807C03E00F807C03E00F807C03E00F807C03E00F80
7C03E00F807C03E00F807C03E00F807C03E00F807C03E00F807C03E00F807C03E00F807C03E07F
E1FF0FFC7FE1FF0FFC261D809C28>14 D<00038000000380000003800000038000000380000003
80000003800000038000000380000003800000038000000380000003800000038000FFFFFFFCFF
FFFFFCFFFFFFFC0003800000038000000380000003800000038000000380000003800000038000
0003800000038000000380000003800000038000000380001E1F7D9925>43
D<78FCFCFEFE7A0202040408083040070E7D850D>I<FFE0FFE0FFE0FFE00B047F8A10>I<78FCFC
FCFC7806067D850D>I<03F8000F1E001C07003C07803803807803C07803C07803C0F803E0F803
E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E07803C07803C03803
803C07801C07000F1E0003F800131B7E9A18>48 D<00600001E0000FE000FFE000F3E00003E000
03E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E000
03E00003E00003E00003E00003E00003E0007FFF807FFF80111B7D9A18>I<07F8001FFE00383F
80780FC0FC07C0FC07E0FC03E0FC03E07803E00007E00007C00007C0000F80001F00001E000038
0000700000E0000180600300600600600800E01FFFC03FFFC07FFFC0FFFFC0FFFFC0131B7E9A18
>I<03F8001FFE003C1F003C0F807C07C07E07C07C07C03807C0000F80000F80001E00003C0003
F800001E00000F800007C00007C00007E03007E07807E0FC07E0FC07E0FC07C0780F80781F001F
FE0007F800131B7E9A18>I<000180000380000780000F80001F80003F80006F8000CF80008F80
018F80030F80060F800C0F80180F80300F80600F80C00F80FFFFF8FFFFF8000F80000F80000F80
000F80000F80000F8001FFF801FFF8151B7F9A18>I<1801801FFF001FFE001FFC001FF8001FC0
0018000018000018000018000019F8001E0E00180F801007800007C00007E00007E00007E07807
E0F807E0F807E0F807C0F007C0600F80381F001FFE0007F000131B7E9A18>I<007E0003FF0007
81800F03C01E07C03C07C03C0380780000780000F80000F8F800FB0E00FA0780FC0380FC03C0F8
03E0F803E0F803E0F803E07803E07803E07803C03C03C03C07801E0F0007FE0003F800131B7E9A
18>I<6000007FFFE07FFFE07FFFC07FFF807FFF80E00300C00600C00C00C01800003000003000
00600000E00000E00001E00001C00003C00003C00003C00003C00007C00007C00007C00007C000
07C00007C000038000131C7D9B18>I<03F8000FFE001E0F803807803803C07803C07803C07E03
C07F83807FC7003FFE001FFC000FFE0007FF801DFF80387FC0781FE0F007E0F003E0F001E0F001
E0F001E07801C07803803E07801FFE0003F800131B7E9A18>I<03F8000FFE001E0F003C078078
07807803C0F803C0F803C0F803E0F803E0F803E0F803E07807E03807E03C0BE00E1BE003E3E000
03E00003C00003C03807C07C07807C0700780F00383C001FF8000FE000131B7E9A18>I<78FCFC
FCFC7800000000000078FCFCFCFC7806127D910D>I<0FF0303C601EF01FF81FF81F701F003E00
3C007000E001C00180018003000300030003000300000000000000000007800FC00FC00FC00FC0
0780101D7D9C17>63 D<001FE00000E01C0003000300060001800C0000C018000060300FC03020
38601060F0101860F01F18C1E01F0CC1E01F0CC3E01F0CC3E01F0CC3E01F0CC3E01F0CC3E01F0C
C1E01F0CC1E01F0C60F01F0860F01F1820386F10300FC7E0180000000C00000006000000030000
3C00E007F0001FFC001E1D7D9C25>I<00038000000380000007C0000007C0000007C000000FE0
00000FE000001FF000001BF000001BF0000031F8000031F8000061FC000060FC0000E0FE0000C0
7E0000C07E0001803F0001FFFF0003FFFF8003001F8003001F8006000FC006000FC00E000FE00C
0007E0FFC07FFEFFC07FFE1F1C7E9B24>I<FFFFF800FFFFFF000FC01F800FC00FC00FC007C00F
C007E00FC007E00FC007E00FC007E00FC007E00FC007C00FC00F800FC03F000FFFFE000FC00F80
0FC007C00FC007E00FC003E00FC003F00FC003F00FC003F00FC003F00FC003F00FC007E00FC007
E00FC01FC0FFFFFF00FFFFFC001C1C7E9B22>I<001FE02000FFF8E003F80FE007C003E00F8001
E01F0000E03E0000E03E0000607E0000607C000060FC000000FC000000FC000000FC000000FC00
0000FC000000FC000000FC0000007C0000607E0000603E0000603E0000C01F0000C00F80018007
C0030003F80E0000FFFC00001FE0001B1C7D9B22>I<FFFFF800FFFFFF000FC01FC00FC007E00F
C001F00FC001F80FC000F80FC000FC0FC0007C0FC0007C0FC0007E0FC0007E0FC0007E0FC0007E
0FC0007E0FC0007E0FC0007E0FC0007E0FC0007C0FC0007C0FC0007C0FC000F80FC000F80FC001
F00FC007E00FC01FC0FFFFFF00FFFFF8001F1C7E9B25>I<FFFFFF00FFFFFF000FC01F000FC007
000FC003000FC003800FC003800FC181800FC181800FC181800FC180000FC380000FFF80000FFF
80000FC380000FC180000FC180000FC180600FC180600FC000E00FC000C00FC000C00FC001C00F
C001C00FC003C00FC00F80FFFFFF80FFFFFF801B1C7E9B1F>I<FFFFFF00FFFFFF000FC01F000F
C007000FC003000FC003800FC003800FC001800FC181800FC181800FC180000FC180000FC38000
0FFF80000FFF80000FC380000FC180000FC180000FC180000FC180000FC000000FC000000FC000
000FC000000FC000000FC00000FFFF0000FFFF0000191C7E9B1E>I<000FF008007FFE3801FC07
F807E001F80F8000781F0000783F0000383E0000387E0000187C000018FC000000FC000000FC00
0000FC000000FC000000FC000000FC007FFFFC007FFF7C0001F87E0001F83E0001F83F0001F81F
0001F80F8001F807E001F801FC07F8007FFE78000FF818201C7D9B26>I<FFFC3FFFFFFC3FFF0F
C003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F0
0FFFFFF00FFFFFF00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003
F00FC003F00FC003F00FC003F00FC003F0FFFC3FFFFFFC3FFF201C7E9B25>I<FFFFFFFF07E007
E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E0
07E007E007E0FFFFFFFF101C7F9B12>I<07FFF007FFF0001F80001F80001F80001F80001F8000
1F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8030
1F80781F80FC1F80FC1F80FC1F00783E00387C000FF000141C7F9B19>I<FFFC07FFFFFC07FF0F
C000E00FC001C00FC003800FC006000FC00C000FC038000FC070000FC0E0000FC1C0000FC3C000
0FC7E0000FCFE0000FFBF0000FF3F8000FE1F8000FC0FC000FC0FE000FC07E000FC03F000FC01F
800FC01FC00FC00FC00FC007E00FC007F0FFFC3FFFFFFC3FFF201C7E9B25>I<FFFF00FFFF000F
C0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000F
C0000FC0000FC0030FC0030FC0030FC0070FC0070FC0060FC00E0FC01E0FC07EFFFFFEFFFFFE18
1C7E9B1D>I<FFC00003FFFFE00007FF0FE00007F00DF0000DF00DF0000DF00DF0000DF00CF800
19F00CF80019F00C7C0031F00C7C0031F00C3E0061F00C3E0061F00C1F00C1F00C1F00C1F00C1F
00C1F00C0F8181F00C0F8181F00C07C301F00C07C301F00C03E601F00C03E601F00C01FC01F00C
01FC01F00C01FC01F00C00F801F00C00F801F0FFC0701FFFFFC0701FFF281C7E9B2D>I<FFE003
FFFFE003FF0FF000300FF800300DFC00300CFE00300C7E00300C3F00300C1F80300C1FC0300C0F
E0300C07F0300C03F0300C01F8300C01FC300C00FE300C007F300C003F300C001FB00C001FF00C
000FF00C0007F00C0003F00C0001F00C0000F00C0000F0FFC00070FFC00030201C7E9B25>I<00
3FE00001F07C0003C01E000F800F801F0007C01E0003C03E0003E07E0003F07C0001F07C0001F0
FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F87C0001F07E0003
F07E0003F03E0003E03F0007E01F0007C00F800F8003C01E0001F07C00003FE0001D1C7D9B24>
I<FFFFF800FFFFFE000FC03F800FC00F800FC007C00FC007E00FC007E00FC007E00FC007E00FC0
07E00FC007C00FC007C00FC00F800FC03F000FFFFC000FC000000FC000000FC000000FC000000F
C000000FC000000FC000000FC000000FC000000FC000000FC00000FFFC0000FFFC00001B1C7E9B
21>I<FFFFF00000FFFFFE00000FC03F00000FC00F80000FC007C0000FC007E0000FC007E0000F
C007E0000FC007E0000FC007E0000FC007C0000FC00F80000FC03E00000FFFF000000FC07C0000
0FC03E00000FC03F00000FC01F80000FC01F80000FC01F80000FC01F80000FC01F80000FC01F80
000FC01F81800FC01F81800FC00FC180FFFC07C300FFFC01FE00211C7E9B24>82
D<07F8201FFEE03C07E07801E07000E0F000E0F00060F00060F80000FE0000FFE0007FFE003FFF
003FFF800FFFC007FFE0007FE00003F00001F00000F0C000F0C000F0C000E0E000E0F001C0FC03
C0EFFF0083FC00141C7D9B1B>I<7FFFFFE07FFFFFE0781F81E0701F80E0601F8060E01F8070C0
1F8030C01F8030C01F8030C01F8030001F8000001F8000001F8000001F8000001F8000001F8000
001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80
0007FFFE0007FFFE001C1C7E9B21>I<FFFC03FFFFFC03FF0FC000300FC000300FC000300FC000
300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC0
00300FC000300FC000300FC000300FC000300FC0003007C0003007C0006003E000E001F001C000
FC0780007FFE00000FF800201C7E9B25>I<FFFC01FF80FFFC01FF800FC000180007E000300007
E000300007F000700003F000600003F800E00001F800C00001FC00C00000FC01800000FC018000
007E030000007E030000007F070000003F060000003F8E0000001F8C0000001FCC0000000FD800
00000FD800000007F000000007F000000007F000000003E000000003E000000001C000000001C0
0000211C7F9B24>I<FFFC7FFE0FFCFFFC7FFE0FFC0FC007E000C00FC007F000C00FE003F001C0
07E003F0018007E007F8018003F007F8030003F007F8030003F80CFC070001F80CFC060001F81C
FE060001FC187E0E0000FC187E0C0000FC387F0C00007E303F1800007E303F1800007F601FB800
003F601FB000003FE01FF000003FC00FF000001FC00FE000001FC00FE000000F8007C000000F80
07C000000F0003C0000007000380000007000380002E1C7F9B31>I<7FFE1FFE007FFE1FFE0007
F001800003F803800001FC07000000FC06000000FE0C0000007F1C0000003F380000003FB00000
001FE00000000FE00000000FE000000007F000000003F800000007F80000000FFC0000000CFE00
0000187E000000387F000000703F800000601F800000C01FC00001C00FE000018007F000030007
F000FFF03FFF80FFF03FFF80211C7F9B24>I<FEFEFEE0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0
E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0FEFEFE07297C9E0D>91 D<FEFEFE0E0E0E0E0E0E0E
0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EFEFEFE07297F9E0D>93
D<0FF8001C1E003E0F803E07803E07C01C07C00007C0007FC007E7C01F07C03C07C07C07C0F807
C0F807C0F807C0780BC03E13F80FE1F815127F9117>97 D<FF0000FF00001F00001F00001F0000
1F00001F00001F00001F00001F00001F00001F3F801FE1E01F80701F00781F003C1F003C1F003E
1F003E1F003E1F003E1F003E1F003E1F003C1F003C1F00781F80701EC1E01C3F00171D7F9C1B>
I<03FC000E0E001C1F003C1F00781F00780E00F80000F80000F80000F80000F80000F800007800
007801803C01801C03000E0E0003F80011127E9115>I<000FF0000FF00001F00001F00001F000
01F00001F00001F00001F00001F00001F001F9F00F07F01C03F03C01F07801F07801F0F801F0F8
01F0F801F0F801F0F801F0F801F07801F07801F03C01F01C03F00F0FFE03F9FE171D7E9C1B>I<
01FC000F07001C03803C01C07801C07801E0F801E0F801E0FFFFE0F80000F80000F80000780000
7C00603C00601E00C00F038001FC0013127F9116>I<007F0001E38003C7C00787C00F87C00F83
800F80000F80000F80000F80000F8000FFF800FFF8000F80000F80000F80000F80000F80000F80
000F80000F80000F80000F80000F80000F80000F80000F80007FF8007FF800121D809C0F>I<03
F8F00E0F381E0F381C07303C07803C07803C07803C07801C07001E0F000E0E001BF80010000018
00001800001FFF001FFFC00FFFE01FFFF07801F8F00078F00078F000787000707800F01E03C007
FF00151B7F9118>I<FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F0000
1F00001F0FC01F31E01F40F01F80F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F8
1F00F81F00F81F00F81F00F8FFE7FFFFE7FF181D7F9C1B>I<1E003F003F003F003F001E000000
00000000000000000000FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F
001F00FFE0FFE00B1E7F9D0E>I<007800FC00FC00FC00FC007800000000000000000000000003
FC03FC007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C
707CF87CF878F8F070E01F800E26839D0F>I<FF0000FF00001F00001F00001F00001F00001F00
001F00001F00001F00001F00001F0FF81F0FF81F03801F07001F0C001F18001F70001FF8001FFC
001FBC001F3E001F1F001F0F001F0F801F07C01F03E0FFC7FCFFC7FC161D7F9C19>I<FF00FF00
1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F
001F001F001F001F001F00FFE0FFE00B1D7F9C0E>I<FF0FC07E00FF31E18F001F40F207801F80
FC07C01F80FC07C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F
00F807C01F00F807C01F00F807C01F00F807C01F00F807C0FFE7FF3FF8FFE7FF3FF825127F9128
>I<FF0FC0FF31E01F40F01F80F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F
00F81F00F81F00F81F00F8FFE7FFFFE7FF18127F911B>I<01FC000F07801C01C03C01E07800F0
7800F0F800F8F800F8F800F8F800F8F800F8F800F87800F07800F03C01E01E03C00F078001FC00
15127F9118>I<FF3F80FFE1E01F80F01F00781F007C1F003C1F003E1F003E1F003E1F003E1F00
3E1F003E1F003C1F007C1F00781F80F01FC1E01F3F001F00001F00001F00001F00001F00001F00
00FFE000FFE000171A7F911B>I<03F0600F0CE01E07E03C03E07C03E07803E0F803E0F803E0F8
03E0F803E0F803E0F803E07803E07C03E03C03E01C07E00E0FE003F3E00003E00003E00003E000
03E00003E00003E0001FFC001FFC161A7E9119>I<FE3E00FE47001E8F801E8F801E8F801F0700
1F00001F00001F00001F00001F00001F00001F00001F00001F00001F0000FFF000FFF00011127F
9114>I<1FD830786018E018E018F000FF807FE07FF01FF807FC007CC01CC01CE01CE018F830CF
C00E127E9113>I<0300030003000300070007000F000F003FFCFFFC1F001F001F001F001F001F
001F001F001F001F0C1F0C1F0C1F0C0F08079803F00E1A7F9913>I<FF07F8FF07F81F00F81F00
F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F01F80F01F80786
FF01F8FF18127F911B>I<FFC1FCFFC1FC1F00601F80E00F80C00FC0C007C18007C18003E30003
E30001F60001F60001FE0000FC0000FC0000780000780000300016127F9119>I<FF8FF8FEFF8F
F8FE1F03E0301F03E0301F83E0700F83F0600F86F06007C6F0C007CEF8C007EC79C003EC7D8003
F83D8001F83F0001F83F0001F01F0000F01E0000E00E0000E00E001F127F9122>I<FFC7FCFFC7
FC1F81800F838007C70003EE0001FC0001F80000F800007C0000FE0001DF00039F00070F800607
C00C03E0FF07FCFF07FC16127F9119>I<FFC1FCFFC1FC1F00601F80E00F80C00FC0C007C18007
C18003E30003E30001F70001F60000FE0000FC0000FC0000780000780000300000300000700070
6000F86000F8C000F980007300003E0000161A7F9119>I<3FFF803C1F00303F00303E00607C00
60FC0060F80001F00003F00007E00007C1800F81801F81801F03803E03007E07007C0F00FFFF00
11127F9115>I E /Fl 36 121 df<00000007FF800000000001FFFFF0000000000FFFFFFC0000
00003FFFFFFE00000000FFFC00FF00000001FFC0003F80000007FF00007FC000000FFE0001FFC0
00001FFC0001FFE000001FF80003FFE000003FF00003FFE000003FF00003FFE000007FE00003FF
E000007FE00003FFE000007FE00003FFE000007FE00003FFE000007FE00001FFC000007FE00000
FF8000007FE000003E0000007FE00000000000007FE00000000000007FE00000000000007FE000
00000000007FE00000000000007FE00000000000007FE0003FFFF000FFFFFFFFFFFFF000FFFFFF
FFFFFFF000FFFFFFFFFFFFF000FFFFFFFFFFFFF000FFFFFFFFFFFFF000007FF00000FFF000007F
F000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF00000
7FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000
007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0
00007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007F
F000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF00000
7FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000
007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0
00007FF0003FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFF
FFE03FFFFFE03B487EC742>12 D<0000FFE00000000FFFFE0000003FFFFFC00000FFFFFFF00003
FFFFFFFC0007FC01FFFE000FE0007FFF001FC0001FFF803F80000FFFC03FE00007FFE07FF80007
FFE07FFC0003FFF0FFFC0003FFF0FFFE0001FFF8FFFE0001FFF8FFFE0001FFF8FFFE0000FFFCFF
FE0000FFFC7FFC0000FFFC7FFC0000FFFC3FF80000FFFC1FF00000FFFC0FE00000FFFC00000001
FFFC00000001FFF800000001FFF800000001FFF000000003FFF000000003FFE000000003FFE000
000007FFC000000007FF800000000FFF800000001FFF000000001FFE000000003FFC000000007F
F8000000007FE000000000FFC000000001FF8000000003FF0000000007FC000000000FF8000000
001FF0000000003FC0000000007F80007C0000FF00007C0000FE00007C0001FC00007C0003F000
00F80007E00000F8000FC00000F8001F800000F8003F000001F8007C000003F800FFFFFFFFF801
FFFFFFFFF003FFFFFFFFF007FFFFFFFFF00FFFFFFFFFF01FFFFFFFFFF03FFFFFFFFFF07FFFFFFF
FFF07FFFFFFFFFF0FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE02E447AC33B>50
D<0000000003E000000000000000000007F000000000000000000007F00000000000000000000F
F80000000000000000000FF80000000000000000000FF80000000000000000001FFC0000000000
000000001FFC0000000000000000003FFE0000000000000000003FFE0000000000000000007FFF
0000000000000000007FFF0000000000000000007FFF000000000000000000FFFF800000000000
000000FFFF800000000000000001FFFFC00000000000000001FFFFC00000000000000001FFFFC0
0000000000000003FFFFE00000000000000003EFFFE00000000000000007EFFFF0000000000000
0007CFFFF00000000000000007C7FFF0000000000000000FC7FFF8000000000000000F83FFF800
0000000000001F83FFFC000000000000001F03FFFC000000000000001F01FFFC00000000000000
3F01FFFE000000000000003E00FFFE000000000000007E00FFFF000000000000007C007FFF0000
0000000000FC007FFF80000000000000F8007FFF80000000000000F8003FFF80000000000001F8
003FFFC0000000000001F0001FFFC0000000000003F0001FFFE0000000000003E0001FFFE00000
00000003E0000FFFE0000000000007E0000FFFF0000000000007C00007FFF000000000000FC000
07FFF800000000000F800007FFF800000000000F800003FFF800000000001F800003FFFC000000
00001F000001FFFC00000000003FFFFFFFFFFE00000000003FFFFFFFFFFE00000000007FFFFFFF
FFFF00000000007FFFFFFFFFFF00000000007FFFFFFFFFFF0000000000FC0000007FFF80000000
00F80000003FFF8000000001F80000003FFFC000000001F00000003FFFC000000001F00000001F
FFC000000003F00000001FFFE000000003E00000000FFFE000000007E00000000FFFF000000007
C00000000FFFF000000007C000000007FFF00000000FC000000007FFF80000000F8000000003FF
F80000001F8000000003FFFC0000001F0000000003FFFC0000007FC000000001FFFC0000FFFFFF
C00007FFFFFFFF80FFFFFFC00007FFFFFFFF80FFFFFFC00007FFFFFFFF80FFFFFFC00007FFFFFF
FF80FFFFFFC00007FFFFFFFF8051487CC75A>65 D<000000003FFE00000E0000000FFFFFC0001E
0000007FFFFFF8003E000003FFFFFFFE00FE00000FFFFFFFFF81FE00003FFFF800FFC3FE0000FF
FF80000FF7FE0001FFFC000003FFFE0007FFF0000001FFFE000FFFC00000007FFE001FFF800000
003FFE003FFF000000001FFE007FFE000000000FFE00FFFC0000000007FE01FFF80000000007FE
03FFF00000000003FE03FFF00000000001FE07FFE00000000001FE07FFE00000000000FE0FFFC0
0000000000FE0FFFC000000000007E1FFFC000000000007E1FFF8000000000007E3FFF80000000
00007E3FFF8000000000003E3FFF8000000000003E7FFF8000000000003E7FFF0000000000003E
7FFF000000000000007FFF00000000000000FFFF00000000000000FFFF00000000000000FFFF00
000000000000FFFF00000000000000FFFF00000000000000FFFF00000000000000FFFF00000000
000000FFFF00000000000000FFFF00000000000000FFFF00000000000000FFFF00000000000000
FFFF00000000000000FFFF000000000000007FFF000000000000007FFF000000000000007FFF00
0000000000007FFF8000000000003E3FFF8000000000003E3FFF8000000000003E3FFF80000000
00003E1FFF8000000000003E1FFFC000000000003E0FFFC000000000007C0FFFC000000000007C
07FFE000000000007C07FFE00000000000F803FFF00000000000F803FFF00000000001F801FFF8
0000000001F000FFFC0000000003E0007FFE0000000007E0003FFF000000000FC0001FFF800000
001F80000FFFC00000003F000007FFF0000000FE000001FFFC000001FC000000FFFF80000FF800
00003FFFF8007FF00000000FFFFFFFFFC000000003FFFFFFFF00000000007FFFFFFC0000000000
0FFFFFE00000000000003FFE000000474979C756>67 D<FFFFFFFFFFFFC0000000FFFFFFFFFFFF
FE000000FFFFFFFFFFFFFFC00000FFFFFFFFFFFFFFF00000FFFFFFFFFFFFFFFC0000001FFF8000
07FFFF0000001FFF8000007FFF8000001FFF8000000FFFE000001FFF80000007FFF000001FFF80
000001FFF800001FFF80000000FFFC00001FFF800000007FFE00001FFF800000003FFF00001FFF
800000001FFF00001FFF800000000FFF80001FFF800000000FFFC0001FFF8000000007FFC0001F
FF8000000007FFE0001FFF8000000003FFE0001FFF8000000003FFF0001FFF8000000003FFF000
1FFF8000000003FFF8001FFF8000000001FFF8001FFF8000000001FFF8001FFF8000000001FFFC
001FFF8000000001FFFC001FFF8000000001FFFC001FFF8000000001FFFC001FFF8000000001FF
FC001FFF8000000001FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF8000000000
FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF80000000
00FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF800000
0000FFFE001FFF8000000000FFFE001FFF8000000001FFFE001FFF8000000001FFFC001FFF8000
000001FFFC001FFF8000000001FFFC001FFF8000000001FFFC001FFF8000000001FFF8001FFF80
00000001FFF8001FFF8000000001FFF8001FFF8000000003FFF0001FFF8000000003FFF0001FFF
8000000003FFF0001FFF8000000007FFE0001FFF8000000007FFE0001FFF800000000FFFC0001F
FF800000000FFF80001FFF800000001FFF80001FFF800000003FFF00001FFF800000003FFE0000
1FFF800000007FFC00001FFF80000001FFF800001FFF80000003FFF000001FFF8000000FFFE000
001FFF8000007FFFC000001FFF800003FFFF0000FFFFFFFFFFFFFFFE0000FFFFFFFFFFFFFFF800
00FFFFFFFFFFFFFFC00000FFFFFFFFFFFFFE000000FFFFFFFFFFFFC00000004F477CC65B>I<FF
FFFFFFFFFFFFFC00FFFFFFFFFFFFFFFC00FFFFFFFFFFFFFFFC00FFFFFFFFFFFFFFFC00FFFFFFFF
FFFFFFFE00001FFFC00003FFFE00001FFFC000003FFE00001FFFC000000FFE00001FFFC0000003
FE00001FFFC0000001FE00001FFFC0000000FE00001FFFC0000000FE00001FFFC00000007E0000
1FFFC00000007F00001FFFC00000003F00001FFFC00000003F00001FFFC00000001F00001FFFC0
0000001F00001FFFC00000001F00001FFFC00000001F00001FFFC0007C001F00001FFFC0007C00
0F80001FFFC0007C000F80001FFFC0007C000F80001FFFC0007C000F80001FFFC0007C00000000
1FFFC000FC000000001FFFC000FC000000001FFFC000FC000000001FFFC001FC000000001FFFC0
03FC000000001FFFC01FFC000000001FFFFFFFFC000000001FFFFFFFFC000000001FFFFFFFFC00
0000001FFFFFFFFC000000001FFFFFFFFC000000001FFFC01FFC000000001FFFC003FC00000000
1FFFC001FC000000001FFFC000FC000000001FFFC000FC000000001FFFC000FC000000001FFFC0
007C000000001FFFC0007C000000001FFFC0007C000000001FFFC0007C000000001FFFC0007C00
0000001FFFC0007C000000001FFFC00000000000001FFFC00000000000001FFFC0000000000000
1FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0
0000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0000000
0000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000FF
FFFFFFFF00000000FFFFFFFFFF00000000FFFFFFFFFF00000000FFFFFFFFFF00000000FFFFFFFF
FF0000000041467CC54B>70 D<000000003FFE00000E000000000FFFFFC0001E000000007FFFFF
F8003E00000003FFFFFFFE00FE0000000FFFFFFFFF81FE0000003FFFF800FFC3FE000000FFFF80
000FF7FE000001FFFC000003FFFE000007FFF0000001FFFE00000FFFC00000007FFE00001FFF80
0000003FFE00003FFF000000001FFE00007FFE000000000FFE0000FFFC0000000007FE0001FFF8
0000000007FE0003FFF00000000003FE0003FFF00000000001FE0007FFE00000000001FE0007FF
E00000000000FE000FFFC00000000000FE000FFFC000000000007E001FFFC000000000007E001F
FF8000000000007E003FFF8000000000007E003FFF8000000000003E003FFF8000000000003E00
7FFF8000000000003E007FFF0000000000003E007FFF00000000000000007FFF00000000000000
00FFFF0000000000000000FFFF0000000000000000FFFF0000000000000000FFFF000000000000
0000FFFF0000000000000000FFFF0000000000000000FFFF0000000000000000FFFF0000000000
000000FFFF0000000000000000FFFF0000000000000000FFFF0000000000000000FFFF00000000
00000000FFFF0000007FFFFFFFFE7FFF0000007FFFFFFFFE7FFF0000007FFFFFFFFE7FFF800000
7FFFFFFFFE7FFF8000007FFFFFFFFE3FFF8000000000FFFE003FFF8000000000FFFE003FFF8000
000000FFFE001FFF8000000000FFFE001FFFC000000000FFFE000FFFC000000000FFFE000FFFC0
00000000FFFE0007FFE000000000FFFE0007FFE000000000FFFE0003FFF000000000FFFE0003FF
F800000000FFFE0001FFF800000000FFFE0000FFFC00000000FFFE00007FFE00000000FFFE0000
3FFF00000000FFFE00001FFF80000000FFFE00000FFFE0000001FFFE000007FFF0000003FFFE00
0001FFFC000007FFFE000000FFFF80001FFFFE0000003FFFFC00FFC7FE0000000FFFFFFFFF83FE
00000003FFFFFFFE00FE000000007FFFFFF8003E000000000FFFFFE0000E00000000003FFE0000
00004F4979C75D>I<FFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFE000FFFE000
000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE0
00000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFF
E000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000F
FFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE00000
0FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000
000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE0
00000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFF
E000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000FFFFFFFFFEFFFFFFFFFEFFFF
FFFFFEFFFFFFFFFEFFFFFFFFFE27477DC62D>73 D<FFFFFFFFFF000000FFFFFFFFFF000000FFFF
FFFFFF000000FFFFFFFFFF000000FFFFFFFFFF000000001FFFC000000000001FFFC00000000000
1FFFC000000000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC000000000
001FFFC000000000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC0000000
00001FFFC000000000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC00000
0000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC000
000000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC0
00000000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC000000000001FFF
C000000000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC000000000001F
FFC000000000001FFFC000000000001FFFC0000000F8001FFFC0000000F8001FFFC0000000F800
1FFFC0000000F8001FFFC0000001F0001FFFC0000001F0001FFFC0000001F0001FFFC0000001F0
001FFFC0000001F0001FFFC0000003F0001FFFC0000003F0001FFFC0000003F0001FFFC0000007
F0001FFFC0000007F0001FFFC000000FE0001FFFC000001FE0001FFFC000001FE0001FFFC00000
3FE0001FFFC000007FE0001FFFC00000FFE0001FFFC00003FFE0001FFFC0000FFFE0001FFFC000
7FFFE0FFFFFFFFFFFFFFC0FFFFFFFFFFFFFFC0FFFFFFFFFFFFFFC0FFFFFFFFFFFFFFC0FFFFFFFF
FFFFFFC03D477CC647>76 D<FFFFFFE0000000000003FFFFFFFFFFFFF0000000000007FFFFFFFF
FFFFF0000000000007FFFFFFFFFFFFF800000000000FFFFFFFFFFFFFF800000000000FFFFFFF00
1FFFF800000000000FFFF800001FFFFC00000000001EFFF800001FFFFC00000000001EFFF80000
1FBFFE00000000003CFFF800001FBFFE00000000003CFFF800001F9FFF000000000078FFF80000
1F9FFF000000000078FFF800001F8FFF8000000000F0FFF800001F8FFF8000000000F0FFF80000
1F87FFC000000001E0FFF800001F87FFC000000001E0FFF800001F87FFC000000001E0FFF80000
1F83FFE000000003C0FFF800001F83FFE000000003C0FFF800001F81FFF00000000780FFF80000
1F81FFF00000000780FFF800001F80FFF80000000F00FFF800001F80FFF80000000F00FFF80000
1F807FFC0000001E00FFF800001F807FFC0000001E00FFF800001F807FFC0000001E00FFF80000
1F803FFE0000003C00FFF800001F803FFE0000003C00FFF800001F801FFF0000007800FFF80000
1F801FFF0000007800FFF800001F800FFF800000F000FFF800001F800FFF800000F000FFF80000
1F8007FFC00001E000FFF800001F8007FFC00001E000FFF800001F8003FFE00003C000FFF80000
1F8003FFE00003C000FFF800001F8003FFE00003C000FFF800001F8001FFF000078000FFF80000
1F8001FFF000078000FFF800001F8000FFF8000F0000FFF800001F8000FFF8000F0000FFF80000
1F80007FFC001E0000FFF800001F80007FFC001E0000FFF800001F80003FFE003C0000FFF80000
1F80003FFE003C0000FFF800001F80001FFF00780000FFF800001F80001FFF00780000FFF80000
1F80001FFF00780000FFF800001F80000FFF80F00000FFF800001F80000FFF80F00000FFF80000
1F800007FFC1E00000FFF800001F800007FFC1E00000FFF800001F800003FFE3C00000FFF80000
1F800003FFE3C00000FFF800001F800001FFF7800000FFF800001F800001FFF7800000FFF80000
1F800001FFF7800000FFF800001F800000FFFF000000FFF800001F800000FFFF000000FFF80000
1F8000007FFE000000FFF800001F8000007FFE000000FFF800001F8000003FFC000000FFF80000
1F8000003FFC000000FFF800001F8000001FF8000000FFF800001F8000001FF8000000FFF80000
7FE000000FF0000000FFF800FFFFFFF0000FF00007FFFFFFFFFFFFFFF0000FF00007FFFFFFFFFF
FFFFF00007E00007FFFFFFFFFFFFFFF00007E00007FFFFFFFFFFFFFFF00003C00007FFFFFFFF68
477CC671>I<FFFFFFC0000000FFFFFFF0FFFFFFE0000000FFFFFFF0FFFFFFF0000000FFFFFFF0
FFFFFFF8000000FFFFFFF0FFFFFFFC000000FFFFFFF0001FFFFC000000007FE000001FFFFE0000
00001F8000001FFFFF000000001F8000001FFFFF800000001F8000001FFFFFC00000001F800000
1FBFFFE00000001F8000001F9FFFE00000001F8000001F9FFFF00000001F8000001F8FFFF80000
001F8000001F87FFFC0000001F8000001F83FFFE0000001F8000001F81FFFF0000001F8000001F
80FFFF0000001F8000001F80FFFF8000001F8000001F807FFFC000001F8000001F803FFFE00000
1F8000001F801FFFF000001F8000001F800FFFF800001F8000001F8007FFF800001F8000001F80
07FFFC00001F8000001F8003FFFE00001F8000001F8001FFFF00001F8000001F8000FFFF80001F
8000001F80007FFFC0001F8000001F80003FFFC0001F8000001F80003FFFE0001F8000001F8000
1FFFF0001F8000001F80000FFFF8001F8000001F800007FFFC001F8000001F800003FFFE001F80
00001F800001FFFF001F8000001F800001FFFF001F8000001F800000FFFF801F8000001F800000
7FFFC01F8000001F8000003FFFE01F8000001F8000001FFFF01F8000001F8000000FFFF81F8000
001F8000000FFFF81F8000001F80000007FFFC1F8000001F80000003FFFE1F8000001F80000001
FFFF1F8000001F80000000FFFF9F8000001F800000007FFFDF8000001F800000007FFFDF800000
1F800000003FFFFF8000001F800000001FFFFF8000001F800000000FFFFF8000001F8000000007
FFFF8000001F8000000003FFFF8000001F8000000003FFFF8000001F8000000001FFFF8000001F
8000000000FFFF8000001F80000000007FFF8000001F80000000003FFF8000001F80000000001F
FF8000001F80000000001FFF8000001F80000000000FFF8000001F800000000007FF8000001F80
0000000003FF8000001F800000000001FF8000007FE00000000000FF8000FFFFFFF000000000FF
8000FFFFFFF0000000007F8000FFFFFFF0000000003F8000FFFFFFF0000000001F8000FFFFFFF0
000000000F000054477CC65D>I<FFFFFFFFFFFF800000FFFFFFFFFFFFFC0000FFFFFFFFFFFFFF
0000FFFFFFFFFFFFFFC000FFFFFFFFFFFFFFF000001FFF80000FFFFC00001FFF800001FFFE0000
1FFF8000007FFF00001FFF8000003FFF80001FFF8000001FFFC0001FFF8000000FFFC0001FFF80
00000FFFE0001FFF8000000FFFE0001FFF80000007FFF0001FFF80000007FFF0001FFF80000007
FFF0001FFF80000007FFF8001FFF80000007FFF8001FFF80000007FFF8001FFF80000007FFF800
1FFF80000007FFF8001FFF80000007FFF8001FFF80000007FFF8001FFF80000007FFF8001FFF80
000007FFF0001FFF80000007FFF0001FFF80000007FFF0001FFF8000000FFFE0001FFF8000000F
FFE0001FFF8000000FFFC0001FFF8000001FFF80001FFF8000003FFF80001FFF8000007FFF0000
1FFF800001FFFE00001FFF80000FFFF800001FFFFFFFFFFFF000001FFFFFFFFFFFC000001FFFFF
FFFFFE0000001FFFFFFFFFF00000001FFFC00000000000001FFFC00000000000001FFFC0000000
0000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0000000000000
1FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0
0000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0000000
0000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0000000000000
1FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0
0000000000001FFFC00000000000001FFFC00000000000FFFFFFFFF800000000FFFFFFFFF80000
0000FFFFFFFFF800000000FFFFFFFFF800000000FFFFFFFFF80000000045477CC651>80
D<FFFFFFFFFFFC0000000000FFFFFFFFFFFFF000000000FFFFFFFFFFFFFE00000000FFFFFFFFFF
FFFF80000000FFFFFFFFFFFFFFE0000000001FFF80001FFFF8000000001FFF800001FFFC000000
001FFF8000007FFF000000001FFF8000003FFF800000001FFF8000001FFF800000001FFF800000
0FFFC00000001FFF8000000FFFE00000001FFF8000000FFFE00000001FFF80000007FFF0000000
1FFF80000007FFF00000001FFF80000007FFF80000001FFF80000007FFF80000001FFF80000007
FFF80000001FFF80000007FFF80000001FFF80000007FFF80000001FFF80000007FFF80000001F
FF80000007FFF80000001FFF80000007FFF80000001FFF80000007FFF00000001FFF80000007FF
F00000001FFF8000000FFFE00000001FFF8000000FFFE00000001FFF8000000FFFC00000001FFF
8000001FFF800000001FFF8000003FFF000000001FFF800000FFFE000000001FFF800003FFF800
0000001FFF80001FFFF0000000001FFFFFFFFFFFC0000000001FFFFFFFFFFE00000000001FFFFF
FFFFF800000000001FFFFFFFFFFE00000000001FFF80007FFF80000000001FFF80001FFFC00000
00001FFF800007FFE0000000001FFF800003FFF0000000001FFF800001FFF8000000001FFF8000
01FFFC000000001FFF800000FFFE000000001FFF800000FFFE000000001FFF8000007FFE000000
001FFF8000007FFF000000001FFF8000007FFF000000001FFF8000007FFF000000001FFF800000
7FFF000000001FFF8000007FFF000000001FFF8000007FFF000000001FFF8000007FFF00000000
1FFF8000007FFF800000001FFF8000007FFF800000001FFF8000007FFF800000001FFF8000007F
FF800000001FFF8000007FFF800000001FFF8000007FFF8000E0001FFF8000007FFF8001F0001F
FF8000007FFFC001F0001FFF8000007FFFC001F0001FFF8000003FFFC001F0001FFF8000003FFF
C003F0001FFF8000001FFFE003E0001FFF8000000FFFE007E0FFFFFFFFF00007FFF007C0FFFFFF
FFF00003FFFC1F80FFFFFFFFF00001FFFFFF00FFFFFFFFF000007FFFFE00FFFFFFFFF000001FFF
FC000000000000000000FFF00054487CC659>82 D<FFFFFFFFF80001FFFFFFC0FFFFFFFFF80001
FFFFFFC0FFFFFFFFF80001FFFFFFC0FFFFFFFFF80001FFFFFFC0FFFFFFFFF80001FFFFFFC0001F
FFC000000000FF8000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC000000000
3E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFF
C0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E
0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0
000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E00
00001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC000
0000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000
001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC00000
00003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E000000
1FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000
003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001F
FFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC000000000
3E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFF
C0000000003E0000000FFFC0000000007E0000000FFFC0000000007C0000000FFFE0000000007C
0000000FFFE000000000FC00000007FFE000000000F800000007FFE000000001F800000003FFF0
00000001F800000001FFF000000003F000000001FFF800000007E000000000FFF800000007E000
0000007FFC0000001FC0000000003FFE0000003F80000000001FFF800000FF00000000000FFFE0
0007FE000000000003FFFE007FFC000000000001FFFFFFFFF00000000000007FFFFFFFE0000000
0000000FFFFFFF8000000000000001FFFFFC00000000000000000FFFC00000000052487CC65B>
85 D<FFFFFFFFE000001FFFFFE0FFFFFFFFE000001FFFFFE0FFFFFFFFE000001FFFFFE0FFFFFF
FFE000001FFFFFE0FFFFFFFFE000001FFFFFE0007FFF80000000003FE000003FFFC0000000000F
8000003FFFC0000000001F8000001FFFE0000000001F0000001FFFE0000000003F0000000FFFE0
000000003E0000000FFFF0000000007E00000007FFF0000000007C00000007FFF8000000007C00
000007FFF800000000FC00000003FFFC00000000F800000003FFFC00000001F800000001FFFE00
000001F000000001FFFE00000003F000000000FFFE00000003E000000000FFFF00000007E00000
00007FFF00000007C0000000007FFF80000007C0000000007FFF8000000FC0000000003FFFC000
000F80000000003FFFC000001F80000000001FFFC000001F00000000001FFFE000003F00000000
000FFFE000003E00000000000FFFF000007E00000000000FFFF000007E000000000007FFF80000
7C000000000007FFF80000FC000000000003FFFC0000F8000000000003FFFC0001F80000000000
01FFFC0001F0000000000001FFFE0003F0000000000000FFFE0003E0000000000000FFFF0003E0
000000000000FFFF0007E00000000000007FFF8007C00000000000007FFF800FC0000000000000
3FFFC00F800000000000003FFFC01F800000000000001FFFC01F000000000000001FFFE03F0000
00000000000FFFE03E000000000000000FFFF03E000000000000000FFFF07E0000000000000007
FFF87C0000000000000007FFF8FC0000000000000003FFF8F80000000000000003FFFDF8000000
0000000001FFFDF00000000000000001FFFFF00000000000000001FFFFF00000000000000000FF
FFE00000000000000000FFFFE000000000000000007FFFC000000000000000007FFFC000000000
000000003FFF8000000000000000003FFF8000000000000000001FFF0000000000000000001FFF
0000000000000000001FFF0000000000000000000FFE0000000000000000000FFE000000000000
00000007FC00000000000000000007FC00000000000000000003F800000000000000000003F800
000000000000000001F0000000000053487DC65A>I<FFFFFFFFC03FFFFFFFF0001FFFFFF0FFFF
FFFFC03FFFFFFFF0001FFFFFF0FFFFFFFFC03FFFFFFFF0001FFFFFF0FFFFFFFFC03FFFFFFFF000
1FFFFFF0FFFFFFFFC03FFFFFFFF0001FFFFFF0007FFF0000001FFFE00000000FF800007FFF0000
000FFFE000000003E000007FFF8000000FFFE000000007E000003FFF8000000FFFF000000007C0
00003FFFC0000007FFF000000007C000003FFFC0000007FFF80000000FC000001FFFC0000003FF
F80000000F8000001FFFE0000003FFF80000001F8000000FFFE0000003FFFC0000001F0000000F
FFE0000001FFFC0000001F0000000FFFF0000001FFFE0000003F00000007FFF0000001FFFE0000
003E00000007FFF8000001FFFE0000007E00000003FFF8000003FFFF0000007C00000003FFF800
0003FFFF0000007C00000003FFFC000003FFFF000000FC00000001FFFC000007FFFF800000F800
000001FFFE000007FFFF800000F800000001FFFE000007FFFFC00001F800000000FFFE00000F9F
FFC00001F000000000FFFF00000F9FFFC00003F0000000007FFF00001F9FFFE00003E000000000
7FFF00001F0FFFE00003E0000000007FFF80001F0FFFE00007E0000000003FFF80003F0FFFF000
07C0000000003FFFC0003E07FFF00007C0000000001FFFC0007E07FFF8000F80000000001FFFC0
007C03FFF8000F80000000001FFFE0007C03FFF8001F80000000000FFFE000FC03FFFC001F0000
0000000FFFE000F801FFFC001F00000000000FFFF000F801FFFE003F000000000007FFF001F801
FFFE003E000000000007FFF801F000FFFE007E000000000003FFF803F000FFFF007C0000000000
03FFF803E0007FFF007C000000000003FFFC03E0007FFF00FC000000000001FFFC07E0007FFF80
F8000000000001FFFE07C0003FFF80F8000000000001FFFE0FC0003FFFC1F8000000000000FFFE
0F80001FFFC1F0000000000000FFFF0F80001FFFC3F00000000000007FFF1F80001FFFE3E00000
000000007FFF1F00000FFFE3E00000000000007FFF9F00000FFFF7E00000000000003FFFBF0000
0FFFF7C00000000000003FFFFE000007FFFFC00000000000001FFFFE000007FFFF800000000000
001FFFFC000003FFFF800000000000001FFFFC000003FFFF800000000000000FFFFC000003FFFF
000000000000000FFFF8000001FFFF000000000000000FFFF8000001FFFF0000000000000007FF
F0000000FFFE0000000000000007FFF0000000FFFE0000000000000003FFF0000000FFFC000000
0000000003FFE00000007FFC0000000000000003FFE00000007FFC0000000000000001FFE00000
007FF80000000000000001FFC00000003FF80000000000000001FFC00000003FF8000000000000
0000FF800000001FF00000000000000000FF800000001FF000000000000000007F800000001FE0
00000000000000007F000000000FE000000000000000007F000000000FE000000000000000003E
0000000007C00000000074487DC67B>I<0007FFFC000000007FFFFFC0000001FFFFFFF8000003
FFFFFFFE000007FE001FFF000007FF0003FFC0000FFF8001FFE0000FFF8000FFF0000FFF80007F
F0000FFF80007FF8000FFF80007FF80007FF00003FFC0007FF00003FFC0003FE00003FFC0000F8
00003FFC00000000003FFC00000000003FFC00000000003FFC00000000003FFC00000007FFFFFC
000000FFFFFFFC000007FFFFFFFC00003FFFE03FFC0000FFFE003FFC0003FFF0003FFC0007FFC0
003FFC000FFF00003FFC001FFE00003FFC003FFC00003FFC007FF800003FFC007FF800003FFC00
FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF00000
7FFC007FF80000FFFC007FF80001EFFC003FFC0003EFFC003FFF0007CFFF000FFFC03F8FFFF807
FFFFFF07FFFC01FFFFFC03FFFC007FFFF001FFFC0003FF80007FF8362E7DAD3A>97
D<007FC00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0000000
0000FFFFC0000000000003FFC0000000000001FFC0000000000001FFC0000000000001FFC00000
00000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC000
0000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0
000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FF
C0000000000001FFC0000000000001FFC00FFC00000001FFC07FFFC0000001FFC3FFFFF0000001
FFCFFFFFFC000001FFDFF00FFF000001FFFF8003FF800001FFFE0001FFC00001FFF800007FE000
01FFF000007FF00001FFE000003FF80001FFE000001FFC0001FFE000001FFC0001FFE000001FFE
0001FFE000001FFE0001FFE000000FFF0001FFE000000FFF0001FFE000000FFF0001FFE000000F
FF0001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE00000
0FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000
000FFF8001FFE000000FFF0001FFE000000FFF0001FFE000000FFF0001FFE000001FFE0001FFE0
00001FFE0001FFE000001FFC0001FFE000001FFC0001FFE000003FF80001FFF000003FF80001FF
F800007FF00001FFFC0000FFE00001FFFE0001FFC00001FFBF0007FF800001FF1FE01FFE000001
FE0FFFFFFC000001FC03FFFFF0000001F800FFFF80000001F0001FF800000039487CC742>I<00
001FFFC0000000FFFFF8000007FFFFFE00001FFFFFFF80007FFC00FFC000FFE001FFC001FFC003
FFE003FF8003FFE007FF0003FFE00FFE0003FFE00FFE0003FFE01FFC0001FFC01FFC0001FFC03F
FC0000FF803FFC00003E007FF8000000007FF8000000007FF800000000FFF800000000FFF80000
0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FF
F800000000FFF8000000007FF8000000007FF8000000007FFC000000003FFC000000003FFC0000
00001FFC000000F81FFE000000F80FFE000000F80FFF000001F007FF800003F003FFC00007E001
FFE0000FC000FFF0001F80007FFE00FF00001FFFFFFE000007FFFFF8000000FFFFE00000001FFE
00002D2E7CAD35>I<00000000007FC00000000000FFFFC00000000000FFFFC00000000000FFFF
C00000000000FFFFC00000000000FFFFC0000000000003FFC0000000000001FFC0000000000001
FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC00000000000
01FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC000000000
0001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000
000001FFC0000000000001FFC0000000000001FFC00000000FFC01FFC0000000FFFF81FFC00000
07FFFFE1FFC000001FFFFFF9FFC000007FFC03FFFFC00000FFF0007FFFC00001FFC0001FFFC000
03FF80000FFFC00007FF000007FFC0000FFE000003FFC0000FFE000003FFC0001FFC000003FFC0
001FFC000003FFC0003FFC000003FFC0003FFC000003FFC0007FF8000003FFC0007FF8000003FF
C0007FF8000003FFC000FFF8000003FFC000FFF8000003FFC000FFF8000003FFC000FFF8000003
FFC000FFF8000003FFC000FFF8000003FFC000FFF8000003FFC000FFF8000003FFC000FFF80000
03FFC000FFF8000003FFC0007FF8000003FFC0007FF8000003FFC0007FF8000003FFC0003FF800
0003FFC0003FFC000003FFC0003FFC000003FFC0001FFC000003FFC0001FFC000003FFC0000FFE
000007FFC00007FF00000FFFC00003FF00001FFFC00001FFC0003FFFC00000FFE000FFFFE00000
7FF807FBFFFF80001FFFFFF3FFFF800007FFFFC3FFFF800001FFFF03FFFF8000001FF803FFFF80
39487CC742>I<00001FFE00000001FFFFE0000007FFFFF800001FFFFFFE00007FFC07FF0000FF
E001FF8001FFC0007FC003FF80003FE007FF00003FF00FFE00001FF01FFE00000FF81FFC00000F
F83FFC00000FFC3FFC000007FC7FFC000007FC7FF8000007FC7FF8000007FE7FF8000007FEFFF8
000007FEFFF8000007FEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFCFFF8000000
00FFF800000000FFF800000000FFF8000000007FF8000000007FF8000000007FFC000000003FFC
000000003FFC000000003FFC0000001C1FFE0000003E0FFE0000003E07FF0000007E07FF000000
FC03FF800001F801FFC00003F0007FF0001FE0003FFE00FFC0001FFFFFFF800007FFFFFE000000
FFFFF80000000FFF80002F2E7DAD36>I<000000FFC000000007FFF80000003FFFFC000000FFFF
FF000001FFC1FF000007FF03FF80000FFC03FF80000FF807FFC0001FF807FFC0003FF007FFC000
3FF007FFC0003FE003FF80007FE003FF80007FE001FF00007FE000FE00007FE0003800007FE000
0000007FE0000000007FE0000000007FE0000000007FE0000000007FE0000000007FE000000000
7FE0000000007FE0000000007FE0000000FFFFFFFE0000FFFFFFFE0000FFFFFFFE0000FFFFFFFE
0000FFFFFFFE0000007FF0000000007FF0000000007FF0000000007FF0000000007FF000000000
7FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF000
0000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF000000000
7FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF000
0000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF000000000
7FF0000000007FF0000000007FF0000000007FF0000000007FF00000003FFFFFF800003FFFFFF8
00003FFFFFF800003FFFFFF800003FFFFFF800002A487DC724>I<00000000001F8000007FF000
FFE00007FFFF03FFF0001FFFFFC7FFF0007FFFFFFFC7F800FFE03FFE0FF801FF800FFC0FF803FF
0007FE0FF807FE0003FF07F007FE0003FF07F00FFC0001FF81C00FFC0001FF80000FFC0001FF80
001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC00
01FFC0000FFC0001FF80000FFC0001FF80000FFC0001FF800007FE0003FF000007FE0003FF0000
03FF0007FE000001FF800FFC000000FFE03FF8000001FFFFFFF0000001DFFFFFC0000003C7FFFF
00000003C07FF000000007C0000000000007C0000000000007C0000000000007C0000000000007
E0000000000007F0000000000007F8000000000007FFFFFFF0000007FFFFFFFF000003FFFFFFFF
E00003FFFFFFFFF80001FFFFFFFFFE0001FFFFFFFFFF0000FFFFFFFFFF80007FFFFFFFFF8003FF
FFFFFFFFC00FFFFFFFFFFFC01FF800001FFFE03FE0000001FFE07FC00000007FF07FC00000003F
F0FF800000001FF0FF800000001FF0FF800000001FF0FF800000001FF0FF800000001FF07FC000
00003FE07FC00000003FE03FE00000007FC03FF0000000FFC01FFC000003FF800FFF00000FFF00
03FFF000FFFC0000FFFFFFFFF000003FFFFFFFC0000007FFFFFE000000003FFFC0000035447DAE
3B>I<00FC0001FE0003FF0007FF800FFFC01FFFE01FFFE01FFFE01FFFE01FFFE01FFFE00FFFC0
07FF8003FF0001FE0000FC00000000000000000000000000000000000000000000000000000000
000000000000007FC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC003FFC001FFC001FFC001FFC001FFC0
01FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0
01FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0
01FFC001FFC001FFC001FFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18497CC820>105
D<007FC000000000FFFFC000000000FFFFC000000000FFFFC000000000FFFFC000000000FFFFC0
0000000003FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000000
01FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000
00000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001
FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0007FFFF801FFC0007F
FFF801FFC0007FFFF801FFC0007FFFF801FFC0007FFFF801FFC0000FFE0001FFC00007F00001FF
C0000FE00001FFC0003FC00001FFC0007F800001FFC000FE000001FFC001FC000001FFC007F800
0001FFC00FF0000001FFC01FC0000001FFC03F80000001FFC0FF00000001FFC1FE00000001FFC3
FF00000001FFCFFF80000001FFDFFFC0000001FFFFFFC0000001FFFFFFE0000001FFFFFFF00000
01FFFCFFF8000001FFF87FFC000001FFE03FFC000001FFC01FFE000001FFC01FFF000001FFC00F
FF800001FFC007FFC00001FFC003FFC00001FFC001FFE00001FFC001FFF00001FFC000FFF80001
FFC0007FFC0001FFC0003FFC0001FFC0001FFE0001FFC0000FFF0001FFC0000FFF8001FFC0000F
FFC0FFFFFF807FFFFFFFFFFF807FFFFFFFFFFF807FFFFFFFFFFF807FFFFFFFFFFF807FFFFF3848
7CC73F>107 D<007FC000FFFFC000FFFFC000FFFFC000FFFFC000FFFFC00003FFC00001FFC000
01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0
0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001
FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0
0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C000FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF8019487CC720>I<007FC001FFC00000FFE0
0000FFFFC00FFFF80007FFFC0000FFFFC03FFFFE001FFFFF0000FFFFC0FFFFFF007FFFFF8000FF
FFC1FC07FF80FE03FFC000FFFFC3E003FFC1F001FFE00003FFC7C001FFC3E000FFE00001FFCF00
01FFE78000FFF00001FFDE0000FFEF00007FF00001FFDC0000FFEE00007FF00001FFFC0000FFFE
00007FF80001FFF80000FFFC00007FF80001FFF00000FFF800007FF80001FFF00000FFF800007F
F80001FFF00000FFF800007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001
FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE000
00FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF0
00007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007F
F80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001
FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE000
00FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF0
00007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007F
F80001FFE00000FFF000007FF800FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF0FF
FFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF05C2E7CAD
63>I<007FC001FFC00000FFFFC00FFFF80000FFFFC03FFFFE0000FFFFC0FFFFFF0000FFFFC1FC
07FF8000FFFFC3E003FFC00003FFC7C001FFC00001FFCF0001FFE00001FFDE0000FFE00001FFDC
0000FFE00001FFFC0000FFF00001FFF80000FFF00001FFF00000FFF00001FFF00000FFF00001FF
F00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001
FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF000
01FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF0
0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FF
F00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000
FFF00001FFE00000FFF00001FFE00000FFF000FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC0
7FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE03B2E7CAD42>I<00000FFF0000000000FFFFF0
00000007FFFFFE0000001FFFFFFF8000003FFC03FFC00000FFE0007FF00001FF80001FF80003FF
00000FFC0007FE000007FE000FFE000007FF000FFC000003FF001FFC000003FF803FFC000003FF
C03FF8000001FFC03FF8000001FFC07FF8000001FFE07FF8000001FFE07FF8000001FFE0FFF800
0001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0
FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF07FF8000001FFE07FF80000
01FFE07FF8000001FFE07FF8000001FFE03FFC000003FFC03FFC000003FFC01FFC000003FF801F
FE000007FF800FFE000007FF0007FF00000FFE0003FF80001FFC0001FFC0003FF80000FFE0007F
F000007FFC03FFE000001FFFFFFF80000007FFFFFE00000000FFFFF0000000000FFF000000342E
7DAD3B>I<007FC00FFC000000FFFFC07FFFC00000FFFFC3FFFFF00000FFFFCFFFFFFC0000FFFF
DFF01FFF0000FFFFFF8007FF800003FFFE0001FFC00001FFF80000FFE00001FFF00000FFF00001
FFE000007FF80001FFE000003FFC0001FFE000003FFC0001FFE000003FFE0001FFE000001FFE00
01FFE000001FFF0001FFE000001FFF0001FFE000001FFF0001FFE000000FFF0001FFE000000FFF
8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000F
FF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE00000
0FFF0001FFE000001FFF0001FFE000001FFF0001FFE000001FFE0001FFE000001FFE0001FFE000
003FFC0001FFE000003FFC0001FFE000007FF80001FFF000007FF80001FFF80000FFF00001FFFC
0001FFE00001FFFE0003FFC00001FFFF0007FF800001FFFFE03FFE000001FFEFFFFFFC000001FF
E3FFFFF0000001FFE0FFFF80000001FFE01FF800000001FFE0000000000001FFE0000000000001
FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE00000000000
01FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE000000000
0001FFE0000000000001FFE0000000000001FFE00000000000FFFFFFC000000000FFFFFFC00000
0000FFFFFFC000000000FFFFFFC000000000FFFFFFC00000000039427CAD42>I<00FF803F8000
FFFF80FFF000FFFF83FFFC00FFFF87FFFE00FFFF8FC3FF00FFFF8F07FF0003FF9E0FFF8001FFBC
0FFF8001FFB80FFF8001FFF80FFF8001FFF00FFF8001FFF007FF0001FFF007FF0001FFE003FE00
01FFE000F80001FFE000000001FFE000000001FFC000000001FFC000000001FFC000000001FFC0
00000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0000000
01FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0
00000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0000000
01FFC0000000FFFFFFE00000FFFFFFE00000FFFFFFE00000FFFFFFE00000FFFFFFE00000292E7C
AD31>114 D<000FFF00E0007FFFF3E001FFFFFFE007FFFFFFE00FF800FFE01FC0001FE03F8000
0FE03F000007E07F000003E07F000003E0FF000003E0FF000003E0FF800003E0FFC0000000FFF0
000000FFFE000000FFFFF800007FFFFFC0007FFFFFF0003FFFFFFC001FFFFFFF000FFFFFFF8007
FFFFFFC003FFFFFFE000FFFFFFF0003FFFFFF00003FFFFF800001FFFF8000000FFFC0000001FFC
7800000FFCF8000007FCF8000003FCFC000003FCFC000003FCFE000003F8FE000003F8FF000003
F8FF800007F0FFC0000FF0FFF0001FE0FFFC00FFC0FFFFFFFF80FC7FFFFE00F81FFFF800E003FF
8000262E7CAD2F>I<0001F000000001F000000001F000000001F000000001F000000001F00000
0003F000000003F000000003F000000007F000000007F000000007F00000000FF00000000FF000
00001FF00000003FF00000003FF00000007FF0000001FFF0000003FFF000000FFFFFFFC0FFFFFF
FFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC000FFF0000000FFF0000000FFF0000000FFF0000000FF
F0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000
FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF00000
00FFF0000000FFF0000000FFF0000000FFF001F000FFF001F000FFF001F000FFF001F000FFF001
F000FFF001F000FFF001F000FFF001F000FFF001F0007FF001E0007FF803E0003FF803E0003FFC
07C0001FFE0F80000FFFFF800007FFFE000001FFFC0000001FF00024427EC12E>I<007FE00000
3FF000FFFFE0007FFFF000FFFFE0007FFFF000FFFFE0007FFFF000FFFFE0007FFFF000FFFFE000
7FFFF00003FFE00001FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE0
0000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FF
E00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001
FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF000
01FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF0
0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00001FFF00001FFE00001FF
F00001FFE00001FFF00001FFE00003FFF00000FFE00007FFF00000FFE0000F7FF000007FE0001F
7FF000007FF0003E7FF800003FFC00FC7FFFE0001FFFFFF87FFFE00007FFFFE07FFFE00001FFFF
807FFFE000003FFE007FFFE03B2E7CAD42>I<FFFFFF07FFFFE007FFFEFFFFFF07FFFFE007FFFE
FFFFFF07FFFFE007FFFEFFFFFF07FFFFE007FFFEFFFFFF07FFFFE007FFFE03FFC0001FFC00003F
C003FFE0000FFC00001F8001FFE0000FFC00001F0001FFE0000FFE00001F0001FFF00007FE0000
3F0000FFF0000FFF00003E0000FFF8000FFF00007E00007FF8000FFF00007C00007FF8001FFF80
007C00003FFC001FFF8000F800003FFC003FFFC000F800003FFE003EFFC001F800001FFE003EFF
C001F000001FFE007EFFE003F000000FFF007C7FE003E000000FFF00FC7FF003E000000FFF80F8
3FF007E0000007FF80F83FF007C0000007FF81F83FF80FC0000003FFC1F01FF80F80000003FFC3
F01FFC0F80000003FFE3E00FFC1F80000001FFE3E00FFC1F00000001FFE7E00FFE3F00000000FF
F7C007FE3E00000000FFFFC007FF3E00000000FFFF8003FF7E000000007FFF8003FF7C00000000
7FFF8003FFFC000000003FFF0001FFF8000000003FFF0001FFF8000000003FFE0000FFF8000000
001FFE0000FFF0000000001FFE0000FFF0000000000FFC00007FE0000000000FFC00007FE00000
00000FF800003FE00000000007F800003FC00000000007F800003FC00000000003F000001F8000
00000001E000000F0000004F2E7DAD56>119 D<7FFFFF801FFFFF007FFFFF801FFFFF007FFFFF
801FFFFF007FFFFF801FFFFF007FFFFF801FFFFF00007FF80001FF0000007FFC0001FC0000003F
FE0003F80000001FFF0007F00000000FFF0007E000000007FF800FC000000003FFC01F80000000
03FFE03F8000000001FFF07F0000000000FFF8FE00000000007FF9FC00000000003FFFF8000000
00003FFFF000000000001FFFE000000000000FFFC0000000000007FFC0000000000003FFC00000
00000001FFE0000000000001FFF0000000000001FFF8000000000003FFFC000000000003FFFE00
0000000007FFFE00000000000FEFFF00000000001FCFFF80000000003F87FFC0000000007F03FF
E000000000FE01FFE000000001FC00FFF000000001F8007FF800000003F0007FFC00000007F000
3FFE0000000FE0001FFF0000001FC0000FFF0000003F800007FF800000FF800007FFC000FFFFF8
003FFFFFC0FFFFF8003FFFFFC0FFFFF8003FFFFFC0FFFFF8003FFFFFC0FFFFF8003FFFFFC03A2E
7EAD3F>I E /Fm 5 121 df<0003FE0000000FFF8000003C01E00000F000780001C0001C000300
00060006000003000C0000018018000000C018000000C030000000603000000060600000003060
000000306000000030C000000018C000000018C000000018C000000018C000000018C000000018
C000000018C000000018C000000018600000003060000000306000000030300000006030000000
6018000000C018000000C00C000001800600000300030000060001C0001C0000F0007800003C01
E000000FFF80000003FE000025277E9D2A>13 D<03C00FF01FF83FFC7FFE7FFEFFFFFFFFFFFFFF
FF7FFE7FFE3FFC1FF80FF003C010107E9115>15 D<003C00E001C0018003800380038003800380
03800380038003800380038003800380030007001C00F0001C0007000300038003800380038003
8003800380038003800380038003800380018001C000E0003C0E297D9E15>102
D<F0001C00070003000380038003800380038003800380038003800380038003800380018001C0
00E0003C00E001C001800380038003800380038003800380038003800380038003800380030007
001C00F0000E297D9E15>I<1F00308070406060E0E0E0E0E040E00060007000300018001C0033
00718061C0E0C0E0E0E0E0E0E060E070C031C0198007000300018001C000C000E040E0E0E0E0E0
C0C041C021801F000B257D9C12>120 D E /Fn 84 125 df<007E1F0001C1B1800303E3C00703
C3C00E03C1800E01C0000E01C0000E01C0000E01C0000E01C0000E01C000FFFFFC000E01C0000E
01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C000
0E01C0000E01C0000E01C0000E01C0000E01C0007F87FC001A1D809C18>11
D<007E0001C1800301800703C00E03C00E01800E00000E00000E00000E00000E0000FFFFC00E01
C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01
C00E01C00E01C07F87F8151D809C17>I<007FC001C1C00303C00703C00E01C00E01C00E01C00E
01C00E01C00E01C00E01C0FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07FCFF8151D809C17>I<003F07E00001
C09C18000380F018000701F03C000E01E03C000E00E018000E00E000000E00E000000E00E00000
0E00E000000E00E00000FFFFFFFC000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C
000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E0
1C000E00E01C000E00E01C000E00E01C007FC7FCFF80211D809C23>I<60F0F0F0F0F0F0F06060
6060606060606060606060000000000060F0F060041E7C9D0C>33 D<6060F0F0F8F86868080808
080808101010102020404080800D0C7F9C15>I<0080008007E01898308460824081C087C08FC0
8FC086E080F0807E803FC01FF00FF803FC00BE008E00876087F083F083E0838082408240842088
189007E00080008010217E9E15>36 D<00E0000001900000030800000308000007080000070800
0007080000070800000710000007100000072000000740000003C03FE003800F00038006000380
040005C0040009C0080010E0100030E010006070200060702000E0384000E03C4000E01C8000E0
0F0020E0070020700780403009C0401830E18007C03E001B1F7E9D20>38
D<60F0F8680808081010204080050C7C9C0C>I<004000800100020006000C000C001800180030
0030007000600060006000E000E000E000E000E000E000E000E000E000E000E000E00060006000
6000700030003000180018000C000C00060002000100008000400A2A7D9E10>I<800040002000
100018000C000C000600060003000300038001800180018001C001C001C001C001C001C001C001
C001C001C001C001C0018001800180038003000300060006000C000C0018001000200040008000
0A2A7E9E10>I<60F0F0701010101020204080040C7C830C>44 D<FFE0FFE00B0280890E>I<60F0
F06004047C830C>I<00010003000600060006000C000C000C0018001800180030003000300060
006000C000C000C0018001800180030003000300060006000C000C000C00180018001800300030
003000600060006000C000C00010297E9E15>I<03C00C301818300C300C700E60066006E007E0
07E007E007E007E007E007E007E007E007E007E007E00760066006700E300C300C18180C3007E0
101D7E9B15>I<030007003F00C700070007000700070007000700070007000700070007000700
07000700070007000700070007000700070007000F80FFF80D1C7C9B15>I<07C01830201C400C
400EF00FF80FF807F8077007000F000E000E001C001C00380070006000C00180030006010C0118
0110023FFE7FFEFFFE101C7E9B15>I<07E01830201C201C781E780E781E381E001C001C001800
30006007E00030001C001C000E000F000F700FF80FF80FF80FF00E401C201C183007E0101D7E9B
15>I<000C00000C00001C00003C00003C00005C0000DC00009C00011C00031C00021C00041C00
0C1C00081C00101C00301C00201C00401C00C01C00FFFFC0001C00001C00001C00001C00001C00
001C00001C0001FFC0121C7F9B15>I<300C3FF83FF03FC020002000200020002000200023E024
302818301C200E000E000F000F000F600FF00FF00FF00F800E401E401C2038187007C0101D7E9B
15>I<00F0030C06040C0E181E301E300C700070006000E3E0E430E818F00CF00EE006E007E007
E007E007E007600760077006300E300C18180C3003E0101D7E9B15>I<4000007FFF807FFF007F
FF0040020080040080040080080000100000100000200000600000400000C00000C00001C00001
800001800003800003800003800003800007800007800007800007800007800007800003000011
1D7E9B15>I<03E00C301008200C20066006600660067006780C3E083FB01FE007F007F818FC30
7E601E600FC007C003C003C003C00360026004300C1C1007E0101D7E9B15>I<03C00C30181830
0C700C600EE006E006E007E007E007E007E0076007700F300F18170C2707C700060006000E300C
780C78187010203030C00F80101D7E9B15>I<60F0F0600000000000000000000060F0F0600412
7C910C>I<60F0F0600000000000000000000060F0F0701010101020204080041A7C910C>I<7FFF
FFC0FFFFFFE00000000000000000000000000000000000000000000000000000000000000000FF
FFFFE07FFFFFC01B0C7E8F20>61 D<0FE03038401CE00EF00EF00EF00E000C001C0030006000C0
008001800100010001000100010001000000000000000000000003000780078003000F1D7E9C14
>63 D<003F800000C0600003001800040004000800020010000100201F00802070808040E04040
40C0384041C038408180382083803820838038208380382083803820838038208180382041C038
2040C0384040E0784020709880201F0F00100000000800000004000000030001E000C01F80003F
F0001B1D7E9C20>I<000600000006000000060000000F0000000F0000000F0000001780000017
8000001780000023C0000023C0000023C0000041E0000041E0000041E0000080F0000080F00001
80F8000100780001FFF80003007C0002003C0002003C0006003E0004001E0004001E000C001F00
1E001F00FF80FFF01C1D7F9C1F>I<FFFFC00F00F00F00380F003C0F001C0F001E0F001E0F001E
0F001E0F001C0F003C0F00780F01F00FFFE00F00780F003C0F001E0F000E0F000F0F000F0F000F
0F000F0F000F0F001E0F001E0F003C0F0078FFFFE0181C7E9B1D>I<001F808000E06180018019
80070007800E0003801C0003801C00018038000180780000807800008070000080F0000000F000
0000F0000000F0000000F0000000F0000000F0000000F000000070000080780000807800008038
0000801C0001001C0001000E000200070004000180080000E03000001FC000191E7E9C1E>I<FF
FFC0000F00F0000F003C000F000E000F0007000F0007000F0003800F0003C00F0001C00F0001C0
0F0001E00F0001E00F0001E00F0001E00F0001E00F0001E00F0001E00F0001E00F0001C00F0001
C00F0003C00F0003800F0007800F0007000F000E000F001C000F007000FFFFC0001B1C7E9B20>
I<FFFFFC0F003C0F000C0F00040F00040F00060F00020F00020F02020F02000F02000F02000F06
000FFE000F06000F02000F02000F02000F02010F00010F00020F00020F00020F00060F00060F00
0C0F003CFFFFFC181C7E9B1C>I<FFFFF80F00780F00180F00080F00080F000C0F00040F00040F
02040F02000F02000F02000F06000FFE000F06000F02000F02000F02000F02000F00000F00000F
00000F00000F00000F00000F00000F8000FFF800161C7E9B1B>I<001F808000E0618001801980
070007800E0003801C0003801C00018038000180780000807800008070000080F0000000F00000
00F0000000F0000000F0000000F0000000F000FFF0F0000F807000078078000780780007803800
07801C0007801C0007800E00078007000B800180118000E06080001F80001C1E7E9C21>I<FFF3
FFC00F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F
003C000F003C000F003C000FFFFC000F003C000F003C000F003C000F003C000F003C000F003C00
0F003C000F003C000F003C000F003C000F003C000F003C000F003C00FFF3FFC01A1C7E9B1F>I<
FFF00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F
000F000F000F000F000F000F000F00FFF00C1C7F9B0F>I<1FFF00F80078007800780078007800
7800780078007800780078007800780078007800780078007800787078F878F878F878F0F040E0
21C01F00101D7F9B15>I<FFF03FE00F000F000F000C000F0008000F0010000F0020000F004000
0F0080000F0100000F0200000F0400000F0E00000F1F00000F2F00000F2780000F4780000F83C0
000F01E0000F01E0000F00F0000F00F8000F0078000F003C000F003C000F001E000F001F000F00
1F80FFF07FF01C1C7E9B20>I<FFF8000F80000F00000F00000F00000F00000F00000F00000F00
000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00080F00080F00080F00
180F00180F00100F00300F00700F01F0FFFFF0151C7E9B1A>I<FF8000FF800F8000F8000F8000
F8000BC00178000BC00178000BC001780009E002780009E002780008F004780008F004780008F0
047800087808780008780878000878087800083C107800083C107800083C107800081E20780008
1E207800081E207800080F407800080F4078000807807800080780780008078078000803007800
1C03007800FF8307FF80211C7E9B26>I<FF007FC00F800E000F8004000BC0040009E0040009E0
040008F0040008F8040008780400083C0400083C0400081E0400080F0400080F04000807840008
07C4000803C4000801E4000801E4000800F40008007C0008007C0008003C0008003C0008001C00
08000C001C000C00FF8004001A1C7E9B1F>I<003F800000E0E0000380380007001C000E000E00
1C0007003C00078038000380780003C0780003C0700001C0F00001E0F00001E0F00001E0F00001
E0F00001E0F00001E0F00001E0F00001E0700001C0780003C0780003C0380003803C0007801C00
07000E000E0007001C000380380000E0E000003F80001B1E7E9C20>I<FFFF800F00E00F00780F
003C0F001C0F001E0F001E0F001E0F001E0F001E0F001C0F003C0F00780F00E00FFF800F00000F
00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000FFF000171C7E9B
1C>I<FFFF00000F01E0000F0078000F003C000F001C000F001E000F001E000F001E000F001E00
0F001C000F003C000F0078000F01E0000FFF00000F03C0000F00E0000F00F0000F0078000F0078
000F0078000F0078000F0078000F0078000F0078100F0078100F0038100F003C20FFF01C200000
07C01C1D7E9B1F>82 D<07E0801C1980300580700380600180E00180E00080E00080E00080F000
00F800007C00007FC0003FF8001FFE0007FF0000FF80000F800007C00003C00001C08001C08001
C08001C0C00180C00180E00300D00200CC0C0083F800121E7E9C17>I<7FFFFFC0700F01C0600F
00C0400F0040400F0040C00F0020800F0020800F0020800F0020000F0000000F0000000F000000
0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000
000F0000000F0000000F0000000F0000001F800003FFFC001B1C7F9B1E>I<FFF07FC00F000E00
0F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004
000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F00
04000700080007800800038010000180100000C020000070C000001F00001A1D7E9B1F>I<FFE0
0FF01F0003C00F0001800F0001000F800300078002000780020003C0040003C0040003C0040001
E0080001E0080001F0080000F0100000F0100000F830000078200000782000003C4000003C4000
003C4000001E8000001E8000001F8000000F0000000F00000006000000060000000600001C1D7F
9B1F>I<FFE0FFE0FF1F001F003C1E001E00180F001F00100F001F00100F001F001007801F0020
0780278020078027802003C027804003C043C04003C043C04003E043C04001E081E08001E081E0
8001E081E08000F100F10000F100F10000F100F100007900FA00007A007A00007A007A00003E00
7C00003C003C00003C003C00003C003C00001800180000180018000018001800281D7F9B2B>I<
7FF0FFC00FC03E000780180003C0180003E0100001E0200001F0600000F0400000788000007D80
00003D0000001E0000001F0000000F0000000F8000000F80000013C0000023E0000021E0000041
F00000C0F8000080780001007C0003003C0002001E0006001F001F003F80FFC0FFF01C1C7F9B1F
>I<FFF007FC0F8001E00780008007C0018003C0010003E0020001F0020000F0040000F8040000
780800007C1800003C1000001E2000001F2000000F4000000FC000000780000007800000078000
0007800000078000000780000007800000078000000780000007800000078000007FF8001E1C80
9B1F>I<7FFFF07C01F07001E06003C06003C0400780400F80400F00401E00001E00003C00007C
0000780000F00000F00001E00003E00003C0100780100780100F00101F00301E00203C00203C00
607800E0F803E0FFFFE0141C7E9B19>I<08081010202040404040808080808080B0B0F8F87878
30300D0C7A9C15>92 D<1FC000307000783800781C00301C00001C00001C0001FC000F1C00381C
00701C00601C00E01C40E01C40E01C40603C40304E801F870012127E9115>97
D<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C001D86
001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C00C01C01C01C01
801E030019060010F800131D7F9C17>I<07E00C301878307870306000E000E000E000E000E000
E00060007004300418080C3007C00E127E9112>I<003F00000700000700000700000700000700
00070000070000070000070000070003E7000C1700180F00300700700700600700E00700E00700
E00700E00700E00700E00700600700700700300700180F000C370007C7E0131D7E9C17>I<03E0
0C301818300C700E6006E006FFFEE000E000E000E00060007002300218040C1803E00F127F9112
>I<00F8018C071E061E0E0C0E000E000E000E000E000E00FFE00E000E000E000E000E000E000E
000E000E000E000E000E000E000E000E000E007FE00F1D809C0D>I<00038003C4C00C38C01C38
80181800381C00381C00381C00381C001818001C38000C300013C0001000003000001800001FF8
001FFF001FFF803003806001C0C000C0C000C0C000C06001803003001C0E0007F800121C7F9215
>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C001C
87001D03001E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
03801C03801C0380FF9FF0141D7F9C17>I<18003C003C00180000000000000000000000000000
00FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091D
7F9C0C>I<00C001E001E000C000000000000000000000000000000FE000E000E000E000E000E0
00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E060E0F0C0F1C061803E
000B25839C0D>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C
00001C3FC01C0F001C0C001C08001C10001C20001C40001CE0001DE0001E70001C78001C38001C
3C001C1C001C0E001C0F001C0F80FF9FE0131D7F9C16>I<FC001C001C001C001C001C001C001C
001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00
1C00FF80091D7F9C0C>I<FC7E07E0001C838838001D019018001E01E01C001C01C01C001C01C0
1C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01
C01C001C01C01C001C01C01C001C01C01C00FF8FF8FF8021127F9124>I<FC7C001C87001D0300
1E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380
1C0380FF9FF014127F9117>I<03F0000E1C00180600300300700380600180E001C0E001C0E001
C0E001C0E001C0E001C06001807003803003001806000E1C0003F00012127F9115>I<FC7C001D
86001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01C01C
01801E03001D06001CF8001C00001C00001C00001C00001C00001C00001C0000FF8000131A7F91
17>I<03C1000C3300180B00300F00700700700700E00700E00700E00700E00700E00700E00700
600700700700300F00180F000C370007C700000700000700000700000700000700000700000700
003FE0131A7E9116>I<FCE01D301E781E781C301C001C001C001C001C001C001C001C001C001C
001C001C00FFC00D127F9110>I<1F9030704030C010C010E010F8007F803FE00FF000F8803880
18C018C018E010D0608FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C001C
001C001C001C001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F9910>I<FC
1F801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
03801C07800C07800E1B8003E3F014127F9117>I<FF07E03C03801C01001C01000E02000E0200
07040007040007040003880003880003D80001D00001D00000E00000E00000E00000400013127F
9116>I<FF3FCFE03C0F03801C0701801C0701001C0B01000E0B82000E0B82000E1182000711C4
000711C4000720C40003A0E80003A0E80003C0680001C0700001C0700001803000008020001B12
7F911E>I<7F8FF00F03800F030007020003840001C80001D80000F00000700000780000F80000
9C00010E00020E000607000403801E07C0FF0FF81512809116>I<FF07E03C03801C01001C0100
0E02000E020007040007040007040003880003880003D80001D00001D00000E00000E00000E000
004000004000008000008000F08000F10000F300006600003C0000131A7F9116>I<7FFC703860
38407040F040E041C003C0038007000F040E041C043C0C380870087038FFF80E127F9112>I<FF
FFF01401808B15>I<FFFFFFFFFF802901808B2A>I E /Fo 20 122 df<78FCFCFCFC7806067B85
11>46 D<007F000001C1C0000780F0000F0078000E0038001C001C003C001E003C001E003C001E
0078000F0078000F0078000F0078000F00F8000F80F8000F80F8000F80F8000F80F8000F80F800
0F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F8078
000F0078000F0078000F0078000F003C001E003C001E003C001E001C001C000E0038000F007800
0780F00001C1C000007F000019297EA71E>48 D<00100000700001F0000FF000FEF000F0F00000
F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000
F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000
F00000F00000F00000F00000F00001F8007FFFE07FFFE013287BA71E>I<00FE0007FF800E07E0
1803F02001F82000F840007C40007CF8007EFC007EFC003EFC003EFC003E78007E00007E00007C
00007C0000F80000F80001F00001E00003C0000780000700000E00001C00003800007000006000
00C0000180020300020600040C000418000410000C3FFFFC7FFFF8FFFFF8FFFFF817287DA71E>
I<007F000003FFC0000701F0000C00F80010007C001C007C003E007E003E003E003E003E001E00
3E000C007E0000007C0000007C00000078000000F0000000E0000001C0000007000000FF000000
01E0000000F0000000780000003C0000003E0000001F0000001F0000001F8000001F8030001F80
78001F80FC001F80FC001F80FC001F00F8001F0040003F0040003E0030007C001800F8000F01F0
0003FFC000007F000019297EA71E>I<007F000001FFC00007C1E0000F0070001E0038001C003C
003C001C0078001E0078001E00F8000F00F8000F00F8000F00F8000F00F8000F80F8000F80F800
0F80F8000F8078000F8078001F803C001F803C001F801C002F800E004F800700CF8003810F8000
7E0F8000000F0000000F0000000F0000001E0000001E0000001E0000003C001C003C003E007800
3E0070003C00E0001801C0001C0780000FFE000003F8000019297EA71E>57
D<FFFFFFFF00FFFFFFFF0007E0003F0003E000070003E000038003E000018003E000018003E000
008003E000008003E000008003E000008003E000004003E002004003E002004003E002000003E0
02000003E002000003E006000003E00E000003FFFE000003FFFE000003E00E000003E006000003
E002000003E002000003E002000003E002000003E002000003E000000003E000000003E0000000
03E000000003E000000003E000000003E000000003E000000003E000000003E000000007F00000
00FFFFE00000FFFFE0000022297EA827>70 D<FFE0000003FFC0FFE0000003FFC007E0000003F8
0002F0000005F00002F0000005F0000278000009F0000278000009F0000278000009F000023C00
0011F000023C000011F000021E000021F000021E000021F000021E000021F000020F000041F000
020F000041F0000207800081F0000207800081F0000207800081F0000203C00101F0000203C001
01F0000203E00201F0000201E00201F0000201E00201F0000200F00401F0000200F00401F00002
00F00401F0000200780801F0000200780801F00002003C1001F00002003C1001F00002003C1001
F00002001E2001F00002001E2001F00002000F4001F00002000F4001F00002000F4001F0000200
078001F0000700078001F0000F80030003F800FFF803007FFFC0FFF803007FFFC032297EA837>
77 D<FFFF0003FFC0FFFF0003FFC007F000007E0003E00000380003E00000100001F000002000
01F00000200001F00000200000F80000400000F80000400000FC0000C000007C00008000007C00
008000003E00010000003E00010000003F00010000001F00020000001F00020000001F80060000
000F80040000000F800400000007C00800000007C00800000007E00800000003E01000000003E0
1000000001F02000000001F02000000001F02000000000F84000000000F84000000000FCC00000
00007C80000000007C80000000003F00000000003F00000000003F00000000001E00000000001E
00000000000C00000000000C00000000000C0000002A2A7FA82D>86 D<FFFE03FFF803FFC0FFFE
03FFF803FFC00FE0003F80007E0007C0001F0000180003E0001F0000180003E0000F8000100003
E0000F8000100001F0000F8000200001F0000FC000200001F0000FC000200000F8000FC0004000
00F80013E000400000F80013E000400000FC0013E000C000007C0033F0008000007C0021F00080
00007E0021F0008000003E0021F8010000003E0040F8010000003E0040F8010000001F0040F802
0000001F00807C020000001F00807C020000000F80807C040000000F81003E040000000F81003E
0400000007C1003E0800000007C2001F0800000007C2001F0800000003E2001F1000000003E400
0F9000000003E4000F9000000001F4000FA000000001F80007E000000001F80007E000000000F8
0007C000000000F00003C000000000F00003C00000000070000380000000006000018000000000
60000180000000006000018000003A2A7FA83D>I<01FC00000E0780001001C0003C00E0003E00
F0003E0078001C00780008007800000078000000780000007800007FF80003E078000F8078001F
0078003E0078007C00780078007820F8007820F8007820F8007820F800F8207C00F8203C013C40
1F063FC007F80F001B1A7E991E>97 D<07800000FF800000FF8000000F80000007800000078000
000780000007800000078000000780000007800000078000000780000007800000078000000780
00000783F000078C1C0007B0070007A0038007C003C0078001E0078001E0078000F0078000F007
8000F8078000F8078000F8078000F8078000F8078000F8078000F8078000F0078000F0078001F0
078001E0078001C007C003C00740078007200E0006181C000407E0001D2A7FA921>I<007E0003
C3800700E00E00F01C00703C00783C003878003C78003CF8003CF8003CFFFFFCF80000F80000F8
0000F80000F800007800007C00003C00043C00041E00080E001007002001C0C0007F00161A7E99
1B>101 D<001F000070C000E1E001C3E003C3E00381C007808007800007800007800007800007
8000078000078000078000078000FFFE00FFFE0007800007800007800007800007800007800007
800007800007800007800007800007800007800007800007800007800007800007800007800007
800007800007C000FFFE00FFFE00132A7FA912>I<0780FF80FF800F8007800780078007800780
078007800780078007800780078007800780078007800780078007800780078007800780078007
8007800780078007800780078007800780078007800780FFFCFFFC0E2A7FA911>108
D<0783F800FF8C1C00FF900E000FA0070007A0078007C0078007C0078007800780078007800780
078007800780078007800780078007800780078007800780078007800780078007800780078007
80078007800780078007800780078007800780FFFCFFFCFFFCFFFC1E1A7F9921>110
D<007F000001C1C000070070000E0038001C001C003C001E003C001E0078000F0078000F00F800
0F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F8078000F0078000F003C
001E003C001E001E003C000E0038000700700001C1C000007F0000191A7E991E>I<0787C0FF98
E0FF91F00FA1F007C1F007C0E007C0000780000780000780000780000780000780000780000780
0007800007800007800007800007800007800007800007800007C000FFFE00FFFE00141A7F9917
>114 D<07800780FF80FF80FF80FF800F800F8007800780078007800780078007800780078007
800780078007800780078007800780078007800780078007800780078007800780078007800780
07800780078007800F8007800F800380178001C027C000E047FC003F87FC1E1A7F9921>117
D<FFF00FF8FFF00FF80F8003C0078003800780010003C0020003C0020003E0020001E0040001E0
040000F0080000F0080000F818000078100000781000003C2000003C2000003E6000001E400000
1E4000000F8000000F800000070000000700000007000000020000000200000004000000040000
000400000008000070080000F8100000F8100000F8200000F0400000608000001F0000001D267F
9920>121 D E /Fp 10 116 df<78FCFCFCFC7806067A8512>46 D<FFE00007FFC0FFF00007FF
C003F000007C0002F80000380002FC00001000027C00001000023E00001000023E00001000021F
00001000021F80001000020F800010000207C00010000207E00010000203E00010000203F00010
000201F00010000200F80010000200FC00100002007C00100002007E00100002003E0010000200
1F00100002001F80100002000F80100002000FC01000020007C01000020003E01000020003F010
00020001F01000020000F81000020000F810000200007C10000200007E10000200003E10000200
001F10000200001F10000200000F90000200000FD00002000007D00002000003F00002000003F0
0002000001F00002000001F00002000000F0000200000070000700000070000F8000003000FFF8
00003000FFF8000010002A317CB032>78 D<FFFFFF000000FFFFFFF0000007E001FC000003E000
3E000003E0000F800003E00007C00003E00003E00003E00001E00003E00001F00003E00000F000
03E00000F80003E00000F80003E00000F80003E00000F80003E00000F80003E00000F80003E000
00F00003E00001F00003E00001E00003E00003C00003E00007800003E0000F000003E0003C0000
03E001F0000003FFFF00000003E001F0000003E0007C000003E0001E000003E0000F800003E000
07800003E00007C00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E000
03E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E000
03E00803E00003E00803E00001E00803E00001E00807F00000F010FFFF80007010FFFF80003860
000000000F802D327CB031>82 D<FFFE003FFF8001FFC0FFFE003FFF8001FFC00FE00003F80000
7E0007C00001F000003C0007C00001F00000180003E00000F80000100003E00000F80000100003
E00000F80000100001F00000FC0000200001F00000FC0000200001F00000FC0000200000F80001
3E0000400000F800013E0000400000F800013E0000400000FC00033F0000C000007C00021F0000
8000007C00021F00008000007E00021F80008000003E00040F80010000003E00040F8001000000
3E00040F80010000001F000807C0020000001F000807C0020000001F000807C0020000000F8010
03E0040000000F801003E0040000000F801003E0040000000FC02001F00C00000007C02001F008
00000007C02001F00800000007E02001F80800000003E04000F81000000003E04000F810000000
03E04000F81000000001F080007C2000000001F080007C2000000001F080007C2000000000F900
003E4000000000F900003E4000000000F900003E40000000007E00001F80000000007E00001F80
000000007E00001F80000000007E00001F80000000003C00000F00000000003C00000F00000000
003C00000F00000000001800000600000000001800000600000000001800000600000042327FB0
44>87 D<00FE00000303C0000C00E00010007000100038003C003C003E001C003E001E003E001E
0008001E0000001E0000001E0000001E00000FFE0000FC1E0003E01E000F801E001F001E003E00
1E003C001E007C001E00F8001E04F8001E04F8001E04F8003E04F8003E0478003E047C005E043E
008F080F0307F003FC03E01E1F7D9E21>97 D<0F001F801F801F801F800F000000000000000000
00000000000000000000000000000780FF80FF800F800780078007800780078007800780078007
800780078007800780078007800780078007800780078007800780078007800FC0FFF8FFF80D30
7EAF12>105 D<0780FF80FF800F80078007800780078007800780078007800780078007800780
078007800780078007800780078007800780078007800780078007800780078007800780078007
80078007800780078007800780078007800780078007800FC0FFFCFFFC0E327EB112>108
D<0780FE001FC000FF83078060F000FF8C03C18078000F9001E2003C0007A001E4003C0007A000
F4001E0007C000F8001E0007C000F8001E00078000F0001E00078000F0001E00078000F0001E00
078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0
001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E0007
8000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F000
1E000FC001F8003F00FFFC1FFF83FFF0FFFC1FFF83FFF0341F7E9E38>I<001FC00000F0780001
C01C00070007000F0007801E0003C01C0001C03C0001E03C0001E0780000F0780000F0780000F0
F80000F8F80000F8F80000F8F80000F8F80000F8F80000F8F80000F8F80000F8780000F07C0001
F03C0001E03C0001E01E0003C01E0003C00F00078007800F0001C01C0000F07800001FC0001D1F
7E9E21>111 D<01FC100E03301800F0300070600030E00030E00010E00010E00010F00010F800
007E00003FF0001FFF000FFFC003FFE0003FF00001F80000F880003C80003C80001CC0001CC000
1CE0001CE00018F00038F00030CC0060C301C080FE00161F7E9E1A>115
D E /Fq 15 118 df<1F003F807FC0FFC0FFE0FFE0FFF0FFF07FF03FB01F300030003000300030
003000600060006000C000C000C0018001800300060006000C001800300020000C1F77C71D>39
D<FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00007FF800001FFF00003FF0000001
FF80001FF00000007F80001FF00000003F80001FF00000001F80001FF00000000F80001FF00000
000780001FF00000000780001FF00000000380001FF000000003C0001FF000000003C0001FF000
000001C0001FF000000001C0001FF000000001C0001FF000000001C0001FF000000001C0001FF0
00000000E0001FF000000000E0001FF000000000E0001FF00001C000E0001FF00001C00000001F
F00001C00000001FF00001C00000001FF00001C00000001FF00001C00000001FF00001C0000000
1FF00003C00000001FF00003C00000001FF00007C00000001FF0000FC00000001FF0003FC00000
001FFFFFFFC00000001FFFFFFFC00000001FFFFFFFC00000001FF0003FC00000001FF0000FC000
00001FF00007C00000001FF00003C00000001FF00003C00000001FF00001C00000001FF00001C0
0000001FF00001C00000001FF00001C00000001FF00001C00000001FF00001C00000001FF00001
C00000001FF00000000000001FF00000000000001FF00000000000001FF00000000000001FF000
00000000001FF00000000000001FF00000000000001FF00000000000001FF00000000000001FF0
0000000000001FF00000000000001FF00000000000001FF00000000000001FF00000000000001F
F00000000000001FF00000000000001FF00000000000003FF80000000000007FFE0000000000FF
FFFFFF80000000FFFFFFFF80000000FFFFFFFF800000003B477DC643>70
D<FFFFFFFE01FFFFFFFCFFFFFFFE01FFFFFFFCFFFFFFFE01FFFFFFFC007FFC000000FFF800003F
F80000007FF000001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000
003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE0
00001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001F
F00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000
003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE0
00001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001F
F00000003FE000001FF00000003FE000001FF00000003FE000001FFFFFFFFFFFE000001FFFFFFF
FFFFE000001FFFFFFFFFFFE000001FF00000003FE000001FF00000003FE000001FF00000003FE0
00001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001F
F00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000
003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE0
00001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001F
F00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000
003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE0
00001FF00000003FE000003FF80000007FF000007FFC000000FFF800FFFFFFFE01FFFFFFFCFFFF
FFFE01FFFFFFFCFFFFFFFE01FFFFFFFC46477DC64D>72 D<FFFFF800000000001FFFFFFFFFF800
000000001FFFFFFFFFF800000000001FFFFF007FFC00000000003FFE00003FFC00000000003FFC
00001DFE000000000077F800001DFE000000000077F800001DFE000000000077F800001CFF0000
000000E7F800001CFF0000000000E7F800001C7F8000000001C7F800001C7F8000000001C7F800
001C7F8000000001C7F800001C3FC00000000387F800001C3FC00000000387F800001C1FE00000
000707F800001C1FE00000000707F800001C1FE00000000707F800001C0FF00000000E07F80000
1C0FF00000000E07F800001C0FF00000000E07F800001C07F80000001C07F800001C07F8000000
1C07F800001C03FC0000003807F800001C03FC0000003807F800001C03FC0000003807F800001C
01FE0000007007F800001C01FE0000007007F800001C00FF000000E007F800001C00FF000000E0
07F800001C00FF000000E007F800001C007F800001C007F800001C007F800001C007F800001C00
7F800001C007F800001C003FC000038007F800001C003FC000038007F800001C001FE000070007
F800001C001FE000070007F800001C001FE000070007F800001C000FF0000E0007F800001C000F
F0000E0007F800001C0007F8001C0007F800001C0007F8001C0007F800001C0007F8001C0007F8
00001C0003FC00380007F800001C0003FC00380007F800001C0001FE00700007F800001C0001FE
00700007F800001C0001FE00700007F800001C0000FF00E00007F800001C0000FF00E00007F800
001C0000FF00E00007F800001C00007F81C00007F800001C00007F81C00007F800001C00003FC3
800007F800001C00003FC3800007F800001C00003FC3800007F800001C00001FE7000007F80000
1C00001FE7000007F800001C00000FFE000007F800001C00000FFE000007F800001C00000FFE00
0007F800001C000007FC000007F800001C000007FC000007F800003E000007FC000007F800007F
000003F8000007F80000FF800003F800000FFC0003FFE00001F000001FFE00FFFFFF8001F0003F
FFFFFFFFFFFF8001F0003FFFFFFFFFFFFF8000E0003FFFFFFF58477DC65F>77
D<FFFFFFE003FFFFFF8001FFFFF8FFFFFFE003FFFFFF8001FFFFF8FFFFFFE003FFFFFF8001FFFF
F803FFF800000FFFE000001FFF8000FFE0000003FF80000007FE00007FC0000001FF00000001FC
00007FC0000001FF00000000F800007FC0000001FF80000000F000003FE0000000FF80000000E0
00003FE0000000FF80000000E000003FE0000000FF80000000E000001FF00000007FC0000001C0
00001FF00000007FC0000001C000001FF00000007FC0000001C000001FF8000000FFE0000003C0
00000FF8000000FFE00000038000000FF8000000FFE00000038000000FFC000001DFF000000780
000007FC000001DFF000000700000007FC000001DFF000000700000007FE0000038FF800000F00
000003FE0000038FF800000E00000003FE0000038FF800000E00000003FF0000078FFC00001E00
000001FF00000707FC00001C00000001FF00000707FC00001C00000001FF00000F07FE00001C00
000000FF80000E03FE00003800000000FF80000E03FE00003800000000FF80001E03FF00003800
0000007FC0001C01FF000070000000007FC0001C01FF000070000000007FC0003C01FF80007000
0000003FE0003800FF8000E0000000003FE0003800FF8000E0000000003FE0003800FF8000E000
0000001FF00070007FC001C0000000001FF00070007FC001C0000000001FF00070007FC001C000
0000001FF800E0003FE003C0000000000FF800E0003FE00380000000000FF800E0003FE0038000
0000000FFC01C0001FF007800000000007FC01C0001FF007000000000007FC01C0001FF0070000
00000007FE0380000FF80F000000000003FE0380000FF80E000000000003FE0380000FF80E0000
00000003FF0780000FFC1E000000000001FF07000007FC1C000000000001FF07000007FC1C0000
00000001FF0F000007FE1C000000000000FF8E000003FE38000000000000FF8E000003FE380000
00000000FF9E000003FF380000000000007FDC000001FF700000000000007FDC000001FF700000
000000007FFC000001FFF00000000000003FF8000000FFE00000000000003FF8000000FFE00000
000000003FF8000000FFE00000000000001FF00000007FC00000000000001FF00000007FC00000
000000001FF00000007FC00000000000001FE00000003FC00000000000000FE00000003F800000
000000000FE00000003F800000000000000FC00000001F8000000000000007C00000001F000000
0000000007C00000001F0000000000000007800000000F0000000000000003800000000E000000
0065487EC66A>87 D<0003FE000000001FFFC00000007E03F0000000F000FC000001C0007E0000
0380003F000007C0001F800007F0001FC0000FF0000FC0000FF8000FE0000FF8000FE0000FF800
07F00007F00007F00007F00007F00001C00007F00000000007F00000000007F00000000007F000
00000007F000000001FFF00000007FFFF0000003FF87F000001FF007F000007F8007F00001FE00
07F00003F80007F00007F00007F0000FE00007F0001FC00007F0003FC00007F0003F800007F000
7F800007F01C7F800007F01CFF000007F01CFF000007F01CFF000007F01CFF00000FF01CFF0000
0FF01CFF00000FF01C7F80001BF01C7F800033F01C3FC00031F8381FC00061F8380FF001C0FC70
03FC0780FFE000FFFE003FC0001FF8001F802E2F7CAD34>97 D<01FE0000000000FFFE00000000
00FFFE0000000000FFFE000000000003FE000000000001FE000000000000FE000000000000FE00
0000000000FE000000000000FE000000000000FE000000000000FE000000000000FE0000000000
00FE000000000000FE000000000000FE000000000000FE000000000000FE000000000000FE0000
00000000FE000000000000FE000000000000FE000000000000FE000000000000FE000000000000
FE000000000000FE000000000000FE000000000000FE00FF00000000FE07FFF0000000FE1F01FC
000000FE38003E000000FE70001F800000FEC0000FC00000FF800007E00000FF800003F00000FF
000003F80000FE000001FC0000FE000001FC0000FE000000FE0000FE000000FE0000FE000000FF
0000FE000000FF0000FE0000007F8000FE0000007F8000FE0000007F8000FE0000007FC000FE00
00007FC000FE0000007FC000FE0000007FC000FE0000007FC000FE0000007FC000FE0000007FC0
00FE0000007FC000FE0000007FC000FE0000007FC000FE0000007F8000FE0000007F8000FE0000
00FF8000FE000000FF0000FE000000FF0000FE000000FE0000FE000001FE0000FE000001FC0000
FE000001F80000FF000003F00000FF800007F00000FD800007E00000F9C0000F800000F8E0003F
000000F078007E000000F01E03F8000000E00FFFE00000000001FE00000032497DC739>I<0000
3FE0000001FFFE000007E01F80001F8003C0003E0000E0007C00007001F80000F803F80003F803
F00003FC07F00007FC0FE00007FC1FE00007FC1FC00003F83FC00003F83FC00000E03FC0000000
7FC00000007F800000007F80000000FF80000000FF80000000FF80000000FF80000000FF800000
00FF80000000FF80000000FF80000000FF80000000FF800000007F800000007F800000007FC000
00003FC00000003FC000000E1FC000000E1FE000000E0FE000001C0FF000001C07F000003803F8
00003801F800007000FC0000E0007E0001C0001F800780000FE03E000001FFFC0000003FE00027
2F7DAD2E>I<00007F80000003FFF000000FC0FC00003F003F00007C001F8000F8000FC001F800
07E003F00007E007E00003F00FE00003F80FE00003F81FC00001FC1FC00001FC3FC00001FC3FC0
0001FC7F800001FE7F800000FE7F800000FEFF800000FEFF800000FEFFFFFFFFFEFFFFFFFFFEFF
80000000FF80000000FF80000000FF80000000FF80000000FF800000007F800000007F80000000
7F800000007FC00000003FC00000003FC000000E1FC000000E1FE000000E0FE000001C07E00000
1C07F000003803F000007001F800007000FC0000E0003E0003C0001F8007000007E03E000001FF
F80000003FC000272F7DAD2E>101 D<01FE0000000000FFFE0000000000FFFE0000000000FFFE
000000000003FE000000000001FE000000000000FE000000000000FE000000000000FE00000000
0000FE000000000000FE000000000000FE000000000000FE000000000000FE000000000000FE00
0000000000FE000000000000FE000000000000FE000000000000FE000000000000FE0000000000
00FE000000000000FE000000000000FE000000000000FE000000000000FE000000000000FE0000
00000000FE000000000000FE000000000000FE001FFFFE0000FE001FFFFE0000FE001FFFFE0000
FE0007FFE00000FE0003FF000000FE0001FC000000FE0001F0000000FE0003E0000000FE0003C0
000000FE000780000000FE000E00000000FE001C00000000FE007800000000FE00F000000000FE
01E000000000FE03C000000000FE07C000000000FE0FC000000000FE1FE000000000FE3FF00000
0000FEF3F000000000FFE3F800000000FFC1FC00000000FF80FE00000000FF00FE00000000FE00
7F00000000FC003F80000000FC003F80000000FC001FC0000000FC000FE0000000FC000FE00000
00FC0007F0000000FC0003F8000000FC0001F8000000FC0001FC000000FC0000FE000000FC0000
FF000000FC00007F000000FC00007F800000FC00007FC00003FF0000FFF000FFFFFC07FFFF80FF
FFFC07FFFF80FFFFFC07FFFF8031487DC737>107 D<01FE00FFFE00FFFE00FFFE0003FE0001FE
0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0003FF80FFFFFEFFFF
FEFFFFFE17487DC71C>I<01FC007F800000FFFC03FFF00000FFFC0781F80000FFFC0C007C0000
03FC18007E000001FC30003F000000FC60003F800000FCC0001F800000FD80001F800000FD8000
1FC00000FF00001FC00000FF00001FC00000FF00001FC00000FE00001FC00000FE00001FC00000
FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001F
C00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE
00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC0
0000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00
001FC00000FE00001FC00000FE00001FC00000FE00001FC00003FF80007FF000FFFFFE1FFFFFC0
FFFFFE1FFFFFC0FFFFFE1FFFFFC0322D7CAC39>110 D<01FC01F800FFFC07FE00FFFC1E1F00FF
FC383F8003FC607FC001FC607FC000FCC07FC000FCC07FC000FD803F8000FD801F0000FF000E00
00FF00000000FF00000000FF00000000FE00000000FE00000000FE00000000FE00000000FE0000
0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00
000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE
00000000FE00000000FE00000000FE00000000FE00000000FE00000000FF00000003FF800000FF
FFFF8000FFFFFF8000FFFFFF8000222D7DAC28>114 D<001FF8060000FFFF0E0003F0079E0007
8001FE000E00007E001C00003E003C00003E007800001E007800001E00F800001E00F800000E00
F800000E00FC00000E00FC00000E00FE00000E00FF000000007FC00000007FF80000003FFFE000
001FFFFE00000FFFFF800007FFFFE00003FFFFF00000FFFFFC00001FFFFE000001FFFE0000000F
FF00000001FF800000007F806000001FC0E000001FC0E000000FC0F000000FC0F0000007C0F000
0007C0F0000007C0F8000007C0F800000780FC00000780FC00000F00FE00000F00FF00001E00FF
80003C00F9E0007800F0F803E000E03FFFC000C007FC0000222F7DAD29>I<01FE00003FC000FF
FE001FFFC000FFFE001FFFC000FFFE001FFFC00003FE00007FC00001FE00003FC00000FE00001F
C00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE
00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC0
0000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00
001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC000
00FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00003FC00000FE0000
3FC00000FE00003FC00000FE00007FC000007E00007FC000007E00007FC000003F0000DFC00000
3F00019FE000001F00031FF000000F80061FFFC00007F01C1FFFC00001FFF81FFFC000003FE01F
E000322E7CAC39>117 D E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300dpi
TeXDict begin

%%EndSetup
%%Page: 0 1
0 0 bop 206 823 a Fq(F)-9 b(unnelW)g(eb)37 b(Hac)m(k)m(er's)d(Man)m(ual)603
1151 y Fp(Ross)21 b(N.)g(Williams)519 1343 y Fo(V1.0)e(for)h(F)-5
b(unnelW)g(eb)20 b(V3.0)725 1536 y(Ma)n(y)g(1992)p eop
%%Page: 1 2
1 1 bop 177 2597 1772 2 v 177 2675 a Fn(Cop)o(yrigh)o(t)384
2674 y(c)372 2675 y Fm(\015)14 b Fn(1992)e(Ross)i(N.)g(William)o(s.)177
2750 y(P)o(ermission)j(is)g(gran)o(ted)g(to)h(mak)o(e)d(and)j(distribute)g(v)
o(erbatim)d(copies)j(of)f(this)h(man)o(ual)c(pro)o(vided)k(that)f(the)177
2800 y(cop)o(yrigh)o(t)d(notice)g(and)g(this)g(p)q(ermission)e(notice)j(are)f
(preserv)o(ed)i(on)e(all)e(copies.)p 177 2835 V 1053 2940 a(1)p
eop
%%Page: 2 3
2 2 bop 1053 2940 a Fn(2)p eop
%%Page: 3 4
3 3 bop 177 397 a Fl(Con)m(ten)m(ts)177 679 y Fk(Preface)1592
b(5)177 794 y(Ac)o(kno)o(wledgemen)o(ts)1348 b(7)177 909 y(Presen)o(tation)12
b(Notes)1347 b(9)177 1024 y(1)38 b(F)l(unnelW)l(eb)14 b(Design)1268
b(11)239 1098 y Fn(1.1)42 b(Motiv)n(ation)12 b(for)i(F)m(unnelW)m(eb)k
Fj(:)j(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)
h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(11)239
1172 y(1.2)42 b(Inden)o(tation)30 b Fj(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(12)239
1245 y(1.3)42 b(Review)14 b(of)f(F)m(unnelW)m(eb)g(Syn)o(tax)28
b Fj(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(14)335
1319 y(1.3.1)46 b(Review)13 b(of)h(Macro)g(De\014nition)f(Syn)o(tax)k
Fj(:)j(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
g(:)h(:)f(:)g(:)61 b Fn(14)335 1393 y(1.3.2)46 b(Review)13
b(of)h(Macro)g(Call)e(Syn)o(tax)26 b Fj(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)
h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(16)335 1467 y(1.3.3)46 b(Review)13 b(of)h(P)o(arameterized)g(Macro)g
(Call)f(Syn)o(tax)42 b Fj(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)61 b Fn(16)239 1540 y(1.4)42 b(Do)q(cumen)o(t)13
b(Structuring)27 b Fj(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)61 b Fn(16)239 1614 y(1.5)42 b(Discussion)14 b(of)f(Some)g
(Miscellaneous)h(Issues)30 b Fj(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)
h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(18)239
1688 y(1.6)42 b(Automated)13 b(Regression)h(T)m(esting)38 b
Fj(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(18)239 1761
y(1.7)42 b(Command)11 b(Line)i(In)o(terface)j Fj(:)k(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(18)239 1835 y(1.8)42 b(File)13
b(Name)g(Managemen)o(t)31 b Fj(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)61 b Fn(19)335 1909 y(1.8.1)46 b(Filename)12 b(Extensions)24
b Fj(:)c(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(20)335
1982 y(1.8.2)46 b(Filename)12 b(Inheritance)k Fj(:)k(:)g(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)61 b Fn(20)335 2056 y(1.8.3)46 b(P)o(ortable)14
b(Structure)h(of)f(File)f(Names)20 b Fj(:)g(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(21)239 2130 y(1.9)42 b(Sp)q(ecifying)13 b(Constrain)o(ts)i(on)e(the)i
(Num)o(b)q(er)e(of)g(Instan)o(tiations)38 b Fj(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(22)239 2204 y(1.10)21
b(The)14 b(Relationship)f(Bet)o(w)o(een)i(Do)q(cumen)o(t)e(Structure)j(and)e
(Macro)g(Structure)19 b Fj(:)h(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(23)239 2277 y(1.11)21 b(Diagnostic)13 b(Messages)32 b
Fj(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(25)239 2351 y(1.12)21 b(Summary)31 b Fj(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(25)177 2466 y Fk(2)38 b(F)l(unnelW)l(eb)14 b(Implemen)o(tati)o(on)1077
b(27)239 2540 y Fn(2.1)42 b(In)o(tro)q(duction)13 b Fj(:)20
b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)61 b Fn(27)239 2614 y(2.2)42 b(History)14 b(of)f(F)m(unnelW)m(eb)g
(Implemen)o(tations)40 b Fj(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(27)239
2687 y(2.3)42 b(Wh)o(y)13 b(F)m(unnelW)m(eb)h(W)m(asn't)e(Used)j(to)f(W)m
(rite)g(Itself)35 b Fj(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(28)239 2761 y(2.4)42
b(Co)q(ding)13 b(St)o(yle)38 b Fj(:)21 b(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(28)239 2835
y(2.5)42 b(Use)15 b(of)e(Memory)27 b Fj(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(29)1053 2940
y(3)p eop
%%Page: 4 5
4 4 bop 239 42 a Fn(2.6)42 b(The)14 b(Heap)30 b Fj(:)20 b(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(29)239 116 y(2.7)42 b(The)14 b(Stac)o(k)24 b Fj(:)c(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(30)239 191 y(2.8)42 b(Static)14 b(V)m(ariables)k Fj(:)i(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b
Fn(30)239 266 y(2.9)42 b(Implemen)o(ting)11 b(T)m(ext)j(Inden)o(tation)25
b Fj(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(30)177
382 y Fk(3)38 b(F)l(unnelW)l(eb)14 b(Mo)q(di\014cation)1145
b(35)239 457 y Fn(3.1)42 b(In)o(tro)q(duction)13 b Fj(:)20
b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)61 b Fn(35)239 531 y(3.2)42 b(The)14 b(Danger)g(of)f(Mo)q(difying)g
(Languages)26 b Fj(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(35)239
606 y(3.3)42 b(Authorit)o(y)14 b(vs)g(User)h(Securit)o(y)43
b Fj(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b
Fn(36)239 681 y(3.4)42 b(What)13 b(I)h(W)m(an)o(t)f(to)h(Protect)25
b Fj(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(37)239 756 y(3.5)42 b(Mo)q(difying)12 b(the)j(Man)o(uals)c
Fj(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(38)239 830 y(3.6)42 b(Ho)o(w)13 b(Cop)o(yrigh)o(t)g(La)o(w)h(W)m(orks)37
b Fj(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b
Fn(38)239 905 y(3.7)42 b(Managemen)o(t)13 b(of)g(the)h(O\016cial)f(F)m
(unnelW)m(eb)f Fj(:)21 b(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(39)239 980
y(3.8)42 b(A)14 b(GNU)g(V)m(ersion?)29 b Fj(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)
g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(41)239 1054
y(3.9)42 b(Summary)31 b Fj(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(41)177 1171
y Fk(4)38 b(F)l(unnelW)l(eb)14 b(F)l(uture)1270 b(43)239 1245
y Fn(4.1)42 b(Do)q(cumen)o(tation)25 b Fj(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(43)239 1320
y(4.2)42 b(Command)11 b(Line)i(In)o(terface)j Fj(:)k(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(43)239 1395 y(4.3)42 b(Shell)13
b(In)o(terpreter)42 b Fj(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(43)239 1469 y(4.4)42 b(Language)13
b(Design)28 b Fj(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)61 b Fn(44)239 1544 y(4.5)42 b(Scanner/Mapp)q(er)34
b Fj(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)61 b Fn(44)239 1619 y(4.6)42 b(P)o(arser)29 b Fj(:)20 b(:)h(:)f(:)g(:)h(:)
f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(45)239 1694 y(4.7)42 b(Analyser)16 b Fj(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(45)239 1768 y(4.8)42 b(T)m(angle)21 b Fj(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(45)239 1843 y(4.9)42 b(W)m(ea)o(v)o(e)26 b Fj(:)20 b(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(45)239 1918 y(4.10)21 b(Lister)39 b Fj(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)
g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(46)239 1993 y(4.11)21 b(Diagnostics)32 b Fj(:)20 b(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(47)239 2067 y(4.12)21 b(Sp)q(eed)37 b Fj(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(47)239 2142 y(4.13)21 b(Correctness)32 b Fj(:)20 b(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(47)239 2217 y(4.14)21 b(T)m(est)14 b(Suite)25 b Fj(:)20
b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)61 b Fn(47)239 2291 y(4.15)21 b(Mac)o(hine-Sp)q(eci\014c)15
b(Changes)29 b Fj(:)21 b(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(48)239 2366 y(4.16)21 b(Summary)31 b Fj(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
b Fn(48)177 2482 y Fk(A)26 b(GNU)16 b(General)e(Public)f(License)h(V)l
(ersion)g(2)841 b(49)177 2599 y(B)28 b(References)1436 b(57)177
2715 y(Index)1605 b(57)1053 2940 y Fn(4)p eop
%%Page: 5 6
5 5 bop 177 399 a Fl(Preface)177 639 y Fn(This)15 b(man)o(ual)d(is)j(for)f
(hac)o(k)o(ers!)22 b(An)o(y)o(one)15 b(who)g(w)o(an)o(ts)f(to)h(bash,)g
(diddle,)f(frob,)g(grind,)h(mangle,)d(patc)o(h,)j(p)q(ok)o(e,)177
689 y(toggle,)e(t)o(widdle,)g(zap,)h(or)f(generally)h(hac)o(k)g(F)m(unnelW)m
(eb)f(should)h(at)g(least)g(tak)o(e)g(a)f(lo)q(ok)g(at)h(this)g(man)o(ual.)
177 764 y(This)g(do)q(cumen)o(t)f(has)h(b)q(een)h(created)h(to)e(serv)o(e)h
(t)o(w)o(o)e(purp)q(oses:)228 880 y(1.)20 b(T)m(o)12 b(act)h(as)f(a)h(rep)q
(ository)g(for)f(sp)q(eci\014c)j(design)d(and)h(implemen)o(tatio)o(n)d
(information)g(not)i(appropriate)h(to)281 930 y(b)q(e)h(included)g(in)g
(program)e(commen)o(ts.)228 1013 y(2.)20 b(T)m(o)13 b(guide)h(those)g(in)o
(terested)i(in)d(mo)q(difying)e(the)k(program.)177 1129 y(As)e(a)g(result,)g
(this)g(do)q(cumen)o(t)f(has)h(gro)o(wn)g(in)f(\014ts)i(and)e(starts.)19
b(This)13 b(man)o(ual)d(is)j(not)f(a)h(particularly)f(p)q(olished)177
1179 y(or)h(w)o(ell-balanced)e(do)q(cumen)o(t)h(but)h(it)f(should)h(b)q(e)g
(of)f(assistance)h(to)g(those)g(\(including)f(m)o(yself)s(\))f(in)o(v)o(olv)o
(ed)g(with)177 1229 y(mo)q(difying)g(F)m(unnelW)m(eb.)177 1328
y Fk(Ross)k(N.)i(Williams)177 1378 y(Adelaide,)d(Australia)177
1428 y(Ma)o(y)i(1992)1053 2940 y Fn(5)p eop
%%Page: 6 7
6 6 bop 1053 2940 a Fn(6)p eop
%%Page: 7 8
7 7 bop 177 399 a Fl(Ac)m(kno)m(wledgemen)m(ts)177 645 y Fn(Man)o(y)16
b(thanks)h(to)g Fk(Da)o(vid)h(Hulse)d Fn(\()p Fi(dave@cs.adelaide.e)o(du.au)o
Fn(\))f(for)j(translating)f(the)h(original)e(v)o(ersion)177
695 y(of)g(F)m(unnelW)m(eb)g(\(F)m(unnelW)m(eb)h(V1\))f(from)f(Ada)i(in)o(to)
f(C)g(and)h(getting)f(it)h(to)f(w)o(ork)g(on)h(Unix)f(and)h(a)f(PC.)g(The)177
744 y(C)i(co)q(de)h(written)f(b)o(y)g(Da)o(vid)e(\(F)m(unnelW)m(eb)i(V2\))f
(formed)g(the)h(basis)g(of)g(F)m(unnelW)m(eb)f(V3,)h(but)g(w)o(as)g(en)o
(tirely)177 794 y(rewritten)h(during)f(the)h(in)o(tensiv)o(e)f(re\014nemen)o
(t)h(and)e(feature-injection)i(p)q(erio)q(d)f(leading)f(up)h(to)g(this)h
(release)177 844 y(\(F)m(unnelW)m(eb)12 b(V3)g(is)f(ab)q(out)h(three)h(times)
e(the)i(size)g(of)e(F)m(unnelW)m(eb)g(V2\).)18 b(Nev)o(ertheless,)c(without)e
(this)g(imp)q(or-)177 894 y(tan)o(t)h(\014rst)i(translation)d(step,)i(I)g(w)o
(ould)e(probably)h(not)g(ha)o(v)o(e)g(found)g(the)h(motiv)n(ation)d(to)i(dev)
o(elop)g(F)m(unnelW)m(eb)177 944 y(to)h(its)g(presen)o(t)h(state.)177
1018 y(Thanks)f(go)e(to)h Fk(Simon)h(Hac)o(k)o(ett)e Fn(\()p
Fi(simon@internode.com)o(.au)p Fn(\))e(of)j(In)o(terno)q(de)h(Systems)f(Pt)o
(y)h(Ltd)f(for)g(the)177 1068 y(use)18 b(of)e(his)h(Sun,)h(Mac,)g(and)e(PC,)h
(for)g(assistance)h(in)f(p)q(orting)f(F)m(unnelW)m(eb)h(to)g(the)g(Sun)h(and)
e(PC,)h(and)g(for)177 1118 y(helpful)c(discussions.)177 1193
y(Thanks)j(go)g(to)f Fk(Jerem)o(y)i(Begg)f Fn(\()p Fi(jeremy@vsm.com.au)o
Fn(\))d(of)j(VSM)g(Soft)o(w)o(are)f(Services)j(for)d(the)i(use)g(of)e(his)177
1243 y(V)-5 b(AX,)14 b(and)g(for)g(assistance)h(with)e(the)i(VMS-sp)q
(eci\014c)g(co)q(de.)177 1317 y(Thanks)50 b(to)h Fk(Barry)57
b(Dwy)o(er)50 b Fn(\()p Fi(dwyer@cs.adelaid)o(e.edu)o(.au)p
Fn(\))d(and)j Fk(Roger)57 b(Brissenden)177 1367 y Fn(\()p Fi
(rjb@koala.harvard.e)o(du)p Fn(\))15 b(for)j(trying)g(out)g(F)m(unnelW)m(eb)g
(V)m(ersion)g(1)g(in)g(1987)f(and)h(pro)o(viding)f(v)n(aluable)177
1417 y(feedbac)o(k.)177 1492 y(Thanks)d(to)g(Donald)f(Kn)o(uth)h(for)f
(establishing)h(the)g(idea)g(of)f(literate)h(programming)d(in)i(the)i
(\014rst)f(place.)177 1591 y Fk(Ross)h(N.)i(Williams)177 1641
y(Adelaide,)d(Australia)177 1691 y(Ma)o(y)i(1992)1053 2940
y Fn(7)p eop
%%Page: 8 9
8 8 bop 1053 2940 a Fn(8)p eop
%%Page: 9 10
9 9 bop 177 399 a Fl(Presen)m(tation)42 b(Notes)177 639 y Fk(References:)e
Fn(All)24 b(references)29 b(are)c(set)i(in)e(b)q(old)f(and)i(are)f(cited)h
(in)f(square)h(brac)o(k)o(ets)h(in)e(the)h(form)177 689 y Fk([)p
Fj(<)p Fh(\014rstauthor)p Fj(><)p Fh(ye)n(ar)p Fj(>)p Fk(])p
Fn(.)19 b(All)13 b(references)j(cited)e(in)f(the)g(text)h(app)q(ear)g(in)f
(the)h(reference)h(list)e(and)g(the)h(index.)177 764 y Fk(Sp)q(ecial)d
(terms:)17 b Fn(New)12 b(or)f(imp)q(ortan)o(t)f(terminology)f(has)i(b)q(een)i
(set)f(in)f(b)q(old)g(face)h(and)f(app)q(ears)h(in)f(the)h(index.)177
839 y Fk(T)o(yp)q(esetting:)69 b Fn(This)41 b(do)q(cumen)o(t)f(w)o(as)g
(prepared)i(b)o(y)e(the)h(author)f(using)h(Andrew)g(T)m(rev)o(or-)177
888 y(ro)o(w's)29 b(\()p Fi(akt150@cscgpo.anu.e)o(du.au)o Fn(\))e(implemen)o
(tatio)o(n)g(\(OzT)m(eX\))j(of)f(the)h(T)1558 897 y(E)1581
888 y(X/L)1644 883 y Fg(a)1663 888 y Fn(T)1686 901 y(E)1709
888 y(X)p Fk([Kn)o(uth84])177 938 y([Lamp)q(ort86])13 b Fn(t)o(yp)q(esetting)
i(system)e(running)h(on)g(a)f(Macin)o(tosh-SE.)177 1013 y Fk(Graphics:)i
Fn(All)c(diagrams)e(ha)o(v)o(e)i(b)q(een)i(constructed)g(out)e(of)g(text)h
(using)f(the)h(L)1431 1008 y Fg(a)1450 1013 y Fn(T)1473 1025
y(E)1496 1013 y(X)f Fi(verbatim)f Fn(en)o(vironmen)o(t)177
1063 y(so)17 b(as)f(to)h(allo)o(w)e(this)h(do)q(cumen)o(t)g(to)h(b)q(e)g
(disseminated)e(electronically)i(and)f(prin)o(ted)h(using)f(L)1695
1058 y Fg(a)1714 1063 y Fn(T)1737 1075 y(E)1761 1063 y(X)g(without)177
1112 y(access)g(to)e(the)g(author's)g(dra)o(wing)f(to)q(ols.)177
1187 y Fk(Kno)o(wn)g(t)o(yp)q(esetting)d(problems:)k Fn(While)d(ev)o(ery)h
(attempt)f(has)h(b)q(een)g(made)e(to)i(giv)o(e)f(a)g(go)q(o)q(d)g(presen)o
(tation)177 1237 y(within)h(the)h(time)e(a)o(v)n(ailable,)f(some)i(shortcuts)
i(ha)o(v)o(e)e(had)g(to)g(b)q(e)h(tak)o(en.)18 b(In)13 b(particular,)f(the)h
(author)f(has)h(b)q(een)177 1287 y(unable)h(to)g(w)o(ork)f(out)h(ho)o(w)g(to)
f(get)h(L)754 1282 y Fg(a)773 1287 y Fn(T)796 1299 y(E)820
1287 y(X)g(to)g(suppress)h(blank)f(pages)g(at)f(the)i(start)f(of)g(c)o
(hapters.)1053 2940 y(9)p eop
%%Page: 10 11
10 10 bop 1042 2940 a Fn(10)p eop
%%Page: 11 12
11 11 bop 177 381 a Ff(Chapter)34 b(1)177 617 y Fl(F)-10 b(unnelW)g(eb)41
b(Design)177 861 y Fn(This)18 b(c)o(hapter)i(con)o(tains)e(notes)h(on)f(the)h
(design)f(of)g(F)m(unnelW)m(eb.)31 b(These)19 b(notes)g(w)o(ere)h(not)e
(created)i(\\from)177 911 y(scratc)o(h",)d(as)f(the)g(original)e(v)o(ersion)i
(of)f(F)m(unnelW)m(eb)g(\()p Fk(F)l(unnelW)l(eb)h(V1)p Fn(\))g(w)o(as)g
(designed)g(and)g(constructed)177 961 y(in)d(a)h(h)o(urry)f(late)h(in)f
(1986,)f(and)h(no)h(design)f(notes)i(w)o(ere)f(ev)o(er)h(recorded.)k(These)c
(notes)f(are)g(in)f(fact)h(the)g(result)177 1011 y(of)g(a)h(complete)f
(review)h(of)f(the)h(F)m(unnelW)m(eb)f(design)h(that)g(to)q(ok)f(place)h(in)f
(late)h(1991)e(as)i(part)g(of)f(the)h(pro)q(cess)177 1061 y(of)e(upgrading)h
(it)f(for)h(public)f(release.)177 1139 y(Throughout)f(the)h(design)g(pro)q
(cess)h(I)f(tried)g(to)f(stic)o(k)g(to)h(the)g(principles)g(of)e(simplicit)o
(y)f(and)i(clarit)o(y)m(.)17 b(As)c(a)f(rule,)177 1188 y(it)17
b(w)o(as)h(considered)h(more)e(imp)q(ortan)o(t)f(that)i(a)f(feature)h(b)q(e)h
(simple)d(and)h(not)h(allo)o(w)e(the)i(user)h(to)f(outsmart)177
1238 y(himself)d(than)h(it)g(w)o(as)g(for)g(the)h(feature)f(to)h(b)q(e)f
(particularly)g(crisp.)26 b(F)m(or)15 b(example,)g(the)i(F)m(unnelW)m(eb)f
(macro)177 1288 y(calling)d(syn)o(tax)g(is)h(not)g(as)g(crisp)g(as)g(the)h(C)
f(syn)o(tax,)f(but)h(is)g(more)f(visible.)177 1366 y(T)m(o)i(some)f(exten)o
(t)i(the)g(design)f(review)h(w)o(as)f(in\015uenced)i(b)o(y)e(the)h
(requiremen)o(ts)f(of)g(bac)o(kw)o(ard)g(compatibilit)o(y)l(.)177
1416 y(During)d(the)h(review)g(it)g(w)o(as)f(hard)h(not)f(to)h(think)f(ab)q
(out)g(all)g(the)h(source)h(\014les)e(in)h(F)m(unnelW)m(eb)f(V1)g(format)f
(that)177 1466 y(I)j(ha)o(v)o(e)f(written)i(o)o(v)o(er)f(the)g(y)o(ears)g
(that)g(w)o(ould)f(ha)o(v)o(e)h(to)f(b)q(e)i(con)o(v)o(erted)g(w)o(ere)f(I)g
(to)g(signi\014can)o(tly)e(deviate)j(from)177 1516 y(the)h(old)f(input)g
(language.)22 b(Luc)o(kily)14 b(it)h(turned)i(out)e(that)h(there)g(w)o(as)g
(little)e(clash)i(b)q(et)o(w)o(een)h(these)g(in)o(terests,)177
1565 y(and)g(the)h(resulting)f(design)g(is)g(b)q(oth)g(clean)g(and)g(do)q(es)
h(not)f(require)h(m)o(uc)o(h)e(con)o(v)o(ersion)h(of)f(old)h(source)h
(\014les.)177 1615 y(The)f(main)d(revision)i(is)h(in)f(the)h(do)q(cumen)o(t)e
(structuring)j(facilit)o(y)m(.)23 b(F)m(unnelW)m(eb)16 b(V1)g(had)g(just)h(t)
o(w)o(o)f(lev)o(els)g(of)177 1665 y(heading)d(indicated)g(b)o(y)g
Fi(@*@*)g Fn(\(for)g(ma)r(jor)e(headings\))j(and)f Fi(@*)g
Fn(\(for)g(minor)e(headings\).)18 b(This)13 b(sc)o(heme)h(\(whic)o(h)177
1715 y(w)o(as)i(copied)g(from)e(Kn)o(uth's)i(W)m(eb\))f(has)h(b)q(een)h
(replaced)g(b)o(y)e(a)h(hierarc)o(hical)f(sc)o(heme)h(of)f(\014v)o(e)h
(heading)g(lev)o(els)177 1765 y(lev)o(els)e(\()p Fi(@A)p Fj(:)7
b(:)g(:)n Fi(@E)p Fn(\).)177 1843 y(This)18 b(c)o(hapter)h(is)e(rather)i
(unstructured,)i(acting)c(as)h(it)g(has,)g(mainly)e(as)i(a)f(dumping)f
(ground)i(for)f(random)177 1893 y(ideas)d(ab)q(out)g(F)m(unnelW)m(eb.)177
2066 y Fe(1.1)70 b(Motiv)l(ation)22 b(for)i(F)-6 b(unnelW)g(eb)177
2186 y Fn(During)16 b(1986,)f(I)h(w)o(as)g(exp)q(osed)i(to)e(Donald)f(Kn)o
(uth's)i Fi(WEB)e Fn(literate)i(programmi)o(ng)c(system)j(in)g(the)h(form)d
(of)177 2236 y(Jon)j(Ben)o(tley's)h Fh(Pr)n(o)n(gr)n(amming)f(Pe)n(arls)f
Fn(column)f(in)h Fh(Communic)n(ations)i(of)g(the)g(A)o(CM)7
b Fk([Ben)o(tley86])p Fn(.)1825 2221 y Fd(1)1868 2236 y Fn(This)177
2286 y(prompted)17 b(me)f(to)h(obtain)g(a)g(cop)o(y)g(of)g(the)h(rep)q(ort)g
(on)f(the)h(W)m(eb)f(system)p Fk([Kn)o(uth83])f Fn(and)h(to)g(try)h(out)f
(the)177 2336 y(program)12 b(whic)o(h)i(had)g(b)q(een)h(installed)e(on)h(the)
g(lo)q(cal)f(V)m(axen.)177 2414 y(W)m(eb)h(w)o(as)f(the)i(b)q(est)f(system)g
(that)g(I)f(had)h(seen)h(for)e(pro)q(ducing)h(prin)o(ted)g(and)g(online,)f
(inline)f(do)q(cumen)o(tation.)177 2464 y(T)m(o)k(me)g(the)i(most)e
(extraordinary)h(asp)q(ect)h(of)f(the)g(system)g(w)o(as)g(its)g(success)j
(despite)e(the)f(fact)g(that)g(it)g(had)177 2514 y(b)q(een)h(built)e(in)o(to)
h(the)g(horribly)g(an)o(tiquated)f(\014le/batc)o(h)h(pro)q(cessing)h(systems)
f(that)g(w)o(e)h(all)d(kno)o(w)i(and)f(lo)o(v)o(e)177 2563
y(\(and)f(use\).)20 b(I)15 b(had)f(imagined)e(sophisticated)j(do)q(cumen)o
(tation)f(systems)g(b)q(efore)h(this)g(time,)e(but)i(had)f(alw)o(a)o(ys)177
2613 y(assumed)i(that)h(they)g(w)o(ould)f(b)q(e)i(parts)f(of)f(complex)f
(programming)e(en)o(vironmen)o(ts.)26 b(Kn)o(uth)17 b(sho)o(w)o(ed)g(that,)
177 2663 y(to)f(some)e(exten)o(t,)j(it)e(can)h(b)q(e)g(done)g(using)f(1960s)g
(soft)o(w)o(are)h(tec)o(hnology)f(\(excluding)h(the)g(1980s)f(t)o(yp)q
(esetting)177 2713 y(tec)o(hnology\).)j(This)c(w)o(as)g(exciting.)p
177 2757 709 2 v 223 2783 a Fc(1)241 2795 y Fb(As)g(it)g(happ)q(ens,)e(this)h
(w)o(as)h(somewhat)f(of)g(a)h(luc)o(ky)e(encoun)o(ter.)20 b(I)14
b(had)f(only)g(just)g(joined)f(the)h(A)o(CM)i(and)e(the)h(Ma)o(y)f(1986)177
2835 y(issue)e(of)g(CA)o(CM)j(in)d(whic)o(h)g(the)f(column)g(app)q(eared)f(w)
o(as)j(the)e(\014rst)h(issue)g(I)g(receiv)o(ed.)1042 2940 y
Fn(11)p eop
%%Page: 12 13
12 12 bop 177 42 a Fn(The)16 b(W)m(eb)g(system)f(w)o(as)h(en)o(ticing)f(and)h
(promising)d(but)j(to)g(me)e(su\013ered)k(from)c(man)o(y)g(dra)o(wbac)o(ks,)i
(man)o(y)d(of)177 91 y(whic)o(h)j(Kn)o(uth)g(had)g(promoted)f(as)h(adv)n(an)o
(tages.)23 b(The)17 b(follo)o(wing)c(highly)i(sub)r(jectiv)o(e)i(list)e(of)g
(disadv)n(an)o(tages)177 141 y(formed)e(a)g(springb)q(oard)h(for)g(the)g
(construction)h(of)f(F)m(unnelW)m(eb.)239 247 y Fm(\017)21
b Fn(W)m(eb)13 b(can)i(only)e(pro)q(cess)i(P)o(ascal)f(programs.)239
327 y Fm(\017)21 b Fn(W)m(eb)16 b(can)h(pro)q(duce)h(only)e(one)h(output)f
(\014le.)27 b(In)16 b(man)o(y)f(instances)j(it)e(is)g(desirable)h(to)g
(generate)h(more)281 377 y(than)g(one)h(output)g(\014le.)31
b(F)m(or)18 b(example,)g(when)h(programming)c(in)j(Ada,)h(it)f(is)g
(desirable)h(to)f(write)h(a)281 427 y(pac)o(k)n(age)13 b(sp)q(eci\014cation)i
(and)f(a)f(pac)o(k)n(age)h(b)q(o)q(dy)g(together)h(in)e(the)i(same)e(\014le.)
239 507 y Fm(\017)21 b Fn(W)m(eb)15 b(enforces)h(Kn)o(uth's)f(individual)e
(st)o(yle)j(of)e(inden)o(tation.)21 b(W)m(eb)15 b(supplies)g(commands)e(to)i
(o)o(v)o(er-ride)281 557 y(the)h(automatic)e(inden)o(tation)h(but)g(it)g(is)h
(an)f(uphill)f(battle)i(and)f(the)h(co)q(de)h(b)q(ecomes)e(clogged)h(up)f
(with)281 606 y(format)d(directiv)o(es.)239 686 y Fm(\017)21
b Fn(W)m(eb)f(do)q(es)i(not)f(cater)g(for)g(non-standard)g(P)o(ascal)f
(programs.)38 b(In)21 b(particular,)g(all)f(iden)o(ti\014ers)h(are)281
736 y(truncated)15 b(to)f(ab)q(out)g(eigh)o(t)f(c)o(haracters.)239
816 y Fm(\017)21 b Fn(W)m(eb)13 b(formats)g(the)h(program)f(output)h(\014le)g
(in)o(to)f(a)g(form)g(that)g(is)h(unreadable)g(to)g(h)o(umans.)239
896 y Fm(\017)21 b Fn(W)m(eb)11 b(do)q(es)i(not)f(pro)o(vide)g(an)f(include)h
(facilit)o(y)m(.)j(This)d(w)o(as)g(considered)h(a)f(feature)g(essen)o(tial)h
(for)e(supp)q(ort-)281 946 y(ing)i(macro)g(libraries.)239 1026
y Fm(\017)21 b Fn(W)m(eb)13 b(pro)o(vides)h(macros)f(with)g(at)h(most)e(one)i
(parameter.)k(Kn)o(uth)c(describ)q(es)i(a)d(hac)o(k)h(that)g(can)g(extract)
281 1076 y(a)d(m)o(ultiple)f(parameter)h(macro)g(facilit)o(y)f(from)g(a)h
(single)g(parameter)h(one,)g(but)g(it)f(is)g(hardly)h(satisfactory)m(.)239
1156 y Fm(\017)21 b Fn(W)m(eb)13 b(do)q(es)i(not)f(pro)o(vide)g
(conditionals.)177 1262 y(Most)19 b(of)e(these)j(ob)r(jections)f(b)q(oiled)e
(do)o(wn)h(to)g(t)o(w)o(o)g(p)q(oin)o(ts:)27 b(that)18 b(W)m(eb)g(is)g(far)g
(to)q(o)g(sp)q(ecialized,)i(and)e(that)177 1312 y(Kn)o(uth's)h(\\Occam's)f
(Razor")h(had)g(cut)g(to)q(o)g(far.)33 b(What)18 b(I)h(w)o(an)o(ted)g(w)o(as)
g(a)f(do)q(cumen)o(tation)g(system)h(that)177 1362 y(emplo)o(y)o(ed)11
b(all)g(the)i(same)f(principles)h(as)f(W)m(eb)g(but)h(w)o(as)g(far)f(more)f
(general.)18 b(The)13 b(result)g(w)o(as)f(F)m(unnelW)m(eb)g(V1,)177
1412 y(whic)o(h)i(can)g(pro)q(cess)i(programs)c(in)h(an)o(y)h(language)f(or)h
(an)o(y)f(com)o(bination)e(of)i(languages)h(at)f(the)i(cost)f(of)f(t)o(yp)q
(e-)177 1461 y(setting)h(the)h(text)f(in)g Fi(tt)21 b(font)p
Fn(.)177 1533 y(Originally)m(,)13 b(it)i(w)o(as)g(in)o(tended)h(that)f(F)m
(unnelW)m(eb)f(w)o(ould)h(b)q(e)h(t)o(yp)q(esetter)h(indep)q(enden)o(t)g(as)e
(w)o(ell)f(as)i(language)177 1583 y(indep)q(enden)o(t.)23 b(It)15
b(w)o(as)f(in)o(tended)i(that)f(a)f(format)f(\014le)i(consisting)g(of)g(a)f
(set)i(of)e(pro)q(ductions)i(describing)f(ho)o(w)177 1633 y(the)h(do)q(cumen)
o(t)e(\014le)i(w)o(as)f(to)f(b)q(e)i(formatted)e(w)o(ould)g(b)q(e)i(handed)g
(to)e(F)m(unnelW)m(eb)h(along)f(with)h(the)g(input)g(\014le.)177
1683 y(In)k(the)g(end,)g(time)e(pressures)k(forced)e(me)f(to)g(tak)o(e)g(the)
h(bac)o(k)g(do)q(or)f(and)g(hac)o(k)h(up)f(a)g(T)1627 1691
y(E)1650 1683 y(X)h(do)q(cumen)o(t)f(\014le)177 1732 y(generator.)h(This)14
b(compromise)d(has)j(found)f(its)h(w)o(a)o(y)f(in)o(to)g(F)m(unnelW)m(eb)g
(V3.0)g(whic)o(h)g(is)h(still)e(relian)o(t)i(on)f(T)1883 1741
y(E)1906 1732 y(X,)177 1782 y(although)f(V3.0)g(at)h(least)g(encourages)h
(input)f(\014les)g(to)g(b)q(e)g(t)o(yp)q(esetter)i(indep)q(enden)o(t.)k(It)13
b(is)g(hop)q(ed)g(that)g(future)177 1832 y(v)o(ersions)i(of)e(F)m(unnelW)m
(eb)g(will)g(include)h(more)e(sophisticated)j(t)o(yp)q(esetting)g
(facilities.)177 1990 y Fe(1.2)70 b(Inden)n(tation)177 2103
y Fn(A)12 b(macro)f(call)h(that)g(do)q(es)h(not)f(app)q(ear)h(at)f(the)h
(left)e(margin)g(is)h(called)g(an)f Fk(inden)o(ted)g(macro)i(call)f
Fn(and)g(seems)177 2153 y(to)f(lead)h(to)f(three)h(di\013eren)o(t)h
(alternativ)o(es)e(for)g(its)h(expansion:)k Fk(no)d(inden)o(tat)o(ion)o
Fn(,)8 b Fk(blank)k(inden)o(tati)o(on)p Fn(,)c(and)177 2202
y Fk(text)15 b(inden)o(tati)o(on)p Fn(.)g(Here)g(are)f(examples)f(of)g(eac)o
(h)i(kind)e(of)g(inden)o(tation.)18 b(First)c(the)g(example)f(problem.)177
2308 y Fi(@$@<Sloth@>==@{@-)177 2358 y(Aardvark)177 2408 y(Walrus@})177
2508 y(@O@<Output@>==@{@-)177 2557 y(Zebra@<Sloth@>)177 2607
y(Giraffe)177 2657 y(@})177 2763 y Fn(There)i(are)g(three)g(w)o(a)o(ys)e
(that)h(the)h(second)g(line)e(of)g(the)i Fi(Sloth)e Fn(macro)f(can)i(b)q(e)h
(inden)o(ted.)177 2835 y Fk(No)h(inden)o(tati)o(on:)1042 2940
y Fn(12)p eop
%%Page: 13 14
13 13 bop 286 42 a Fi(ZebraAardvark)286 91 y(Walrus)286 141
y(Giraffe)177 252 y Fk(Blank)15 b(inden)o(tati)o(on:)286 362
y Fi(ZebraAardvark)395 412 y(Walrus)286 462 y(Giraffe)177 572
y Fk(T)l(ext)h(inden)o(tati)o(on)o(:)286 683 y Fi(ZebraAardvark)286
733 y(ZebraWalrus)286 783 y(Giraffe)177 893 y Fn(No)g(inden)o(tation)f(is)h
(useful)g(where)i(the)e(user)h(wishes)g(to)f(deal)g(with)g(the)g(output)g
(stream)g(as)g(a)g(pure)h(output)177 943 y(stream.)g(Blank)11
b(inden)o(tation)g(is)g(useful)g(when)h(the)g(user)h(wishes)f(to)f(generate)h
(inden)o(ted)g(computer)f(programs.)177 993 y(T)m(ext)k(inden)o(tation)f(is)g
(useful)h(where)h(the)f(user)h(wishes)f(to)g(pre\014x)g(eac)o(h)h(line)e(of)g
(an)g(en)o(tire)i(macro)d(in)o(v)o(o)q(cation)177 1043 y(with)c(a)h(string.)
16 b(This)10 b(can)f(b)q(e)i(useful)e(for)g(commen)o(ting)e(out)j(co)q(de)g
(\(e.g.)f(in)g(Ada)g(using)h Fi(--)p Fn(\),)f(and)h(for)f(prep)q(ending)177
1092 y(things)14 b(lik)o(e)f(a)h(dollar)e(sign)i(at)g(the)g(start)h(of)e(eac)
o(h)h(line)g(an)f(a)h(V)-5 b(AX)15 b(VMS)f(DCL)f(script)i(command)c(\014le.)
177 1168 y(F)m(unnelW)m(eb)i(V1)h(pro)o(vided)g(a)f(c)o(hoice)i(of)e(no)h
(inden)o(tation)f(or)h(blank)f(inden)o(tation.)k(The)d(c)o(hoice)h(w)o(as)f
(made)e(in)177 1218 y(the)j(command)c(line)i(and)h(could)g(not)f(b)q(e)i(o)o
(v)o(erridden.)177 1294 y(The)f(design)h(questions)f(are)g(as)g(follo)o(ws:)
228 1414 y(1.)20 b(Whic)o(h)13 b(of)h(the)g(three)h(kinds)f(of)f(inden)o
(tation)h(should)f(F)m(unnelW)m(eb)h(supp)q(ort?)228 1499 y(2.)20
b(What)13 b(should)h(b)q(e)h(the)f(gran)o(ularit)o(y)f(of)g(sw)o(apping)g(b)q
(et)o(w)o(een)i(inden)o(tation)f(mo)q(des?)228 1585 y(3.)20
b(Are)15 b(particular)e(inden)o(tation)h(mo)q(des)f(dangerous?)228
1671 y(4.)20 b(Is)14 b(the)h(presence)h(of)d(particular)h(com)o(binations)e
(of)h(inden)o(tation)g(mo)q(des)g(confusing)h(to)g(the)g(user?)228
1756 y(5.)20 b(Ho)o(w)13 b(and)h(when)h(should)e(the)i(c)o(hoice)f(of)f
(inden)o(tation)h(b)q(e)g(sp)q(eci\014ed?)177 1876 y(All)j(sorts)h(of)f(sc)o
(hemes)g(w)o(ere)i(considered,)g(including)d(a)h(\014nely)g(grained)g(system)
h(in)e(whic)o(h)i(the)g(user)g(could)177 1926 y(sp)q(ecify)13
b(at)g(the)g(p)q(oin)o(t)f(of)g(call)g(whic)o(h)g(inden)o(tation)g(mo)q(de)f
(should)i(b)q(e)g(used)g(for)g(the)g(called)f(macro)f(expansion.)177
2002 y(After)f(a)f(lot)g(of)g(though)o(t,)g(the)i(dominan)o(t)c(factor)i
(that)h(should)f(a\013ect)h(the)g(design)g(w)o(as)f(decided)h(to)g(b)q(e)g
(the)g Fh(clarity)177 2051 y Fn(in)k(the)g(user's)h(mind)d(of)h(the)i(inden)o
(tation)e(facilit)o(y)f(and)i(the)g Fh(danger)h Fn(asso)q(ciated)f(with)g
(misunderstanding)f(it.)177 2101 y(Here)f(are)f(t)o(w)o(o)f(examples)f(that)i
(sho)o(w)f(ho)o(w)g(easily)g(a)h(confusion)f(or)g(misunderstanding)g(of)g
(the)h(inden)o(ting)f(b)q(eing)177 2151 y(used)15 b(can)f(cause)h(danger.)j
(The)d(\014rst)f(example)f(sho)o(ws)h(ho)o(w)g(blank)f(or)h(no)f(inden)o
(tation)g(migh)o(t)f(b)q(e)j(misused.)177 2271 y Fi(--Misuse)20
b(of)i(blank)e(\(and)h(no\))h(indentation.)177 2320 y(--@<Sloth@>)177
2440 y Fn(Here)d(the)g(user)g(has)g(assumed)e(that)h(text)h(inden)o(tation)e
(is)h(in)g(action)g(and)g(has)g(placed)g(an)g(Ada)g(commen)o(t)177
2490 y(sym)o(b)q(ol)12 b(\\)p Fi(--)p Fn(")g(b)q(efore)i(the)g(in)o(v)o(o)q
(cation)e(of)h(the)h(macro)e Fi(@<Sloth@>)f Fn(in)i(the)h(hop)q(e)g(that)f
(the)h(en)o(tire)g(text)g(of)f(the)177 2539 y(macro)d(w)o(ould)h(b)q(e)g
(pre\014xed)i(b)o(y)e(\\)p Fi(--)p Fn(".)16 b(The)c(result)g(could)f(b)q(e)h
(passed)g(b)o(y)f(the)h(compiler)d(whic)o(h)j(w)o(ould)e(activ)n(ate)177
2589 y(all)j(but)h(the)g(\014rst)h(statemen)o(t)f(in)f(the)i(expansion)f(of)f
(macro)g Fi(@<Sloth@>)p Fn(.)177 2665 y(The)h(next)h(example)d(demonstrates)j
(ho)o(w)e(text)i(inden)o(tation)e(could)h(b)q(e)g(misused.)177
2785 y Fi(--Misuse)20 b(of)i(text)f(indentation:)177 2835 y(a++;)g(@<Sloth@>)
1042 2940 y Fn(13)p eop
%%Page: 14 15
14 14 bop 177 42 a Fn(Here)15 b(the)g(user)g(has)f(placed)g(the)h(call)e(to)h
Fi(@<Sloth@>)e Fn(after)i(the)h(incremen)o(ting)e(of)g(v)n(ariable)g
Fi(a)p Fn(.)18 b(The)c(result)h(is)177 91 y(that)e(there)h(is)e(a)h(go)q(o)q
(d)f(c)o(hance)i(that)e(the)i(\\)p Fi(a++;)p Fn(")d(prep)q(ended)k(to)d(eac)o
(h)i(line)e(of)g(the)h(expansion)g(of)f Fi(@<Sloth@>)177 141
y Fn(will)h(b)q(e)h(passed)h(b)o(y)f(the)g(compiler)f(and)g(will)g(cause)i
Fi(a)e Fn(to)h(b)q(e)h(o)o(v)o(erincremen)o(ted.)177 216 y(These)h(examples)e
(are)h(not)g(to)f(b)q(e)i(laughed)e(at.)20 b(It)15 b(is)g(p)q(ossible)f(that)
h(F)m(unnelW)m(eb)f(will)g(b)q(e)h(used)h(widely)m(,)d(and)177
266 y(the)i(problems)e(ab)q(o)o(v)o(e)h(ma)o(y)f(cause)i(problems)e(in)h
(critical)g(systems.)20 b(The)14 b(examples)g(ab)q(o)o(v)o(e)g(are)h
(particularly)177 316 y(scary)h(b)q(ecause)g(they)g(are)f(re\015exiv)o(e.)22
b(One)15 b(cannot)g(simply)e(pin)h(the)i(blame)d(on)i(one)g(particular)f
(inden)o(tation)177 366 y(form.)j(A)d(little)g(though)o(t)f(rev)o(eals)i
(that)f(the)h(greatest)g(danger)g(lies)f(in)f Fh(c)n(onfusion)i
Fn(in)f(the)g(user's)i(mind.)g(If)e(the)177 416 y(user)h(is)f(confused)h(b)q
(et)o(w)o(een)g(text)f(or)g(blank)f(inden)o(ting,)g(problems)g(will)g(arise.)
177 491 y(There)20 b(seem)e(to)h(b)q(e)g(t)o(w)o(o)f(w)o(a)o(ys)g(to)g(solv)o
(e)h(the)g(problem.)31 b(The)19 b(\014rst)g(is)f(to)h(ban)f(all)f(macro)h
(calls)g(that)g(are)177 541 y(preceded)f(b)o(y)e(non-blank)f(text.)23
b(This)15 b(is)g(not)g(a)f(go)q(o)q(d)h(option)f(b)q(ecause)j(there)g(are)e
(so)g(man)o(y)e(cases)k(where)f(it)177 591 y(is)g(desirable)g(to)f(expand)h
(more)f(than)g(one)h(single)g(line)f(macros)g(on)g(the)h(same)f(line.)23
b(A)16 b(second)g(option)f(is)h(to)177 640 y(eliminate)e(one)i(of)g(the)g(t)o
(w)o(o)g(forms)e(so)i(as)g(to)g(reduce)i(the)e(p)q(oten)o(tial)g(for)f(am)o
(biguit)o(y)e(in)j(the)g(user's)h(mind.)23 b(I)177 690 y(c)o(ho)q(ose)17
b(the)g(latter)f(option.)24 b(Of)16 b(the)g(t)o(w)o(o)g(forms,)f(the)h(clear)
h(c)o(hoice)f(for)g(elimination)d(is)j(text)h(inden)o(ting)e(for)177
740 y(the)g(follo)o(wing)c(reasons:)228 858 y(1.)20 b(It)14
b(actually)f(in)o(tro)q(duces)i(extra)f(text)h(whic)o(h)e(giv)o(es)h(it)g(an)
f(a)h(priori)f(p)q(oten)o(tial)g(for)h(problems.)228 942 y(2.)20
b(It)14 b(is)g(harder)g(to)g(implemen)o(t)d(and)j(w)o(ould)f(slo)o(w)g(do)o
(wn)h(T)m(angle.)228 1026 y(3.)20 b(It)14 b(w)o(ould)f(not)h(b)q(e)g
(compatible)e(with)i(F)m(unnelW)m(eb)f(V1)h(whic)o(h)g(uses)h(blank)e(inden)o
(tation.)177 1144 y(The)18 b(only)f(other)h(decision)g(is)f(the)i(lev)o(el)e
(of)g(gran)o(ularit)o(y)f(of)h(c)o(hoice)h(b)q(et)o(w)o(een)h(the)f
(remaining)e(options:)25 b(no)177 1194 y(inden)o(tation)11
b(and)h(blank)f(inden)o(tation.)17 b(F)m(unnelW)m(eb)11 b(V1)h(allo)o(w)o(ed)
e(this)i(c)o(hoice)g(to)g(b)q(e)g(made)f(in)g(the)i(command)177
1243 y(line.)27 b(In)17 b(retrosp)q(ect,)j(this)d(w)o(as)g(bad)g(design)g(b)q
(ecause)i(the)f(user)g(migh)o(t)d(un)o(wittingly)g(co)q(de)j(certain)g(macro)
177 1293 y(calls)12 b(relying)h(on)f(one)h(or)g(the)g(other)h(mo)q(de.)i(A)d
(b)q(etter)h(system)f(is)f(to)h(allo)o(w)e(the)i(user)h(to)f(sp)q(ecify)g
(whic)o(h)g(mo)q(de)177 1343 y(in)h(the)g(input)g(\014le)g(itself.)j(This)d
(has)g(b)q(een)h(done)f(in)g(F)m(unnelW)m(eb)f(V3.)177 1418
y(Again,)20 b(to)g(a)o(v)o(oid)f(confusion,)i(it)f(seems)g(sensible)h(to)f
(allo)o(w)e(the)j(user)g(only)e(one)h(inden)o(tation)g(mo)q(de)f(p)q(er)177
1468 y(F)m(unnelW)m(eb)14 b(input)h(\014le.)20 b(In)15 b(most)e(cases,)j(the)
g(user)f(will)f(b)q(e)h(happ)o(y)f(with)h(blank)f(inden)o(tation)g(\(the)h
(default\))177 1518 y(and)f(there)h(will)d(b)q(e)j(no)f(need)h(for)e(c)o
(hange)h(an)o(yw)o(a)o(y)m(.)177 1593 y Fk(Decision:)j Fn(Implemen)o(t)12
b(only)i(\\no)g(inden)o(tation")f(and)h(\\blank)g(inden)o(tation".)k(Mak)o(e)
c(the)h(c)o(hoice)g(of)f(inden-)177 1643 y(tation)j(a)g(static)h(attribute)g
(of)f(a)g(particular)h(F)m(unnelW)m(eb)f(run)g(that)h(is)f(sp)q(eci\014ed)i
(in)e(the)i(input)e(\014le.)29 b(This)177 1693 y(solution)13
b(is)h(the)h(same)e(as)h(F)m(unnelW)m(eb)f(V1)h(except)h(that)f(the)h(c)o
(hoice)f(has)g(b)q(een)h(mo)o(v)o(ed)e(from)f(the)j(command)177
1743 y(line)f(to)f(the)i(input)e(\014le.)177 1907 y Fe(1.3)70
b(Review)20 b(of)k(F)-6 b(unnelW)g(eb)22 b(Syn)n(tax)177 2023
y Fn(One)12 b(of)e(the)i(distressing)g(asp)q(ects)h(of)d(F)m(unnelW)m(eb)h
(V1)f(w)o(as)h(its)g(clumsy)f(macro)g(de\014nition)h(and)g(calling)e(syn)o
(tax.)177 2073 y(Compared)14 b(to)h(\(sa)o(y\))g(the)g(C)g(prepro)q(cessor,)i
(F)m(unnelW)m(eb's)d(macro)g(call)g(syn)o(tax)h(is)g(lik)o(e)f(a)g(freigh)o
(t)h(train)g(in)f(a)177 2123 y(c)o(hina)i(sho)o(w.)24 b(During)15
b(the)h(F)m(unnelW)m(eb)f(redesign,)i(a)f(complete)f(review)h(of)g(this)f
(syn)o(tax)h(to)q(ok)g(place)g(to)g(try)177 2173 y(to)f(neaten)h(it)f(up.)22
b(Surprisingly)m(,)14 b(the)i(V1)f(syn)o(tax)g(surviv)o(ed)h(unscathed)g
(with)f(the)h(exception)g(that)f(\\)p Fi(==)p Fn(")f(in)177
2223 y(macro)i(de\014nitions)i(w)o(as)f(made)g(optional.)27
b(The)18 b(surviv)n(al)f(of)g(this)g(clumsy)g(syn)o(tax)g(w)o(as)h(a)f(pro)q
(duct)h(of)f(the)177 2272 y(design)d(goal)f(of)g(making)f(ev)o(erything)i
(simple,)e(explicit,)h(and)g(not)h(sub)r(ject)i(to)d(subtle)i(errors.)177
2415 y Fa(1.3.1)55 b(Review)18 b(of)g(Macro)h(De\014nition)f(Syn)n(tax)177
2518 y Fn(F)m(unnelW)m(eb)i(V1)h(used)g(a)f(macro)g(de\014nition)g(syn)o(tax)
h(that)f(resulted)i(in)e(macro)g(de\014nitions)g(suc)o(h)h(as)g(the)177
2568 y(follo)o(wing.)177 2685 y Fi(@$@<Put)g(out)g(the)g(cat@>==@{@-)177
2735 y(Open)g(the)g(door)177 2785 y(Say)g(out)177 2835 y(Close)g(the)g
(door@})1042 2940 y Fn(14)p eop
%%Page: 15 16
15 15 bop 177 42 a Fn(This)16 b(is)f(messy)m(,)g(but)h(I)g(couldn't)f(think)h
(of)f(an)o(ything)g(b)q(etter)i(at)e(the)i(time.)22 b(The)16
b Fi(@$)f Fn(is)h(necessary)i(to)d(cue)i(a)177 91 y(de\014nition.)k(Without)
14 b(it,)h(the)g(de\014nition)g(migh)o(t)e(someho)o(w)g(b)q(e)j(mistak)o(en)e
(for)g(an)h(in)o(v)o(o)q(cation.)20 b(The)15 b Fi(@<)g Fn(and)177
141 y Fi(@>)e Fn(delimit)d(the)k(name.)j(The)c Fi(@)p Fm(f)g
Fn(and)f Fi(@)p Fm(g)h Fn(delimit)e(the)i(text.)19 b(The)13
b Fi(@-)g Fn(is)f(a)h(pro)q(duct)h(of)e(the)i(rule)f(\\exactly)g(the)177
191 y(text)i(b)q(et)o(w)o(een)g(the)f Fi(@)p Fm(f)g Fn(and)g
Fi(@)p Fm(g)p Fn(".)177 260 y(The)g(only)f(real)h(target)g(is)g(the)g(\\)p
Fi(+=)p Fn(")f(and)g(\\)p Fi(==)p Fn(")g(whic)o(h)h(really)f(break)h(all)f
(the)h(rules)g(and)g(should)f(b)q(e)i(c)o(hanged.)177 310 y(Unfortunately)f
(I)h(couldn't)e(think)h(of)g(an)o(ything)f(to)h(c)o(hange)h(them)e(to.)19
b(If)14 b(there)i(w)o(as)e(no)g Fi(+=)g Fn(mec)o(hanism,)e(w)o(e)177
360 y(could)i(use:)177 458 y Fi(@$@<Put)21 b(out)g(the)g(cat@>@{)177
507 y(Open)g(the)g(door)177 557 y(Say)g(out)177 607 y(Close)g(the)g(door@})
177 705 y Fn(In)14 b(fact,)f(eliminating)d Fi(+=)j Fn(is)h(think)n(able)e(b)q
(ecause)k(it)d(do)q(es)h(not)g(app)q(ear)g(in)f(man)o(y)e(of)i(m)o(y)f
(existing)h(F)m(unnelW)m(eb)177 754 y(source)i(\014les.)k(This)14
b(indicates)g(at)f(least)i(that)e(it)h(w)o(as)g(not)g(needed)h(m)o(uc)o(h)e
(b)o(y)g(m)o(yself.)177 824 y(A)h(minim)o(ali)o(st)e(construct)j(could)f(b)q
(e)177 921 y Fi(@<Put)21 b(out)g(the)g(cat@>)177 971 y(Open)g(the)g(door)177
1021 y(Say)g(out)177 1071 y(Close)g(the)g(door@})177 1168 y
Fn(but)14 b(this)g(is)g(to)q(o)g(dangerous)g(for)g(m)o(y)e(tastes.)177
1238 y Fk(Decision:)j Fn(F)m(or)c(compatibili)o(t)o(y)d(reasons,)k(retain)g
(the)f(old)g Fi(+=)f Fn(and)h Fi(==)g Fn(constructs,)i(but)e(mak)o(e)e(them)i
(optional.)177 1287 y(The)j(new)h(syn)o(tax)f(for)f(de\014ning)h(macros)f
(is:)177 1385 y Fi(@$@<Put)21 b(out)g(the)g(cat@>@{)177 1435
y(Open)g(the)g(door)177 1485 y(Say)g(out)177 1534 y(Close)g(the)g(door@})177
1632 y Fn(Next)12 b(w)o(e)f(turn)h(to)f(parameterized)g(macro)f
(de\014nitions.)17 b(A)11 b(con)o(v)o(en)o(tional)f(F)m(unnelW)m(eb)h
(parameterized)g(macro)177 1682 y(de\014nition)j(lo)q(oks)f(lik)o(e)g(this:)
177 1779 y Fi(@$@<Put)21 b(out)g(the)g(cat@>@\(@3@\)==@{@-)177
1829 y(Open)g(the)g(door)177 1879 y(Say)g(out)177 1929 y(Close)g(the)g
(door@})177 2026 y Fn(whic)o(h)14 b(is)g(a)f(bit)h(messy)m(.)j(The)d(natural)
g(alternativ)o(e)f(is)h(ev)o(en)h(w)o(orse:)177 2124 y Fi(@$@<Put)21
b(out)g(the)g(cat@>@\(@1@,@2@,@3)o(@\)==@)o({@-)177 2174 y(Open)g(the)g(door)
177 2224 y(Say)g(out)177 2273 y(Close)g(the)g(door@})177 2371
y Fn(Th)o(us,)12 b(just)g(sp)q(ecifying)f(the)h(n)o(um)o(b)q(er)f(of)g
(parameters)h(seems)g(sensible.)18 b(Ho)o(w)o(ev)o(er,)12 b(p)q(erhaps)g(the)
g(syn)o(tax)g(could)177 2421 y(b)q(e)j(trimmed)c(to)177 2518
y Fi(@$@<Put)21 b(out)g(the)g(cat@>@3==@{@-)177 2568 y(Open)g(the)g(door)177
2618 y(Say)g(out)177 2668 y(Close)g(the)g(door@})177 2765 y
Fn(I)14 b(decided)h(to)f(reject)h(this)f(in)f(fa)o(v)o(our)g(of)h(the)g(old)f
(syn)o(tax.)177 2835 y Fk(Decision:)j Fn(Retain)e(the)g(old)f(syn)o(tax)h(of)
f Fj(:)7 b(:)g(:)o Fi(@\(@3@\))p Fj(:)g(:)g(:)1042 2940 y Fn(15)p
eop
%%Page: 16 17
16 16 bop 177 42 a Fa(1.3.2)55 b(Review)18 b(of)g(Macro)h(Call)g(Syn)n(tax)
177 147 y Fn(Here)c(are)g(some)e(ideas)h(for)f(alternativ)o(es)h(to)g(the)g
(F)m(unnelW)m(eb)g(V1)f(macro)g(call)g(syn)o(tax.)177 270 y
Fi(Open)21 b(the)g(door)177 320 y(@<Say)g(Out@>)195 b(@!)21
b(FunnelWeb~V1)f(style.)177 370 y(Close)h(the)g(door)177 470
y(Open)g(the)g(door)177 520 y(@<Say)g(out>@)177 569 y(Close)g(the)g(door)177
669 y(Open)g(the)g(door)177 719 y(@"Say)g(out@")177 769 y(Close)g(the)g(door)
177 868 y(Open)g(the)g(door)177 918 y(@\(Say)g(out@\))177 968
y(Close)g(the)g(door)177 1068 y(Open)g(the)g(door)177 1117
y(@<Say)g(out>)177 1167 y(Close)g(the)g(door)177 1291 y Fk(Decision:)29
b Fn(Con)o(tin)o(ue)20 b(with)g(the)g(old)g(notation.)36 b(It)20
b(ma)o(y)e(not)i(b)q(e)h(neat,)h(but)e(at)g(least)h(it)e(is)h(clear)h(and)177
1340 y(consisten)o(t.)j(The)16 b(main)d(temptation)h(is)h(the)h(format)e
Fi(@<say)21 b(out>@)14 b Fn(whic)o(h)h(lo)q(oks)g(rather)i(go)q(o)q(d.)22
b(Ho)o(w)o(ev)o(er,)177 1390 y(it)14 b(breaks)g(the)h(sp)q(ecial)f(sequence)i
(rational)d(and)g(hence)j(is)d(to)q(o)h(confusing.)177 1540
y Fa(1.3.3)55 b(Review)18 b(of)g(P)n(arameterized)f(Macro)i(Call)f(Syn)n(tax)
177 1646 y Fn(F)m(unnelW)m(eb)c(V1)f(pro)o(vided)h(a)g(messy)f(parameterized)
h(macro)f(call)g(syn)o(tax:)177 1769 y Fi(@<Say)21 b(Out@>@\(@"firstpar)o
(am@")d(@,)k(@"Secondparam@")c(@,)k(@"thirdparam@")d(@\))177
1893 y Fn(This)d(syn)o(tax)g(can)g(b)q(e)g(cleaned)h(up)f(considerably)g(b)o
(y)g(making)d(the)k Fi(@")e Fn(sym)o(b)q(ols)g(optional.)22
b(This)16 b(results)h(in)177 1942 y(calls)d(suc)o(h)g(as)g(the)h(follo)o
(wing:)177 2066 y Fi(@<Say)21 b(Out@>@\(firstparam)o(@,Sec)o(ondpa)o(ram@,)o
(thir)o(dpara)o(m@\))177 2189 y Fn(As)c(the)g(\014rst)g(form)e(allo)o(ws)g
(the)i(alignmen)o(t)d(of)h(complicated)h(parameters)g(b)o(y)g(allo)o(wing)e
(white)j(space)g(to)f(b)q(e)177 2239 y(inserted)h(outside)f(the)g
Fi(@")p Fn(,)f(and)h(the)g(second)h(form)d(is)h(cleaner,)i(b)q(oth)f(are)g
(retained)g(simply)e(b)o(y)h(making)e(the)177 2289 y(quotes)i(optional.)177
2366 y Fk(Decision:)h Fn(Mak)o(e)e(the)h(double)e(quotes)i(optional.)177
2538 y Fe(1.4)70 b(Do)r(cumen)n(t)21 b(Structuring)177 2657
y Fn(Exp)q(erience)e(with)e(F)m(unnelW)m(eb)f(V1,)h(whic)o(h)g(pro)o(vided)g
(only)f(t)o(w)o(o)h(lev)o(els)g(of)f(headings)h(\(ma)r(jor)f(and)g(minor\))
177 2707 y(pro)o(v)o(ed)10 b(that)h(there)g(w)o(as)f(a)g(strong)g(need)h(for)
f(fully)f(hierarc)o(hical)h(m)o(ultiple-lev)o(el)d(headings.)17
b(The)10 b(only)g(question)177 2757 y(w)o(as)k(ho)o(w)f(it)h(should)g(b)q(e)g
(done.)177 2835 y(Here)h(are)g(some)e(ideas)h(that)g(w)o(ere)g(considered.)
1042 2940 y(16)p eop
%%Page: 17 18
17 17 bop 177 42 a Fi(@*@<Main)20 b(Program@>)177 91 y(@**@<Read)g(the)h
(Message@>)177 141 y(@***@<Encrypt)e(the)i(Buffer@>)177 241
y(@*@<Main)f(Program@>)177 291 y(@*@*@<Read)g(the)h(Message@>)177
340 y(@*@*@*@<Encrypt)e(the)i(Buffer@>)177 440 y(@s@<Main)f(Program@>)177
490 y(@ss@<Read)g(the)h(Message@>)177 540 y(@sss@<Encrypt)e(the)i(Buffer@>)
177 639 y(@s@<Main)f(Program@>)177 689 y(@s@s@<Read)g(the)h(Message@>)177
739 y(@s@s@s@<Encrypt)e(the)i(Buffer@>)177 839 y(@S@<Main)f(Program@>)177
888 y(@SS@<Read)g(the)h(Message@>)177 938 y(@SSS@<Encrypt)e(the)i(Buffer@>)
177 1038 y(@S@<Main)f(Program@>)177 1088 y(@S@S@<Read)g(the)h(Message@>)177
1137 y(@S@S@S@<Encrypt)e(the)i(Buffer@>)177 1237 y(@A@<Main)f(Program@>)238
b(--)22 b(The)f(syntax)f(finally)h(chosen.)177 1287 y(@B@<Read)f(the)h
(Message@>)177 1337 y(@C@<Encrypt)f(the)h(Buffer@>)177 1436
y(@A)h(Main)f(Program)177 1486 y(@B)h(Read)f(the)g(Message)177
1536 y(@C)h(Encrypt)e(the)h(Buffer)177 1636 y(@*A)g(Main)g(Program)177
1685 y(@*B)g(Read)g(the)g(Message)177 1735 y(@*C)g(Encrypt)g(the)g(Buffer)177
1835 y(@1@<Main)f(Program@>)177 1885 y(@2@<Read)g(the)h(Message@>)177
1934 y(@3@<Encrypt)f(the)h(Buffer@>)177 1984 y(\(using)g(@A..@I@)f(as)h
(macro)g(parameters)f(or)h(overload)f(@1..@9\))177 2084 y(@*@1@<Main)g
(Program@>)177 2134 y(@*@2@<Read)g(the)h(Message@>)177 2183
y(@*@3@<Encrypt)e(the)i(Buffer@>)177 2233 y(\(using)g(@A..@I@)f(as)h(macro)g
(parameters)f(or)h(overload)f(@1..@9\))177 2351 y Fn(Cho)q(osing)f(b)q(et)o
(w)o(een)i(these)g(alternativ)o(es)e(w)o(as)h(not)f(easy)m(.)35
b(The)20 b(follo)o(wing)d(though)o(ts)j(con)o(tributed)g(to)f(the)177
2400 y(decision.)239 2518 y Fm(\017)i Fn(Syn)o(taxes)14 b(that)g(require)h
(visual)e(coun)o(ting)g(are)i(probably)e(not)h(a)f(go)q(o)q(d)h(idea.)239
2601 y Fm(\017)21 b Fn(Syn)o(taxes)14 b(that)f(do)g(not)h(delimit)d(the)j
(heading)f(name)f(someho)o(w)h(are)g(lik)o(ely)f(to)i(cause)g(problems)f
(where)281 2651 y(heading)18 b(names)f(are)h(omitted.)30 b(Users)19
b(will)e(b)q(e)i(tempted)f(to)g(start)g(paragraphs)h(after)f(the)h(start)f
(of)281 2701 y(heading)c(sym)o(b)q(ol)f(and)h(the)h(result)g(is)f(that)h(the)
g(\014rst)g(line)f(of)g(the)h(paragraph)f(will)f(b)q(e)i(suc)o(k)o(ed)g(in)o
(to)f(the)281 2751 y(heading.)239 2835 y Fm(\017)21 b Fn(Ov)o(erloading)13
b(the)h Fi(@1)p Fn(,)f Fj(:)7 b(:)g(:)o Fn(,)13 b Fi(@9)h Fn(sequences)i(is)e
(undesirable.)1042 2940 y(17)p eop
%%Page: 18 19
18 18 bop 177 42 a Fk(Decision:)21 b Fn(Use)c Fi(@A)p Fj(:)7
b(:)g(:)n Fi(@E)16 b Fn(with)g(optional)f(follo)o(wing)e(macro)i(name)g(syn)o
(tax)h(for)g(the)h(section)g(name.)24 b(Note:)177 91 y(W)m(e)15
b(stop)g(at)g Fi(@E)f Fn(b)q(ecause)j(\014v)o(e)e(lev)o(els)g(is)g(probably)f
(su\016cien)o(t,)i(and)e(w)o(e)i(ma)o(y)d(wish)h(later)i(to)e(use)i
Fi(@F)f Fn(for)f Fk(F)p Fn(ile)177 141 y(\(to)g(augmen)o(t)f(or)g(replace)i
Fi(@O)p Fn(\).)177 321 y Fe(1.5)70 b(Discussion)21 b(of)j(Some)e(Miscell)o
(aneous)f(Issues)177 445 y Fk(Commen)o(t)d(duplication)o(:)k
Fn(If)17 b(the)h(F)m(unnelW)m(eb)f(user)h(inserts)g(commen)o(ts)d(in)o(to)i
(the)h(target)f(co)q(de)h(\(in)f(the)177 495 y Fi(.fw)12 b
Fn(\014le\))g(as)g(w)o(ell)f(as)h(in)o(to)g(the)g(do)q(cumen)o(tation)f
(\(free)i(text\))g(part)f(of)g(the)g Fi(.fw)g Fn(\014le,)g(then)h(it)e(is)h
(p)q(ossible)g(for)g(the)177 544 y(situation)h(to)h(get)g(a)g(bit)f(silly)m
(.)k Fk(Decision:)f Fn(This)e(is)g(a)f(problem)g(for)g(the)i(programmer,)c
(not)j(for)f(F)m(unnelW)m(eb.)177 625 y Fk(Out-of-date)k(do)q(cumen)o(tation)
o(:)22 b Fn(Sometimes)14 b(it)j(is)f(all)g(to)q(o)h(easy)g(for)f(the)i
(programmer)c(to)j(mo)q(dify)d(the)177 674 y(co)q(de)k(without)e(up)q(dating)
g(the)h(surrounding)g(do)q(cumen)o(tation.)24 b Fk(Decision:)e
Fn(This)16 b(is)h(a)f(serious)h(and)f(ma)r(jor)177 724 y(problem.)27
b(In)17 b(an)g(automated)f(en)o(vironmen)o(t,)g(it)h(ma)o(y)e(b)q(e)j(p)q
(ossible)f(to)g(create)i(a)e(system)g(of)f(dep)q(endencies)177
774 y(b)q(et)o(w)o(een)h(scraps)g(of)d(co)q(de)i(and)g(scraps)g(of)f(do)q
(cumen)o(tation.)21 b(Ho)o(w)o(ev)o(er,)16 b(it)f(is)g(hard)h(to)f(see)h(ho)o
(w)f(a)g(to)q(ol)g(suc)o(h)177 824 y(as)f(F)m(unnelW)m(eb)f(could)h(pro)o
(vide)g(supp)q(ort)h(for)e(prev)o(en)o(tion)h(of)g(this)g(sort)g(of)f(error.)
177 904 y Fk(Meta-macro-lev)o(el)j(parameterization:)k Fn(Sometimes,)14
b(when)j(using)f(F)m(unnelW)m(eb,)g(the)g(facilit)o(y)f(to)h(use)177
954 y(one)11 b(macro)f(to)h(construct)i(the)e(name)f(of)h(another)g(has)g(b)q
(een)h(needed.)19 b Fk(Decision:)c Fn(Allo)o(wing)9 b(macro)h(names)g(to)177
1004 y(b)q(e)k(constructed)h(w)o(ould)e(lose)g(the)h(simple)d(nature)j(of)f
(the)h(prepro)q(cessor)h(and)e(so)h(this)f(suggestion)g(is)g(rejected.)177
1084 y Fk(Clumsy)j(notation:)h Fn(The)e Fi(@)f Fn(notation)f(can)i(b)q(e)g
(clumsy)m(.)j Fk(Decision:)f Fn(This)e(is)f(necessary)i(to)f(main)o(tain)c
(the)177 1134 y(simplicit)o(y)h(of)h(the)h(translation.)177
1314 y Fe(1.6)70 b(Automated)22 b(Regression)g(T)-6 b(esting)177
1438 y Fn(Automated)13 b(regression)i(testing)f(is)g(extremely)g(imp)q(ortan)
o(t)e(for)h(t)o(w)o(o)h(reasons:)228 1568 y(1.)20 b(It)14 b(pro)o(vides)g
(con\014dence)i(that)e(c)o(hanges)g(made)f(to)h(the)g(program)e(ha)o(v)o(e)i
(not)g(in)o(tro)q(duced)h(bugs.)228 1662 y(2.)20 b(It)11 b(allo)o(ws)e(p)q
(ortabilit)o(y)g(problems)h(to)g(b)q(e)i(pinp)q(oin)o(ted)e(when)h(the)g
(program)e(is)i(mo)o(v)o(ed)e(to)h(a)g(new)i(mac)o(hine.)177
1792 y(The)j(simplest)e(w)o(a)o(y)g(to)h(set)h(up)g(automated)d(regression)k
(testing)e(is)g(to)g(construct)i(a)e(suite)h(of)e(test)i(cases)h(\(and)177
1842 y(their)e(solutions\))e(and)h(then)h(write)f(a)g(script)g(in)g(the)g
(target)h(mac)o(hine's)d(command)g(language)h(to)g(run)i(through)177
1892 y(the)k(suite.)29 b(Unfortunately)m(,)17 b(there)i(is)e(no)g(command)d
(language)j(that)g(is)g(shared)h(among)e(the)i(mac)o(hines)e(to)177
1941 y(whic)o(h)f(F)m(unnelW)m(eb)f(m)o(ust)g(b)q(e)h(p)q(orted.)22
b(These)16 b(mac)o(hines)e(are)i(at)e(least:)20 b(Macin)o(tosh,)15
b(IBM-PC,)g(Sun,)g(VMS)177 1991 y(V)m(ax.)177 2072 y(One)h(option)e(is)h
(simply)e(to)i(rewrite)h(the)g(script)g(in)e(eac)o(h)i(mac)o(hine's)d
(particular)i(command)d(language.)21 b(This)177 2121 y(w)o(ould)15
b(b)q(e)i(a)e(feasible)h(option)f(w)o(ere)i(it)e(not)h(for)f(the)i(fact)f
(that)g(the)g(Macin)o(tosh)g(\(the)g(mac)o(hine)f(up)q(on)h(whic)o(h)177
2171 y(F)m(unnelW)m(eb)e(w)o(as)f(dev)o(elop)q(ed\))i(do)q(es)g(not)e(ha)o(v)
o(e)h(a)g(command)d(language!)177 2252 y(After)i(some)f(though)o(t,)g(I)g
(decided)i(that)e(the)h(b)q(est)h(solution)e(to)g(the)h(problem)e(w)o(as)i
(to)f(create)i(a)e(command)e(lan-)177 2301 y(guage)i Fh(within)h(F)m
(unnelWeb)p Fn(.)18 b(F)m(unnelW)m(eb)12 b(could)g(then)h(b)q(e)f(in)o(v)o
(ok)o(ed)g(in)f(t)o(w)o(o)h(mo)q(des,)f(one-shot)i(command)c(line)177
2351 y(or)15 b(in)o(teractiv)o(e/script.)20 b(This)15 b(approac)o(h)f(had)g
(the)h(b)q(ene\014t)h(of)e(pro)o(viding)f(total)h(con)o(trol)g(o)o(v)o(er)g
(the)i(command)177 2401 y(language)d(and)h(its)g(complete)f(p)q(ortabilit)o
(y)m(.)177 2481 y(The)h(result)h(is)f(describ)q(ed)i(in)d(the)h
Fh(F)m(unnelWeb)j(User's)d(Manual)p Fn(.)177 2661 y Fe(1.7)70
b(Command)22 b(Line)g(In)n(terface)177 2785 y Fn(F)m(unnelW)m(eb)12
b(V1)g(w)o(as)g(implemen)o(ted)e(in)i(Ada)g(and)g(runs)h(on)f(a)g(VMS)g(V)-5
b(AX.)13 b(As)g(suc)o(h)g(it)e(has)i(a)f(full)f(VMS)h(DCL)177
2835 y(command)f(line)j(in)o(terface.)k(Here)d(is)f(the)h(\\)p
Fi(.CLD)p Fn(")d(\014le)i(for)g(the)g(DCL)g(command)d(line)i(in)o(terface.)
1042 2940 y(18)p eop
%%Page: 19 20
19 19 bop 177 42 a Fi(!)22 b(FUNNELWEB)e(Command)g(Definition)177
91 y(!)i(================)o(=====)o(=====)o(==)177 141 y(!)g(Ross)f
(Williams.)f(28)h(April)g(1987.)177 241 y(module)g(command_table)243
291 y(define)f(verb)h(dummy_command)243 340 y(parameter)e(p1)240
b(,)21 b(label=input_file)62 b(,value\(required,type)o(=$fi)o(le\))243
390 y(qualifier)19 b(include_files,)g(label=include_files)o(,valu)o(e\(typ)o
(e=$fi)o(le\))g(,default)243 440 y(qualifier)g(output_files)h(,)h
(label=output_files)d(,value\(type=$file\))h(,default)243 490
y(qualifier)g(delete)152 b(,)21 b(label=delete)565 b(,default)243
540 y(qualifier)19 b(tex_file)108 b(,)21 b(label=tex_file)106
b(,value\(type=$file\))19 b(,default)243 589 y(qualifier)g(listing_file)h(,)h
(label=listing_file)d(,value\(type=$file\))h(,default)243 639
y(qualifier)g(brief)174 b(,)21 b(label=brief,value\(t)o(ype=$)o(numbe)o
(r,def)o(ault=)o(5\),d)o(efaul)o(t)243 689 y(qualifier)e(screen)152
b(,)21 b(label=screen)150 b(,value\(type=$number,)o(defa)o(ult=0)o(\))243
739 y(qualifier)19 b(trace)174 b(,)21 b(label=trace)243 789
y(qualifier)e(file_spec)86 b(,)21 b(label=file_spec)243 839
y(qualifier)e(compare)177 981 y Fn(As)d(p)q(ortabilit)o(y)f(w)o(as)g(a)h(k)o
(ey)g(goal)e(of)h(F)m(unnelW)m(eb)g(V3,)h(it)f(w)o(as)h(ob)o(vious)f(that)h
(the)g(command)d(line)i(in)o(terface)177 1031 y(w)o(ould)e(ha)o(v)o(e)h(to)g
(b)q(e)g(redesigned.)20 b(The)14 b(design)g(goals)f(for)h(the)g(new)g
(command)d(line)j(in)o(terface)g(w)o(ere:)228 1174 y(1.)20
b(The)15 b(in)o(terface)g(should)f(not)g Fh(dep)n(end)i Fn(on)e(case.)21
b(Ho)o(w)o(ev)o(er,)14 b(it)g(m)o(ust)g(allo)o(w)e(case-sensitiv)o(e)k
(\014lenames)e(to)281 1224 y(b)q(e)g(transmitted)g(on)f(systems)i(that)e(ha)o
(v)o(e)h(case-sensitiv)o(e)i(\014lenames.)228 1328 y(2.)k(Eac)o(h)13
b(option)f(m)o(ust)g(ha)o(v)o(e)h(a)f(symmetric)f(p)q(ositiv)o(e)i(and)g
(negativ)o(e)f(form.)k(F)m(or)d(example,)e(it)h(is)h(confusing)281
1378 y(for)g Fi(-X)h Fn(to)g(turn)g(on)g(a)f(feature)i(and)f
Fi(-Q)f Fn(to)h(turn)g(it)g(o\013.)228 1482 y(3.)20 b(The)14
b(in)o(terface)h(m)o(ust)e(b)q(e)h(extensible)h(to)f(allo)o(w)e(inclusion)h
(of)g(more)g(features)i(at)f(a)g(later)g(date.)228 1586 y(4.)20
b(Options)14 b(should)g(b)q(e)g(consisten)o(t)h(and)f(memorable.)177
1729 y(The)g(result)h(is)f(describ)q(ed)i(in)d(the)h Fh(F)m(unnelWeb)j
(User's)d(Manual)p Fn(.)177 1925 y Fe(1.8)70 b(File)21 b(Name)h(Managemen)n
(t)177 2056 y Fn(File)e(names)f(presen)o(t)j(a)e(host)g(of)g(problems)f(for)h
(a)f(program)g(lik)o(e)g(F)m(unnelW)m(eb.)36 b(First,)22 b(F)m(unnelW)m(eb)e
(can)177 2106 y(generate)c(so)f(man)o(y)e(di\013eren)o(t)j(kinds)f(of)f
(\014les)h(that)g(con)o(v)o(en)o(tions)g(m)o(ust)f(b)q(e)i(adopted)f(to)g
(prev)o(en)o(t)g(them)g(from)177 2156 y(b)q(ecoming)9 b(unmanageable.)15
b(Second,)c(the)f(constrain)o(ts)g(on)g(\014le)g(names,)f(and)h(ev)o(en)g
(the)h(structure)h(of)d(\014le)h(names)177 2205 y(themselv)o(es)16
b(v)n(aries)f(considerably)h(from)e(mac)o(hine)g(to)h(mac)o(hine.)22
b(These)17 b(t)o(w)o(o)e(problems)f(ha)o(v)o(e)i(com)o(bined)e(to)177
2255 y(result)g(in)e(the)i(sophisticated)g(and)e(rather)i(complicated)e(w)o
(a)o(y)g(in)h(whic)o(h)g(F)m(unnelW)m(eb)f(V3)h(handles)g(\014lenames.)177
2340 y(T)m(o)g(summarize,)f(the)i(three)h(problems)e(are:)228
2483 y(1.)20 b(What)13 b(\014lename)g(extensions)i(should)f(b)q(e)g(c)o
(hosen)h(for)f(v)n(arious)f(kinds)h(of)f(\014le?)228 2588 y(2.)20
b(What)13 b(\014lename)g(inheritance)i(should)e(tak)o(e)h(place?)228
2692 y(3.)20 b(Ho)o(w)13 b(should)h(F)m(unnelW)m(eb)g(cop)q(e)g(with)g(the)g
(v)n(ariations)f(in)g(\014lename)g(structure)j(b)q(et)o(w)o(een)f(mac)o
(hines?)177 2835 y(The)f(follo)o(wing)e(three)j(sections)g(address)g(these)g
(questions.)1042 2940 y(19)p eop
%%Page: 20 21
20 20 bop 177 42 a Fa(1.8.1)55 b(Filename)17 b(Extensions)177
147 y Fn(F)m(unnelW)m(eb)11 b(is)h(capable)f(of)g(reading)h(and)f(writing)g
(a)g(v)n(ariet)o(y)g(of)g(di\013eren)o(t)i(kinds)f(of)f(\014les.)17
b(In)12 b(particular,)f(F)m(un-)177 197 y(nelW)m(eb)g(m)o(ust)f(often)h(op)q
(erates)h(in)f(an)g(en)o(vironmen)o(t)f(where)i(the)f(same)f(information)f
(is)h(stored)i(in)f(man)o(y)e(forms)177 247 y(\(e.g.)16 b(prog.fw,)f(prog.c,)
i(pro)q(c.exe\).)26 b(File)16 b(extensions)i(are)e(an)h(essen)o(tial)f(to)q
(ol)g(in)g(managing)e(this)i(situation.)177 297 y(The)e(\014lename)f
(extensions)i(c)o(hosen)g(for)f(F)m(unnelW)m(eb)f(are:)177
421 y Fi(FunnelWeb)107 b(:)22 b(.fw)177 471 y(Product)151 b(:)22
b(None.)177 521 y(Documentation)d(:)j(.tex)177 570 y(Listing)151
b(:)22 b(.lis)177 620 y(Journal)151 b(:)22 b(.jrn)177 744 y
Fn(Lo)o(w)o(ercase)15 b(will)e(b)q(e)h(used)h(in)e(systems)h(that)g(are)h
(case)f(sensitiv)o(e.)177 822 y(Readers)g(who)f(are)h(w)o(ondering)e(ho)o(w)h
(F)m(unnelW)m(eb)g(cop)q(es)h(in)f(en)o(vironmen)o(ts)f(suc)o(h)i(as)f(UNIX)h
(where)g(there)g(are)177 872 y(no)g(\014le)g(extensions)h(should)e(refer)i
(to)f(Section)g(1.8.3.)177 1023 y Fa(1.8.2)55 b(Filename)17
b(Inheritance)177 1129 y Fn(Inheritance)d(in)d(\014lenames)h(refers)i(to)e
(ho)o(w)g(input)g(and)g(output)g(\014les)h(inherit)f(parts)h(of)f(their)h
(name)e(from)f(other)177 1178 y(\014lenames)j(and)h(their)g(en)o(vironmen)o
(t.)j(F)m(or)d(example)e(if)h(the)i(command)243 1302 y Fi(fw)21
b(sloth)g(+J)g(+L)g(+T)177 1426 y Fn(w)o(as)d(issued,)i(y)o(ou)e(w)o(ould)f
(exp)q(ect)j(to)e(see)h(output)g(\014les)f Fi(sloth.jrn)p Fn(,)f
Fi(sloth.lis)p Fn(,)g(and)h Fi(sloth.tex)p Fn(.)29 b(The)177
1476 y(output)14 b(\014le)h(names)e(ha)o(v)o(e)h(inherited)g(the)h(\\)p
Fi(sloth)p Fn(".)i(The)e(follo)o(wing)c(table)j(giv)o(es)g(the)h(hierarc)o(h)
o(y)f(devised)h(for)177 1526 y(F)m(unnelW)m(eb.)p 366 1606
1394 2 v 365 1656 2 50 v 436 1656 V 462 1641 a(Script)p 615
1656 V 70 w(Input)p 778 1656 V 64 w(Include)p 961 1656 V 50
w(Journal)p 1147 1656 V 50 w(List)p 1326 1656 V 108 w(Do)q(cumen)o(t)p
1562 1656 V 49 w(Pro)q(duct)p 1759 1656 V 366 1658 1394 2 v
365 1707 2 50 v 391 1692 a(1)p 436 1707 V 615 1707 V 778 1707
V 392 w Fi(@i)p 961 1707 V 1147 1707 V 1326 1707 V 1562 1707
V 739 w(@o)p 1759 1707 V 365 1757 V 391 1742 a Fn(2)p 436 1757
V 50 w Fi(+x)p 615 1757 V 134 w(+f)p 778 1757 V 120 w(+i)p
961 1757 V 138 w(+j)p 1147 1757 V 143 w(+l)p 1326 1757 V 134
w(+t)p 1562 1757 V 192 w(+o)p 1759 1757 V 365 1807 V 391 1792
a Fn(3)p 436 1807 V 50 w(\\)p Fi(.fws)p Fn(")p 615 1807 V 48
w(\\)p Fi(.fw)p Fn(")p 778 1807 V 56 w(\\)p Fi(.fwi)p Fn(")p
961 1807 V 52 w(\\)p Fi(.jrn)p Fn(")p 1147 1807 V 57 w(\\)p
Fi(.lis)p Fn(")p 1326 1807 V 48 w(\\)p Fi(.tex)p Fn(")p 1562
1807 V 1759 1807 V 365 1857 V 391 1842 a(4)p 436 1857 V 615
1857 V 778 1857 V 392 w Fi(+f)p 961 1857 V 138 w(+f)p 1147
1857 V 143 w(+f)p 1326 1857 V 134 w(+f)p 1562 1857 V 1759 1857
V 365 1907 V 391 1892 a Fn(5)p 436 1907 V 50 w(DefDir)p 615
1907 V 55 w(Defdir)p 778 1907 V 50 w(Defdir)p 961 1907 V 68
w(Defdir)p 1147 1907 V 73 w(Defdir)p 1326 1907 V 64 w(Defdir)p
1562 1907 V 122 w(Defdir)p 1759 1907 V 366 1908 1394 2 v 177
2015 a(The)f(follo)o(wing)e(notes)i(explain)g(the)g(table.)228
2139 y(1.)20 b(This)14 b(sc)o(heme)g(is)g(similar)d(to)j(that)g(used)g(in)g
(F)m(unnelW)m(eb)f(V1.)228 2229 y(2.)20 b(The)14 b(journal,)f(list,)f(and)i
(do)q(cumen)o(tation)e(\014les)j(all)d(fall)g(in)i(the)g(same)f(pattern)h
(and)g(can)g(b)q(e)g(considered)281 2278 y(as)g(a)g(single)f(case.)228
2368 y(3.)20 b(Lev)o(el)15 b(1)h(has)f(the)h(highest)g(priorit)o(y)e(b)q
(ecause)k(it)d(is)g(a)g(direct)h(sp)q(eci\014cation)g(b)o(y)g(the)g(user)g
(in)f(the)h(input)281 2418 y(\014le.)228 2507 y(4.)k(Lev)o(el)14
b(2)f(comes)h(next)g(b)q(ecause)h(this)f(is)g(also)f(a)g(direct)i(sp)q
(eci\014cation)f(from)e(the)j(user)g(on)e(the)i(command)281
2557 y(line.)228 2646 y(5.)20 b(Lev)o(el)13 b(3)f(pro)o(vides)h(the)h
(default)e(\014le)h(extensions.)19 b(Pro)q(duct)14 b(\014les)f(do)g(not)f
(inherit)h(an)g(extension)g(as)g(they)281 2696 y(could)h(b)q(e)g(of)f(an)o(y)
h(t)o(yp)q(e.)228 2785 y(6.)20 b(Lev)o(el)12 b(5)h(is)f(built)g(in)o(to)f
(most)h(op)q(erating)g(systems')g(\014le)h(sp)q(eci\014cation)g(systems.)k
(If)c(I)f(sp)q(ecify)h(\014le)f(\\)p Fi(x.y)p Fn(",)281 2835
y(it)h(is)h(tak)o(en)g(to)g(mean)f(on)g(the)i(default)e(disk)h(in)f(the)i
(default)e(directory)m(.)1042 2940 y(20)p eop
%%Page: 21 22
21 21 bop 228 42 a Fn(7.)20 b(Lev)o(el)15 b(4)g(lo)q(oks)g(straigh)o(tforw)o
(ard,)f(but)i(secretly)h(conceals)f(a)f(di\016cult)f(design)i(decision.)22
b(By)15 b(the)h(time)281 91 y(w)o(e)j(get)g(do)o(wn)f(to)g(this)h(lev)o(el)f
(of)g(inheritance,)i(w)o(e)e(kno)o(w)h(for)f(sure)h(that)g(the)g(\014lename)e
(has)i(already)281 141 y(pic)o(k)o(ed)c(up)g(a)f(\014le)h(extension.)21
b(So)15 b(all)e(that)i(is)g(left)f(to)h(inherit)g(is)g(the)g(path)g(and)f
(the)i(\014lename)d(prop)q(er.)281 191 y(Ob)o(viously)g(w)o(e)h(ha)o(v)o(e)g
(to)g(inherit)g(the)h(\014lename)e(prop)q(er)i(\(e.g.)j Fi(sloth)13
b Fn(in)h Fi(sloth.tex)p Fn(\),)d(but)k(should)f(w)o(e)281
241 y(inherit)j(the)g(input)g(\014le)g(path?)26 b(If)17 b(w)o(e)g(do)f
(inherit)h(the)g(input)g(\014le)g(path,)g(\014les)g(will)e(b)q(e)j(placed)f
(in)f(the)281 291 y(same)f(directory)h(as)g(the)g(input)g(\014le.)23
b(If)16 b(w)o(e)g(don't)f(inherit)h(the)g(input)f(\014le)h(path,)g(\014les)g
(will)e(b)q(e)j(placed)281 340 y(in)c(the)h(curren)o(t)h(directory)m(.)j(The)
c(c)o(hoice)g(I)f(ha)o(v)o(e)h(made)e(is)h(to)g(send)i(all)d(the)i(logging)e
(t)o(yp)q(e)i(\014les)f(in)o(to)g(the)281 390 y(same)h(directory)j(as)e(the)h
(input)f(\014le.)23 b(This)15 b(means,)g(for)g(example,)f(that)h
Fi(sloth.lis)e Fn(and)j Fi(sloth.tex)281 440 y Fn(will)c(generally)i(land)f
(in)g(the)i(same)e(directory)h(as)g Fi(sloth.fw)p Fn(.)j(Ho)o(w)o(ev)o(er,)c
(I)h(ha)o(v)o(e)g(decided)h(that)f(output)281 490 y(\014les)e(should)f(b)q(e)
h(sen)o(t)g(to)f(the)h(default)f(directory)h(\(if)f(not)g(earlier)h(sp)q
(eci\014ed\))h(as)e(this)g(is)h(where)g(the)g(action)281 540
y(is.)19 b(In)c(normal)d(use,)j(the)g(main)d(pro)q(duct)j(of)f(F)m(unnelW)m
(eb)g(will)e(b)q(e)j(pro)q(duct)h(\014les)e(and)g(so)h(the)g(user)g(will)281
589 y(exp)q(ect)g(them)e(to)h(app)q(ear)h(in)e(the)h(curren)o(t)i(directory)e
(b)o(y)g(default.)177 757 y Fa(1.8.3)55 b(P)n(ortable)19 b(Structure)f(of)h
(File)e(Names)177 871 y Fn(Another)g(problem)e(with)g(\014le)h(names)f(is)h
(the)h(v)n(ariation)d(of)h(their)i(structure)h(b)q(et)o(w)o(een)f(en)o
(vironmen)o(ts.)24 b(Here)177 921 y(are)14 b(examples)f(of)h(some)f(of)g(the)
h(formats)f(that)h(prev)n(ail:)243 1059 y Fi(UNIX)64 b(/device/dir1/dir2/)o
(name)243 1108 y(VMS)86 b(node::device:[dir1)o(.dir2)o(]name)o(.ext)o(;vn)243
1158 y(MSDOS)42 b(device:\\dir1\\dir2\\)o(name.)o(ext)243 1208
y(MAC)86 b(device:dir1:dir2:n)o(ame)177 1345 y Fn(Isn't)14
b(it)g(amazing)d(that)j(none)g(of)g(these)h(p)q(opular)f(systems)g(use)g(the)
h(same)e(format?)177 1429 y(The)j(solution)f(to)g(dealing)g(with)g(these)i
(di\013eren)o(t)f(formats)e(is)h(to)h(classify)f(them)g(as)g(non-p)q(ortable)
g(and)h(hide)177 1479 y(the)g(functions)f(that)g(manipulate)e(them)h(in)g
(the)i(mac)o(hine-sp)q(eci\014c)f(mo)q(dule)e(of)i(F)m(unnelW)m(eb.)20
b(Luc)o(kily)14 b(there)177 1528 y(are)g(not)g(man)o(y)e(suc)o(h)j
(functions.)177 1612 y(The)g(main)c(problem)i(is)h(coping)f(with)h(\014le)g
(systems)g(that)g(do)g(not)g(explicitly)e(supp)q(ort)j(\014le)f(extensions.)
19 b(With)177 1661 y(so)14 b(man)o(y)e(p)q(ossible)i(input)f(and)g(output)h
(\014les,)g(F)m(unnelW)m(eb)f(all)f(but)i(needs)h(suc)o(h)g(extensions.)k
(Mac)o(hines)14 b(that)177 1711 y(do)h(not)g(supp)q(ort)h(them)e(p)q(ose)h
(di\016cult)g(design)g(decisions.)22 b(If)14 b(the)i(user)g(sp)q(eci\014es)h
(\\)p Fi(sloth)p Fn(")c(as)i(an)g(input)g(\014le)177 1761 y(on)d(suc)o(h)g(a)
g(non-extension-supp)q(orting)g(system,)g(should)g(F)m(unnelW)m(eb)f(lo)q(ok)
g(for)g Fi(sloth)g Fn(or)h Fi(sloth.fw)p Fn(?)k(If)11 b(the)177
1811 y(user)k(sp)q(eci\014es)h Fi(walrus)c Fn(as)i(a)g(listing)f(\014le,)g
(should)h(it)f(generate)j Fi(walrus)c Fn(or)i Fi(walrus.lis)p
Fn(?)177 1894 y(Some)f(p)q(ossible)h(solutions)f(are:)228 2032
y(1.)20 b(Regard)14 b(the)g(\014lename)f Fi(sloth)g Fn(as)h(ha)o(ving)e(an)i
(empt)o(y)f(extension.)19 b(It)14 b(will)e(then)j(default)e(to)h
Fi(sloth.fw)p Fn(.)228 2132 y(2.)20 b(Regard)g(the)h(\014lename)d
Fi(sloth)h Fn(as)i(ha)o(ving)e(a)g(blank)h(but)g(full)f(extension.)37
b(That)20 b(is,)h(it)f(cannot)g(b)q(e)281 2181 y(o)o(v)o(erwritten)14
b(b)o(y)g(inheritance,)g(but)g(it)g(remains)f(blank.)228 2282
y(3.)20 b(Pro)o(vide)c(an)g(extra)h(syn)o(tactic)f(mec)o(hanism)e(to)i(allo)o
(w)f(the)i(user)g(to)f(sp)q(ecify)h(one)f(or)g(other)h(of)e(the)i(t)o(w)o(o)
281 2331 y(options)c(ab)q(o)o(v)o(e.)177 2469 y(My)i(solution)e(w)o(as)i(to)f
(c)o(ho)q(ose)i(the)f(\014rst)g(option.)k(Use)d(of)e(F)m(unnelW)m(eb)g
(results)h(in)f(lots)h(of)f(\014les)h(lying)e(around)177 2519
y(\(e.g.)h Fi(sloth.lis)p Fn(\))f(and)h(it)g(is)g(hard)h(to)f(see)i(ho)o(w)e
(the)h(user)h(will)c(cop)q(e)k(with)e(them)g(all)f(without)h(some)f(kind)h
(of)177 2569 y(naming)e(discipline.)17 b(If)d(a)f(naming)f(discipline)h(has)h
(to)g(b)q(e)h(used,)f(it)g(migh)o(t)d(as)j(w)o(ell)f(b)q(e)i(the)f(F)m
(unnelW)m(eb)g(one.)177 2652 y(Th)o(us)h(the)g(names)e(of)h(all)f(\014les)i
(read)f(and)h(written)f(b)o(y)h(F)m(unnelW)m(eb)e(will)g(ha)o(v)o(e)h(a)g
(\014le)h(extension)g(of)e(from)g(zero)177 2702 y(to)h(three)h(letters)g
(separated)g(from)e(the)h(rest)h(of)e(the)i(\014lename)e(b)o(y)g(a)h(\\)p
Fi(.)p Fn(".)177 2785 y(The)d(only)f(exception)i(is)f(pro)q(duct)g(\014les)g
(whose)h(extension)f(is)g(left)f(unde\014ned.)19 b(Pro)q(duct)12
b(\014les)f(need)h(not)e(con)o(tain)177 2835 y(a)k(\\)p Fi(.)p
Fn(")k(and)13 b(a)h(\014le)g(extension,)g(although)f(they)h(can)g(inherit)g
(one)g(if)f(the)i(user)g(wishes.)1042 2940 y(21)p eop
%%Page: 22 23
22 22 bop 177 42 a Fe(1.9)70 b(Sp)r(ecifying)31 b(Constrain)n(ts)i(on)h(the)e
(Num)n(b)r(er)g(of)i(Instan)n(tia-)334 116 y(tions)177 232
y Fn(Exp)q(erience)17 b(with)d(F)m(unnelW)m(eb)g(V1)g(demonstrated)h(the)g
(need)g(to)g(b)q(e)g(able)f(to)g(sp)q(ecify)h(in)g(macro)e(de\014nitions)177
281 y(ho)o(w)f(man)o(y)f(times)h(it)g(w)o(as)h(exp)q(ected)h(that)f(the)g
(macro)f(w)o(ould)g(b)q(e)h(used.)18 b(F)m(unnelW)m(eb)13 b(V1)f(generates)i
(an)f(error)177 331 y(if)g(a)g(macro)f(is)h(not)g(used,)h(but)g(p)q(ermits)f
(macros)f(to)i(b)q(e)g(called)f(more)f(than)h(once.)19 b(This)13
b(caused)i(problems)d(for)177 381 y(macro)h(libraries,)g(whic)o(h)h(w)o(ould)
f(b)q(e)h(included,)g(but)g(whose)g(macros)f(w)o(ere)i(often)f(not)g(called.)
177 455 y(By)g(default,)e(F)m(unnelW)m(eb)h(V3)h(requires)g(that)g(eac)o(h)f
(macro)g(\(except)i(for)e(the)h(ones)f(attac)o(hed)h(to)g(output)f(\014les\))
177 505 y(b)q(e)19 b(called)e(exactly)h(once.)30 b(Ho)o(w)o(ev)o(er,)19
b(it)f(also)f(pro)o(vides)h(syn)o(tax)g(that)f(allo)o(ws)g(the)h(user)h(to)f
(sp)q(ecify)g(that)g(a)177 555 y(macro)13 b(b)q(e)h(allo)o(w)o(ed)e(to)i(b)q
(e)g(called)f(zero)i(times)d(or)i(man)o(y)e(times.)17 b(This)c(allo)o(ws)g(a)
g(macro)f(to)i(b)q(e)g(sp)q(eci\014ed)h(with)177 605 y(the)f(follo)o(wing)d
(p)q(ermissible)i(ranges)h(of)f(n)o(um)o(b)q(ers)g(of)g(calls)g(dep)q(ending)
h(on)f(the)h(presence)i(or)e(absence)h(of)e(\\)p Fi(@Z)p Fn(")177
655 y(and)h(\\)p Fi(@M)p Fn(":)243 770 y Fi(0..1)217 b(@$@<Sloth@>@Z==.)o(..)
308 819 y(1)h(@$@<Sloth@>==...)308 869 y(1..n)152 b(@$@<Sloth@>@M==.)o(..)243
919 y(0.....n)f(@$@<Sloth@>@Z@M=)o(=...)177 1034 y Fn(The)14
b(only)g(t)o(w)o(o)f(problems)g(with)g(this)h(sc)o(heme)g(are:)228
1149 y(1.)20 b(It)11 b(is)g(incompatible)f(with)h(F)m(unnelW)m(eb)f(V1)i
(\014les,)f(as)h(the)f(default)g(in)g(F)m(unnelW)m(eb)g(V1)g(is)g(1)c
Fj(:)g(:)g(:)e(n)11 b Fn(whereas)281 1198 y(the)16 b(default)g(in)f(new)h(F)m
(unnelW)m(eb)f(is)h(1.)23 b(This)16 b(is)f(not)h(a)g(big)f(problem)f(b)q
(ecause)j(most)e(macros)g(in)g(the)281 1248 y(old)e(\014les)h(w)o(ere)h(used)
g(exactly)f(once.)19 b(Only)13 b(a)h(few)g(macros)f(will)f(ha)o(v)o(e)i(to)g
(b)q(e)g(c)o(hanged.)228 1331 y(2.)20 b(What)13 b(should)h(the)h(syn)o(tax)e
(b)q(e?)19 b(\(ab)q(o)o(v)o(e)14 b(is)g(a)f(sneak)i(preview)f(only!\))177
1446 y(The)g(initial)d(prop)q(osal)i(for)g(syn)o(tax)g(w)o(as)g(to)g(allo)o
(w)f(the)i(user)g(to)f(insert)h(zero,)g(one,)f(or)g(b)q(oth)g(of)g
Fi(@?)18 b Fn(and)13 b Fi(@M)g Fn(just)177 1496 y(after)h(the)h
Fi(@$)e Fn(of)g(a)h(macro)f(de\014nition.)k(Ho)o(w)o(ev)o(er,)d(this)g(has)g
(the)h(follo)o(wing)c(dra)o(wbac)o(ks:)228 1610 y(1.)20 b(It)14
b(uses)h(t)o(w)o(o)e(sequences)k(that)d(are)g(desirable)g(to)g(reserv)o(e)i
(\()p Fi(@?)i Fn(for)c(conditionals)f(and)g Fi(@M)h Fn(for)f(macro\).)228
1693 y(2.)20 b(It)14 b(stops)g(the)h(user)g(from)d(searc)o(hing)i(for)g(the)g
(string)g Fi(@$@<name)f Fn(to)g(\014nd)h(the)h(de\014nition)e(of)h(a)f
(macro.)177 1808 y(These)h(are)e(signi\014can)o(t)g(problems.)17
b(Here)c(are)g(some)e(alternativ)o(e)h(ideas)h(for)f(where)h(to)f(p)q
(osition)g(the)h(mo)q(di\014ers)177 1858 y(in)h(the)g(macro)f(de\014nition:)
177 1973 y Fi(@?@M@$@<Slothy)19 b(dogs@>@\(@5@\)==@{@-)177
2022 y(This)i(is)h(a)f(short)g(macro.)177 2072 y(With)g(only)g(a)h(line)f(or)
g(two@})177 2172 y(@$@<Slothy)f(dogs@>@?@M@\(@5@\)=)o(=@{@-)177
2222 y(This)h(is)h(a)f(short)g(macro.)177 2271 y(With)g(only)g(a)h(line)f(or)
g(two@})177 2371 y(@$@<Slothy)f(dogs@>@\(@5@\)@?@M=)o(=@{@-)177
2421 y(This)h(is)h(a)f(short)g(macro.)177 2471 y(With)g(only)g(a)h(line)f(or)
g(two@)177 2586 y Fn(The)14 b(\014rst)f(form)e(puts)j(me)e(o\013)h(b)q
(ecause)h(I)f(think)g(that)g(it)f(is)h(a)g(go)q(o)q(d)f(visual)g(rule)h(to)g
(start)h(all)e(the)h(macros)f(with)177 2635 y Fi(@$)p Fn(.)17
b(The)12 b(second)h(form)d(puts)j(me)d(o\013)i(b)q(ecause)i(it)d(detac)o(hes)
i(the)g(macro)d(name)h(from)f(the)j(parameter)e(list,)g(th)o(us)177
2685 y(making)g(it)i(lo)q(ok)f(less)i(lik)o(e)f(a)g(call,)f(whic)o(h)h(is)h
(desirable)f(syn)o(tactic)h(resonance.)20 b(The)13 b(third)h(form)d(is)j
(messy)f(but)177 2735 y(probably)i(w)o(ork)n(able.)23 b(Because)17
b(w)o(e)f(are)g(righ)o(t)g(next)g(to)f(the)h(tested)i(constan)o(t)e(string)g
(\(either)g Fi(==)g Fn(or)f Fi(+=)p Fn(\))h(w)o(e)177 2785
y(could)f(augmen)o(t)e(it)h(further.)21 b(F)m(or)15 b(example,)e
Fi(01==)h Fn(could)g(allo)o(w)f(a)h(macro)g(to)g(b)q(e)i(called)e(from)f(0)h
(to)h(1)f(times.)177 2835 y(The)g(main)e(problem)h(with)g(this)h(is)g(that)g
(w)o(e)g(are)g(trying)g(to)g(phase)g(out)g Fi(==)f Fn(an)o(yw)o(a)o(y!)1042
2940 y(22)p eop
%%Page: 23 24
23 23 bop 177 42 a Fn(Nev)o(ertheless,)17 b(all)c(the)j(logic)d(p)q(oin)o(ts)
i(to)f(after)h(the)g(parameter)g(list)f(as)h(the)g(b)q(est)h(place)f(to)f(lo)
q(cate)h(this)g(infor-)177 91 y(mation.)177 167 y(After)21
b(some)d(though)o(t,)j(it)e(w)o(as)h(decided)h(that)f(the)g(\\)p
Fi(@?)p Fn(")35 b(sequence)22 b(b)q(e)e(reserv)o(ed)i(for)e(a)f(p)q(ossible)h
(future)177 217 y(conditional)13 b(facilit)o(y)m(,)e(and)j(so)g
Fi(@Z)f Fn(w)o(as)h(used)h(instead.)177 292 y Fk(Decision:)h
Fn(The)f(p)q(osition)e(is)h(after)g(the)g(parameter)g(list.)j(The)e(notation)
e(is)g Fi(@Z)h Fn(for)f(zero,)i(and)e Fi(@M)h Fn(for)f(man)o(y)m(.)177
368 y(Example)g(of)g(\014nal)g(syn)o(tax:)177 486 y Fi(@$@<Slothy)20
b(dogs@>@\(@5@\)@Z@M+)o(=@{@-)177 536 y(This)h(is)h(a)f(short)g(macro.)177
585 y(With)g(only)g(a)h(line)f(or)g(two@})177 750 y Fe(1.10)70
b(The)25 b(Relationship)e(Bet)n(w)n(een)g(Do)r(cumen)n(t)h(Structure)h(and)
368 825 y(Macro)f(Structure)177 942 y Fn(Ha)o(ving)15 b(already)h(decided)h
(up)q(on)f(a)g(fully)e(hierarc)o(hical)i(do)q(cumen)o(t)g(structure,)i(I)e
(determined)g(to)g(re\014ne)h(the)177 992 y(details.)h(The)c(issues)h(to)f(b)
q(e)h(addressed)g(w)o(ere)g(as)f(follo)o(ws:)239 1110 y Fm(\017)21
b Fn(Ho)o(w)13 b(should)h(the)h(hierarc)o(hical)e(structure)j(connect)g(to)d
(the)i(macro)e(structure?)239 1194 y Fm(\017)21 b Fn(Ho)o(w)13
b(can)i(bac)o(kw)o(ards)f(compatibilit)o(y)c(b)q(e)15 b(ac)o(hiev)o(ed?)j
(Should)c(it?)239 1279 y Fm(\017)21 b Fn(Should)13 b(the)i(macros)e(b)q(e)h
(cross)h(referenced)i(b)o(y)c(section)i(or)f(b)o(y)g(de\014nition?)239
1363 y Fm(\017)21 b Fn(Should)13 b(nameless)h(sections)h(inherit)f(macro)e
(names)h(as)h(headings?)239 1448 y Fm(\017)21 b Fn(Should)13
b(w)o(e)h(simply)e(use)j(T)708 1457 y(E)731 1448 y(X)f(macros)f(to)h
(structure)i(the)e(do)q(cumen)o(t?)177 1566 y(After)h(some)e(though)o(t,)g(I)
h(arriv)o(ed)g(at)f(the)i(follo)o(wing)c(though)o(ts:)177 1642
y Fk(Basically)i(a)h(T)439 1651 y(E)464 1642 y(X)h(\014le:)h
Fn(One)d(option)f(is)g(simply)e(to)i(treat)h(eac)o(h)g Fi(.fw)e
Fn(\014le)i(as)f(a)g(T)1481 1651 y(E)1504 1642 y(X)g(\014le)h(laced)f(with)g
(macros.)177 1691 y(That)18 b(is,)g(a)g Fi(.fw)f Fn(\014le)h(could)f(b)q(e)i
(structured)h(as)e(a)f(real)h(T)1117 1700 y(E)1140 1691 y(X)g(\014le)g(from)e
(whic)o(h)i(F)m(unnelW)m(eb)f(could)h(extract)177 1741 y(macro)13
b(de\014nitions.)18 b(This)13 b(approac)o(h)h(is)g(feasible)f(b)q(ecause)j(T)
1157 1750 y(E)1180 1741 y(X)e(could)f(b)q(e)i(programmed)c(to)j(resp)q(ond)h
(to)e(the)177 1791 y Fi(@)g Fn(sequences)i(in)d(the)i(same)e(w)o(a)o(y)g
(that)h(F)m(unnelW)m(eb)f(resp)q(onds)i(to)f(them.)k(Th)o(us,)12
b(there)i(w)o(ould)e(b)q(e)i(no)e(need)i(for)177 1841 y(W)m(ea)o(v)o(e.)177
1916 y(I)h(rejected)i(this)e(approac)o(h,)g(\014rst)g(b)q(ecause)i(it)e(is)g
(to)q(o)f(t)o(yp)q(esetter-dep)q(e)q(nden)o(t,)k(and)d(second)h(b)q(ecause)h
(it)d(com-)177 1966 y(plicates)i(the)h(inclusion)e(of)h(an)o(y)f(sort)h(of)g
(complicated)e(p)q(ost-pro)q(cessing)k(in)d(the)i(do)q(cumen)o(tation)e
(\014le.)24 b(This)177 2016 y(w)o(ould)13 b(ha)o(v)o(e)h(to)g(b)q(e)g
(implemen)o(ted)e(in)h(T)818 2025 y(E)841 2016 y(X.)177 2091
y(A)h(b)q(etter)h(approac)o(h)f(is)f(to)h(use)g(an)g(in)o(v)o(en)o(ted)g
(section)g(notation)f(\(e.g.)18 b Fi(@A)j(@B)g(@C)p Fn(\).)13
b(This)h(main)o(tains)d(F)m(unnel-)177 2141 y(W)m(eb's)h(t)o(yp)q(esetter)k
(indep)q(endence)f(and)d(can)h(easily)f(b)q(e)i(con)o(v)o(erted)g(in)o(to)e
(T)1365 2150 y(E)1388 2141 y(X)h(sectioning)f(macros)g(b)o(y)h(W)m(ea)o(v)o
(e.)177 2217 y(In)g(the)h(same)e(spirit,)g(it)h(migh)o(t)e(b)q(e)j(w)o(orth)f
(in)o(tro)q(ducing)f(a)h(few)g Fi(@)g Fn(sequences)i(for)e(certain)h(general)
f(t)o(yp)q(esetting)177 2267 y(op)q(erations)h(suc)o(h)h(as)f(italics)f(and)h
(program)e(co)q(de.)177 2342 y Fk(Confusion)f(in)i(F)l(unnelW)l(eb)e(V1)j
(Heading)e(Num)o(b)q(ering:)j Fn(F)m(unnelW)m(eb)d(V1)g(uses)h(t)o(w)o(o)f
(lev)o(els)g(of)f(section)177 2392 y(headings,)16 b(but)g(n)o(um)o(b)q(ers)f
(all)f(the)i(headings)g(sequen)o(tially)m(.)22 b(In)16 b(this,)f(it)h(is)f(a)
g(little)g(confused.)24 b(Clearly)15 b(with)177 2442 y(a)20
b(fully)e(hierarc)o(hical)h(do)q(cumen)o(t)h(structure,)i(the)f(headings)e
(cannot)h(b)q(e)g(n)o(um)o(b)q(ered)g(sequen)o(tially)f(|)g(the)177
2492 y(n)o(um)o(b)q(ering)13 b(m)o(ust)g(re\015ect)i(the)g(structure)h
(\(e.g.)d(3.2.1\).)177 2567 y Fk(Hierarc)o(hical)d(n)o(um)o(b)q(erin)o(g)f
(is)j(messy)f(for)h(macros:)k Fn(Unfortunately)m(,)11 b(hierarc)o(hical)f(n)o
(um)o(b)q(ering)g(is)g(messy)177 2617 y(and)k(confusing)f(when)i(applied)e
(to)h(macro)e(names.)18 b(In)c(F)m(unnelW)m(eb)f(V1's)h(t)o(yp)q(eset)h
(output,)f(eac)o(h)g(macro)f(call)177 2667 y(has)i(app)q(ended)g(in)f(square)
h(brac)o(k)o(ets)h(the)f(n)o(um)o(b)q(er)f(of)f(the)i(section)h(in)e(whic)o
(h)g(the)h(macro)e(is)h(de\014ned.)21 b(Use)15 b(of)177 2716
y(hierarc)o(hical)f(n)o(um)o(b)q(ering)e(w)o(ould)i(b)q(e)g(somewhat)f(messy)
m(.)k(F)m(or)d(example,)e(a)h(macro)g(call)g(migh)o(t)f(lo)q(ok)h(lik)o(e.)
243 2835 y Fi(Write)20 b(out)h(the)h(output[6.7.4.3])1042 2940
y Fn(23)p eop
%%Page: 24 25
24 24 bop 177 42 a Fn(Similarly)l(,)11 b(cross)k(reference)h(lists)e(w)o
(ould)f(b)q(e)i(messy:)243 180 y Fi(This)21 b(macro)f(is)i(used)f(in)g
(3.4.5,)g(1.2,)g(7.8.9,)f(7.4,)h(2.2.1.1.)177 319 y Fk(Separate)12
b(n)o(um)o(b)q(ering)e(for)j(macros)h(and)f(headings:)i Fn(One)e(idea)f(is)g
(to)g(use)g(hierarc)o(hical)g(n)o(um)o(b)q(ering)f(for)177
369 y(the)i(sections,)h(but)f(to)f(n)o(um)o(b)q(er)g(the)h(macros)f(sequen)o
(tially)m(.)k(This)d(could)f(b)q(e)h(a)g(little)f(confusing)g(in)g(do)q
(cumen)o(ts)177 419 y(without)j(m)o(uc)o(h)g(structure,)i(but)f(w)o(ould)f(b)
q(e)h(v)o(ery)g(m)o(uc)o(h)f(less)h(messy)f(than)h(cross)g(referencing)h
(using)f(hierar-)177 469 y(c)o(hical)f(n)o(um)o(b)q(ering.)22
b(Also,)15 b(it)g(will)f(b)q(e)i(easier)g(to)g(\014nd)f(macros)g(indexed)h(b)
o(y)f(a)g(sequen)o(tial)h(n)o(um)o(b)q(er)f(than)g(b)o(y)177
519 y(section,)g(whic)o(h)g(has)g(a)g(less)g(direct)h(relationship)e(with)h
(page)g(bulk)f(and)h(n)o(um)o(b)q(er.)20 b(By)15 b(macro)e(n)o(um)o(b)q
(ering)h(is)177 568 y(mean)o(t)f(the)h(sequen)o(tial)g(n)o(um)o(b)q(ering)f
(of)g(eac)o(h)h(macro)f(b)q(o)q(dy)h(part)g(through)g(the)h(whole)e(do)q
(cumen)o(t.)177 652 y Fk(Input)h(format)g(matters)f(more)i(than)f(output)f
(format:)k Fn(A)o(t)c(this)h(p)q(oin)o(t)e(w)o(e)i(realize)g(that)f(a)g
(distinction)177 702 y(should)f(b)q(e)g(made)e(b)q(et)o(w)o(een)j(the)f
Fh(input)i(format)d Fn(and)g(the)h Fh(typ)n(eset)h(output)p
Fn(.)18 b(The)12 b(critical)f(issue)h(here)h(is)f(not)f(ho)o(w)177
752 y(the)16 b(program)e(should)h(b)q(e)i(formatted)d(for)h(prin)o(ting,)g
(but)g(rather)i(the)f(format)d(of)i(its)h Fi(.fw)f Fn(\014le.)22
b(The)16 b(t)o(yp)q(eset)177 802 y(output)e(can)h(alw)o(a)o(ys)e(b)q(e)h(c)o
(hanged)h(simply)d(b)o(y)i(\014ddling)f(with)g(W)m(ea)o(v)o(e.)18
b(Ho)o(w)o(ev)o(er,)c(as)g(so)q(on)g(as)h(the)f(do)q(cumen)o(t)177
851 y(structuring)g(features)f(of)f(F)m(unnelW)m(eb)g(are)h(\014xed,)f(they)h
(will)e(b)q(e)i(used)h(in)e(dozens)h(or)f(h)o(undreds)i(of)e(do)q(cumen)o(ts)
177 901 y(and)j(it)g(will)f(b)q(e)i(v)o(ery)g(di\016cult)f(indeed)h(to)f(c)o
(hange)h(them.)21 b(Therefore,)c(the)f(imp)q(ortan)o(t)e(thing)g(is)i(to)f
(pro)o(vide)177 951 y(as)f(sensible)h(and)f(expressiv)o(e)h(a)f
Fi(.fw)f Fn(format)f(as)i(p)q(ossible.)177 1035 y(It)d(is)g(therefore)h(a)e
(separate)i(decision)f(as)g(to)f(whether)i(w)o(e)f(should)g(n)o(um)o(b)q(er)f
(macros)g(b)o(y)g(section)h(or)g(b)o(y)g(sequence)177 1085
y(n)o(um)o(b)q(er.)17 b(The)e(imp)q(ortan)o(t)d(thing)h(is)h(to)g(address)h
(the)f(format)f(and)g(rules)i(for)e(the)i(expression)g(of)e(structure.)177
1168 y Fk(Naming)k(sections:)i Fn(The)d(naming)d(of)i(sections)h(requires)h
(some)d(though)o(t.)22 b(In)16 b(man)o(y)d(cases)k(\(esp)q(ecially)e(in)177
1218 y(the)k(case)g(of)e(high-lev)o(el)g(sections\))i(the)f(writer)h(will)d
(pro)o(vide)i(an)g(explicit)f(name)g(for)h(a)f(section.)31
b(In)18 b(other)177 1268 y(cases,)d(pro)o(vision)e(of)g(suc)o(h)h(a)g(name)e
(will)h(merely)g(duplicate)g(the)i(name)d(of)h(the)i(macro)d(con)o(tained)i
(within)f(the)177 1318 y(section.)23 b(It)15 b(therefore)i(mak)o(es)d(sense)j
(to)e(allo)o(w)e(the)j(user)g(to)f(omit)f(the)h(name)f(from)g(a)h(section,)g
(with)g(W)m(ea)o(v)o(e)177 1368 y(naming)10 b(the)k(section)f(after)g(the)g
(\014rst)h(macro)d(de\014nition)h(in)g(the)i(section.)k(If)12
b(a)h(macro)e(is)h(unnamed)g(and)g(there)177 1417 y(is)i(no)g(macro)e(in)i
(the)g(section,)g(an)g(error)h(can)f(b)q(e)g(generated.)177
1501 y(All)f(these)j(though)o(ts)e(lead)f(to)h(the)g(follo)o(wing)e(sc)o
(heme:)239 1640 y Fm(\017)21 b Fn(Do)q(cumen)o(ts)13 b(will)g(b)q(e)h
(hierarc)o(hically)g(structured)i(using)d Fi(@A)p Fn(,)g Fi(@B)h
Fn(etc.)239 1741 y Fm(\017)21 b Fn(Eac)o(h)14 b(section)h(can)f(b)q(e)g(giv)o
(en)g(a)f(name)g(delimited)f(b)o(y)i Fi(@<@>)p Fn(.)239 1842
y Fm(\017)21 b Fn(Sections)15 b(that)f(do)f(not)h(ha)o(v)o(e)g(names)f
(inherit)h(the)g(name)f(of)g(their)h(\014rst)h(macro.)239 1943
y Fm(\017)21 b Fn(If)13 b(a)h(section)h(do)q(es)f(not)g(ha)o(v)o(e)g(a)f
(name)g(or)h(a)g(macro,)e(it)h(is)h(erroneous.)239 2045 y Fm(\017)21
b Fn(Sections)15 b(will)d(b)q(e)j(n)o(um)o(b)q(ered)e(hierarc)o(hically)g
(either)i(b)o(y)f(F)m(unnelW)m(eb)f(or)h(b)o(y)g(T)1551 2054
y(E)1574 2045 y(X.)239 2146 y Fm(\017)21 b Fn(Macro)12 b(b)q(o)q(dy)f(parts)h
(will)e(b)q(e)i(n)o(um)o(b)q(ered)f(sequen)o(tially)g(b)o(y)g(F)m(unnelW)m
(eb)g(and)h(cross)g(referenced)i(b)o(y)d(these)281 2196 y(n)o(um)o(b)q(ers.)
177 2334 y(All)i(this)h(results)h(in)f(a)f(system)h(whic)o(h:)239
2473 y Fm(\017)21 b Fn(Pro)o(vides)14 b(a)g(hierarc)o(hical)g(do)q(cumen)o(t)
f(structuring)i(capabilit)o(y)m(.)239 2574 y Fm(\017)21 b Fn(Is)14
b(t)o(yp)q(esetter)i(indep)q(enden)o(t.)239 2676 y Fm(\017)21
b Fn(Do)q(es)14 b(not)g(require)h(duplication)e(b)q(et)o(w)o(een)i(heading)e
(and)h(macro)f(names.)239 2777 y Fm(\017)21 b Fn(Separates)14
b(the)f(heading)f(and)h(macro)e(systems)i(so)f(that)h(W)m(ea)o(v)o(e)f(can)h
(b)q(e)g(con\014gured)h(at)e(a)g(later)h(date)g(to)281 2827
y(cross)i(reference)h(in)e(di\013eren)o(t)h(w)o(a)o(ys)e(without)h(requiring)
f(input)h(\014les)g(to)g(b)q(e)h(rew)o(ork)o(ed.)1042 2940
y(24)p eop
%%Page: 25 26
25 25 bop 177 42 a Fe(1.11)70 b(Diagnostic)22 b(Messages)177
157 y Fn(In)14 b(F)m(unnelW)m(eb,)f(all)g(error)i(messages)f(commence)f(with)
h(an)g(indicator)f(indicating)g(the)i(sev)o(erit)o(y)g(of)e(the)i(error)177
207 y(message.)j(Here)d(are)f(some)f(of)h(the)g(formats)e(that)i(I)g(in)o(v)o
(estigated)g(b)q(efore)h(settling)e(on)h(the)h(\014nal)e(format:)177
323 y Fi(W--Error)20 b(creating)g(sloth.)177 373 y(E--Error)g(opening)h
(output)f(file.)177 423 y(S--I'm)h(a)g(teapot.)177 473 y(F--Can't)f(open)h
(output)g(file.)177 572 y(W-Error)g(creating)f(sloth.)177 622
y(E-Error)h(opening)f(output)g(file.)177 672 y(S-I'm)h(a)h(teapot.)177
722 y(F-Can't)f(open)f(output)h(file.)177 822 y(W:Error)g(creating)f(sloth.)
177 871 y(E:Error)h(opening)f(output)g(file.)177 921 y(S:I'm)h(a)h(teapot.)
177 971 y(F:Can't)f(open)f(output)h(file.)177 1071 y(W:)h(Error)e(creating)g
(sloth.)152 b(--)21 b(Format)g(chosen.)177 1120 y(E:)h(Error)e(opening)h
(output)f(file.)177 1170 y(S:)i(I'm)f(a)g(teapot.)177 1220
y(F:)h(Can't)e(open)h(output)g(file.)177 1320 y(War-Error)f(creating)g
(sloth.)177 1369 y(Err-Error)g(opening)g(output)h(file.)177
1419 y(Sev-I'm)g(a)g(teapot.)177 1469 y(Fat-Can't)f(open)h(output)g(file.)177
1569 y(W-Old)g(fashioned)f(feature.)177 1668 y(W-Old)h(fashioned)f(feature.)
177 1768 y(W--Old)h(fashioned)f(feature.)177 1868 y(W:)i(Old)f(fashioned)f
(feature.)177 1967 y(W:Old)h(fashioned)f(feature.)177 2129
y Fe(1.12)70 b(Summary)177 2245 y Fn(This)16 b(rather)i(unstructured)g(c)o
(hapter)g(has)e(addressed)i(some)e(of)f(the)i(k)o(ey)g(design)f(decisions)h
(of)f(F)m(unnelW)m(eb.)177 2295 y(In)e(man)o(y)e(cases,)j(the)g(alternativ)o
(es)f(ha)o(v)o(e)g(b)q(een)h(unpleasan)o(t,)e(but)h(I)g(am)f(con\014den)o(t)h
(that)g(in)g(all)f(cases,)h(a)g(fully)177 2345 y(w)o(ork)n(able)f(solution)g
(has)h(b)q(een)h(found.)1042 2940 y(25)p eop
%%Page: 26 27
26 26 bop 1042 2940 a Fn(26)p eop
%%Page: 27 28
27 27 bop 177 375 a Ff(Chapter)34 b(2)177 606 y Fl(F)-10 b(unnelW)g(eb)41
b(Implemen)m(tation)177 869 y Fe(2.1)70 b(In)n(tro)r(duction)177
982 y Fn(This)13 b(c)o(hapter)g(con)o(tains)g(notes)g(on)g(the)g(actual)f(C)h
(co)q(de)g(that)g(implemen)o(ts)d(F)m(unnelW)m(eb)i(V3.)18
b(This)12 b(c)o(hapter)i(is)177 1032 y(rather)h(patc)o(h)o(y)m(.)20
b(It)14 b(has)h(acted)g(mainly)d(as)i(a)h(dumping)d(ground)i(for)h(ideas)f
(that)h(I)f(b)q(othered)i(to)e(write)h(ab)q(out)177 1082 y(during)f(dev)o
(elopmen)o(t.)177 1241 y Fe(2.2)70 b(History)22 b(of)i(F)-6
b(unnelW)g(eb)22 b(Implemen)n(tati)o(ons)177 1354 y Fn(The)16
b(\014rst)h(implemen)o(tation)12 b(of)k(F)m(unnelW)m(eb)f(\(F)m(unnelW)m(eb)g
(V1\))h(w)o(as)g(written)g(in)g(Ada)g(in)f(Decem)o(b)q(er)h(1986.)177
1404 y(The)f(pro)r(ject)h(w)o(as)e(initially)e(canned)j(as)g(requiring)f(to)q
(o)g(m)o(uc)o(h)g(time,)f(but)h(w)o(as)h(resurrected)i(when)e(I)g(decided)177
1454 y(to)e(commit)d(to)k(Ada)p Fk([USDOD83])d Fn(and)i(realized)h(that)f(I)g
(needed)i(a)e(program)f(to)h(write)g(to)g(help)g(me)g(to)g(learn)177
1504 y(Ada.)18 b(F)m(unnelW)m(eb)13 b(V1)h(w)o(as,)g(in)f(fact,)g(m)o(y)g
(\014rst)h(Ada)g(program.)i(It)e(to)q(ok)g(ab)q(out)g(one)g(mon)o(th)e(to)i
(write.)177 1576 y(F)m(unnelW)m(eb)21 b(V1)g(w)o(as)g(used)h(in)o(tensiv)o
(ely)f(b)o(y)g(m)o(yself)e(to)j(write)f(Ada)g(programs)f(from)g(Jan)o(uary)h
(1986)f(to)177 1626 y(July)e(1989)f(at)h(whic)o(h)g(time)f(I)h(\014nished)h
(m)o(y)e(Ph.D.)g(and)h(lost)g(access)i(to)e(the)h(V)-5 b(AX.)18
b(During)g(this)g(time)f(at)177 1676 y(least)f(t)o(w)o(en)o(t)o(y)g(thousand)
g(lines)f(of)g(co)q(de)h(w)o(ere)h(generated)g(using)e(F)m(unnelW)m(eb.)23
b(Hardly)15 b(an)o(y)o(one)h(but)f(m)o(yself)177 1726 y(used)g(F)m(unnelW)m
(eb.)177 1798 y(After)f(losing)f(access)i(to)e(Ada)h(and)f(the)h(V)m(ax)f
(\(and)g(hence)i(to)e(F)m(unnelW)m(eb\),)g(I)g(w)o(as)h(forced)g(bac)o(k)f
(to)h(program-)177 1848 y(ming)9 b(the)i(non-literate)g(w)o(a)o(y)m(.)16
b(F)m(rom)9 b(time)g(to)i(time)e(I)i(found)g(that)f(I)h(needed)h(to)f(use)h
(some)e(of)g(m)o(y)f(old)h(programs)177 1898 y(that)15 b(I)f(had)h(written)g
(using)f(Ada)h(and)f(F)m(unnelW)m(eb.)19 b(I)c(knew)g(that)f(Ada)h(w)o(ould)f
(b)q(ecome)g(a)o(v)n(ailable)e(on)j(more)177 1947 y(mac)o(hines,)e(but)h
(certainly)g(F)m(unnelW)m(eb)g(w)o(ouldn't.)j(I)d(recognised)h(a)f(strong)g
(need)h(for)e(a)h(p)q(ortable)g(v)o(ersion)g(of)177 1997 y(F)m(unnelW)m(eb)g
(written)g(in)f(C)h(but)g(didn't)g(ha)o(v)o(e)f(the)i(time)d(or)i(energy)h
(to)f(create)h(one.)177 2070 y(Ab)q(out)20 b(this)g(time)f(\(late)h(1989\),)g
(Da)o(vid)f(Hulse,)i(at)f(the)g(time)f(a)g(studen)o(t)i(in)f(Computer)f
(Science)i(at)f(the)177 2119 y(Univ)o(ersit)o(y)c(of)f(Adelaide,)h(v)o(olun)o
(teered)h(to)e(translate)h(the)h(4000)e(line)g(Ada)h(v)o(ersion)g(of)f(F)m
(unnelW)m(eb)g(in)o(to)g(C.)177 2169 y(T)m(o)e(m)o(y)e(kno)o(wledge)j(this)f
(translation)g(pro)q(cess)i(to)q(ok)e(ab)q(out)g(three)i(w)o(eeks)f(\(in)f
(Decem)o(b)q(er)h(1989\).)j(The)d(result)177 2219 y(w)o(as)g(called)g(F)m
(unnelW)m(eb)f(V2)h(and)f(w)o(as)h(formally)d(signed)j(in)o(to)f(the)i
(public)e(domain)f(on)i(5)f(Ma)o(y)h(1992.)177 2291 y(In)k(general,)h(Da)o
(vid)d(Hulse)j(did)e(a)h(go)q(o)q(d)g(job.)29 b(Ho)o(w)o(ev)o(er,)19
b(the)g(resultan)o(t)f(co)q(de)h(su\013ered)h(from)c(one)i(or)g(few)177
2341 y(serious)d(defects,)g(the)f(most)f(serious)i(of)e(whic)o(h)h(w)o(as)f
(a)h(lac)o(k)f(of)h(p)q(ortabilit)o(y)m(.)177 2414 y(Lac)o(k)c(of)g(p)q
(ortabilit)o(y)f(of)g(the)i(C)f(co)q(de,)i(com)o(bined)c(with)i(the)h(need)g
(for)f(a)g(rather)h(solid)f(design)g(review,)h(com)o(bined)177
2463 y(with)17 b(the)g(need)h(to)e(strengthen)j(the)e(program)e(to)i(bring)f
(it)g(up)h(to)g(pro)q(duction)g(standard,)g(resulted)h(in)e(m)o(y)177
2513 y(p)q(erforming)10 b(a)i(complete)f(rew)o(orking)g(of)g(the)i(co)q(de.)
18 b(The)12 b(C)g(co)q(de)g(w)o(as)g(en)o(tirely)m(,)f(but)h(incremen)o
(tally)m(,)e(replaced)177 2563 y(or)20 b(reformatted.)36 b(The)21
b(co)q(de)f(w)o(as)g(also)g(strengthened)i(and)e(new)g(features)h(w)o(ere)g
(added.)37 b(This)20 b(pro)q(cess)177 2613 y(to)q(ok)d(ab)q(out)h(t)o(w)o(o)f
(mon)o(ths)f(\(No)o(v)o(em)o(b)q(er)h(and)h(Decem)o(b)q(er)g(1991\).)28
b(A)17 b(further)i(t)o(w)o(o)e(mon)o(ths)f(\(appro)o(x\))i(w)o(ere)177
2663 y(sp)q(en)o(t)13 b(writing)f(do)q(cumen)o(tation,)f(constructing)i(a)f
(regression)h(test)h(suite,)e(p)q(orting)g(the)h(program)e(to)h(di\013eren)o
(t)177 2712 y(mac)o(hines,)h(and)g(sorting)h(out)g(the)g(legal)f(issues)i(in)
o(v)o(olv)o(ed)e(in)g(its)h(release.)177 2785 y(I)g(w)o(ould)f(lik)o(e)h(to)g
(tak)o(e)g(this)g(opp)q(ortunit)o(y)g(to)g(record)h(a)f(debt)g(of)g
(gratitude)g(to)g(Da)o(vid)f(Hulse)h(who)g(translated)177 2835
y(F)m(unnelW)m(eb)f(from)e(Ada)i(to)f(C.)h(Although)f(m)o(y)f(rew)o(orking)i
(of)f(his)h(C)g(co)q(de)h(obliterated)f(most)e(of)i(his)f(co)q(de,)i(his)1042
2940 y(27)p eop
%%Page: 28 29
28 28 bop 177 42 a Fn(translation)14 b(w)o(as)g(piv)o(otal)e(to)i(the)h(dev)o
(elopmen)o(t)e(pro)q(cess.)21 b(Without)14 b(his)g(e\013ort)h(in)e(mo)o(ving)
f(from)g(Ada)i(to)g(C,)177 91 y(I'm)f(not)j(sure)g(that)f(I)g(w)o(ould)g(ha)o
(v)o(e)g(m)o(ustered)g(the)h(energy)g(and)f(time)f(to)h(complete)g(the)h(pro)
q(cess)h(and)e(bring)177 141 y(F)m(unnelW)m(eb)f(up)f(to)h(its)g(curren)o(t)h
(standard.)177 308 y Fe(2.3)70 b(Wh)n(y)23 b(F)-6 b(unnelW)g(eb)23
b(W)-6 b(asn't)24 b(Used)e(to)h(W)-6 b(rite)22 b(Itself)177
426 y Fn(After)d(Kn)o(uth)g(created)g(the)g(W)m(eb)f(literate)h(prepro)q
(cessing)h(system,)e(he)h(re-wrote)g(it)f(using)g(W)m(eb)g(and)g(dis-)177
476 y(tributed)13 b(the)g(source)g(co)q(de)g(in)f(W)m(eb)g(source)i(form.)h
(T)m(o)d(allo)o(w)e(the)j(W)m(eb)f(source)h(co)q(de)h(to)e(b)q(e)g(tangled)g
(b)o(y)g(users)177 526 y(not)i(y)o(et)g(ha)o(ving)f(a)g(cop)o(y)h(of)g(W)m
(eb,)f(he)h(also)f(included)h(the)h(tangled)e(P)o(ascal)h(co)q(de)h(for)e
(the)i(T)m(angler.)177 602 y(While)j(this)g(approac)o(h)h(is)f(heroic)h(and)g
(serv)o(es)h(to)e(con)o(v)o(ey)h(a)f(commitm)o(en)o(t)e(and)i(a)g
(con\014dence)i(in)f(literate)177 652 y(programming,)10 b(it)j(seemed)h(to)g
(me)e(that)i(writing)f(F)m(unnelW)m(eb)g(in)g(F)m(unnelW)m(eb)g(w)o(ould)g
(simply)f(b)q(e)i(asking)f(for)177 702 y(trouble.)18 b(F)m(or)11
b(a)g(start,)i(it)e(w)o(ould)g(b)q(e)h(v)o(ery)g(hard)g(to)g(mo)q(dify)d(an)o
(y)i(feature)i(of)e(F)m(unnelW)m(eb)g(that)h(had)f(b)q(een)i(used)177
752 y(to)18 b(write)g(F)m(unnelW)m(eb,)f(and)h(the)g(though)o(t)g(of)f(what)g
(w)o(ould)g(happ)q(en)h(if)f(the)h(w)o(orking)f(executable)i(b)q(ecame)177
801 y(inop)q(erativ)o(e)14 b(for)f(some)g(reason)i(do)q(es)g(not)e(b)q(ear)i
(thinking)e(up)q(on.)177 878 y(One)18 b(million)c(billion)h(computer)i
(programs)f(w)o(ere)j(written)f(in)e(the)i(non-literate)g(st)o(yle)f(b)q
(efore)h(F)m(unnelW)m(eb)177 928 y(w)o(as)c(created.)20 b(Wh)o(y)13
b(not)h(one)g(more?)177 1095 y Fe(2.4)70 b(Co)r(ding)22 b(St)n(yle)177
1213 y Fn(Although)15 b(F)m(unnelW)m(eb)g(w)o(asn't)g(co)q(ded)h(under)g(an)o
(y)f(particular)g(co)q(ding)g(standard,)h(it)f(w)o(as)g(co)q(ded)h(in)f
(accor-)177 1263 y(dance)c(with)e(a)g(fairly)g(strict)h(p)q(ersonal)g(st)o
(yle)g(of)f(C)g(whic)o(h)h(dev)o(elop)q(ed)g(during)g(the)g(dev)o(elopmen)o
(t)f(of)g(F)m(unnelW)m(eb.)177 1312 y(This)17 b(st)o(yle)f(w)o(as)h
(subsequen)o(tly)h(em)o(b)q(o)q(died)d(in)h(a)g(real)h(C)f(co)q(ding)h
(standard)g(prepared)g(for)g(the)g(South)f(Aus-)177 1362 y(tralian)10
b(Go)o(v)o(ernmen)o(t)g(Departmen)o(t)h(of)f(Lands.)935 1347
y Fd(1)971 1362 y Fn(Unfortunately)m(,)h(F)m(unnelW)m(eb)g(w)o(as)g(not)g
(formally)d(dev)o(elop)q(ed)177 1412 y(under)16 b(the)g(standard)g(and)f(so)g
(some)g(holes)g(remain)f(in)h(F)m(unnelW)m(eb's)g(co)q(ding)g(st)o(yle.)22
b(This)15 b(section)h(aims)e(to)177 1462 y(describ)q(e)i(some)d(of)g(the)i
(more)d(imp)q(ortan)o(t)h(asp)q(ects)i(of)e(the)i(co)q(ding)f(st)o(yle.)177
1538 y Fk(P)o(ortabili)o(t)n(y:)27 b Fn(This)19 b(w)o(as)g(a)g(ma)r(jor)e
(goal)h(of)h(the)g(F)m(unnelW)m(eb)g(implemen)o(tatio)o(n.)31
b(Tw)o(o)19 b(excellen)o(t)h(b)q(o)q(oks)177 1588 y(guided)f(this)g(mo)o(v)o
(e)e(to)i(p)q(ortabilit)o(y)m(.)31 b(They)19 b(w)o(ere)h Fk([Rabino)o
(witz90])c Fn(\(whic)o(h)j(deals)g(with)f(C)h(co)q(de)h(itself)s(\))177
1638 y(and)15 b Fk([Horton90])g Fn(\(whic)o(h)g(deals)h(with)f(the)h(p)q
(ortabilit)o(y)e(of)g(v)n(arious)h(library)g(calls\).)22 b(Other)16
b(w)o(orks)g(suc)o(h)g(as)177 1687 y Fk([Kernighan88])c Fn(and)i
Fk([ANSI])g Fn(w)o(ere)h(also)e(helpful.)177 1764 y Fk(Iden)o(ti\014ers:)i
([Rabino)o(witz90])p Fn(length)10 b(sp)q(eci\014es)k(that)f(for)f(wide)g(p)q
(ortabilit)o(y)m(,)f(iden)o(ti\014ers)i(of)f(blo)q(c)o(k)g(and)h(\014le)177
1814 y(scop)q(e)j(should)f(b)q(e)h(unique)f(to)g(eigh)o(t)f(c)o(haracters,)j
(and)e(iden)o(ti\014ers)h(of)e(program)f(scop)q(e)j(should)f(b)q(e)h(unique)f
(to)177 1863 y(six)d(c)o(haracters.)19 b(I)11 b(ha)o(v)o(e)h(gone)f(further)i
(in)e(F)m(unnelW)m(eb)g(and)h(actually)e(made)h(these)i(restrictions)g
(actual)e(limits)177 1913 y(on)j(iden)o(ti\014er)g(length.)177
1989 y(Because)k(names)d(m)o(ust)g(b)q(e)i(so)f(short,)g(a)g(system)g(of)f
(abbreviations)h(w)o(as)g(dev)o(elop)q(ed)g(to)g(organize)g(the)h(iden-)177
2039 y(ti\014ers)f(used)h(within)d(F)m(unnelW)m(eb.)23 b(Eac)o(h)15
b(abbreviation)g(consists)i(of)d(a)i(letter)g(pair.)22 b(Here)17
b(are)f Fh(some)f Fn(of)g(the)177 2089 y(abbreviations)f(used:)177
2209 y Fi(bp)22 b(-)f(Body)g(Part.)177 2259 y(cm)h(-)f(Compare.)f(Used)h(to)h
(prefix)e(comparison)g(routines)g(that)h(return)g([-1,0,1].)177
2309 y(dc)h(-)f(Document)f(component.)177 2359 y(dm)i(-)f(Dump)g(package.)177
2408 y(el)h(-)f(Element.)177 2458 y(eq)h(-)f(Equal.)g(Used)g(to)g(prefix)g
(comparison)e(routines)h(that)h(return)g(a)h(boolean.)177 2508
y(ex)g(-)f(Expression.)177 2558 y(f)44 b(-)21 b(Global)g(files.)177
2608 y(ll)h(-)f(List)g(of)g(lists.)177 2658 y(ln)h(-)f(Line)g(record.)177
2707 y(ls)h(-)f(List)g(Package.)177 2757 y(lr)h(-)f(Lister)g(package.)p
177 2796 709 2 v 223 2823 a Fc(1)241 2835 y Fb(The)11 b(standard)e(is)j
(curren)o(tly)d(una)o(v)n(ailable)o(,)g(but)i(is)g(lik)o(ely)f(to)h(b)q(e)g
(released)f(or)h(published)e(ev)o(en)o(tually)m(.)1042 2940
y Fn(28)p eop
%%Page: 29 30
29 29 bop 177 42 a Fi(ma)22 b(-)f(Macro.)177 91 y(mc)h(-)f(Macro)g(Call.)177
141 y(mn)h(-)f(Macro)g(Name.)177 191 y(op)h(-)f(Options)f(package.)177
241 y(pr)i(-)f(Parser.)177 291 y(ps)h(-)f(Position)f(record.)177
340 y(sc)i(-)f(Scrap)g(record.)177 390 y(sn)h(-)f(Section.)177
440 y(tb)h(-)f(Table)g(package.)177 490 y(ty)h(-)f(Typesetter)f(directive.)
177 540 y(wf)i(-)f(Write)g(file)g(package.)177 589 y(wl)h(-)f(Write)g(with)g
(EOL)g(\(misc.c\).)177 639 y(wr)h(-)f(Write)217 b(\(misc.c\).)177
756 y Fk(P)o(oin)o(ters:)15 b Fn(V)m(ariables)f(or)g(t)o(yp)q(es)g(denoting)g
(p)q(oin)o(ters)g(start)h(with)e(\\)p Fi(p)p 1292 756 14 2
v 16 w Fn(".)177 831 y Fk(T)o(yp)q(es:)18 b Fn(Names)13 b(denoting)g(t)o(yp)q
(es)h(end)g(in)f(\\)p 898 831 V 15 w Fi(t)p Fn(".)18 b(Th)o(us,)13
b(a)g(t)o(yp)q(e)h(for)f(a)g(p)q(oin)o(ter)g(to)g(a)g(table)g(w)o(ould)g(b)q
(e)h(named)177 881 y Fi(p)p 202 881 V 16 w(tb)p 262 881 V 15
w(t)p Fn(.)177 956 y Fk(File)j(names:)23 b Fn(All)16 b(\014les)h(used)g(in)f
(F)m(unnelW)m(eb)g(ha)o(v)o(e)g(\014le)g(names)g(that)h(are)f(from)f(one)i
(to)f(eigh)o(t)g(c)o(haracters)177 1005 y(long)d(and)g(\014le)g(extensions)i
(that)e(are)h(from)e(one)h(to)h(three)g(c)o(haracters)i(long.)h(This)c
(ensures)i(that)f(the)g(\014les)g(can)177 1055 y(b)q(e)h(p)q(ortably)e(mo)o
(v)o(ed)f(to)i(all)f(kinds)h(of)f(mac)o(hines,)f(ev)o(en)j(MSDOS!)177
1218 y Fe(2.5)70 b(Use)22 b(of)h(Memory)177 1334 y Fn(F)m(unnelW)m(eb)15
b(is)h(not)g(a)g(memory-stressed)f(program.)23 b(Ho)o(w)o(ev)o(er,)16
b(during)f(its)h(dev)o(elopmen)o(t,)f(problems)g(with)177 1384
y(the)g(managemen)o(t)d(of)h(memory)f(seemed)j(to)f(crop)g(up)h(again)e(and)h
(again.)k(This)c(section)h(do)q(cumen)o(ts)f(some)f(of)177
1434 y(these)i(problems)e(and)h(the)h(solutions)e(adopted.)177
1509 y(There)22 b(are)e(three)i(places)e(where)i(memory)17
b(can)k(b)q(e)g(obtained:)30 b(the)21 b(heap,)g(the)g(stac)o(k,)h(and)e(from)
e(static)177 1558 y(v)n(ariables.)f(The)e(follo)o(wing)c(three)k(sections)g
(deal)f(with)f(eac)o(h)i(of)e(these)i(areas.)177 1721 y Fe(2.6)70
b(The)22 b(Heap)177 1837 y Fn(One)17 b(of)f(the)h(great)g(frustrations)f(of)g
(b)q(eing)h(a)f(user)h(is)f(to)h(\014nd)f(that)h(a)f(computer)g(program)e(is)
j(complaining)177 1887 y(ab)q(out)d(lac)o(k)f(of)g(memory)f(when)i(one)g(kno)
o(ws)g(full)e(w)o(ell)i(that)g(one)g(has)g(allo)q(cated)f(at)h(least)g(ten)g
(times)f(as)h(m)o(uc)o(h)177 1937 y(memory)f(to)j(the)g(program)e(as)i(it)f
(w)o(ould)g(ev)o(er)i(need)f(to)g(do)f(its)h(job.)23 b(The)16
b(reason)g(for)g(suc)o(h)g(error)h(messages)177 1987 y(usually)h(has)h(to)g
(do)f(with)g(the)i(programmer)c(setting)j(a)g(\014xed)g(\\reasonable")g
(limit)d(to)i(a)h(particular)f(data)177 2037 y(structure)f(and)d(then)h(lo)q
(c)o(king)e(it)i(up)f(in)o(to)g(an)g(arra)o(y)g(whose)h(b)q(ound)g(is)f(sp)q
(eci\014ed)i(b)o(y)e(a)g(constan)o(t.)21 b(While)13 b(the)177
2086 y(use)i(of)e(arra)o(ys)h(can)g(increase)h(the)f(sp)q(eed)h(of)e(a)h
(program,)d(it)i(also)h(means)e(that)i(the)h(user)f(cannot)g(increase)h(the)
177 2136 y(capacit)o(y)f(of)g(the)h(program)e(without)h(obtaining)f(the)i
(source)h(co)q(de)f(and)g(recompiling)d(it,)i(whic)o(h)g(is)g(usually)g(a)177
2186 y(daun)o(ting)f(option.)177 2261 y(The)g(alternativ)o(e)g(is)f(to)h(use)
h(the)f(heap)g(for)f(all)g(data)g(structures)j(that)e(can)g(gro)o(w)f(in)h
(prop)q(ortion)f(to)h(the)g(size)g(of)177 2311 y(the)f(user's)g(input.)17
b(This)11 b(rule)h(has)f(b)q(een)h(follo)o(w)o(ed)e(rigorously)g(in)h(F)m
(unnelW)m(eb.)16 b(This)11 b(means)g(that)g(as)g(memory)177
2360 y(spaces)h(increase,)g(users)g(will)d(b)q(e)i(able)g(to)f(hand)h(their)f
(v)o(ersion)h(of)f(F)m(unnelW)m(eb)g(more)g(memory)e(without)i(ha)o(ving)177
2410 y(to)k(recompile)f(it.)998 2510 y(|)h Fm(x)g Fn(|)177
2635 y(Some)i(problems)f(arose)j(early)e(on)h(the)g(Macin)o(tosh)g(in)f(the)h
(use)h(of)e(the)h(heap.)27 b(It)17 b(seems)g(that)f(some)g(of)g(the)177
2685 y(allo)q(cations)i(I)i(w)o(as)f(attempting)f(to)h(mak)o(e)f(w)o(ere)i
(failing)d(for)i(some)g(obscure)i(reason,)f(p)q(ossibly)f(m)o(y)f(fault.)177
2735 y(Whatev)o(er)c(it)f(w)o(as,)g(it)g(w)o(en)o(t)g(a)o(w)o(a)o(y)g(when)g
(I)h(replaced)g(direct)g(calls)f(to)g Fi(malloc)f Fn(with)h(calls)g(to)g(a)g
(mini)e(pac)o(k)n(age)177 2785 y(I)j(wrote)g(\(called)f Fi(memory)p
Fn(\))f(that)i(allo)q(cated)f(large)g(c)o(h)o(unks)h(of)f(memory)e(and)j
(then)g(doled)f(out)h(small)d(pieces)k(as)177 2835 y(required)g(b)o(y)f(the)g
(rest)h(of)e(the)i(program.)1042 2940 y(29)p eop
%%Page: 30 31
30 30 bop 177 42 a Fn(Ha)o(ving)13 b(a)h(pac)o(k)n(age)f(to)h(manage)e(all)h
(the)h(memory)e(allo)q(cation)g(had)i(t)o(w)o(o)f(other)h(b)q(ene\014ts.)177
122 y(First,)k(only)f(one)h(c)o(hec)o(k)g(w)o(as)g(required)g(in)f(the)h(en)o
(tire)g(program)e(to)h(see)i(if)e(memory)e(had)i(run)h(out)f(\(in)g(the)177
172 y(memory)f(pac)o(k)n(age\),)i(and)g(if)g(that)g(failed,)f(the)i(program)e
(could)h(b)q(e)g(brough)o(t)g(to)g(a)g(screaming)g(halt.)30
b(This)177 222 y(organization)20 b(w)o(as)g(far)g(preferable)i(to)e(ha)o
(ving)g(eac)o(h)h(piece)g(of)f(co)q(de)i(that)f(needed)h(to)e(allo)q(cate)g
(memory)177 272 y(ha)o(ving)13 b(to)h(c)o(hec)o(k)h(to)e(see)i(if)e
Fi(malloc)g Fn(had)h(failed.)177 352 y(Second,)21 b(the)f(decision)g(to)f
(construct)i(a)f(mini-shell)c(within)j(F)m(unnelW)m(eb)g(to)g(supp)q(ort)i
(regression)f(testing)177 402 y(mean)o(t)11 b(that)h(F)m(unnelW)m(eb)g(prop)q
(er)h(could)f(b)q(e)g(run)h(man)o(y)d(times)h(in)h(an)o(y)f(giv)o(en)h(in)o
(v)o(o)q(cation)f(of)g(F)m(unnelW)m(eb.)17 b(As)177 452 y(a)10
b(consequence)j(it)d(w)o(as)h(necessary)h(to)f(mak)o(e)e(sure)i(that)g(there)
g(w)o(as)g(no)f(memory)e(leak)n(age)i(b)q(et)o(w)o(een)i(in)o(v)o(o)q
(cations)177 502 y(of)18 b(F)m(unnelW)m(eb)h(prop)q(er.)33
b(This)19 b(w)o(as)g(accomplished)e(b)o(y)i(rew)o(orking)g(the)g(memory)d
(pac)o(k)n(age)j(to)f(op)q(erate)i(a)177 551 y(w)o(atermark)12
b(system.)17 b(The)d(user)g(of)e(the)i(pac)o(k)n(age,)e(when)h(requesting)h
(memory)m(,)c(could)i(request)j(\\temp)q(orary")177 601 y(or)g(\\p)q(ermanen)
o(t".)22 b(If)15 b(p)q(ermanen)o(t,)g(the)h(memory)d(pac)o(k)n(age)i(forgot)f
(that)i(it)f(had)g(allo)q(cated)g(the)h(memory)m(.)j(If)177
651 y(temp)q(orary)m(,)12 b(the)i(memory)c(pac)o(k)n(age)j(places)h(the)g
(allo)q(cated)f(blo)q(c)o(k)g(on)g(a)g(list.)k(There)d(w)o(as)f(then)h(a)f
(function)g(in)177 701 y(the)f(memory)d(pac)o(k)n(age)j(that)f(could)h(b)q(e)
g(called)f(to)g(deallo)q(cate)h(all)e(the)i(temp)q(orary)f(memory)m(.)k(Th)o
(us,)c(so)h(long)f(as)177 751 y(all)i(requests)j(for)e(memory)d(within)i(F)m
(unnelW)m(eb)h(prop)q(er)h(w)o(ere)g(for)e(temp)q(orary)h(memory)m(,)c(and)k
(that)g(memory)177 800 y(w)o(as)g(freed)h(at)e(the)i(end)f(of)g(ev)o(ery)g
(run,)g(one)g(could)g(b)q(e)g(sure)h(that)f(there)h(w)o(as)f(no)g(memory)d
(leak)n(age.)177 981 y Fe(2.7)70 b(The)22 b(Stac)n(k)177 1105
y Fn(F)m(or)13 b(a)f(while)g(during)h(the)g(dev)o(elopmen)o(t)f(of)g(F)m
(unnelW)m(eb)g(a)h(particularly)f(nast)o(y)h(bug)f(pro)o(v)o(ed)h(extremely)g
(hard)177 1155 y(to)j(\014nd.)26 b(The)17 b(symptom)c(w)o(as)j(that)h(F)m
(unnelW)m(eb)f(w)o(ould)f(crash,)i(sometimes)e(at)h(random,)f(but)h(more)g
(often)177 1205 y(up)q(on)h(en)o(tering)g(a)g(particular)f(function.)27
b(In)16 b(the)i(end)f(ab)q(out)g(a)f(da)o(y)h(of)f(sp)q(eci\014c)i(debugging)
e(w)o(as)h(required)177 1255 y(b)q(efore)e(the)f(problem)e(w)o(as)i(trac)o(k)
o(ed)h(do)o(wn)e(to)h(a)f(stac)o(k)h(problem.)j(It)d(turned)g(out)g(that)g
(someho)o(w)e(\(either)j(the)177 1305 y(fault)f(of)g(the)i(Macin)o(tosh)e(or)
h(the)g(THINK)h(C)e(language)g(system\),)h(only)f(6K)g(w)o(as)h(b)q(eing)g
(allo)q(cated)f(for)g(stac)o(k)177 1354 y(space!!!!!!!)177
1435 y(This)f(exp)q(erience)h(led)f(me)e(immediately)e(to)k(go)f(through)g
(the)i(en)o(tire)f(program)e(and)h(eliminate)f(\(or)h(remo)o(v)o(e)g(to)177
1485 y(the)j(heap\))f(an)o(y)f(automatic)f(v)n(ariable)h(declarations)h(that)
g(used)h(more)e(than)h(one)g(h)o(undred)g(or)g(so)g(b)o(ytes.)177
1565 y(The)g(lesson)g(is)g(clearly)f(that)h(C)f(programs)g(that)g(use)i(more)
d(than)i(a)f(few)h(thousand)f(b)o(ytes)i(of)e(stac)o(k)h(space)g(are)177
1615 y(risking)f(their)i(p)q(ortabilit)o(y)m(.)h(All)d(large)h(data)f
(structures)j(should)e(b)q(e)h(placed)f(in)f(the)i(heap.)177
1796 y Fe(2.8)70 b(Static)21 b(V)-6 b(ariables)177 1920 y Fn(Static)11
b(v)n(ariables)e(also)h(pro)o(v)o(ed)g(a)g(problem)f(on)i(the)g(Macin)o
(tosh.)16 b(It)11 b(turns)g(out)f(that)h(the)g(Macin)o(tosh)f(THINK)h(C)177
1970 y(compiler)g(do)q(es)h(not)g(allo)o(w)e(more)h(than)h(32K)f(of)g
(statics)i Fh(in)g(the)g(entir)n(e)f(pr)n(o)n(gr)n(am)p Fn(.)17
b(F)m(or)11 b(a)h(while)f(this)h(restriction)177 2020 y(w)o(as)17
b(a)f(serious)i(threat)g(to)e(the)i(program)d(as)i(it)f(w)o(as)h(disco)o(v)o
(ered)h(that)f(constan)o(t)g(strings)g(w)o(ere)h(included)f(in)177
2070 y(this)d(total!)k(Ho)o(w)o(ev)o(er,)c(some)f(searc)o(hing)h(rev)o(ealed)
h(a)e(compiler)g(option)g(that)h(remo)o(v)o(ed)f(the)i(strings)f(from)e(the)
177 2119 y(static)i(category)m(.)177 2200 y(Nev)o(ertheless,)k(the)e(32K)g
(limit)c(is)k(rather)g(sev)o(ere.)25 b(Again,)15 b(it)g(seems)h(that)f(for)h
(p)q(ortabilit)o(y)e(reasons,)i(C)g(pro-)177 2250 y(grams)f(that)h(use)g(a)g
(lot)f(of)h(static)g(v)n(ariables)f(are)h(risking)g(their)g(p)q(ortabilit)o
(y)m(.)22 b(As)16 b(a)g(result,)h(the)f(F)m(unnelW)m(eb)177
2300 y(co)q(de)f(a)o(v)o(oids)e(static)h(v)n(ariables)f(where)i(p)q(ossible)f
(in)g(fa)o(v)o(our)f(of)g(the)h(heap.)177 2480 y Fe(2.9)70
b(Implemen)n(ti)o(ng)20 b(T)-6 b(ext)23 b(Inden)n(tation)177
2605 y Fn(A)o(t)e(one)g(p)q(oin)o(t)f(during)g(the)h(dev)o(elopmen)o(t)f(of)g
(F)m(unnelW)m(eb,)h(text)h(inden)o(tation)e(w)o(as)g(fully)g(implem)o(en)o
(ted.)177 2654 y(Ho)o(w)o(ev)o(er,)12 b(it)g(w)o(as)g(subsequen)o(tly)h(remo)
o(v)o(ed)e(b)q(ecause)i(it)f(w)o(as)g(considered)h(a)f(dangerous)g(feature.)
18 b(This)12 b(section)177 2704 y(records)17 b(the)f(w)o(a)o(y)f(in)g(whic)o
(h)h(text)g(inden)o(tation)f(w)o(as)g(implemen)o(ted)e(so)j(that)g(if)e(the)i
(feature)h(ev)o(er)f(has)g(to)f(b)q(e)177 2754 y(put)f(bac)o(k,)g(this)g(tec)
o(hnique)g(can)h(b)q(e)f(used)h(again.)177 2835 y(1.)j(Create)d(a)e(new)i
(\014eld)f(in)f(the)i Fi(sc)p 739 2835 14 2 v 15 w(t)e Fn(record)j(call)d
Fi(sc)p 1037 2835 V 15 w(postn)p Fn(.)1042 2940 y(30)p eop
%%Page: 31 32
31 31 bop 308 42 a Fi(char)21 b(*sc_postn;)f(/*)h(Pointer)f(in)i(the)f(range)
g([sc_first,sc_las)o(t+1].)236 b(*/)657 91 y(/*)21 b(It)g(is)h(the)f(minimum)
f(possible)g(value)h(of)h(sc_postn)e(for)108 b(*/)657 141 y(/*)21
b(which)g(EOL)g(does)g(not)g(appear)g(in)g(*sc_postn..*sc_la)o(st.)84
b(*/)657 191 y(/*)21 b(i.e.)g(Points)g(to)g(the)g(byte)g(following)f(the)h
(first)g(EOL)g(in)65 b(*/)657 241 y(/*)21 b(the)g(scrap)g(or)g(sc_first)f(if)
i(EOL)f(does)g(not)g(appear.)173 b(*/)177 342 y Fn(2.)17 b(Mo)q(dify)10
b(the)i(scanner)h(so)e(that)g(it)g(generates)i(this)e(\014eld.)18
b(Sendtext)12 b(should)f(b)q(e)h(mo)q(di\014ed)e(so)h(that)g(it)g(accepts)177
391 y(an)j(argumen)o(t)f(for)g(the)i Fi(p)p 581 391 14 2 v
15 w(postn)e Fn(v)n(alue.)177 492 y Fi(LOCAL)21 b(void)g(sendtext)f
(P_\(\(p_ps_t,char)f(*,char)h(*,char)h(*,bool\)\);)177 542
y(LOCAL)g(void)g(sendtext\(p_tkps,p)o(_firs)o(t,p_l)o(ast,)o(p_pos)o(tn,is)o
(_whit)o(e\))177 592 y(/*)h(Appends)e(a)h(text)g(token)g(to)h(the)f(end)g(of)
g(the)g(token)g(list.)544 b(*/)177 642 y(/*)22 b(IN:)f(p_ps)g(is)g(a)h
(pointer)e(to)h(a)h(position)e(structure)g(giving)h(the)g(position)f(of)h
(the)65 b(*/)177 691 y(/*)109 b(first)20 b(character)g(of)i(the)f(token.)914
b(*/)177 741 y(/*)22 b(IN:)f(p_first)f(and)h(p_last)g(point)g(to)g(the)g
(first)g(and)g(last)g(byte)g(of)g(the)h(text)e(scrap.)h(*/)177
791 y(/*)h(IN:)f(p_postn)f(has)h(the)g(same)g(definition)f(as)h(sc_postn)g
(\(see)g(fwdata.h\).)259 b(*/)177 841 y(/*)22 b(IN:)f(is_white)f(should)g(be)
i(set)f(to)g(TRUE)g(iff)g(scrap)g(is)h(entirely)e(whitespace.)150
b(*/)177 891 y(p_ps_t)21 b(p_tkps;)177 941 y(char)43 b(*p_first;)177
990 y(char)g(*p_last;)177 1040 y(char)g(*p_postn;)177 1090
y(bool)65 b(is_white;)177 1140 y({)199 1190 y(tk_t)21 b(token;)199
1289 y(/*)g(Empty)g(text)g(scraps)g(should)f(never)h(be)g(generated.)f(*/)199
1339 y(assert\(p_first<=p)o(_last)o(,"sen)o(dtext)o(:)f(Text)i(scrap)g
(bounds)f(are)h(bad."\);)199 1439 y(/*)g(If)h(ch=EOL)e(then)h(we)h(should)e
(be)i(scanning)e(more)h(text,)f(not)i(shipping)e(it!)h(*/)199
1488 y(assert\(ch!=EOL,"s)o(entte)o(xt:)e(Shipping)h(text)h(while)f(still)h
(more)g(to)h(scan."\);)199 1588 y(/*)f(Check)g(that)g(p_postn)f(is)i(in)f
(range.)g(See)g(definition)f(in)h(fwdata.h.)f(*/)199 1638 y
(assert\(p_first<=p)o(_post)o(n)f(&&)i(p_postn<=p_last+1,)352
1688 y("sendtext:)e(p_postn)i(is)g(out)g(of)h(range."\);)199
1787 y(/*)f(Debug:)g(Check)g(the)g(p_postn)f(field)h(using)g(a)g(brute)g
(force)g(check.)f(*/)199 1837 y({)221 1887 y(char)h(*i,*j;)221
1937 y(j=p_first;)221 1987 y(for)g(\(i=p_first;i<=p_l)o(ast;i)o(++\))286
2036 y(if)h(\(*i==EOL\))352 2086 y(j=i+1;)221 2136 y(assert\(j==p_post)o
(n,"se)o(ndtex)o(t:)d(sc_postn)h(field)h(is)g(incorrect."\);)199
2186 y(})199 2286 y(/*)g(Load)g(the)g(text)g(token.)g(*/)199
2335 y(token.tk_kind)172 b(=)21 b(TK_TEXT;)199 2385 y(ASSIGN\(token.tk_p)o
(s,*p_)o(tkps\))o(;)199 2435 y(token.tk_sc.sc_fi)o(rst)e(=)i(p_first;)199
2485 y(token.tk_sc.sc_la)o(st)41 b(=)21 b(p_last;)199 2535
y(token.tk_sc.sc_po)o(stn)e(=)i(p_postn;)199 2584 y(token.tk_white)150
b(=)21 b(is_white;)199 2634 y(token.tk_parno)150 b(=)21 b(0;)199
2684 y(ls_add\(token_list)o(,PV)e(&token\);)177 2734 y(})177
2835 y Fn(Then)c(all)d(the)j(calls)e(to)h(sendtext)h(ha)o(v)o(e)f(to)g(b)q(e)
g(c)o(hanged:)1042 2940 y(31)p eop
%%Page: 32 33
32 32 bop 177 42 a Fi(/*)22 b(@)f(instructs)f(FunnelWeb)g(to)h(replace)g(the)
g(special)f(construct)g(with)h(the)g(*/)177 91 y(/*)h(special)e(character.)g
(Luckily)g(one)h(appears)f(just)h(before)g(the)g(@)h(!!)108
b(*/)177 141 y(/*)22 b(Note:)e(FALSE)h(is)g(OK)h(because)e(space)h(is)g(not)g
(a)h(legal)f(specialch.)150 b(*/)177 191 y(/*)22 b(Note:)e(Setting)h
(parameter)f(p_postn)g(to)h(p_ch-1)g(is)g(OK)h(as)f(EOL)g(is)h(not)f(a)g(*/)
177 241 y(/*)152 b(legal)21 b(specialch.)913 b(*/)177 291 y
(sendtext\(&ps_spec,)o(p_ch-)o(1,p_c)o(h-1,p)o(_ch-1)o(,FAL)o(SE\);)177
340 y(break;)177 440 y(/*)22 b(+)f(instructs)f(FunnelWeb)g(to)h(insert)g(an)g
(EOL.)g(We)h(can't)e(look)h(to)h(the)f(end)g(of)g(*/)177 490
y(/*)h(the)f(previous)f(line)h(to)g(find)g(an)h(EOL)f(as)g(this)g(might)g(be)
g(the)g(first)g(line.)64 b(*/)177 540 y(/*)22 b(Running)e(ahead)h(to)g(the)g
(end)g(of)h(the)f(line)g(is)g(expensive,)f(and)h(having)g(the)64
b(*/)177 589 y(/*)22 b(liner)e(mini-package)g(maintain)g(a)h(variable)f(for)i
(it)f(would)g(be)g(extra)173 b(*/)177 639 y(/*)22 b(housekeeping.)d(Instead)h
(of)h(all)h(this,)e(we)i(just)f(point)f(to)i(a)f(static.)151
b(*/)177 689 y({CONST)21 b(static)f(char)h(stateol)g(=)g(EOL;)199
739 y(sendtext\(&ps_spec)o(,&sta)o(teol,)o(&stat)o(eol,\()o(&sta)o(teol\))o
(+1,TR)o(UE\);})177 789 y(break;)177 888 y(/*)h(If)f(we)g(hit)g(something)f
(that)h(ends)g(a)h(text)f(token)g(*/)177 938 y(/*)h(then)f(we)g(can)g
(transmit)f(a)i(white)f(text)g(token.)64 b(*/)177 988 y(if)22
b(\(ch==specialch)c(||)k(ch==EOFCH\))243 1038 y({sendtext\(&ps_s)o(tart,)o
(p_fir)o(st,p_)o(ch-1,)o(MAX\()o(p_sol)o(,p_fi)o(rst\),)o(TRUE\))o(;)d
(return;})177 1137 y(/*)j(Otherwise)d(we)j(have)f(some)g(more)g
(\(non-white\))e(text)i(to)h(scan.)e(*/)177 1187 y(/*)i(We)f(can)g(then)g
(send)g(a)h(non-white)e(text)h(token.)303 b(*/)177 1237 y(while)21
b(\(ch!=specialch)e(&&)i(ch!=EOFCH\))243 1287 y(NEXTCH;)177
1337 y(sendtext\(&ps_start)o(,p_fi)o(rst,p)o(_ch-1)o(,MAX\()o(p_so)o(l,p_f)o
(irst\))o(,FALS)o(E\);)177 1442 y Fn(The)14 b(dump)f(co)q(de)i(needs)g(to)f
(b)q(e)g(c)o(hanged)h(to)q(o!)352 1548 y Fi(wf_str\(p_wf,"\\")o("\);)177
1597 y(assert\(token->tk_s)o(c.sc_)o(first)j(!=NULL,"dm_tkls:)h(NULL)i
(ptr1."\);)177 1647 y(assert\(token->tk_s)o(c.sc_)o(last)40
b(!=NULL,"dm_tkls:)19 b(NULL)i(ptr2."\);)177 1697 y(for)g
(\(i=token->tk_sc.sc_)o(first)o(;)e(i<=token->tk_sc.s)o(c_las)o(t;)g(i++\))
221 1747 y({)243 1797 y(if)i(\(i==token->tk_sc.)o(sc_po)o(stn\))308
1846 y(wf_str\(p_wf,"<pos)o(tn>"\))o(;)243 1896 y(if)g(\(*i=='\\n'\))308
1946 y(wf_wl\(p_wf,""\);)243 1996 y(else)308 2046 y(dm_byte\(p_wf,*\(\(u)o
(byte_)d(*\))k(i\)\);)221 2095 y(})177 2145 y(if)g(\(i==token->tk_s)o(c.sc_)o
(postn)o(\))243 2195 y(wf_str\(p_wf,"<p)o(ostn>)o("\);)177
2245 y(wf_str\(p_wf,"\\""\);)177 2295 y(})177 2400 y Fn(3.)37
b(Ov)o(er)22 b(in)e(the)h(T)m(angle)e(mo)q(dule,)h(create)i(a)e(massiv)o(e)f
(arra)o(y)h(of)g(p)q(oin)o(ters)h(to)f(scraps)i(to)e(b)q(e)h(used)h(as)e(a)
177 2450 y(stac)o(k.)f(Main)o(tain)13 b(p)q(oin)o(ters)h(in)o(to)g(the)g
(stac)o(k)h(called)e Fi(current)g Fn(and)h Fh(b)n(ase)g Fn(\(similar)e(to)i
(the)g(blank)f(inden)o(tation)177 2500 y(v)n(ariables\).)18
b(Implemen)o(t)11 b(the)k(follo)o(wing:)239 2605 y Fm(\017)21
b Fn(T)m(o)14 b(write)i(out)f(a)g(scrap,)h(scan)f(it)g(b)o(yte)h(b)o(y)f(b)o
(yte.)22 b(Output)16 b(eac)o(h)g(b)o(yte.)22 b(When)15 b(y)o(ou)g(hit)g(an)g
(EOL,)g(p)q(op)281 2655 y(the)g(stac)o(k)g(bac)o(k)g(to)f Fi(base)p
Fn(.)20 b(Then)15 b(write)g(out)g(an)f(EOL)h(follo)o(w)o(ed)e(b)o(y)i(the)g
(stac)o(k)g(con)o(ten)o(ts)h(but)f(writing)281 2705 y(eac)o(h)d(scrap)h(only)
f(from)e Fi(postn)h Fn(to)h(end)g(end)h(of)e(eac)o(h)i(scrap.)18
b(When)12 b(y)o(ou)g(ha)o(v)o(e)g(\014nished)g(the)h(new)f(scrap,)281
2755 y(push)i(it)g(on)g(the)g(stac)o(k.)239 2835 y Fm(\017)21
b Fn(When)14 b(y)o(ou)f(hit)h(a)g(new)g(macro)f(to)g(expand,)h(sa)o(v)o(e)g
Fi(base)p Fn(.)j(Restore)e(it)e(later.)1042 2940 y(32)p eop
%%Page: 33 34
33 33 bop 177 42 a Fn(The)14 b Fi(postn)f Fn(\014eld)h(solv)o(es)g(the)h(big)
e(problem)g(of)g(ho)o(w)g(to)h(cop)q(e)h(with)e(something)g(lik)o(e)g(this:)
177 158 y Fi(The)21 b(rain)g(in)h(Spain)177 208 y(falls)f(mainly)f(@<on)h
(the)h(plain@>)177 324 y Fn(The)f(trouble)g(is)f(that)h(w)o(e)g(w)o(an)o(t)f
(to)g(text)h(inden)o(t)g(the)g(lines)g(in)f Fi(@<on)h(the)g(plain@>)e
Fn(with)h(just)h(\\)p Fi(falls)177 374 y(mainly)g Fn(".)31
b(Ho)o(w)o(ev)o(er,)20 b(this)f(string)f(is)g(only)g(part)h(of)f(a)g(scrap.)
33 b(The)19 b(solution)e(is)i(to)f(get)h(the)g(scanner)h(to)177
423 y(record,)c(in)e(the)i Fi(postn)e Fn(\014eld)h(of)f(eac)o(h)h(scrap,)h
(the)f(p)q(osition)f(of)h(the)g(\014rst)h(b)o(yte)f(with)g(a)f(EOL-free)i
(run)f(to)g(the)177 473 y(end)g(of)e(the)h(scrap.)177 548 y(This)i(sc)o(heme)
g(is)g(v)o(ery)h(e\016cien)o(t)f(b)q(ecause)i(all)d(w)o(e)h(are)h(doing)e(is)
h(pushing)g(and)g(p)q(opping)f(p)q(oin)o(ters)i(to)f(scraps)177
598 y(on)g(a)g(stac)o(k)h(arra)o(y)m(.)25 b(The)16 b(main)e(disadv)n(an)o
(tage)i(is)g(that)g(the)h(arra)o(y)f(m)o(ust)g(necessarily)h(b)q(e)g
(\014nite)f(and)h(w)o(ould)177 648 y(imp)q(ose)c(a)h(limit)d(on)i(the)i
(depth)f(of)g(inden)o(tation)f(nesting)h(\(not)g(a)g(big)f(problem\).)1042
2940 y(33)p eop
%%Page: 34 35
34 34 bop 1042 2940 a Fn(34)p eop
%%Page: 35 36
35 35 bop 177 377 a Ff(Chapter)34 b(3)177 609 y Fl(F)-10 b(unnelW)g(eb)41
b(Mo)s(di\014cation)177 875 y Fe(3.1)70 b(In)n(tro)r(duction)177
990 y Fn(This)19 b(c)o(hapter)h(deals)f(with)g(mo)q(di\014cations)e(to)i(F)m
(unnelW)m(eb.)33 b(Although)19 b(the)g(GNU)g(license)h(under)g(whic)o(h)177
1040 y(F)m(unnelW)m(eb)10 b(is)h(distributed)h(allo)o(ws)d(an)o(y)o(one)i(to)
f(mo)q(dify)f(F)m(unnelW)m(eb)h(and)h(distribute)g(the)g(mo)q(di\014ed)f(v)o
(ersions,)177 1090 y(there)15 b(are)f(a)f(n)o(um)o(b)q(er)f(of)h(dangers)h
(in)f(doing)g(this.)k(This)d(c)o(hapter)g(explains)f(the)h(dangers)g(and)f
(presen)o(ts)j(some)177 1140 y(issues)f(that)f(y)o(ou)g(should)f(think)h(ab)q
(out)g(if)f(y)o(ou)g(in)o(tend)h(to)g(distribute)g(mo)q(di\014ed)f(v)o
(ersions)h(of)f(F)m(unnelW)m(eb.)177 1301 y Fe(3.2)70 b(The)22
b(Danger)i(of)f(Mo)r(difying)g(Languages)177 1417 y Fn(Whenev)o(er)15
b(someone)e(mo)q(di\014es)g(a)h(computer)f(program)f(they)j(should)e(alw)o(a)
o(ys)g(ask)h(themselv)o(es)g(\\what)f(is)h(the)177 1467 y(impact)c(of)h
(these)h(c)o(hanges)g(going)f(to)g(b)q(e)h(on)f(users".)18
b(F)m(or)11 b(mature)g(pro)q(ducts,)h(the)g(degree)h(of)e(impact)e(is)j
(largely)177 1516 y(determined)17 b(b)o(y)g(the)h(in)o(v)o(estmen)o(t)e(that)
i(users)g(ha)o(v)o(e)f(made)f(in)h(particular)g(\014le)g(formats)f(supp)q
(orted)i(b)o(y)f(the)177 1566 y(pro)q(duct.)177 1641 y(A)o(t)c(the)g(t)o(w)o
(o)g(extremes,)g(there)h(are)f(the)g(video)g(game)e(and)i(the)g(compiler.)j
(If)d(one)g(c)o(hanges)g(a)g(video)f(game,)f(the)177 1690 y(c)o(hange)h
(a\013ects)g(only)e(the)i(future)g(games)e(pla)o(y)o(ed.)16
b(Ho)o(w)o(ev)o(er,)c(if)e(one)i(c)o(hanges)f(a)g(compiler)f(in)h(particular)
g(w)o(a)o(ys,)177 1740 y(it)i(is)f(lik)o(ely)g(that)h(thousands)g(of)g(users)
h(will)e(b)q(e)h(forced)h(to)e(c)o(hange)i(milli)o(ons)c(of)j(source)h
(\014les)f(to)g(accommo)q(date)177 1790 y(the)f(new)g(v)o(ersion.)17
b(Th)o(us)11 b(the)h(impact)e(of)g(c)o(hanges)i(to)f(a)g(program)f(dep)q
(ends)j(largely)d(on)h(the)h(in)o(v)o(estmen)o(t)e(made)177
1840 y(b)o(y)k(users,)h(in)e(source)i(\014les,)f(training,)f(and)g(ev)o(en)i
(m)o(uscle)e(memory!)177 1914 y(F)m(unnelW)m(eb)h(lies)h(v)o(ery)g(m)o(uc)o
(h)f(at)h(the)g(compiler)f(end)h(of)f(this)h(sp)q(ectrum.)22
b(In)14 b(fact)h(it)g(lies)f(ev)o(en)i(further.)22 b(Not)177
1964 y(only)15 b(do)q(es)h(it)e(implemen)o(t)f(a)i(language,)f(but)h(it)g(is)
g(curren)o(tly)h(the)g Fh(only)g Fn(implem)o(en)o(tation)c(of)j(that)g
(language!)177 2014 y(This)c(means)g(that,)g(although)g(they)h(shouldn't,)f
(p)q(eople)g(will)f(b)q(e)i(tempted)f(to)h(treat)g(the)g(F)m(unnelW)m(eb)e
(program)177 2064 y(as)16 b(the)h(de\014nition)e(of)g(its)h(input)g(language)
f(instead)h(of)f(the)i(de\014nition)e(c)o(hapter)i(in)e(the)i
Fh(F)m(unnelWeb)h(User's)177 2113 y(Manual)p Fn(,)c(whic)o(h)g(tak)o(es)g
(precedence)q(.)177 2188 y(Because)f(F)m(unnelW)m(eb)d(de\014nes)i(an)e
(input)h(language,)f(and)g(p)q(eople)h(will)f(write)h(programs)e(using)h
(that)h(language,)177 2238 y(particular)j(kinds)f(of)h(c)o(hanges)g(in)f(the)
i(language)e(will)f(impact)g(sev)o(erely)j(on)f(users.)19 b(Three)c
(di\013eren)o(t)g(kinds)e(of)177 2287 y(c)o(hange)h(are)h(discussed)g(b)q
(elo)o(w.)295 2362 y Fk(Remo)o(ving)e(features:)k Fn(Remo)o(v)n(al)10
b(of)i(features)i(\(featurectom)o(y\))f(is)g(extremely)g(di\016cult)f(once)
295 2412 y(the)k(user)h(base)f(has)g(started)g(using)g(them.)22
b(If)15 b(a)g(feature)h(is)g(remo)o(v)o(ed,)e(users)j(of)e(the)h(program)295
2461 y(will)11 b(ha)o(v)o(e)h(to)h(go)e(through)i(all)e(their)i(programs)e
(and)h(\014nd)h(a)f(w)o(a)o(y)f(to)i(sim)o(ulate)d(the)j(e\013ect)h(of)e(the)
295 2511 y(remo)o(v)o(ed)h(feature)i(with)e(other)h(features.)19
b(Often)c(this)e(is)h(so)g(un)o(think)n(able,)e(that)i(bad)g(language)295
2561 y(constructs)i(are)e(tolerated)h(far)e(b)q(ey)o(ond)i(their)f(useful)g
(lifetime.)295 2635 y Fk(Mo)q(difying)k(features:)23 b Fn(Mo)q(di\014cation)
17 b(of)f(features)i(has)g(less)g(direct)g(impact)d(than)i(the)h(re-)295
2685 y(mo)o(v)n(al)12 b(of)i(features,)h(but)g(can)f(cause)i(more)d(subtle)i
(errors.)21 b(F)m(or)15 b(example,)d(consider)k(the)f(sorts)295
2735 y(of)d(subtle)i(errors)g(that)f(migh)o(t)d(arise)j(if)f(the)i(seman)o
(tics)e(of)g(the)h(F)m(unnelW)m(eb)f(commen)o(t)f Fi(@!)18
b Fn(w)o(ere)295 2785 y(c)o(hanged)i(so)g(that)g(it)f(no)h(longer)f(includes)
h(the)h(end)f(of)f(line)g(mark)o(er.)35 b(An)o(y)o(one)20 b(mo)q(difying)295
2835 y(features)15 b(should)f(b)q(e)g(sure)h(that)f(they)h(are)f(not)g(inadv)
o(erten)o(tly)g(la)o(ying)e(traps.)1042 2940 y(35)p eop
%%Page: 36 37
36 36 bop 295 42 a Fk(Adding)15 b(features:)20 b Fn(Although)14
b(the)i(addition)e(of)h(features)h(is)f(generally)g(the)h(most)e(painless)295
91 y(for)e(the)h(user)g(comm)o(unit)o(y)m(,)c(as)j(Hoare)h(p)q(oin)o(ts)f
(out,)g(it)g(is)g(also)f(the)i(most)e(dangerous)i(in)f(the)h(long)295
141 y(run.)343 246 y(\\When)d(an)o(y)f(new)h(language)f(design)h(pro)r(ject)h
(is)f(nearing)f(completion,)g(there)i(is)e(alw)o(a)o(ys)g(a)h(mad)281
295 y(rush)h(to)f(get)h(new)g(features)g(added)g(b)q(efore)g
(standardization.)16 b(The)11 b(rush)g(is)f(mad)f(indeed,)i(b)q(ecause)281
345 y(it)f(leads)h(in)o(to)f(a)g(trap)h(from)e(whic)o(h)h(there)i(is)e(no)h
(escap)q(e.)18 b(A)11 b(feature)g(whic)o(h)g(is)f(omitted)f(can)i(alw)o(a)o
(ys)281 395 y(b)q(e)18 b(added)g(later,)g(when)g(its)f(design)h(and)f(its)g
(implications)e(are)j(w)o(ell)f(understo)q(o)q(d.)30 b(A)17
b(feature)281 445 y(whic)o(h)c(is)g(included)h(b)q(efore)g(it)f(is)g(fully)f
(understo)q(o)q(d)j(can)f(nev)o(er)g(b)q(e)g(remo)o(v)o(ed)e(later.")p
Fk([Hoare80])177 549 y Fn(These)17 b(problems)d(exist)h(ev)o(en)h(when)f
(there)i(is)e(a)f(cen)o(tral)i(authorit)o(y)m(.)21 b(If)14
b(w)o(e)i(consider)g(the)f(case)h(where)g(there)177 599 y(is)g(no)g(cen)o
(tral)h(authorit)o(y)m(,)e(and)h(users)i(mo)q(dify)c(a)i(language)f(and)h
(its)g(implemen)o(tations)d(and)j(distribute)h(the)177 649
y(mo)q(di\014ed)h(v)o(ersions,)i(the)g(result)g(is)f(ev)o(en)g(w)o(orse.)34
b(F)m(or)19 b(a)g(start,)h(the)g(structure)h(of)e(the)g(genealogy)g(of)f(the)
177 699 y(program)e(c)o(hanges)j(from)d(a)h(list)h(to)f(a)h(tree.)31
b(This)18 b(mak)o(es)e(it)i(imp)q(ossible)e(to)h(imp)q(ose)g(an)h(ordering)g
(on)f(the)177 749 y(di\013eren)o(t)f(v)o(ersions)g(and)g(mak)o(es)e(it)h
(di\016cult)f(to)i(merge)f(them)f(once)i(they)g(div)o(erge.)23
b(Second,)16 b(it)f(reduces)i(the)177 798 y(p)q(ortabilit)o(y)f(of)h(\014les)
h(created)h(under)g(di\013eren)o(t)f(v)o(ersions.)30 b(Third,)18
b(it)f(mak)o(es)f(adding)h(features)i(hazardous.)177 848 y(If)c(a)g(feature)h
(is)f(added)h(in)e(one)i(v)o(ersion,)f(\014les)h(will)e(b)q(e)h(created)i
(that)f(use)g(it.)21 b(These)c(\014les)f(will)d(immediately)177
898 y(b)q(ecome)d(non-p)q(ortable.)17 b(F)m(urthermore,)11
b(t)o(w)o(o)f(programmers)e(ma)o(y)g(in)o(tro)q(duce)k(di\013eren)o(t)f
(features)g(that)g(use)g(the)177 948 y(same)h(syn)o(tactical)h(constructs,)h
(th)o(us)f(prev)o(en)o(ting)g(the)h(t)o(w)o(o)e(v)o(ersions)h(from)e(ev)o(er)
j(b)q(eing)f(merged.)k(W)m(orse,)12 b(t)o(w)o(o)177 998 y(programmers)f
(could)i(in)o(tro)q(duce)h Fh(similar)e Fn(features)i(that)g(use)g(the)f
(same)g(syn)o(tactical)g(constructs,)i(pro)q(ducing)177 1048
y(ev)o(en)g(more)e(subtle)h(problems.)177 1119 y(The)c(only)f(w)o(a)o(y)f(to)
i(a)o(v)o(oid)e(all)g(these)j(problems)e(is)g(to)g(create)i(some)e(sort)h(of)
e(cen)o(tral)i(design)g(authorit)o(y)m(,)f(\(or,)h(at)f(the)177
1169 y(v)o(ery)j(least,)g(some)f(sort)h(of)g(design)g(sync)o(hronization\))f
(that)h(con)o(trols)g(the)h(language)d(and)i(its)g(implemen)o(tati)o(on.)177
1240 y(The)i(b)q(ene\014ts)i(of)d(tigh)o(t)h(con)o(trol)f(o)o(v)o(er)h(the)h
(language)e(are)h(enormous.)295 1311 y Fk(Univ)o(ersal)g(p)q(ortabilit)n(y:)k
Fn(Source)e(\014les)f(can)g(b)q(e)g(treated)h(as)f(p)q(ortable.)21
b(If)15 b(all)e(the)j(language)295 1361 y(implemen)o(tations)g(in)i(the)h(w)o
(orld)e(are)i(singing)f(the)h(same)e(tune,)j(then)f(someone)f(in)g(Sydney)295
1411 y(could)g(send)h(a)f(\014le)h(to)f(someone)f(in)h(New)h(Y)m(ork)f(and)g
(b)q(e)g(sure)i(that)e(it)g(will)f(b)q(e)h(successfully)295
1461 y(pro)q(cessed.)295 1532 y Fk(Clear)e(seman)o(tics:)i
Fn(Doubt)c(ab)q(out)g(the)h(seman)o(tics)f(of)g(the)h(language)e(will)g(b)q
(e)i(greatly)f(mini-)295 1582 y(mized.)k(So)13 b(long)g(as)h(more)f(than)h
(one)h(sligh)o(tly)d(di\013ering)i(v)o(ersion)g(of)f(a)h(language)f(exists,)h
(there)295 1632 y(will)9 b(b)q(e)j(confusion)e(o)o(v)o(er)g(the)i(seman)o
(tics)e(of)g(its)g(constructs.)19 b(A)11 b(go)q(o)q(d)f(example)f(is)i(the)g
(confusion)295 1682 y(b)q(et)o(w)o(een)16 b(the)e(A)m(T&T)g(Unix)f(and)h
(Berk)o(eley)h(Unix)f(shell)f(languages.)177 1753 y(While)20
b(c)o(hanges)h(to)g(the)g(language)f(supp)q(orted)i(b)o(y)e(a)g(piece)i(of)e
(soft)o(w)o(are)h(is)f(the)h(most)f(serious)h(problem)177 1803
y(asso)q(ciated)16 b(with)e(m)o(ultiple)f(v)o(ersions)i(of)f(soft)o(w)o(are,)
h(the)g(lesser)h(problem)e(of)g(k)o(eeping)h(trac)o(k)g(of)f(c)o(hanges)i
(that)177 1853 y(don't)f(a\013ect)h(the)g(language)e(that)h(the)h(soft)o(w)o
(are)g(implem)o(en)o(ts)d(can)j(also)e(cause)j(trouble.)22
b(Merging)15 b(di\013eren)o(t)177 1902 y(v)o(ersions)g(of)f(soft)o(w)o(are)g
(is)h(extremely)f(tedious)h(as)f(an)o(y)o(one)g(who)g(has)h(tried)g(it)f
(will)f(v)o(erify)m(.)19 b(Ho)o(w)o(ev)o(er,)14 b(c)o(hanges)177
1952 y(not)g(a\013ecting)g(the)g(language)f(are)h(far)f(less)h(serious)h(b)q
(ecause)g(they)f(impact)e(only)h(on)h(the)g(program)e(itself,)h(not)177
2002 y(on)h(the)g(far)g(more)f(n)o(umerous)g(source)i(\014les)f(that)g(dep)q
(end)i(on)d(it.)177 2159 y Fe(3.3)70 b(Authorit)n(y)23 b(vs)g(User)g(Securit)
n(y)177 2272 y Fn(There)16 b(are)f(a)g(n)o(um)o(b)q(er)f(of)g(w)o(a)o(ys)h
(of)f(pro)o(viding)f(the)j(strong)f(cen)o(tral)g(design)g(authorit)o(y)f
(required)i(to)f(pro)q(duce)177 2322 y(the)g(p)q(ortabilit)o(y)d(and)i(seman)
o(tic)f(securit)o(y)i(desired)g(b)o(y)e(users,)239 2426 y Fm(\017)21
b Fn(T)m(rade)d(mark)e(the)i(name)f(of)g(the)i(language.)28
b(Publish)18 b(a)g(sp)q(eci\014cation)g(of)f(the)i(language)e(under)h(the)281
2476 y(trade)c(name.)i(W)m(arn)d(all)f(users)j(not)e(to)g(trust)h(an)o(y)f
(implemen)o(tatio)o(n)e(that)i(do)q(es)h(not)f(guaran)o(tee)h(that)f(it)281
2526 y(implemen)o(ts)d(the)j(language.)k(Then)c(con)o(trol)f(implemen)o
(tations)d(b)o(y)k(only)e(licensing)i(the)g(trade)g(mark)e(to)281
2576 y(conforming)h(implem)o(en)o(tations.)239 2655 y Fm(\017)21
b Fn(Create)g(a)f(single)g(implemen)o(tation)d(of)j(the)h(language.)36
b(Do)20 b(not)g(release)h(the)g(source)h(co)q(de)f(to)f(the)281
2705 y(implemen)o(tatio)o(n.)15 b(Release)g(only)e(binary)g(executables.)239
2785 y Fm(\017)21 b Fn(Release)14 b(the)f(source)i(co)q(de)f(to)f(the)g
(implemen)o(tation,)c(but)14 b(under)g(a)f(license)g(that)h(prohibits)e(the)i
(distri-)281 2835 y(bution)f(of)h(mo)q(di\014ed)e(v)o(ersions.)1042
2940 y(36)p eop
%%Page: 37 38
37 37 bop 177 42 a Fn(Man)o(y)11 b(other)h(v)n(ariations)e(on)h(these)i
(themes)e(are)h(p)q(ossible,)f(but)h(they)f(are)h(all)e(based)i(on)f(the)h
(idea)f(of)g(regulating)177 91 y(either)k(the)f(\\o\016cial")e(de\014nition)i
(of)f(the)i(language)e(or)g(all)g(of)g(its)h(existing)g(implemen)o(tatio)o
(ns.)177 168 y(A)o(t)h(ab)q(out)f(this)h(stage,)g(a)f(con\015ict)h(arises.)21
b(While)14 b(users)i(w)o(an)o(t)f(the)g(language)f(they)h(are)g(using)f(to)h
(b)q(e)g(tigh)o(tly)177 217 y(con)o(trolled,)e(they)h(also)f(w)o(an)o(t)g(to)
h(feel)f(secure)j(ab)q(out)d(the)h(a)o(v)n(ailabilit)o(y)c(of)j(its)h(implem)
o(en)o(tations.)h(If)f(h)o(undreds)177 267 y(of)19 b(source)i(\014les)e(are)h
(to)g(b)q(e)g(created)h(in)e(the)h(language,)f(there)i(had)e(b)q(etter)i(b)q
(e)f(one)g(or)f(more)f(translators)177 317 y(a)o(v)n(ailable)12
b(when)i(the)h(time)d(comes)i(to)f(use)i(them.)177 393 y(In)g(the)g(case)h
(of)e(widely-used)h(programmi)o(ng)d(languages)i(suc)o(h)h(as)g(C,)f(the)i
(problem)d(of)h(securing)i(implem)o(en-)177 443 y(tations)c(do)q(es)i(not)e
(arise.)18 b(If)12 b(y)o(ou)g(don't)g(get)h(y)o(our)f(compiler)f(from)g
(Borland,)h(y)o(ou)g(can)h(get)f(it)h(from)d(Microsoft.)177
493 y(Ho)o(w)o(ev)o(er,)16 b(in)f(the)h(case)g(of)f(a)g(newly)h(in)o(tro)q
(duced)g(language)e(suc)o(h)i(as)g(F)m(unnelW)m(eb,)f(there)h(ma)o(y)e(b)q(e)
i(v)o(ery)g(few)177 543 y(implemen)o(tations,)g(or)i(ev)o(en)h(just)f(one)h
(implemen)o(tatio)o(n,)d(and)i(this)h(p)q(oses)g(a)f(danger)h(to)f(the)h
(user)g(who)f(is)177 593 y(committing)10 b(to)j(that)g(format.)j(Despite)d
(the)h(b)q(est)g(in)o(ten)o(tions)f(of)f(the)i(cop)o(yrigh)o(t)f(o)o(wner,)g
(there)h(are)g(a)e(v)n(ariet)o(y)177 642 y(of)h(w)o(a)o(ys)g(in)f(whic)o(h)h
(a)g(computer)g(program)f(can)h(suddenly)h(b)q(ecome)f(una)o(v)n(ailable.)j
(Here)e(are)g(some)e(examples:)239 762 y Fm(\017)21 b Fn(If)12
b(the)h(program)e(is)i(o)o(wned)g(b)o(y)f(a)g(compan)o(y)f(and)i(the)g
(compan)o(y)e(go)q(es)i(brok)o(e,)g(the)g(liquidators)e(ma)o(y)g(not)281
812 y(b)q(other)k(to)e(place)h(the)h(soft)o(w)o(are)f(in)f(the)i(public)e
(domain.)239 898 y Fm(\017)21 b Fn(If)13 b(the)g(program)f(is)h(o)o(wned)g(b)
o(y)g(a)g(kindly)f(individual)f(who)i(issues)h(licenses)h(for)e(free,)g(and)g
(that)g(individ-)281 948 y(ual)h(suddenly)h(dies,)g(users)i(migh)o(t)12
b(suddenly)k(\014nd)f(themselv)o(es)g(negotiating)f(with)g(hard-nosed)i
(estate)281 998 y(executors)g(for)d(the)i(righ)o(ts)e(to)h(con)o(tin)o(ue)g
(using)g(the)g(program.)239 1084 y Fm(\017)21 b Fn(If)c(who)q(ev)o(er)h(o)o
(wns)g(the)g(program)e(do)q(es)i(not)f(upgrade)h(the)g(program)e(ev)o(ery)i
(so)f(often,)h(it)f(is)h(actually)281 1134 y(p)q(ossible)10
b(for)g(the)h(released)g(executables)h(to)e(\\expire")h(when)f(new)h(op)q
(erating)f(system)g(upgrades)h(app)q(ear.)177 1254 y(These)16
b(p)q(ossibilities)d(mean)g(that)i(users)g(ab)q(out)g(to)f(in)o(v)o(est)g(in)
g(a)g(newly)g(in)o(tro)q(duced)h(programmi)o(ng)c(to)q(ol)j(suc)o(h)177
1304 y(as)j(F)m(unnelW)m(eb)f(ha)o(v)o(e)h(legitimate)d(concerns)19
b(when)e(they)h(w)o(orry)e(ab)q(out)h(the)g(to)q(ol's)f(a)o(v)n(ailabilit)o
(y)l(.)24 b(F)m(or)16 b(non-)177 1354 y(commercially)8 b(distributed)k(to)q
(ols)f(suc)o(h)g(as)h(F)m(unnelW)m(eb,)e(the)i(simplest)e(solution)g(to)h
(this)h(problem)d(is)i(to)g(mak)o(e)177 1404 y(the)i(source)g(co)q(de)g(a)o
(v)n(ailable,)c(either)k(b)o(y)f(placing)f(it)g(in)o(to)g(the)i(public)e
(domain,)f(or)i(b)o(y)f(releasing)h(it)g(under)h(some)177 1453
y(kind)i(of)f(public)h(license,)g(suc)o(h)h(as)f(a)g(GNU)g(license.)22
b(The)15 b(trouble)g(with)g(releasing)g(the)h(source)g(co)q(de)g(is)f(that)
177 1503 y(it)f(remo)o(v)o(es)g(con)o(trol)g(from)f(the)i(design)g(authorit)o
(y)m(.)j(Once)e(the)f(co)q(de)g(is)g(\\out")f(there)h(is)g(no)f(stopping)g
(an)o(y)o(one)177 1553 y(from)e(mo)q(difying)f(the)k(program)d(and)i
(distributing)f(mo)q(di\014ed)g(v)o(ersions.)18 b(All)13 b(c)o(haos)h(can)g
(ensue.)177 1629 y(One)j(solution)d(to)i(this)g(con\015ict)g(is)f(to)h(tak)o
(e)f(the)h(trade)h(mark)d(approac)o(h.)23 b(This)16 b(separates)h(the)f(righ)
o(t)f(of)g(the)177 1679 y(design)e(authorit)o(y)f(to)h(con)o(trol)f(the)h
(language)f(and)g(its)h(implemen)o(tatio)o(ns,)d(and)j(the)g(righ)o(t)f(of)g
(the)h(users)h(to)f(use)177 1729 y(the)g(source)i(co)q(de)e(in)f(an)o(y)h(w)o
(a)o(y)f(they)h(lik)o(e)f(\(but)h(they)g(ma)o(y)e(ha)o(v)o(e)h(to)h(c)o
(hange)g(its)g(name!\).)j(Ho)o(w)o(ev)o(er,)d(the)g(trade)177
1779 y(mark)g(approac)o(h)g(is)h(exp)q(ensiv)o(e.)177 1855
y(The)e(solution)g(that)f(I)h(\(Ross)g(William)o(s)e(\()p Fi
(ross@spam.adelaid)o(e.ed)o(u.au)p Fn(\)\))f(ha)o(v)o(e)i(adopted)i(is)e(to)h
(release)h(the)177 1905 y(F)m(unnelW)m(eb)k(source)i(co)q(de)f(under)h(a)e
(GNU)g(license)i(and)e(then)h(to)f(write)h(this)g(c)o(hapter)g(in)f(the)i
Fh(F)m(unnelWeb)177 1955 y(Hacker's)c(Manual)h Fn(to)e(dissuade)h(p)q
(ossible)g(hac)o(k)o(ers)h(from)d(releasing)h(mo)q(di\014ed)f(v)o(ersions)j
(under)f(the)g(F)m(unnel-)177 2004 y(W)m(eb)e(name.)k(This)d(is)f(ab)q(out)h
(as)g(close)g(to)f(the)i(GNU/trademark)d(approac)o(h)i(I)f(can)h(get)g
(without)f(forking)g(out)177 2054 y(ab)q(out)e($1200)g(for)g(a)g(US)g
(trademark)g(or)g(pa)o(ying)f(ev)o(en)i(more)f(to)g(get)h(a)f(la)o(wy)o(er)g
(to)g(attempt)f(to)i(draft)f(a)g(con)o(tract)177 2104 y(stating)j(\\thou)f
(shalt)h(not)g(mo)q(dify)d(the)k(F)m(unnelW)m(eb)e(language".)177
2271 y Fe(3.4)70 b(What)23 b(I)g(W)-6 b(an)n(t)24 b(to)f(Protect)177
2389 y Fn(The)13 b(concerns)i(expressed)g(in)d(the)h(previous)g(section)h(ab)
q(out)e(mo)q(di\014cations)f(to)i(the)g(F)m(unnelW)m(eb)f(program)f(do)177
2439 y(not)j(preclude)i(mo)q(di\014cations.)i(They)c(merely)g(imply)e(that)i
(some)f(conditions)h(b)q(e)h(observ)o(ed)h(when)f(mo)q(di\014ca-)177
2489 y(tions)g(are)g(made.)k(In)c(fact,)g(ha)o(ving)e(formally)f(released)k
(the)f(sources)i(under)e(GNU,)f(there)i(is)f(nothing)f(that)h(I)177
2539 y(can)h(do)f(to)h(stop)g(p)q(eople)g(distributing)f(mo)q(di\014ed)f(v)o
(ersions)i(and)g(the)g(conditions)f(to)h(b)q(e)g(describ)q(ed)i(m)o(ust)c(b)q
(e)177 2588 y(imp)q(osed)f(v)o(olun)o(tarily)m(.)177 2665 y(In)h(the)h(end)f
(there)h(are)f(t)o(w)o(o)g(things)g(that)g(I)f(w)o(an)o(t)h(to)g
(protect/main)o(tain:)228 2785 y(1.)20 b(Restriction)d(of)g(the)g(name)f(\\F)
m(unnelW)m(eb")g(only)g(to)h(computer)g(programs)e(that)i(exactly)h(implem)o
(en)o(t)281 2835 y(m)o(y)12 b(\\o\016cial")g(de\014nition)i(of)f(the)h
(language.)1042 2940 y(37)p eop
%%Page: 38 39
38 38 bop 228 42 a Fn(2.)20 b(Restriction)15 b(of)f(the)h(F)m(unnelW)m(eb)f
(source)i(\014le)f(extensions)h(\\)p Fi(.fw)p Fn(")d(\(input)i(\014les\))g
(and)f(\\)p Fi(.fwi)p Fn(")g(\(include)281 91 y(\014les\))g(only)f(to)h
(source)h(\014les)g(that)f(conform)e(to)i(m)o(y)e(\\o\016cial")g
(de\014nition)h(of)h(the)g(language.)177 214 y(So)f(long)e(as)i(these)h
(conditions)e(hold,)g(source)i(\014les)f(created)h(under)g(\\F)m(unnelW)m
(eb")e(will)f(b)q(e)i(p)q(ortable,)g(and)f(the)177 264 y(language)g(will)g
(ha)o(v)o(e)g(the)i(p)q(oten)o(tial)e(to)h(b)q(e)h(stable)f(and)g(w)o
(ell-de\014ned.)18 b(Here)c(are)f(m)o(y)e(suggestions)j(for)e(ho)o(w)h(to)177
314 y(ob)q(ey)i(these)i(rules.)22 b(These)16 b(suggestions)g(are)f(in)g
(addition)e(to)i(the)h(GNU)f(license)g(rules)h(ab)q(out)f(do)q(cumen)o(ting)
177 363 y(an)o(y)f(c)o(hanges)g(that)g(y)o(ou)g(mak)o(e)e(in)h(the)i(source)g
(\014les.)295 441 y Fk(Mo)q(di\014cations)h(that)i(do)g(not)f(a\013ect)i
(functional)o(i)o(t)o(y:)h Fn(If)c(y)o(ou)g(c)o(hange)g(the)h(F)m(unnelW)m
(eb)295 491 y(program)f(in)i(a)f(manner)g(that)h(do)q(es)g(not)g(a\013ect)h
(the)f(functionalit)o(y)e(of)h(the)i(program)d(in)h(an)o(y)295
540 y(w)o(a)o(y)d(\(e.g.)f(p)q(ort)h(it)g(to)g(a)g(new)g(mac)o(hine,)f(or)h
(just)g(sp)q(eed)i(it)d(up\),)h(then)h(y)o(ou)e(should)h(mo)q(dify)e(the)295
590 y(program)g(to)h(write)g(out)g(a)g(message)g(when)g(it)g(starts)h(up)f
(sa)o(ying)f(that)h(it)g(is)g(a)g(mo)q(di\014ed)f(v)o(ersion)295
640 y(of)i(F)m(unnelW)m(eb.)j(No)d(other)g(actions)g(need)h(b)q(e)g(tak)o
(en.)295 717 y Fk(Mo)q(di\014cations)d(that)h(a\013ect)h(functional)o(i)o(t)o
(y:)h Fn(If)d(y)o(ou)g(mak)o(e)e(c)o(hanges)k(to)e(F)m(unnelW)m(eb)g(that)295
767 y(a\013ect)g(its)f(functionalit)o(y)f(\(e.g.)g(c)o(hanges)i(to)f(command)
e(line)h(options,)h(the)h(command)c(language,)295 817 y(or)13
b(the)h(input)f(language\))g(y)o(ou)f(should)h(c)o(hange)h(the)g(name)e(of)g
(the)i(program)e(so)h(that)g(the)h(name)295 867 y(no)h(longer)g(con)o(tains)h
(the)g(w)o(ord)f(\\F)m(unnelW)m(eb",)f(and)h(should)g(c)o(ho)q(ose)i
(alternativ)o(e)e(input)g(and)295 917 y(include-\014le)d(\014le)g(extensions)
g(\(the)h(curren)o(t)g(ones)f(are)g(\\)p Fi(.fw)p Fn(")f(and)g(\\)p
Fi(.fwi)p Fn("\).)16 b(F)m(or)c(example,)e(y)o(ou)295 966 y(migh)o(t)g(call)h
(y)o(our)g(program)f(\\BananaW)m(eb")h(and)g(use)i(the)f(\014le)g(extensions)
g(\\)p Fi(.bw)p Fn(")f(and)g(\\)p Fi(.bwi)p Fn(".)177 1044
y(These)k(rules)f(are)g(not)g(v)o(ery)g(restrictiv)o(e.)19
b(Basically)13 b(y)o(ou)g(can)h(do)f(what)h(y)o(ou)f(lik)o(e)g(so)h(long)e
(as)i(y)o(ou)f(c)o(hange)h(the)177 1094 y(name)d(of)g(the)h(resulting)g
(program.)k(I)c(do)f(not)h(wish)g(to)g(restrict)h(an)o(y)o(one)e(who)h(migh)o
(t)e(w)o(an)o(t)h(to)h(use)g(F)m(unnelW)m(eb)177 1143 y(as)18
b(a)g(foundation)f(for)g(a)h(more)f(sophisticated)h(literate)g(programming)d
(system.)30 b(My)17 b(sole)h(aim)e(here)j(is)f(to)177 1193
y(protect)d(the)g(in)o(tegrit)o(y)e(of)g(what)h(already)g(exists.)177
1364 y Fe(3.5)70 b(Mo)r(difying)22 b(the)h(Man)n(uals)177 1483
y Fn(While)15 b(it)h(is)f(p)q(ermitted)h(to)f(mo)q(dify)f(the)i(F)m(unnelW)m
(eb)f(program,)g(no)g(license)i(has)f(b)q(een)g(gran)o(ted)h(to)e(mo)q(dify)
177 1533 y(its)h(do)q(cumen)o(tation)f(\()p Fh(The)i(F)m(unnelWeb)h(User's)e
(Manual)g Fn(and)g Fh(The)h(F)m(unnelWeb)h(Hacker's)e(Manual)p
Fn(\).)25 b(The)177 1583 y(only)12 b(op)q(eration)h(that)f(can)h(b)q(e)h(p)q
(erformed)e(on)g(the)i(F)m(unnelW)m(eb)e(do)q(cumen)o(tation)f(is)i(a)f(v)o
(erbatim)f(cop)o(y)i(in)f(an)o(y)177 1633 y(medium.)177 1710
y(If)j(y)o(ou)g(ha)o(v)o(e)g(created)i(a)f(mo)q(di\014ed)e(v)o(ersion)h(of)g
(F)m(unnelW)m(eb)g(and)g(wish)h(to)f(do)q(cumen)o(t)g(it,)g(either)h(write)g
(y)o(our)177 1760 y(o)o(wn)h(man)o(ual)e(from)g(scratc)o(h,)k(or)e(write)g(a)
g(man)o(ual)e(that)i(can)g(b)q(e)h(used)g(in)e(conjunction)i(with)e(the)i
(existing)177 1809 y(man)o(uals.)177 1980 y Fe(3.6)70 b(Ho)n(w)23
b(Cop)n(yrigh)n(t)g(La)n(w)g(W)-6 b(orks)177 2099 y Fn(In)17
b(order)h(to)f(understand)i(the)f(next)f(section,)i(some)d(understanding)i
(of)e(cop)o(yrigh)o(t)h(la)o(w)f(is)h(required.)29 b(The)177
2149 y(assertions)15 b(made)e(in)h(this)h(section)f(are)h(not)f(legal)f
(opinions;)g(they)i(are)g(merely)e(appro)o(ximations)f(of)h(the)i(la)o(w,)177
2199 y(based)g(on)e(m)o(y)g(understanding)h(of)f(it.)177 2276
y(By)k(default,)g(who)q(ev)o(er)g(creates)h(a)f Fk(w)o(ork)f
Fn(o)o(wns)h Fk(cop)o(yrigh)o(t)c Fn(o)o(v)o(er)k(it.)26 b(This)16
b(means)g(that)h(b)o(y)f(default,)h(that)177 2326 y(p)q(erson)e(is)f(the)g
(only)f(p)q(erson)i(in)f(the)g(w)o(orld)g(who)f(has)h(the)h(legal)e(righ)o(t)
g(to)h(mak)o(e)e(copies)j(of)e(the)h(w)o(ork.)177 2403 y(Cop)o(yrigh)o(t)g(o)
o(v)o(er)h(a)f(w)o(ork)g(usually)g(co)o(v)o(ers)i(all)d(direct)j(deriv)n
(ations)e(of)g(this)h(w)o(ork.)20 b(F)m(or)14 b(example,)g(if)f(someone)177
2453 y(o)o(wns)f(the)h(source)h(co)q(de)f(to)f(a)f(computer)h(program)f(then)
i(they)f(also)g(o)o(wn)g(an)o(y)f(direct)i(deriv)n(ations)f(suc)o(h)h(as)f
(the)177 2503 y(binary)i(executable.)177 2580 y(More)i(than)g(one)f(p)q
(erson)i(ma)o(y)c(o)o(wn)i(cop)o(yrigh)o(t)g(o)o(v)o(er)h(a)f(w)o(ork.)23
b(If)15 b(this)g(is)h(the)g(case,)g(then)g(the)g(w)o(ork)g(cannot)177
2630 y(b)q(e)f(copied)f(without)f(the)i(p)q(ermission)e(of)g(all)g(of)g(the)h
(p)q(eople)h(o)o(wning)e(the)h(cop)o(yrigh)o(t.)177 2708 y(A)k(p)q(erson)g
(\(or)f(group\))g(o)o(wning)g(cop)o(yrigh)o(t)f(o)o(v)o(er)i(a)f(w)o(ork)g
(can)g Fk(license)e Fn(the)j(righ)o(t)f(to)g(mak)o(e)f(copies)i(of)e(the)177
2757 y(w)o(ork)e(to)f(an)o(y)o(one)h(he)g(lik)o(es)g(under)h(an)o(y)e
(conditions)h(he)g(lik)o(es.)177 2835 y(If)g(a)f(w)o(ork)h(is)g(mo)q
(di\014ed,)e(the)i(result)h(is)f(called)f(a)h Fk(deriv)o(ed)f(w)o(ork)p
Fn(.)1042 2940 y(38)p eop
%%Page: 39 40
39 39 bop 177 42 a Fn(If)13 b(cop)o(yrigh)o(t)g(on)h(a)f(w)o(ork)g(is)g(o)o
(wned)h(b)o(y)f Fj(A)h Fn(is)f(the)h(w)o(ork)f(is)h(mo)q(di\014ed)e(b)o(y)h
Fj(B)r Fn(,)h(cop)o(yrigh)o(t)f(on)g(the)h(deriv)o(ed)g(w)o(ork)177
91 y(is)g(o)o(wned)g(b)o(y)g(b)q(oth)g Fj(A)g Fn(and)f Fj(B)r
Fn(.)177 159 y(Cop)o(yrigh)o(t)j(is)g(not)g(o)o(wnership)h(o)o(v)o(er)f
(particular)g(con\014gurations)h(of)f(information,)d(but)k(rather)g(is)f(the)
h(righ)o(t)177 209 y(to)d(restrict)i(the)f(cop)o(ying)e(of)h(information)d
(deriv)o(ed)k(from)d(particular)i(sources.)21 b(F)m(or)14 b(example,)e(if)i
(t)o(w)o(o)f(p)q(eople)177 259 y(p)q(oin)o(t)k(their)g(cameras)g(out)g(a)g
(windo)o(w)f(and)h(tak)o(e)g(iden)o(tical)f(photographs,)i(eac)o(h)f(p)q
(erson)h(has)g(the)f(righ)o(t)g(to)177 309 y(restrict)e(the)g(cop)o(ying)e
(of)g Fh(their)g Fn(photograph)h(regardless)h(of)e(the)h(fact)g(that)g(the)g
(other)g(p)q(erson)h(has)f(cop)o(yrigh)o(t)177 359 y(o)o(v)o(er)h(an)f(iden)o
(tical)g(photograph.)20 b(In)14 b(the)h(unlik)o(ely)f(ev)o(en)o(t)h(that)f(t)
o(w)o(o)g(p)q(eople)h(wrote)g(no)o(v)o(els)g(that)f(w)o(ere)i(letter)177
408 y(for)d(letter)h(iden)o(tical)f(and)g(it)g(could)g(b)q(e)h(pro)o(v)o(en)g
(that)f(there)i(w)o(as)e(no)g(con)o(tact)h(b)q(et)o(w)o(een)h(the)f(t)o(w)o
(o)f(p)q(eople)g(when)177 458 y(they)e(wrote)h(the)f(no)o(v)o(els,)g(then)g
(cop)o(yrigh)o(t)g(la)o(w)f(w)o(ould)g(eac)o(h)h(protect)h(the)f(righ)o(t)g
(of)f(eac)o(h)h(p)q(erson)h(to)f(restrict)h(the)177 508 y(cop)o(ying)g(of)h
(the)g(no)o(v)o(el)f(originating)f(from)g Fh(them)p Fn(.)18
b(In)13 b(practice,)g(the)h(probabilit)o(y)d(of)h(suc)o(h)i(an)f(ev)o(en)o(t)
g(o)q(ccurring)177 558 y(is)i(so)h(lo)o(w)e(that)h(the)h(la)o(w)f(assumes)g
(that)g(if)g(t)o(w)o(o)f(w)o(orks)i(are)f(close)h(or)f(iden)o(tical,)g(that)g
(there)i(has)e(b)q(een)i(some)177 608 y(information)11 b(in)o(terc)o(hange)k
(at)e(some)g(p)q(oin)o(t.)177 676 y(Th)o(us,)f(if)f(I)h(o)o(wn)g(cop)o(yrigh)
o(t)f(on)h(computer)f(program)g Fj(X)s Fn(,)h(and)g(I)f(create)j(an)d(iden)o
(tical)h(cop)o(y)f(of)h Fj(X)j Fn(called)d Fj(Y)21 b Fn(and)177
726 y(distribute)c(it)f(under)h(the)f(terms)g(of)g(a)g(license)h(agreemen)o
(t,)f(then)g(that)h(license)g(agreemen)o(t)e(do)q(es)i(not)f(co)o(v)o(er)177
775 y(the)e(cop)o(y)e Fj(X)s Fn(.)19 b(Once)14 b(the)f(license)h(agreemen)o
(t)e(is)h(signed,)g(there)h(is)f(nothing)f(I)h(can)g(do)f(to)h(undo)g(the)g
(license;)g Fj(Y)177 825 y Fn(has)h(gone.)k(Ho)o(w)o(ev)o(er,)c(I)g(still)f
(ha)o(v)o(e)h(total)f(con)o(trol)g(o)o(v)o(er)h Fj(X)s Fn(.)177
893 y(V)m(ersion)g(2)g(of)f(the)h(GNU)g(General)g(Public)g(License)h(\(under)
g(whic)o(h)e(F)m(unnelW)m(eb)h(is)f(released\))j(sp)q(eci\014es)g(\(in)d(a)
177 943 y(n)o(utshell\))e(that)h(soft)o(w)o(are)f(can)g(b)q(e)h(copied)f
(freely)g(so)h(long)e(as)h(it)g(is)g(not)g(sold,)f(and)h(that)g(it)g(can)h(b)
q(e)f(mo)q(di\014ed)f(and)177 993 y(copied)15 b(freely)h(so)f(long)f(as)h
(the)h(mo)q(di\014cations)d(are)i(logged)g(and)g(it)f(is)h(not)g(sold.)21
b(In)15 b(b)q(oth)h(cases,)g(it)f(requires)177 1043 y(that)h(the)h(result)g
(of)e(the)i(cop)o(y)f(or)g(mo)q(di\014cation)e(op)q(eration)h(b)q(e)i(copied)
f(only)g(under)g(the)h(conditions)f(of)f(the)177 1092 y(license.)177
1160 y(Once)g(a)e(declaration)g(is)g(issued)h(licensing)f(a)g(cop)o(y)g(of)g
(a)g(program)e(under)j(GNU)f(license,)h(that)g(license)g(cannot)177
1210 y(b)q(e)h(retracted.)177 1363 y Fe(3.7)70 b(Managemen)n(t)23
b(of)g(the)f(O\016cial)f(F)-6 b(unnelW)g(eb)177 1472 y Fn(I)14
b(in)o(tend)f(to)h(main)o(tain)d(an)i(o\016cial)f(cop)o(y)i(of)f(F)m(unnelW)m
(eb)g(and)g(release)i(it)f(under)g(GNU)f(license)i(from)d(time)g(to)177
1522 y(time)h(so)h(that)g(ev)o(ery)o(one)g(can)h(use)f(it.)k(Unfortunately)c
(its)g(going)e(to)i(b)q(e)g(a)g(little)f(messy)m(.)177 1590
y(F)m(or)j(a)h(v)n(ariet)o(y)f(of)f(reasons,)j(I)f(w)o(an)o(t)f(to)g(main)o
(tain)e(total)i(con)o(trol)g(o)o(v)o(er)g Fh(my)h Fn(cop)o(y)g(of)e(the)j
(o\016cial)d(v)o(ersion)h(of)177 1640 y(F)m(unnelW)m(eb.)i(Some)12
b(of)i(the)g(reasons)h(are:)239 1732 y Fm(\017)21 b Fn(If)15
b(it)h(turns)h(out)f(that)g(there)h(is)e(an)h(enormous)f(demand)g(for)h(F)m
(unnelW)m(eb)f(\(unlik)o(ely\))g(then)i(I)e(w)o(an)o(t)h(to)281
1782 y(b)q(e)e(able)e(to)h(create)i(a)d(business)j(based)e(on)g(it,)f(or)h
(at)g(least)h(b)q(e)f(able)g(to)g(bundle)g(it)g(with)f(other)i(pro)q(ducts.)
281 1832 y(This)g(w)o(ould)g(b)q(e)i(di\016cult)e(if)f(the)j(only)d
(up-to-date)i(cop)o(y)g(a)o(v)n(ailable)d(w)o(as)j(a)f(GNU)h(cop)o(y)m(.)k
(Note:)h(If)15 b(this)281 1882 y(happ)q(ens,)f(all)f(the)h(GNU)g(releases)i
(of)d(F)m(unnelW)m(eb)g(will)g(remain)f(v)n(alid.)239 1958
y Fm(\017)21 b Fn(I)d(w)o(an)o(t)g(to)g(b)q(e)h(able)f(to)g(cop)o(y)g(co)q
(de)h(from)d(m)o(y)h(v)o(ersion)h(of)g(F)m(unnelW)m(eb)f(in)o(to)h
(commercial)d(pro)q(ducts)281 2008 y(without)e(ha)o(ving)g(to)h(w)o(orry)g
(ab)q(out)g(the)g(GNU)g(license.)177 2101 y(The)i(trouble)f(is)h(that)f(\(in)
g(m)o(y)f(understanding)h(of)g(cop)o(yrigh)o(t)g(la)o(w\),)f(once)i(a)f(cop)o
(y)h(of)e(F)m(unnelW)m(eb)h(has)h(b)q(een)177 2151 y(released)i(under)g(GNU)f
(license,)g(then)h(it)e(and)h(an)o(y)f(w)o(orks)h(deriv)o(ed)h(from)d(it)h
(fall)g(under)h(GNU)g(license)g(to)q(o.)177 2200 y(This)c(means)g(that)g(if)g
(y)o(ou)g(mo)q(dify)e(a)i(GNU)g(release)h(of)f(F)m(unnelW)m(eb)g(and)g(send)h
(me)f(y)o(our)g(mo)q(di\014cations,)e(and)177 2250 y(I)18 b(incorp)q(orate)h
(them)e(in)o(to)h(m)o(y)e(v)o(ersion,)j(then)g(I)f(no)g(longer)f(o)o(wn)h
(cop)o(yrigh)o(t)g(on)g(the)g(v)o(ersion)h(I)f(mo)q(di\014ed.)177
2300 y(Basically)m(,)12 b(if)h(GNU)h(touc)o(hes)h(a)f(w)o(ork,)f(then)h(that)
g(cop)o(y)g(is)g(gone)g(forev)o(er.)177 2368 y(My)k(solution)e(to)i(the)g
(problem)e(is)h(to)g(k)o(eep)i(a)e(cop)o(y)g(of)g(F)m(unnelW)m(eb)g(that)h
(is)f(GNU-clean)g(and)h(only)e(mak)o(e)177 2418 y(mo)q(di\014cations)9
b(to)h(it)h(that)f(are)h(GNU-clean.)17 b(So)11 b(long)e(as)i(m)o(y)e
(o\016cial)g(cop)o(y)i(is)f(GNU)g(clean,)h(an)o(y)g(mo)q(di\014cations)177
2468 y(that)j(I)g(mak)o(e)e(m)o(yself)g(will)h(b)q(e)h(GNU)g(clean.)k(The)c
(problem)e(comes)i(when)g(someone)f(else)i(mo)q(di\014es)e(the)h(GNU)177
2518 y(v)o(ersion)c(and)f(then)h(w)o(an)o(ts)g(me)e(to)i(incorp)q(orate)g
(the)g(mo)q(di\014cations)e(in)o(to)g(m)o(y)g(o\016cial)g(v)o(ersion.)17
b(As)10 b(I)g(understand)177 2567 y(the)h(la)o(w,)f(b)o(y)g(default,)g(the)h
(programmer)d(o)o(wns)j(the)g(mo)q(di\014cations)d(\(b)q(ecause)k(he)f(made)e
(them\),)h(but)h(the)g(result)177 2617 y(of)h(making)e(the)j(mo)q
(di\014cations)d(falls)i(under)h(GNU)f(license.)18 b(What)12
b(I)g(prop)q(ose)i(is)e(that)g(those)h(who)f(w)o(an)o(t)g(their)177
2667 y(mo)q(di\014cations)g(included)i(in)g(the)g(o\016cial)f(cop)o(y)g(of)h
(F)m(unnelW)m(eb)f(sign)h(an)f(agreemen)o(t)h(transferring)g(cop)o(yrigh)o(t)
177 2717 y(of)f(the)g(mo)q(di\014cations)f(o)o(v)o(er)h(to)g(me)f(on)h
(condition)f(that)h(the)h(result)g(b)q(e)f(released)i(under)f(GNU)f(license)h
(within)177 2767 y(a)g(certain)g(time)f(p)q(erio)q(d.)18 b
Fk(Figure)c(1)g Fn(demonstrates)g(the)h(pro)q(cess.)177 2835
y(There)g(are)g(t)o(w)o(o)e(main)f(disadv)n(an)o(tages)h(to)h(this)g(sc)o
(heme:)1042 2940 y(39)p eop
%%Page: 40 41
40 40 bop 221 91 a Fi(+---------->----)o(-----)o(-+---)o(-----)o(-----)o
(-<--)o(-----)o(-----)o(-+)221 141 y(|\(modifications)18 b(by)87
b(|)610 b(|)221 191 y(|)21 b(me\))370 b(V)610 b(|)221 241 y(|)109
b(+--------------)o(-----)o(-----)o(-----)o(----)o(-+)193 b(|)221
291 y(+--<--|)42 b(My)21 b(Official)f(Copy)h(of)h(FunnelWeb)63
b(|)196 b(|)352 340 y(|)65 b(Copyright)20 b(\(C\))h(Ross)g(Williams)85
b(|)196 b(|)352 390 y(+--------------)o(-----)o(-----)o(-----)o(----)o(-+)d
(|)700 440 y(|)22 b(\(Periodic)e(releases\))150 b(/)22 b(\\)700
490 y(V)567 b(/)65 b(\\)43 b(Programmers)482 540 y(+------------------)o(+)
346 b(/Legal\\)20 b(sign)h(away)482 589 y(|)h(GNU)f(Release)f(Copy)h(|)349
b(\\Filte/)20 b(copyright)g(on)482 639 y(+------------------)o(+)368
b(\\)21 b(r)h(/)43 b(modifications)700 689 y(|)588 b(\\)22
b(/)700 739 y(|)g(\(Modifications)d(made)i(by)108 b(|)700 789
y(V)44 b(random)20 b(programmers\))f(--->--+)460 839 y(+-------------------)o
(----+)460 888 y(|)j(Modified)e(GNU)h(Version)43 b(|)460 938
y(+-------------------)o(----+)343 1079 y Fb(Once)13 b(a)f(w)o(ork)h(is)g
(released)e(under)g(GNU)i(license,)f(all)g(deriv)o(ed)f(w)o(orks)h(fall)g
(under)g(GNU)h(license.)18 b(Ho)o(w)o(ev)o(er,)281 1129 y(this)9
b(diagram)f(sho)o(ws)i(ho)o(w)g(cop)o(yrigh)o(t)d(can)i(b)q(e)h(main)o
(tained)d(o)o(v)o(er)i(a)h(w)o(ork,)g(while)f(still)g(making)f(it)i(a)o(v)n
(ailable)e(under)281 1179 y(GNU)14 b(license.)19 b(Unfortunately)m(,)11
b(this)i(sc)o(heme)e(requires)h(that)g(cop)o(yrigh)o(t)f(on)i(mo)q
(di\014cati)o(ons)d(to)j(F)m(unnelW)m(eb)f(b)q(e)281 1229 y(signed)e(o\013)h
(b)o(y)g(the)g(p)q(eople)e(who)j(mak)o(e)e(the)h(mo)q(di\014catio)o(ns.)453
1320 y Fk(Figure)j(1)p Fn(:)k(Ho)o(w)13 b(I)h(am)e(going)h(to)h(main)o(tain)d
(cop)o(yrigh)o(t)i(o)o(v)o(er)h(F)m(unnelW)m(eb.)228 1453 y(1.)20
b(Getting)15 b(eac)o(h)i(p)q(erson)g(who)e(con)o(tributes)i(mo)q
(di\014cations)d(to)i(F)m(unnelW)m(eb)g(to)f(sign)h(and)g(send)g(a)g(piece)
281 1503 y(of)d(pap)q(er)i(signing)e(a)o(w)o(a)o(y)f(cop)o(yrigh)o(t)i(will)e
(b)q(e)j(tedious.)228 1580 y(2.)20 b(Programmers)14 b(ma)o(y)g(b)q(e)j
(reluctan)o(t)f(to)g(sign)g(a)o(w)o(a)o(y)e(cop)o(yrigh)o(t)i(on)g(mo)q
(di\014cations)e(b)q(ecause)j(the)g(result)281 1630 y(could)e(b)q(e)h(used)g
(b)o(y)f(me)f(for)h(commercial)d(purp)q(oses)17 b(b)o(y)e(me)f(at)h(a)g
(later)h(date)f(\(Note:)21 b(But)16 b(it)f(m)o(ust)f(b)q(e)281
1679 y(released)h(under)g(GNU)f(as)f(w)o(ell\).)177 1774 y(These)18
b(disadv)n(an)o(tages)d(are)i(regrettable)g(consequences)i(of)c(m)o(y)g
(decision)h(to)g(retain)g(total)f(con)o(trol)h(o)o(v)o(er)g(the)177
1824 y(\\o\016cial")c(v)o(ersion)i(of)f(F)m(unnelW)m(eb.)177
1893 y(The)h(upshot)h(of)e(all)g(this)h(is)f(that:)239 1988
y Fm(\017)21 b Fn(I)12 b(will)e(nev)o(er)i(allo)o(w)f(an)o(y)g(co)q(de)h
(from)e(a)i(GNU)f(release)i(of)e(F)m(unnelW)m(eb)g(to)h(touc)o(h)g(m)o(y)e
(o\016cial)g(cop)o(y)m(.)17 b(Only)281 2038 y(mo)q(di\014cations)12
b(will)g(b)q(e)j(acceptable.)239 2115 y Fm(\017)21 b Fn(If)e(y)o(ou)g(mak)o
(e)f(a)h(mo)q(di\014cation)e(to)j(F)m(unnelW)m(eb)f(and)g(send)h(it)f(to)h
(me)e(for)h(inclusion)g(in)g(the)h(o\016cial)281 2165 y(v)o(ersion,)d(I)f
(will)g(not)g(incorp)q(orate)h(y)o(our)g(mo)q(di\014cation)d(un)o(til)i(I)h
(ha)o(v)o(e)f(receiv)o(ed)i(a)e(signed)h(declaration)281 2214
y(transferring)11 b(cop)o(yrigh)o(t.)17 b(I)11 b(will)e(prepare)k(suc)o(h)e
(a)g(con)o(tract)h(when)f(the)h(\014rst)f(p)q(erson)h(sends)g(me)e(a)h(w)o
(orth)o(y)281 2264 y(mo)q(di\014cation!)239 2341 y Fm(\017)21
b Fn(If)12 b(y)o(ou)g(in)o(tend)h(to)f(mak)o(e)f(c)o(hanges)i(to)g(F)m
(unnelW)m(eb)f(that)g(are)h(so)g(massiv)o(e)e(that)i(they)g(will)e(in)o(v)o
(olv)o(e)g(wide-)281 2391 y(scale)i(mo)q(di\014cation)e(of)h(the)i(source)g
(\014les,)f(and)g(y)o(ou)f(w)o(an)o(t)h(the)g(mo)q(di\014cation)e(to)i(b)q(e)
g(part)g(of)g(the)g(o\016cial)281 2441 y(v)o(ersion,)j(it)g(migh)o(t)e(b)q(e)
j(a)f(go)q(o)q(d)f(idea)h(to)g(con)o(tact)h(me)e(b)q(efore)i(doing)e(so.)25
b(There)17 b(are)f(t)o(w)o(o)g(reasons)h(for)281 2491 y(doing)11
b(this.)18 b(First,)12 b(it)g(allo)o(ws)f(me)h(a)g(c)o(hance)h(to)f(commen)o
(t)e(on)i(y)o(our)h(prop)q(osed)g(mo)q(di\014cations)d(and)i(giv)o(e)281
2540 y(m)o(y)i(opinion)g(on)i(whether)h(they)f(are)g(lik)o(ely)e(to)i(b)q(e)g
(incorp)q(orated)g(in)o(to)f(the)i(o\016cial)d(v)o(ersion.)23
b(Second,)281 2590 y(I)16 b(can)f(send)i(y)o(ou)e(a)g(cop)o(y)h(\(under)h(sp)
q(ecial)e(license\))i(of)e(the)h(GNU-clean)g(o\016cial)e(v)o(ersion)i(to)f(w)
o(ork)g(on.)281 2640 y(This)f(will)e(allo)o(w)g(y)o(ou)i(to)g(ship)f(bac)o(k)
h(y)o(our)g(c)o(hanges)h(as)e(\014les)i(rather)f(than)g(as)g(c)o(hange)h
(sections.)177 2735 y(As)h(a)g(separate)h(p)q(oin)o(t)e(from)f(the)i(legal)f
(issues,)h(I)g(am)e(lik)o(ely)g(to)i(turn)g(out)g(to)f(b)q(e)i(prett)o(y)f
(pic)o(ky)f(ab)q(out)h(what)177 2785 y(mo)q(di\014cations)10
b(I)j(will)d(incorp)q(orate)j(in)o(to)e(the)i(o\016cial)e(cop)o(y)m(.)17
b(Whether)c(a)f(mo)q(di\014cation)e(will)h(b)q(e)h(accepted)i(will)177
2835 y(dep)q(end,)h(amongst)d(other)j(things,)e(on)h(the)g(follo)o(wing)d
(criteria.)1042 2940 y(40)p eop
%%Page: 41 42
41 41 bop 239 42 a Fm(\017)21 b Fn(Do)q(es)11 b(the)g(mo)q(di\014cation)e
(\014t)i(in)f(with)h(the)g(design)g(goals)f(of)g(F)m(unnelW)m(eb,)h(or)f(is)h
(it)f(just)h(a)g(case)h(of)e(creeping)281 91 y(featurism?)239
174 y Fm(\017)21 b Fn(Ho)o(w)13 b(w)o(ell)h(co)q(ded)g(is)g(the)h(mo)q
(di\014cation?)h(W)m(ould)c(it)i(reduce)h(the)g(qualit)o(y)d(of)h(the)i(co)q
(de?)239 257 y Fm(\017)21 b Fn(If)14 b(the)i(mo)q(di\014cation)d(c)o(hanges)i
(F)m(unnelW)m(eb's)g(functionalit)o(y)m(,)d(is)j(this)g(a)g(desirable)g(c)o
(hange?)22 b(Ho)o(w)14 b(will)281 307 y(it)f(impact)g(on)g(existing)h(users?)
239 390 y Fm(\017)21 b Fn(W)m(ould)13 b(it)g(b)q(e)i(quic)o(k)o(er)f(for)g
(me)f(to)h(mak)o(e)f(the)h(mo)q(di\014cation)e(m)o(yself)h(than)h(to)g(w)o
(ork)f(out)h(ho)o(w)g(to)g(incor-)281 440 y(p)q(orate)g(the)h(submitted)e(mo)
q(di\014cation?)177 556 y(It)g(is)f(m)o(y)f(goal)h(to)g(guard)h(the)g(in)o
(tegrit)o(y)f(of)g(the)h(design)g(and)f(co)q(de)i(of)e(the)h(o\016cial)e(v)o
(ersion)i(of)f(F)m(unnelW)m(eb)g(and)177 606 y(so)h(I)g(will)e(probably)h(b)q
(e)h(rather)h(fussy)f(ab)q(out)f(what)h(I)f(regard)i(as)e(a)h(w)o(orth)o
(while)f(mo)q(di\014cation.)j(I)e(do)f(not)h(wish)177 656 y(to)h(lose)g(con)o
(trol)f(of)h(the)g(co)q(de,)g(either)h(tec)o(hnically)f(or)g(legally)m(.)177
818 y Fe(3.8)70 b(A)23 b(GNU)f(V)-6 b(ersion?)177 934 y Fn(The)18
b(con)o(trols)f(on)f(the)i(o\016cial)d(v)o(ersion)i(of)g(F)m(unnelW)m(eb)f
(describ)q(ed)j(in)d(the)i(previous)f(section)h(will)d(ha)o(v)o(e)i(at)177
984 y(most)d(a)h(minor)e(impact)h(on)h(F)m(unnelW)m(eb)g(dev)o(elopmen)o(t)f
(if)h(F)m(unnelW)m(eb)f(already)h(serv)o(es)i(the)f(needs)g(of)f(most)177
1034 y(of)k(its)h(users.)36 b(Ho)o(w)o(ev)o(er,)21 b(if)e(it)g(turns)h(out)g
(that)f(F)m(unnelW)m(eb)g(is)h(b)q(oth)g(p)q(opular,)g Fh(and)g
Fn(needs)h(widespread)177 1083 y(mo)q(di\014cations)13 b(and)h(enhancemen)o
(ts,)h(then)g(the)g(o\016cial)e(feedbac)o(k)i(lo)q(op)e(describ)q(ed)j(in)e
(the)h(previous)g(section)177 1133 y(will)e(b)q(ecome)g(un)o(w)o(ork)n(able,)
g(and)h(there)h(will)d(b)q(e)j(a)e(GNU)h(break)o(out.)177 1208
y(A)g Fk(GNU)i(break)o(out)c Fn(will)g(o)q(ccur)j(if)e(F)m(unnelW)m(eb)g
(users)j(b)q(ecome)d(organized)h(enough)g(and)g(anno)o(y)o(ed)g(enough)177
1258 y(\(at)20 b(the)h(o\016cial)d(dev)o(elopmen)o(t)h(cycle\))i(to)f(start)g
(main)o(taining)d(a)j(coheren)o(t)h(v)o(ersion)f(of)f(F)m(unnelW)m(eb)h(that)
177 1307 y(div)o(erges)f(from)d(the)j(o\016cial)e(v)o(ersion.)31
b(If)18 b(a)g(GNU)g(break)o(out)g(o)q(ccurs,)i(I)e(w)o(ould)g(appreciate,)h
(as)g(requested)177 1357 y(earlier,)14 b(that)g(a)f(di\013eren)o(t)i(name)e
(and)h(\014le)f(extensions)i(b)q(e)g(c)o(hosen)g(for)e(the)i(div)o(erging)e
(v)o(ersion.)177 1519 y Fe(3.9)70 b(Summary)177 1635 y Fn(Decen)o(tralized)21
b(mo)q(di\014cations)d(to)i(a)f(programming)d(language)j(and)h(its)g
(implemen)o(tatio)o(ns)e(can)i(seriously)177 1685 y(damage)12
b(the)i(language's)f(p)q(ortabilit)o(y)f(and)i(seman)o(tic)e(clarit)o(y)m(.)
17 b(Unfortunately)m(,)c(there)i(is)e(a)g(tension)h(b)q(et)o(w)o(een)177
1735 y(cen)o(tralizing)c(con)o(trol)g(of)f(a)h(programmi)o(ng)d(language)i
(and)h(pro)o(viding)f(source)i(co)q(de)g(securit)o(y)g(to)f(nerv)o(ous)h
(users.)177 1785 y(In)k(F)m(unnelW)m(eb,)e(this)i(trade-o\013)g(has)g(b)q
(een)g(resolv)o(ed)g(to)g(some)e(exten)o(t)j(b)o(y)e(releasing)h(the)g
(source)h(co)q(de)f(along)177 1835 y(with)h(a)g(request)i(that)e(if)g(the)g
(functionalit)o(y)f(of)h(the)h(program)d(is)i(mo)q(di\014ed,)f(that)i(the)g
(program's)d(name)h(b)q(e)177 1884 y(c)o(hanged)d(and)g(a)f(di\013eren)o(t)i
(\014le)e(extension)i(b)q(e)f(c)o(hosen)h(for)e(input)h(\014les)g(created)h
(under)f(the)h(mo)q(di\014ed)d(program.)177 1934 y(The)k(author)g(of)f(F)m
(unnelW)m(eb)g(has)g(decided)i(to)e(main)o(tain)e(an)i(o\016cial)g(v)o
(ersion)g(of)g(F)m(unnelW)m(eb)g(o)o(v)o(er)h(whic)o(h)f(he)177
1984 y(will)h(o)o(wn)h(cop)o(yrigh)o(t,)g(but)h(whic)o(h)f(he)h(will)e
(release)j(under)f(GNU)f(license)i(from)c(time)h(to)i(time.)21
b(This)16 b(means)177 2034 y(that)g(cop)o(yrigh)o(t)f(on)h(all)e(c)o(hanges)j
(to)e(F)m(unnelW)m(eb)h(m)o(ust)e(b)q(e)j(signed)f(o)o(v)o(er)f(to)h(the)g
(author)g(b)q(efore)h(they)f(ha)o(v)o(e)177 2084 y(a)g(c)o(hance)i(of)e(b)q
(eing)h(incorp)q(orated)g(in)f(the)h(o\016cial)e(v)o(ersion.)27
b(Finally)m(,)14 b(it)j(is)f(p)q(ossible)h(that)g(this)f(reluctance)177
2133 y(of)e(the)h(author)f(to)g(remo)o(v)o(e)f(his)h(cop)o(yrigh)o(ted)h(v)o
(ersion)f(from)e(the)j(dev)o(elopmen)o(t)e(cycle)i(of)f(the)h(o\016cial)e(v)o
(ersion)177 2183 y(will)e(result)j(in)e(a)g(GNU)h(break)o(out)g(in)f(whic)o
(h)g(a)h(div)o(erging)e(GNU)i(v)o(ersion)f(of)h(F)m(unnelW)m(eb)f(will)f(b)q
(e)i(main)o(tained)177 2233 y(b)o(y)h(the)g(GNU)g(comm)o(unit)o(y)m(.)h(The)f
(author)g(hop)q(es)h(this)f(w)o(on't)f(b)q(e)i(necessary)h(and)e(requests,)h
(if)e(this)h(happ)q(ens,)177 2283 y(that)g(the)h(div)o(erging)e(GNU)g(v)o
(ersion)h(b)q(e)h(renamed.)1042 2940 y(41)p eop
%%Page: 42 43
42 42 bop 1042 2940 a Fn(42)p eop
%%Page: 43 44
43 43 bop 177 376 a Ff(Chapter)34 b(4)177 607 y Fl(F)-10 b(unnelW)g(eb)41
b(F)-10 b(uture)177 847 y Fn(Previous)13 b(c)o(hapters)h(ha)o(v)o(e)f
(explained)f(the)h(design)g(of)f(F)m(unnelW)m(eb)g(and)h(giv)o(en)f(reasons)i
(for)e(wh)o(y)g(it)h(is)f(the)h(w)o(a)o(y)177 897 y(it)i(is.)24
b(This)15 b(c)o(hapter)i(go)q(es)f(through)g(eac)o(h)g(of)f(the)i(asp)q(ects)
g(of)e(F)m(unnelW)m(eb,)g(and)h(explores)g(their)g(problems,)177
946 y(ho)o(w)e(they)g(can)g(b)q(e)h(solv)o(ed,)e(and)h(lists)f(opp)q
(ortunities)i(for)e(impro)o(v)o(emen)o(t.)177 1107 y Fe(4.1)70
b(Do)r(cumen)n(tation)177 1221 y Fk(An)12 b(o\016cial)f(example:)16
b Fn(A)11 b(o\016cial)e(example)h(program)f(written)j(using)e(F)m(unnelW)m
(eb)h(should)f(b)q(e)i(constructed)177 1271 y(and)i(made)f(a)o(v)n(ailable.)
177 1344 y Fk(Index)20 b(program:)26 b Fn(In)19 b(order)f(to)h(t)o(yp)q(eset)
g(the)g(do)q(cumen)o(tation,)f(a)g(p)q(ortable)g(index)g(sorting)g(program)f
(is)177 1394 y(required.)31 b(One)19 b(should)e(b)q(e)i(written)f(and)g
(added)g(to)g(the)g(distribution)g(kit.)29 b(P)o(erhaps)19
b(this)f(could)g(b)q(e)g(the)177 1444 y(o\016cial)13 b(example!)177
1604 y Fe(4.2)70 b(Command)22 b(Line)g(In)n(terface)177 1719
y Fk(Bu\013er)14 b(length:)i Fn(Curren)o(tly)d(the)h(F)m(unnelW)m(eb)e(shell)
h(uses)i(the)e Fi(COMLINE)p 1368 1719 14 2 v 15 w(MAX)f Fn(constan)o(t)h(to)g
(size)h(its)f(in)o(ternal)177 1768 y(command)h(line)h(bu\013ers.)27
b(This)16 b(is)g(un)o(tenable.)25 b(The)17 b(maxim)n(um)12
b(length)k(of)g(a)g(shell)g(command)d(line)j(should)177 1818
y(not)e(b)q(e)g(mac)o(hine)f(dep)q(enden)o(t.)177 1892 y Fk(An)o(tiquated)h
(F)l(eatures:)k Fn(As)d(the)g(F)m(unnelW)m(eb)e(language)h(dev)o(elops,)g(it)
g(is)g(lik)o(ely)f(that)i(some)e(c)o(hanges)i(will)177 1941
y(ha)o(v)o(e)g(to)g(b)q(e)h(made)d(that)i(will)f(render)j(one)e(or)g(more)f
(language)g(constructs)j(obsolete.)22 b(When)15 b(this)g(happ)q(ens,)177
1991 y(it)e(ma)o(y)d(b)q(e)k(necessary)h(to)d(add)h(a)g(command)d(line)i
(option)g(that)h(has)g(the)g(p)q(o)o(w)o(er)g(to)g(turn)g(on)g(and)f(o\013)h
(w)o(arnings)177 2041 y(or)h(errors)h(\015agging)e(an)o(tiquated)g(features.)
177 2201 y Fe(4.3)70 b(Shell)21 b(In)n(terpreter)177 2316 y
Fk(SET)l(ALL)f(command:)25 b Fn(When)17 b(writing)g(F)m(unnelW)m(eb)g
(scripts,)i(it)e(is)h(sometimes)e(desirable)i(to)f(set)h Fh(al)r(l)f
Fn(of)177 2366 y(F)m(unnelW)m(eb's)f(options)h(to)f(some)g(particular)h(v)n
(alue)f(so)h(that)f(the)i(script)f(is)g(not)f(vulnerable)h(to)g(c)o(hanges)g
(in)177 2415 y(F)m(unnelW)m(eb's)e(default)h(v)n(alues)f(whic)o(h)h(migh)o(t)
e(o)q(ccur)i(from)e(time)h(to)h(time.)22 b(T)m(o)15 b(this)h(end,)g(it)g(ma)o
(y)d(b)q(e)k(w)o(orth)177 2465 y(creating)c(a)f(\\)p Fi(SETALL)p
Fn(")f(command)f(that)i(is)h(iden)o(tical)e(to)i(the)g(\\)p
Fi(SET)p Fn(")e(command)f(except)k(that)e(it)g(will)f(generate)177
2515 y(an)j(error)h(if)e(the)h(v)n(alue)f(of)h(an)f(option)g(is)h(not)g(sp)q
(eci\014ed)h(explicitly)m(.)177 2588 y Fk(Recursion)f(test:)j
Fn(A)d(test)h(should)f(b)q(e)g(added)h(to)e(test)i(for)f(recursiv)o(e)h(in)o
(v)o(o)q(cation)e(in)g(a)h(shellscript.)177 2662 y Fk(Diagnostic)e(coun)o
(ting:)j Fn(The)e(co)q(de)g(for)f(coun)o(ting)g(diagnostics)h(in)f(the)h
(script)g(in)o(terpreter)h(is)f(rather)g(messy)177 2711 y(and)h(p)q(erhaps)h
(ev)o(en)f(buggy)m(.)k(It)13 b(should)h(b)q(e)h(cleaned)f(up)g(and)g(commen)o
(ted.)177 2785 y Fk(Argumen)o(t)i(coun)o(ting:)j Fn(In)c(the)h
Fi(command.c)e Fn(mo)q(dule,)g(there)j(is)e(a)g(v)n(ariable)g(that)g(coun)o
(ts)h(the)h(argumen)o(ts)177 2835 y(to)d(a)g(command.)j(Curren)o(tly)d(it)g
(tak)o(es)h(the)g(v)n(alue)e(of)h(the)h(n)o(um)o(b)q(er)e(of)h(parameters)g
(including)g(the)h(command)1042 2940 y(43)p eop
%%Page: 44 45
44 44 bop 177 42 a Fn(v)o(erb.)19 b(This)13 b(has)g(turned)i(out)e(to)g(mak)o
(e)f(the)i(co)q(de)g(less)h(readable.)j(It)13 b(should)g(b)q(e)h(c)o(hanged)g
(to)f(b)q(e)h(the)g(n)o(um)o(b)q(er)177 91 y(of)f(argumen)o(ts)h(to)f(the)i
(command)c(v)o(erb.)177 168 y Fk(Mak)o(e)k(facilit)o(y:)h Fn(It)d(ma)o(y)e(b)
q(e)i(w)o(orth)g(building)f(some)g(sort)h(of)f(mak)o(e)g(facilit)o(y)f(in)o
(to)h(the)i(script)g(language)e(so)h(as)177 218 y(to)h(supp)q(ort)h(mac)o
(hines)e(suc)o(h)h(as)g(the)h(Macin)o(tosh)f(that)f(do)h(not)g(already)f(ha)o
(v)o(e)h(this)g(facilit)o(y)m(.)177 295 y Fk(Signature)d(\014le:)17
b Fn(One)c(problem)f(with)g(using)g(F)m(unnelW)m(eb)g(in)g(conjunction)g
(with)h(an)f(external)h Fi(Make)e Fn(facilit)o(y)177 345 y(is)k(that)h(a)f
(user)h(migh)o(t)d(c)o(hange)j(a)f(F)m(unnelW)m(eb)g(source)h(\014le)g
(without)f(making)e(c)o(hanges)j(that)f(will)f(a\013ect)i(the)177
395 y(\014les)g(that)f(it)f(generates.)24 b(If)14 b(F)m(unnelW)m(eb)h(is)g
(then)h(run)f(and)g(the)h(\\)p Fi(+D)p Fn(")e(option)g(is)h(on,)g(then)g(the)
h(output)f(\014les)177 445 y(will)g(b)q(e)i(deleted)h(\(to)f(a)o(v)o(oid)e
(further)i Fi(Make)f Fn(propagations\).)25 b(If)17 b Fi(Make)e
Fn(then)i(has)g(a)f(pro)q(duction)h(linking)e(the)177 495 y
Fi(.fw)d Fn(\014le)h(to)g(its)g(output)g(\014les,)g(then)g(it)g(ma)o(y)e
(conclude)i(that)g(the)g(output)g(\014les)h(are)f(still)f(out)h(of)f(date.)18
b(T)m(o)12 b(solv)o(e)177 544 y(the)17 b(problem,)e(F)m(unnelW)m(eb)h(could)h
(b)q(e)g(c)o(hanged)f(to)h(write)f(a)g Fi(.sig)g Fn(\014le)g(whenev)o(er)i
(it)e(pro)q(cesses)j(a)e Fi(.fw)e Fn(\014le.)177 594 y(The)g
Fi(Make)e Fn(pro)q(duction)h(could)f(then)i(b)q(e)f(wired)h(up)f(to)f(link)g
(the)i Fi(.fw)e Fn(\014le)h(to)g(the)g Fi(.sig)f Fn(\014le)h(instead)g(of)f
(to)h(the)177 644 y(output)g(\014les.)177 814 y Fe(4.4)70 b(Language)24
b(Design)177 933 y Fn(Some)13 b(prop)q(osed)i(c)o(hanges)g(to)f(F)m(unnelW)m
(eb)f(do)h(not)g(corresp)q(ond)i(to)e(an)o(y)f(particular)h(comp)q(onen)o(t)g
(of)f(F)m(unnel-)177 983 y(W)m(eb)h(and)f(are)i(really)e(to)h(do)f(with)h
(the)g(design)h(of)e(the)h(input)g(language.)177 1060 y Fk(Output)c(or)h
(\014le?:)16 b Fn(The)11 b(\\)p Fi(@O)p Fn(")e(sp)q(ecial)i(sequence)i(for)d
(de\014ning)h(an)f(output)h(\014le)g(is)f(somewhat)g(non-mnemoni)o(c)177
1110 y(and)k(can)g(b)q(e)g(confused)h(with)f(zero)h(\(\\)p
Fi(0)p Fn("\).)i(P)o(erhaps)e(it)e(should)h(b)q(e)h(replaced)g(b)o(y)e(the)i
(\\)p Fi(@F)p Fn(")e(sequence.)177 1187 y Fk(Syn)o(tax)j(of)h(section)f
(names:)k Fn(Curren)o(tly)15 b(section)h(names)e(use)i(the)g(same)e(syn)o
(tax)h(as)g(macro)f(names.)21 b(F)m(or)177 1236 y(example)16
b(\\)p Fi(@<Sloth@>)p Fn(".)25 b(It)17 b(can)h(b)q(e)f(argued)h(that)f(angle)
f(brac)o(k)o(ets)i(should)f(b)q(e)h(reserv)o(ed)h(only)d(for)h(macro)177
1286 y(names)f(and)h(that)f(some)g(other)i(syn)o(tax)e(should)h(b)q(e)g
(found)g(for)f(delimiting)e(section)j(names.)26 b(This)17 b(is)f(not)h(a)177
1336 y(clear)12 b(issue.)18 b(It)11 b(could)h(also)e(b)q(e)j(argued)e(that)h
(they)g(are)g(b)q(oth)f(names,)g(and)g(that)g(b)q(ecause)j(sections)e(can)g
(inherit)177 1386 y(their)i(names)g(from)e(the)i(macros)f(they)i(con)o(tain,)
e(that)g(the)i(names)e(are)h(of)g(the)g(same)f(\\t)o(yp)q(e".)177
1463 y Fk(One)i(macro)f(p)q(er)h(section:)i Fn(One)d(particular)f(st)o(yle)g
(of)g(using)g(F)m(unnelW)m(eb)f(is)h(to)g(ha)o(v)o(e)g(at)h(most)e(one)h
(macro)177 1513 y(de\014nition)f(p)q(er)h(section.)19 b(It)12
b(ma)o(y)f(b)q(e)i(w)o(orth)f(adding)g(a)g(pragma)e(that)j(instructs)h(F)m
(unnelW)m(eb)d(to)i(enforce)g(this.)177 1590 y Fk(Should)i(@)p
Fm(f)i Fk(suppress)e(EOL?:)20 b Fn(When)15 b(de\014ning)g(a)g(macro)f(in)h(F)
m(unnelW)m(eb,)f(it)h(seems)g(to)g(b)q(e)h(rule)f(rather)177
1640 y(than)f(the)h(exception)f(that)g(the)h(\\)p Fi(@)p Fm(f)p
Fn(")e(b)q(e)h(follo)o(w)o(ed)f(b)o(y)g(\\)p Fi(@-)p Fn(".)18
b(This)13 b(suppresses)k(the)e(EOL)f(on)g(the)g(de\014nition)177
1690 y(line,)e(allo)o(wing)f(the)i(\014rst)h(line)e(of)h(the)g(macro)f(to)g
(b)q(e)i(placed)f(immedia)o(tely)d(ab)q(o)o(v)o(e)j(and)f(in)h(line)f(with)h
(the)g(other)177 1739 y(lines)k(without)g(in)o(tro)q(ducing)g(an)f(EOL)i(at)f
(the)g(start)h(of)f(the)g(macro)f(text.)28 b(One)18 b(option)e(is)h(to)g(in)o
(tro)q(duce)h(a)177 1789 y(pragma)12 b(to)i(determine)g(whether)h(to)f
(suppress)i(EOLs)e(follo)o(wing)e(\\)p Fi(@)p Fm(f)p Fn(".)177
1866 y Fk(Pragma)20 b(syn)o(tax:)26 b Fn(It)18 b(is)g(not)g(clear)g(ho)o(w)g
(\\lo)q(ose")f(the)i(syn)o(tax)f(of)f(pragmas)g(should)g(b)q(e.)31
b(P)o(erhaps)19 b(they)177 1916 y(should)14 b(b)q(e)g(case)h(insensitiv)o(e.)
177 1993 y Fk(Conditional)o(s:)23 b Fn(Dep)q(ending)17 b(on)g(demand,)g(it)g
(ma)o(y)e(b)q(e)j(w)o(orth)g(rein)o(tro)q(ducing)f(some)g(sort)g(of)g
(conditional)177 2043 y(feature)g(in)o(to)f(F)m(unnelW)m(eb.)24
b(Ho)o(w)o(ev)o(er,)17 b(it)e(w)o(ould)h(ha)o(v)o(e)g(to)g(b)q(e)h(v)o(ery)f
(simple)f(to)h(comp)q(ete)g(with)g(the)g(v)n(arious)177 2093
y(w)o(a)o(ys)e(in)f(whic)o(h)h(conditionals)f(can)h(already)f(b)q(e)i(fudged)
f(within)f(F)m(unnelW)m(eb)g(as)h(it)g(stands.)177 2170 y Fk(File)h(mark)o
(ers:)20 b Fn(It)14 b(migh)o(t)f(b)q(e)i(w)o(orth)g(mo)q(difying)d(the)j
(language)f(so)h(that)f(a)h(sp)q(ecial)g(syn)o(tactical)f(mark)o(er)g(is)177
2220 y(required)d(at)f(the)h(start)g(and)f(end)g(of)g(\014les.)17
b(This)10 b(will)f(assist)h(in)g(detecting)h(truncations)g(and)f(other)h
(corruptions.)177 2297 y Fk(F)l(ormal)i(parameter)g(lists:)j
Fn(It)d(migh)o(t)d(b)q(e)j(w)o(orth)g(c)o(hanging)f(o)o(v)o(er)g(to)h(a)f
(syn)o(tax)g(for)h(formal)d(parameter)i(lists)177 2347 y(that)k(do)q(es)h
(not)g(require)g(the)f Fi(@\()g Fn(and)g Fi(@\))p Fn(.)25 b(Ho)o(w)o(ev)o
(er,)17 b(they)f(could)g(b)q(e)h(retained)g(as)f(optional)f(for)h(bac)o(kw)o
(ard)177 2396 y(compatibilit)o(y)m(.)177 2566 y Fe(4.5)70 b(Scanner/Mapp)r
(er)177 2685 y Fk(All)17 b(non-con)o(tiguo)o(us)e(mappings:)21
b Fn(Curren)o(tly)c(F)m(unnelW)m(eb)e(requires)i(that)g(all)e(input)g
(\014les)i(b)q(e)g(mapp)q(ed)177 2735 y(in)o(to)e(a)g(con)o(tiguous)g(lump)f
(of)h(memory)m(.)20 b(This)15 b(caused)i(problems)e(for)g(t)o(w)o(o)g
(reasons.)24 b(First,)15 b(to)h(do)f(this,)h(one)177 2785 y(has)c(to)g(allo)q
(cate)f(the)h(memory)d(\014rst,)k(and)e(to)h(do)f(that,)h(y)o(ou)f(ha)o(v)o
(e)h(to)f(kno)o(w)g(ho)o(w)h(long)f(the)h(\014le)g(is,)f(and)h(it)f(turns)177
2835 y(out)j(that)g(\014nding)g(out)g(the)g(length)g(of)f(a)h(\014le)g(in)g
(a)f(p)q(ortable)i(manner)e(is)h(v)o(ery)g(ine\016cien)o(t.)k(Second,)d
(although)1042 2940 y(44)p eop
%%Page: 45 46
45 45 bop 177 42 a Fn(IBM)14 b(PC)f(compatibles)f(ma)o(y)f(ha)o(v)o(e)i
(megab)o(ytes)g(of)g(memory)m(,)d(it)i(is)i(segmen)o(ted)f(in)o(to)f(blo)q(c)
o(ks)i(of)e(at)h(most)f(64K.)177 91 y(This)i(means)f(that)h(F)m(unnelW)m(eb)f
(curren)o(tly)i(cannot)f(read)h(a)e(\014le)h(longer)g(than)g(64K)f(on)h(a)f
(PC.)177 168 y(These)j(problems)d(could)i(b)q(e)g(a)o(v)o(oided)e(if)h(the)h
(mapp)q(er)f(and)g(scanner)i(w)o(ere)f(reorganized)g(to)f(allo)o(w)f(input)h
(\014les)177 218 y(to)g(b)q(e)g(read)h(in)e(and)h(stored)h(as)f(a)f(link)o
(ed)h(list)f(of)g(c)o(h)o(unks)i(of)e(text)h(rather)h(than)f(a)g(con)o
(tiguous)f(blo)q(c)o(k.)177 295 y Fk(EOL)h(is)g(unsp)q(eci\014abl)o(e:)h
Fn(F)m(unnelW)m(eb)d(uses)h(ASCI)q(I)g(c)o(haracter)h(decimal)d(ten)i(\(10\))
f(in)o(ternally)f(to)h(represen)o(t)177 345 y(logical)g(end-of-line)g(and)h
(is)g(curren)o(tly)h(organized)f(so)g(that)g(if)g(one)g(of)g(these)h(is)f
(inserted)h(in)o(to)f(the)h(text)f(b)o(y)g(the)177 395 y(user)g(using)e(a)h
(\\)p Fi(@^D\(10\))p Fn(",)d(it)j(will)e(b)q(e)i(written)h(out)e(as)h(a)f
(logical)f(end)i(of)g(line,)f(rather)h(than)g(as)g(a)f(single)h(ASCI)q(I)177
445 y(c)o(haracter)j(10.)j(This)c(should)f(b)q(e)i(\014xed.)177
522 y Fk(Allo)o(w)g(mnemonics)f(for)i(unprin)n(tabl)o(es:)g
Fn(F)m(unnelW)m(eb)e(allo)o(ws)f(users)j(to)e(insert)h(unprin)o(table)f(c)o
(haracters)177 572 y(in)o(to)i(the)h(output)f(using)g(the)h(\\)p
Fi(@^D\(ddd\))p Fn(")d(sp)q(ecial)i(sequence.)28 b(P)o(erhaps)17
b(it)f(w)o(ould)f(b)q(e)i(c)o(hanged)g(so)f(that)g(it)177 622
y(understands)g(ASCI)q(I)e(standard)g(mnemonics)e(suc)o(h)i(as)g(\\)p
Fi(LF)p Fn(")f(as)h(w)o(ell)f(as)h(ASCI)q(I)h(n)o(um)o(b)q(ers.)177
699 y Fk(V)l(ersion)h(pragma:)22 b Fn(A)16 b(\\)p Fi(version)p
Fn(")e(pragma)g(should)h(b)q(e)i(added)f(that)g(allo)o(ws)e(the)j(user)g(to)e
(sp)q(ecify)i(in)e(the)177 749 y(input)g(\014le)h(the)g(v)o(ersion)g(of)e(F)m
(unnelW)m(eb)h(that)h(w)o(as)f(around)h(when)g(the)g(input)f(\014le)g(w)o(as)
h(created.)24 b(A)o(t)16 b(a)f(later)177 799 y(date,)g(suc)o(h)h(a)e
(construct)j(w)o(ould)d(b)q(e)i(v)o(ery)f(useful)g(for)f(determining)g(ho)o
(w)h(an)f(input)h(\014le)g(should)g(b)q(e)g(up)q(dated)177
848 y(if)e(the)i(F)m(unnelW)m(eb)e(language)g(has)h(c)o(hanged)g(b)q(et)o(w)o
(een)i(v)o(ersions.)177 1018 y Fe(4.6)70 b(P)n(arser)177 1138
y Fn(There)15 b(are)g(no)e(prop)q(osals)h(to)g(c)o(hange)g(the)h(parser)g
(except)g(as)f(a)f(consequence)k(of)c(other)h(prop)q(osals.)177
1308 y Fe(4.7)70 b(Analyser)177 1427 y Fk(Recursion)11 b(detection:)k
Fn(Curren)o(tly)d(the)h(F)m(unnelW)m(eb)e(analyser)h(\015ags,)f(with)h(an)f
(error,)i(all)e(macros)g(with)g(an)177 1477 y(in\014nite)g(expansion.)17
b(This)12 b(w)o(ould)e(b)q(e)i(b)q(est)g(c)o(hanged)g(to)f(\015agging)f(all)g
(macros)h(that)g(are)h(directly)g(or)f(indirectly)177 1526
y(recursiv)o(e.)19 b(T)m(o)11 b(do)g(this,)g(T)m(arjan's)g(algorithm)p
Fk([T)l(arjan72])d Fn(for)k(the)g(detection)g(of)f(strong)h(comp)q(onen)o(ts)
f(should)177 1576 y(b)q(e)k(installed.)177 1653 y Fk(Once)h(only)g(macros:)k
Fn(By)15 b(default)f(F)m(unnelW)m(eb)g(prev)o(en)o(ts)i(a)f(macro)e(from)g(b)
q(eing)h(called)h(more)e(than)i(once)177 1703 y(unless)g(it)e(has)h(a)f(\\)p
Fi(@M)p Fn(")g(asso)q(ciated)h(with)g(it.)j(Ho)o(w)o(ev)o(er,)d(F)m(unnelW)m
(eb)f(do)q(es)i(allo)o(w)d(a)h(macro)g(that)g(calls)h(suc)o(h)g(a)177
1753 y(macro)f(to)h(b)q(e)g(called)g(more)f(than)g(once.)19
b(P)o(erhaps)c(this)f(\\lo)q(ophole")e(should)i(b)q(e)h(plugged)e(someho)o
(w.)177 1923 y Fe(4.8)70 b(T)-6 b(angle)177 2042 y Fn(The)12
b(T)m(angler)f(is)h(one)g(of)f(the)i(cleanest)g(comp)q(onen)o(ts)e(of)g(F)m
(unnelW)m(eb,)g(as)h(basically)f(all)f(it)i(has)g(to)f(do)h(is)g(expand)177
2092 y(some)h(v)o(ery)h(w)o(ell-de\014ned)h(macros.)177 2169
y Fk(T)l(ext)23 b(inden)o(tati)o(on)o(:)28 b Fn(Curren)o(tly)21
b(F)m(unnelW)m(eb)e(supp)q(orts)j Fh(no)f(indentation)g Fn(and)f
Fh(blank)g(indentation)p Fn(.)38 b(A)177 2219 y(third)17 b(form)d(could)j(b)q
(e)g(added)g(if)e(it)h(w)o(as)h(considered)g(necessary)m(.)28
b Fh(T)m(ext)17 b(indentation)g Fn(is)f(the)h(same)f(as)g Fh(blank)177
2269 y(indentation)g Fn(except)h(that)e(instead)g(of)g(inden)o(ting)f(with)h
(blanks,)g(F)m(unnelW)m(eb)f(w)o(ould)g(inden)o(t)i(with)e(the)i(text)177
2319 y(to)g(the)h(left)f(of)g(the)h(called)f(macro.)24 b(This)16
b(facilit)o(y)f(could)h(b)q(e)h(useful)f(for)g(commen)o(ting)d(out)k(large)f
(b)q(o)q(dies)g(of)177 2369 y(text)f(in)f(languages)h(that)f(do)h(not)f(ha)o
(v)o(e)g(m)o(ulti-line)e(commen)o(ts)h(\(e.g.)20 b(Ada\).)g(A)15
b(discussion)g(of)f(the)h(pros)g(and)177 2418 y(cons)g(of)e(this)h(form)e(of)
h(inden)o(tation)h(app)q(ears)g(earlier.)177 2588 y Fe(4.9)70
b(W)-6 b(ea)n(v)n(e)177 2708 y Fn(P)o(erhaps)15 b(F)m(unnelW)m(eb's)e(w)o
(eak)o(est)i(asp)q(ect)g(is)f(its)g(t)o(yp)q(esetting)h(facilit)o(y)m(.)177
2785 y Fk(Align)g(table)h(of)h(con)o(ten)o(ts:)i Fn(When)c(F)m(unnelW)m(eb)f
(generates)j(a)e(table)g(of)g(con)o(ten)o(ts,)h(the)f(section)h(n)o(um)o(b)q
(ers)177 2835 y(are)e(not)g(quite)g(aligned)f(with)h(the)g(start)h(of)e(the)h
(con)o(trolling)f(heading)h(ab)q(o)o(v)o(e)f(them.)1042 2940
y(45)p eop
%%Page: 46 47
46 46 bop 177 42 a Fk(T)o(yp)q(esetting)20 b(strength:)27 b
Fn(It)20 b(should)g(b)q(e)g(p)q(ossible)g(to)f(sp)q(ecify)h(the)g(lev)o(el)g
(of)f(t)o(yp)q(esetting)h(strength)h(for)177 91 y(headings)16
b(so)g(that)h(short)f(do)q(cumen)o(ts)g(do)g(not)g(lo)q(ok)f(o)o(v)o(erdone)h
(when)h(t)o(yp)q(eset.)26 b(A)16 b(new)h(pragma)d(w)o(ould)h(b)q(e)177
141 y(go)q(o)q(d)f(for)f(this.)177 222 y Fk(T)o(yp)q(eset)f(a)h(p)q(ortion:)i
Fn(Sometimes)9 b(it)i(is)g(desirable)g(to)g(t)o(yp)q(eset)i(just)e(a)g(p)q
(ortion)g(of)f(a)h(program.)k(A)d(command)177 272 y(line)g(option)f(could)h
(b)q(e)g(added)g(to)g(do)g(this.)17 b(The)c(option)e(could)g(accept)j(as)e
(its)g(argumen)o(t,)e(a)i(string)g(con)o(taining)177 322 y(a)i(list)f(of)g
(section)i(n)o(um)o(b)q(ers)f(or)f(heading)h(names.)177 403
y Fk(Generic)g(t)o(yp)q(esetter)f(option:)j Fn(In)e(addition)e(to)i(building)
e(in)h(a)g(n)o(um)o(b)q(er)g(of)g(di\013eren)o(t)i(v)o(ersions)f(of)f(W)m(ea)
o(v)o(e,)177 453 y(one)k(for)g(eac)o(h)g(p)q(opular)g(t)o(yp)q(esetter,)i(it)
e(w)o(ould)f(b)q(e)h(p)q(ossible)g(to)g(add)g(a)f(sp)q(ecial)h(generic)h
(format)d(where)j(the)177 503 y(t)o(yp)q(eset)h(output)e(is)g(expressed)i(in)
e(terms)g(of)f Fh(F)m(unnelWeb)j(macr)n(os)p Fn(.)27 b(The)18
b(user)g(could)f(then)g(sp)q(ecify)h(macro)177 552 y(de\014nitions)13
b(for)g(a)f(non-supp)q(orted)i(t)o(yp)q(esetter)i(and)d(run)g(the)g(output)h
(through)f(F)m(unnelW)m(eb)f(T)m(angle)g(to)h(get)g(a)177 602
y(t)o(yp)q(eset)j(\014le)d(in)h(a)f(format)f(suitable)i(for)g(the)g(unsupp)q
(orted)i(t)o(yp)q(esetter.)177 683 y Fk(Suppression)e(of)k(include)d
(\014les:)21 b Fn(It)16 b(should)g(b)q(e)g(p)q(ossible)h(to)e(sp)q(ecify)i
(in)e(the)i(input)e(\014le)h(that)g(particular)177 733 y(included)e(\014les)g
(not)f(app)q(ear)h(in)f(the)h(t)o(yp)q(eset)h(output.)j(Curren)o(tly)m(,)13
b(the)h(fact)f(that)g(an)h(inclusion)e(has)i(o)q(ccurred)177
783 y(is)h(not)h(ev)o(en)g(represen)o(ted)i(in)d(the)h(t)o(yp)q(eset)g
(output.)23 b(Suppression)16 b(of)f(inclusions)g(is)g(particularly)g
(necessary)177 833 y(where)g(a)f(library)f(of)g(macros)g(has)h(b)q(een)h
(included)f(at)g(the)h(top)e(of)h(eac)o(h)g(of)f(a)h(group)g(of)f(source)i
(\014les.)177 914 y Fk(Cross)f(reference)e(of)i(iden)o(ti)o(\014ers)o(:)h
Fn(WEB)e(pro)o(vides)f(a)g(list)g(of)g(iden)o(ti\014ers)h(and)f(a)g(list)g
(of)g(all)f(the)i(de\014nitions)177 964 y(in)h(whic)o(h)f(they)i(are)f(used.)
19 b(A)14 b(similar)d(feature)k(could)f(b)q(e)g(added)g(to)g(F)m(unnelW)m
(eb.)177 1045 y Fk(Supp)q(ort)k(for)h(non-prin)n(tab)o(les)o(:)k
Fn(Curren)o(tly)18 b(F)m(unnelW)m(eb)f(do)q(es)h(not)f(pro)o(vide)h(supp)q
(ort)g(for)f(t)o(yp)q(esetting)177 1095 y(the)e(sp)q(ecial)f(\\)p
Fi(@^\(num\))p Fn(")e(sequences.)20 b(This)14 b(should)g(b)q(e)g(added.)177
1176 y Fk(Supp)q(ort)g(for)i(@+)h(sequences:)i Fn(Curren)o(tly)c(W)m(ea)o(v)o
(e)f(do)q(es)h(not)f(see)i(\\)p Fi(@+)p Fn(")e(sequences)j(as)d(suc)o(h.)21
b(Instead)15 b(it)177 1225 y(p)q(erceiv)o(es)h(them)d(as)h(ordinary)f(EOLs.)
19 b(Ho)o(w)o(ev)o(er,)14 b(there)h(are)g(argumen)o(ts)e(for)g(t)o(yp)q
(esetting)i(them)e(sp)q(ecially)m(.)177 1306 y Fk(T)o(yp)q(eset)e(text)h(in)f
(macro)h(b)q(o)q(dies:)j Fn(One)d(of)e(the)h(m)o(uc)o(h-lo)o(v)o(ed)e
(features)i(of)f(WEB)h(is)g(the)g(w)o(a)o(y)f(that)h(it)f(allo)o(ws)177
1356 y(the)j(user)h(to)e(switc)o(h)h(recursiv)o(ely)g(b)q(et)o(w)o(een)h(do)q
(cumen)o(t)e(and)g(program)f(formats.)16 b(F)m(unnelW)m(eb)c(do)q(es)h(not)f
(allo)o(w)177 1406 y(this,)18 b(but)g(should.)29 b(In)17 b(F)m(unnelW)m(eb,)h
(the)g(delimiters)f(\\)p Fi(@)p Fm(f)p Fn(")f(and)i(\\)p Fi(@)p
Fm(g)p Fn(")e(are)i(already)f(used)i(consisten)o(tly)f(to)177
1456 y(delimit)g(macro)g(text.)37 b(The)20 b(\\)p Fi(@[)p Fn(")f(and)g(\\)p
Fi(@])p Fn(")g(sequences)j(ha)o(v)o(e)e(b)q(een)h(reserv)o(ed)h(for)d(the)i
(delimitation)16 b(of)177 1506 y(do)q(cumen)o(tation)d(text.)177
1587 y Fk(Non-tt)h(t)o(yp)q(esetting:)i Fn(The)d(curren)o(t)i(v)o(ersion)f
(of)f(F)m(unnelW)m(eb)g(sets)i(all)d(its)h(macro)f(text)i(in)f
Fi(tt)22 b(font)p Fn(.)17 b(This)177 1637 y(is)d(b)q(oth)g(a)f(blessing)h
(and)g(a)g(curse.)19 b(It)14 b(is)g(a)f(blessing)h(b)q(ecause)i(it)d
(connects)j(the)e(reader)h(directly)f(to)g(the)g(co)q(de,)177
1686 y(with)g(no)g(complicated)f(in)o(termediary)m(.)k(It)d(is)g(a)g(curse)i
(b)q(ecause)g(it)e(lo)q(oks)f(ugly)h(compared)f(to)h(the)h(b)q(eautifully)177
1736 y(t)o(yp)q(eset)h(programs)c(pro)q(duced)j(b)o(y)f(other)g(literate)h
(programmi)o(ng)c(to)q(ols.)177 1817 y(The)20 b(di\016cult)o(y)e(with)g
(adding)g(suc)o(h)i(b)q(eautiful)e(t)o(yp)q(esetting)i(is)f(that)g(it)g(is)g
(necessarily)h(language-sp)q(eci\014c.)177 1867 y(Keyw)o(ords)15
b(and)f(syn)o(tax)g(di\013er)g(from)e(language)i(to)f(language)g(and)h(it)g
(w)o(ould)f(not)h(b)q(e)h(easy)f(to)g(come)f(up)h(with)177
1917 y(a)g(set)h(of)e(language)g(indep)q(enden)o(t)i(rules.)177
1998 y(One)k(approac)o(h)g(is)f(to)g(write)g(a)h(set)g(of)e(W)m(ea)o(v)o(e)h
(bac)o(k-ends,)i(one)e(for)g(eac)o(h)h(language.)31 b(Another)19
b(approac)o(h)177 2048 y(is)e(to)g Fh(gener)n(ate)f Fn(bac)o(k)h(ends.)28
b(This)17 b(is)g(the)g(approac)o(h)g(tak)o(en)g(in)f(the)i
Fh(Spider)f Fn(system)p Fk([Ramsey89])p Fn(.)26 b(In)17 b(the)177
2098 y Fh(Spider)f Fn(system,)g(the)h(programmer)d(writes)i(pro)q(duction)h
(rules)f(for)g(con)o(v)o(erting)g(lexical)f(comp)q(onen)o(ts)h(of)f(the)177
2148 y(program)f(text)h(in)o(to)g(t)o(yp)q(esetter)i(instructions.)22
b(The)16 b Fh(Spider)f Fn(program)e(reads)j(these)h(rules)e(and)g(generates)i
(a)177 2197 y(new)d(v)o(ersion)h(of)e(WEB)h(suited)g(for)g(the)g(target)h
(language.)177 2278 y(F)m(or)j(F)m(unnelW)m(eb)g(a)g(sligh)o(tly)f
(di\013eren)o(t)j(system)e(is)g(prop)q(osed)i(in)e(whic)o(h)g(Spider-lik)o(e)
g(rules)h(app)q(ear)g(in)f(the)177 2328 y(input)e(\014le)h(and)f(are)h(used)h
(directly)e(b)o(y)h(W)m(ea)o(v)o(e)f(to)g(p)q(erform)g(the)h(t)o(yp)q
(esetting.)27 b(An)16 b(in)o(termediate)g(abstract)177 2378
y(t)o(yp)q(esetting)d(language)e(could)h(b)q(e)h(used)g(so)f(that)g(the)h
(pro)q(ductions)f(can)h(b)q(e)f(made)f(language)g(sp)q(eci\014c,)j(but)e(not)
177 2428 y(t)o(yp)q(esetter)k(sp)q(eci\014c.)177 2610 y Fe(4.10)70
b(Lister)177 2735 y Fk(Glue)17 b(factor:)23 b Fn(A)16 b(glue)g(factor)g
(could)g(b)q(e)h(added)g(that)f(determines)h(ho)o(w)f(man)o(y)e(lines)i(can)h
(b)q(e)g(in)e(b)q(et)o(w)o(een)177 2785 y(t)o(w)o(o)f(diagnostics)g(in)f(the)
i(listing)e(b)q(efore)i(the)f(t)o(w)o(o)g(groups)g(of)g(lines)g(are)g(joined)
g(together)h(in)e(the)i(listing)e(with)177 2835 y(no)h(in)o(terv)o(ening)g
(ellipsis.)1042 2940 y(46)p eop
%%Page: 47 48
47 47 bop 177 42 a Fe(4.11)70 b(Diagnostics)177 157 y Fk(Advisory)16
b(information)o(:)j Fn(Some)13 b(of)i(F)m(unnelW)m(eb's)g(diagnostics)f(pro)o
(vide)h(a)g(detailed)g(explanatory)g(para-)177 207 y(graph.)i(While)11
b(this)h(information)c(migh)o(t)i(b)q(e)i(useful)g(the)g(\014rst)g(time,)f
(it)g(has)h(the)g(capacit)o(y)f(to)h(clog)f(up)h(a)f(listing)177
257 y(\014le)k(if)f(the)h(user)h(has)f(made)f(the)h(same)f(error)i(man)o(y)d
(times.)20 b(T)m(o)14 b(solv)o(e)g(this)h(problem,)e(F)m(unnelW)m(eb)i(could)
f(b)q(e)177 307 y(mo)q(di\014ed)f(so)h(that)g(suc)o(h)g(explanations)f(are)i
(only)e(displa)o(y)o(ed)g(the)i(\014rst)f(time)f(the)h(error)h(o)q(ccurs.)177
382 y Fk(Ab)q(ort)g(after)f(n)h(errors:)i Fn(A)d(facilit)o(y)e(could)h(b)q(e)
h(added)g(to)f(prev)o(en)o(t)i(F)m(unnelW)m(eb's)e(scanning,)g(parsing,)g
(and)177 431 y(analysing)g(phases)i(from)d(con)o(tin)o(uing)h(if)g(a)g
(certain)i(n)o(um)o(b)q(er)e(of)g(errors)i(ha)o(v)o(e)f(already)g(b)q(een)h
(issued.)177 594 y Fe(4.12)70 b(Sp)r(eed)177 709 y Fk(Measuremen)o(t)11
b(of)i(sp)q(eed:)k Fn(Although)11 b(F)m(unnelW)m(eb)g(can)h(generate)h(a)e
(breakdo)o(wn)h(of)f(where)i(it)e(is)g(sp)q(ending)177 759
y(its)j(time,)e(it)i(do)q(es)g(not)g(giv)o(e)f(a)h(\014nal)f(rating)h(in)f
(lines)h(p)q(er)h(min)o(ute.)h(This)e(should)g(b)q(e)g(added.)177
834 y Fk(Find)19 b(the)h(hot)f(sp)q(ots:)26 b Fn(Although)17
b(F)m(unnelW)m(eb)h(has)g(b)q(een)h(designed)g(to)e(allo)o(w)g(high)g(sp)q
(eed,)j(not)e(m)o(uc)o(h)177 884 y(e\013ort)d(has)f(so)g(far)f(b)q(een)i
(made)e(to)h(mak)o(e)e(it)i(fast.)k(This)13 b(should)h(b)q(e)h(done.)177
958 y Fk(Change)i(some)f(declarations:)i Fn(F)m(unnelW)m(eb)c(is)g(full)g(of)
g(v)n(ariable)g(declarations)h(where)h(the)f(v)n(ariables)f(are)177
1008 y(wider)g(than)g(they)h(need)f(b)q(e.)19 b(Replacing)13
b(these)i(migh)o(t)d(sp)q(eed)k(it)d(up.)177 1170 y Fe(4.13)70
b(Correctness)177 1286 y Fk(Bounds)17 b(analysis:)23 b Fn(Not)16
b(m)o(uc)o(h)f(e\013ort)j(has)e(gone)h(in)o(to)f(the)h(design)g(of)f(F)m
(unnelW)m(eb's)f(input)i(b)q(oundaries.)177 1336 y(An)12 b(analysis)f(should)
g(b)q(e)h(made)f(of)g(F)m(unnelW)m(eb's)g(b)q(eha)o(viour)g(when)h(the)h
(follo)o(wing)c(quan)o(tities)i(are)h(stretc)o(hed:)239 1452
y Fm(\017)21 b Fn(Input)14 b(line)g(length.)239 1535 y Fm(\017)21
b Fn(Input)14 b(\014le)g(size.)239 1618 y Fm(\017)21 b Fn(Num)o(b)q(er)13
b(of)h(macros.)239 1701 y Fm(\017)21 b Fn(Length)14 b(of)f(macro.)177
1818 y(In)h(particular,)f(F)m(unnelW)m(eb's)g(b)q(eha)o(viour)h(at)g(32K)g
(and)f(64K)h(b)q(oundaries)g(should)g(b)q(e)g(observ)o(ed.)177
1892 y Fk(Stac)o(k)k(detection:)i Fn(Macin)o(tosh)c(THINK-C)g(pro)o(vides)g
(just)h(6K)f(of)f(memory)e(for)j(the)h(stac)o(k.)24 b(It)16
b(migh)o(t)e(b)q(e)177 1942 y(w)o(orth)g(adding)f(c)o(hec)o(ks)i(to)f(mak)o
(e)e(sure)j(that)f(the)h(stac)o(k)f(is)g(not)g(b)q(eing)g(blo)o(wn.)177
2104 y Fe(4.14)70 b(T)-6 b(est)22 b(Suite)177 2220 y Fn(The)14
b(follo)o(wing)e(tests)j(should)f(b)q(e)g(added)g(to)g(the)h(test)g(suite:)
177 2337 y Fi(Lister)177 2386 y(------)243 2436 y(LR01:)20
b(Test)h(with)g(a)h(full)f(listing)f(with)h(no)g(diagnostics.)243
2486 y(LR02:)f(Test)h(with)g(a)h(full)f(listing)f(with)h(diagnostics.)243
2536 y(LR03:)f(Test)h(with)g(an)h(abbreviated)d(listing)h(with)h(no)h
(diagnostics.)243 2586 y(LR04:)e(Test)h(with)g(an)h(abbreviated)d(listing)h
(with)h(diagnostics.)243 2635 y(LR05:)f(Test)h(error)g(context)f(system)h
(with)g(nearby)f(diagnostics.)177 2735 y(Boundary)g(Cases)177
2785 y(--------------)177 2835 y(Static)h(analysis)f(might)h(preclude)f(the)h
(need)g(for)g(most)g(of)g(these)g(tests.)1042 2940 y Fn(47)p
eop
%%Page: 48 49
48 48 bop 243 42 a Fi(BC01:)20 b(Test)h(what)g(happens)g(when)g(memory)f
(runs)h(out.)243 91 y(BC02:)f(Test)h(on)h(a)f(file)g(with)g(a)h(single)e
(line)h(of)h(a)f(megabyte.)243 141 y(BC03:)f(Test)h(on)h(a)f(file)g(of)h(a)f
(megabyte)f(of)i(EOLs.)243 191 y(BC04:)e(Generate)g(an)i(output)e(file)h
(with)g(an)h(extremely)e(long)h(line.)243 241 y(BC05:)f(Generate)g(an)i
(output)e(file)h(with)g(one)g(million)g(lines.)243 291 y(BC06:)f(Test)h(on)h
(a)f(file)g(with)g(very)g(many)g(macros.)177 390 y(General)177
440 y(-------)243 490 y(GN01:)f(A)i(large)f(legal)f(input)h(file)g
(exercising)f(as)h(many)g(features)f(as)i(possible.)373 540
y(1.)g(Test)f(listing)f(file.)373 589 y(2.)i(Test)f(output)f(files.)373
639 y(3.)i(Test)f(typeset)f(file.)243 689 y(GN...)g(A)i(selection)e(of)h(ten)
g(real-life)f(FunnelWeb)g(files.)177 851 y Fe(4.15)70 b(Mac)n(hine-Sp)r
(eci\014c)20 b(Changes)177 967 y Fk(Icon)14 b(for)g(the)f(Macin)o(tosh:)j
Fn(Curren)o(tly)d(no)g(icon)f(is)g(supplied)h(for)f(the)i(Macin)o(tosh)e(v)o
(ersion)h(of)f(F)m(unnelW)m(eb.)177 1017 y(An)i(icon)g(depicting)g(a)f
(spider)i(or)f(a)f(funnelled)h(w)o(eb)g(of)g(some)f(kind)g(w)o(ould)g(seem)h
(appropriate.)177 1179 y Fe(4.16)70 b(Summary)177 1295 y Fn(This)15
b(c)o(hapter)i(has)e(describ)q(es)i(some)e(of)f(the)i(problems)f(with)g(F)m
(unnelW)m(eb)f(and)i(some)e(of)h(the)g(opp)q(ortunities)177
1345 y(that)e(exist)h(for)f(impro)o(ving)e(it.)17 b(The)d(direction)f(and)g
(sp)q(eed)i(in)e(whic)o(h)g(F)m(unnelW)m(eb)g(will)e(dev)o(elop)j(will)e(dep)
q(end)177 1395 y(largely)j(on)h(user)h(feedbac)o(k.)25 b(If)15
b(y)o(ou)h(ha)o(v)o(e)f(an)o(y)h(strong)g(feelings)g(on)g(where)h(F)m(unnelW)
m(eb)e(should)h(go,)f(please)177 1444 y(email)d(them)h(to)h(Ross)g(William)o
(s)d(\()p Fi(ross@spam.adelaide)o(.edu.)o(au)p Fn(\).)1042
2940 y(48)p eop
%%Page: 49 50
49 49 bop 177 380 a Ff(App)s(endix)34 b(A)177 615 y Fl(GNU)40
b(General)i(Public)f(License)177 739 y(V)-10 b(ersion)41 b(2)177
983 y Fn(This)16 b(app)q(endix)h(con)o(tains)f(a)g(v)o(erbatim)e(cop)o(y)j
(of)e(V)m(ersion)i(2)f(of)f(the)i(GNU)f(General)g(Public)g(License)i(under)
177 1032 y(whic)o(h)g(the)g(F)m(unnelW)m(eb)g(computer)f(program)f(is)i
(released.)31 b(Note)18 b(that)g(the)h Fh(F)m(unnelWeb)g(User's)f(Manual)177
1082 y Fn(and)e Fh(F)m(unnelWeb)j(Hacker's)e(Manual)g Fn(are)g(released)g
(under)h(a)e(m)o(uc)o(h)f(simpler)g(license)i(that)g(do)q(es)g(not)f(allo)o
(w)177 1132 y(mo)q(di\014cations.)p 177 1188 1772 2 v 264 1340
a Fi(GNU)22 b(GENERAL)e(PUBLIC)g(LICENSE)330 1390 y(Version)g(2,)h(June)g
(1991)199 1490 y(Copyright)f(\(C\))h(1989,)g(1991)g(Free)g(Software)f
(Foundation,)f(Inc.)744 1540 y(675)i(Mass)g(Ave,)g(Cambridge,)f(MA)h(02139,)g
(USA)199 1589 y(Everyone)f(is)h(permitted)f(to)i(copy)f(and)g(distribute)f
(verbatim)g(copies)199 1639 y(of)h(this)g(license)g(document,)f(but)h
(changing)f(it)h(is)h(not)f(allowed.)264 1739 y(Preamble)221
1838 y(The)g(licenses)f(for)h(most)g(software)f(are)i(designed)e(to)h(take)g
(away)g(your)177 1888 y(freedom)g(to)g(share)g(and)g(change)f(it.)43
b(By)22 b(contrast,)e(the)h(GNU)g(General)f(Public)177 1938
y(License)h(is)g(intended)f(to)h(guarantee)f(your)h(freedom)g(to)g(share)g
(and)g(change)g(free)177 1988 y(software--to)e(make)i(sure)g(the)h(software)e
(is)h(free)g(for)g(all)g(its)h(users.)42 b(This)177 2038 y(General)21
b(Public)f(License)g(applies)h(to)g(most)g(of)g(the)h(Free)f(Software)177
2087 y(Foundation's)e(software)i(and)g(to)g(any)g(other)g(program)f(whose)h
(authors)g(commit)f(to)177 2137 y(using)h(it.)43 b(\(Some)21
b(other)f(Free)h(Software)g(Foundation)e(software)h(is)i(covered)e(by)177
2187 y(the)h(GNU)h(Library)e(General)g(Public)h(License)f(instead.\))42
b(You)21 b(can)g(apply)g(it)g(to)177 2237 y(your)g(programs,)f(too.)221
2337 y(When)h(we)g(speak)g(of)g(free)g(software,)f(we)i(are)f(referring)f(to)
h(freedom,)f(not)177 2386 y(price.)43 b(Our)21 b(General)f(Public)h(Licenses)
f(are)h(designed)f(to)h(make)g(sure)g(that)g(you)177 2436 y(have)g(the)g
(freedom)g(to)g(distribute)f(copies)g(of)i(free)f(software)f(\(and)h(charge)f
(for)177 2486 y(this)h(service)f(if)i(you)f(wish\),)g(that)g(you)g(receive)f
(source)h(code)g(or)g(can)g(get)g(it)177 2536 y(if)h(you)f(want)g(it,)g(that)
g(you)g(can)g(change)g(the)g(software)f(or)h(use)h(pieces)e(of)i(it)177
2586 y(in)g(new)f(free)g(programs;)f(and)h(that)g(you)g(know)g(you)g(can)g
(do)h(these)e(things.)221 2685 y(To)h(protect)f(your)h(rights,)g(we)g(need)g
(to)h(make)e(restrictions)g(that)h(forbid)177 2735 y(anyone)g(to)g(deny)g
(you)g(these)g(rights)g(or)g(to)g(ask)g(you)h(to)f(surrender)f(the)h(rights.)
177 2785 y(These)g(restrictions)e(translate)h(to)i(certain)e
(responsibilities)e(for)k(you)f(if)g(you)177 2835 y(distribute)f(copies)g(of)
i(the)f(software,)f(or)h(if)h(you)f(modify)f(it.)1042 2940
y Fn(49)p eop
%%Page: 50 51
50 50 bop 221 91 a Fi(For)21 b(example,)f(if)h(you)h(distribute)d(copies)i
(of)g(such)g(a)h(program,)e(whether)177 141 y(gratis)h(or)g(for)g(a)h(fee,)f
(you)g(must)g(give)g(the)g(recipients)f(all)h(the)g(rights)g(that)177
191 y(you)g(have.)43 b(You)21 b(must)g(make)g(sure)g(that)g(they,)g(too,)g
(receive)f(or)h(can)h(get)f(the)177 241 y(source)g(code.)42
b(And)21 b(you)h(must)f(show)g(them)g(these)f(terms)h(so)g(they)g(know)g
(their)177 291 y(rights.)221 390 y(We)g(protect)f(your)h(rights)g(with)g(two)
g(steps:)g(\(1\))g(copyright)f(the)h(software,)f(and)177 440
y(\(2\))h(offer)g(you)g(this)g(license)g(which)f(gives)h(you)g(legal)g
(permission)f(to)h(copy,)177 490 y(distribute)f(and/or)g(modify)h(the)g
(software.)221 589 y(Also,)g(for)g(each)g(author's)f(protection)g(and)h
(ours,)f(we)i(want)f(to)g(make)g(certain)177 639 y(that)g(everyone)f
(understands)g(that)h(there)g(is)g(no)g(warranty)f(for)i(this)f(free)177
689 y(software.)42 b(If)21 b(the)g(software)g(is)g(modified)f(by)h(someone)g
(else)g(and)g(passed)g(on,)g(we)177 739 y(want)g(its)g(recipients)f(to)h
(know)g(that)g(what)g(they)g(have)g(is)h(not)f(the)g(original,)f(so)177
789 y(that)h(any)g(problems)f(introduced)g(by)i(others)e(will)h(not)g
(reflect)g(on)g(the)g(original)177 839 y(authors')f(reputations.)221
938 y(Finally,)g(any)h(free)g(program)f(is)i(threatened)d(constantly)h(by)i
(software)177 988 y(patents.)42 b(We)21 b(wish)g(to)h(avoid)f(the)g(danger)f
(that)h(redistributors)e(of)j(a)f(free)177 1038 y(program)g(will)f
(individually)g(obtain)g(patent)h(licenses,)f(in)h(effect)g(making)f(the)177
1088 y(program)h(proprietary.)41 b(To)21 b(prevent)f(this,)h(we)g(have)g
(made)g(it)h(clear)f(that)g(any)177 1137 y(patent)g(must)g(be)g(licensed)f
(for)h(everyone's)f(free)h(use)g(or)h(not)f(licensed)f(at)h(all.)221
1237 y(The)g(precise)f(terms)h(and)g(conditions)f(for)h(copying,)f
(distribution)g(and)177 1287 y(modification)f(follow.)264 1386
y(GNU)j(GENERAL)e(PUBLIC)g(LICENSE)243 1436 y(TERMS)g(AND)h(CONDITIONS)f(FOR)
h(COPYING,)g(DISTRIBUTION)e(AND)i(MODIFICATION)221 1536 y(0.)g(This)g
(License)f(applies)h(to)g(any)g(program)g(or)g(other)g(work)g(which)g
(contains)177 1586 y(a)h(notice)e(placed)h(by)g(the)g(copyright)f(holder)h
(saying)f(it)i(may)f(be)g(distributed)177 1636 y(under)g(the)g(terms)g(of)g
(this)g(General)g(Public)f(License.)42 b(The)21 b("Program",)f(below,)177
1685 y(refers)h(to)g(any)g(such)g(program)g(or)g(work,)g(and)g(a)g("work)g
(based)g(on)g(the)h(Program")177 1735 y(means)f(either)f(the)i(Program)e(or)h
(any)h(derivative)d(work)i(under)g(copyright)f(law:)177 1785
y(that)h(is)h(to)f(say,)g(a)g(work)g(containing)f(the)h(Program)g(or)g(a)h
(portion)e(of)h(it,)177 1835 y(either)g(verbatim)f(or)h(with)g(modifications)
e(and/or)i(translated)f(into)h(another)177 1885 y(language.)42
b(\(Hereinafter,)19 b(translation)h(is)h(included)f(without)g(limitation)g
(in)177 1934 y(the)h(term)g("modification".\))41 b(Each)21
b(licensee)f(is)h(addressed)f(as)h("you".)177 2034 y(Activities)f(other)h
(than)g(copying,)f(distribution)f(and)i(modification)f(are)h(not)177
2084 y(covered)g(by)g(this)g(License;)f(they)h(are)g(outside)f(its)i(scope.)
42 b(The)21 b(act)g(of)177 2134 y(running)g(the)g(Program)f(is)h(not)h
(restricted,)d(and)i(the)g(output)g(from)g(the)g(Program)177
2183 y(is)h(covered)e(only)h(if)g(its)g(contents)g(constitute)e(a)j(work)f
(based)g(on)g(the)177 2233 y(Program)g(\(independent)e(of)i(having)g(been)g
(made)g(by)g(running)f(the)i(Program\).)177 2283 y(Whether)f(that)f(is)i
(true)f(depends)f(on)i(what)f(the)g(Program)f(does.)221 2383
y(1.)h(You)g(may)g(copy)g(and)h(distribute)d(verbatim)h(copies)h(of)g(the)h
(Program's)177 2433 y(source)f(code)g(as)g(you)g(receive)g(it,)g(in)g(any)g
(medium,)g(provided)f(that)h(you)177 2482 y(conspicuously)e(and)i
(appropriately)f(publish)g(on)h(each)g(copy)g(an)h(appropriate)177
2532 y(copyright)e(notice)h(and)g(disclaimer)f(of)h(warranty;)f(keep)h
(intact)f(all)i(the)177 2582 y(notices)f(that)f(refer)h(to)h(this)f(License)f
(and)h(to)g(the)h(absence)e(of)h(any)h(warranty;)177 2632 y(and)f(give)g(any)
g(other)g(recipients)f(of)h(the)h(Program)e(a)h(copy)g(of)h(this)f(License)
177 2682 y(along)g(with)g(the)g(Program.)177 2781 y(You)g(may)h(charge)e(a)i
(fee)f(for)g(the)g(physical)f(act)h(of)h(transferring)d(a)j(copy,)f(and)177
2831 y(you)g(may)h(at)f(your)g(option)f(offer)h(warranty)f(protection)g(in)h
(exchange)g(for)g(a)g(fee.)1042 2940 y Fn(50)p eop
%%Page: 51 52
51 51 bop 221 91 a Fi(2.)21 b(You)g(may)g(modify)g(your)g(copy)g(or)g(copies)
g(of)g(the)g(Program)g(or)g(any)g(portion)177 141 y(of)h(it,)f(thus)g
(forming)f(a)i(work)f(based)f(on)i(the)f(Program,)f(and)h(copy)g(and)177
191 y(distribute)f(such)h(modifications)e(or)i(work)g(under)g(the)g(terms)g
(of)g(Section)g(1)177 241 y(above,)g(provided)f(that)h(you)g(also)g(meet)g
(all)g(of)g(these)g(conditions:)264 340 y(a\))h(You)f(must)g(cause)g(the)g
(modified)f(files)h(to)g(carry)g(prominent)f(notices)264 390
y(stating)h(that)g(you)g(changed)f(the)h(files)g(and)g(the)g(date)g(of)h(any)
f(change.)264 490 y(b\))h(You)f(must)g(cause)g(any)g(work)g(that)g(you)g
(distribute)f(or)h(publish,)f(that)h(in)264 540 y(whole)g(or)g(in)h(part)f
(contains)f(or)h(is)h(derived)e(from)h(the)g(Program)g(or)g(any)264
589 y(part)g(thereof,)f(to)i(be)f(licensed)f(as)i(a)f(whole)g(at)g(no)h
(charge)e(to)i(all)f(third)264 639 y(parties)g(under)f(the)i(terms)e(of)i
(this)f(License.)264 739 y(c\))h(If)f(the)g(modified)f(program)h(normally)f
(reads)h(commands)f(interactively)264 789 y(when)h(run,)g(you)g(must)g(cause)
g(it,)g(when)g(started)g(running)f(for)h(such)264 839 y(interactive)f(use)h
(in)g(the)h(most)f(ordinary)f(way,)h(to)g(print)g(or)g(display)g(an)264
888 y(announcement)f(including)g(an)h(appropriate)e(copyright)h(notice)h(and)
g(a)264 938 y(notice)g(that)g(there)g(is)g(no)g(warranty)g(\(or)g(else,)f
(saying)h(that)g(you)g(provide)264 988 y(a)h(warranty\))e(and)h(that)g(users)
g(may)g(redistribute)e(the)i(program)g(under)264 1038 y(these)g(conditions,)f
(and)h(telling)f(the)h(user)g(how)g(to)h(view)f(a)g(copy)g(of)h(this)264
1088 y(License.)42 b(\(Exception:)20 b(if)h(the)g(Program)g(itself)f(is)i
(interactive)d(but)264 1137 y(does)i(not)g(normally)g(print)f(such)h(an)h
(announcement,)d(your)i(work)g(based)g(on)264 1187 y(the)h(Program)e(is)h
(not)g(required)g(to)g(print)g(an)g(announcement.\))177 1287
y(These)g(requirements)e(apply)i(to)g(the)h(modified)e(work)h(as)g(a)h
(whole.)42 b(If)177 1337 y(identifiable)19 b(sections)i(of)g(that)g(work)g
(are)g(not)g(derived)g(from)g(the)g(Program,)177 1386 y(and)g(can)h(be)f
(reasonably)f(considered)f(independent)h(and)h(separate)f(works)h(in)177
1436 y(themselves,)f(then)h(this)g(License,)f(and)h(its)g(terms,)g(do)g(not)g
(apply)g(to)g(those)177 1486 y(sections)f(when)h(you)g(distribute)f(them)h
(as)h(separate)e(works.)42 b(But)21 b(when)g(you)177 1536 y(distribute)f(the)
h(same)g(sections)f(as)i(part)f(of)g(a)g(whole)g(which)g(is)g(a)h(work)f
(based)177 1586 y(on)h(the)f(Program,)f(the)h(distribution)e(of)j(the)f
(whole)g(must)g(be)g(on)g(the)h(terms)e(of)177 1636 y(this)h(License,)f
(whose)h(permissions)f(for)h(other)f(licensees)g(extend)h(to)g(the)177
1685 y(entire)g(whole,)f(and)h(thus)g(to)h(each)f(and)g(every)g(part)g
(regardless)e(of)j(who)f(wrote)g(it.)177 1785 y(Thus,)g(it)g(is)h(not)f(the)g
(intent)g(of)g(this)g(section)f(to)i(claim)e(rights)h(or)g(contest)177
1835 y(your)g(rights)g(to)g(work)g(written)f(entirely)h(by)g(you;)g(rather,)f
(the)h(intent)g(is)g(to)177 1885 y(exercise)f(the)h(right)g(to)h(control)e
(the)h(distribution)e(of)j(derivative)e(or)177 1934 y(collective)g(works)h
(based)f(on)i(the)f(Program.)177 2034 y(In)h(addition,)d(mere)i(aggregation)f
(of)h(another)g(work)g(not)g(based)g(on)g(the)g(Program)177
2084 y(with)g(the)g(Program)g(\(or)g(with)g(a)g(work)g(based)g(on)g(the)h
(Program\))e(on)h(a)h(volume)e(of)177 2134 y(a)i(storage)e(or)h(distribution)
f(medium)g(does)h(not)g(bring)g(the)g(other)g(work)g(under)177
2183 y(the)g(scope)g(of)g(this)g(License.)221 2283 y(3.)g(You)g(may)g(copy)g
(and)h(distribute)d(the)j(Program)e(\(or)h(a)h(work)f(based)f(on)i(it,)177
2333 y(under)f(Section)f(2\))i(in)f(object)g(code)g(or)g(executable)f(form)h
(under)f(the)i(terms)e(of)177 2383 y(Sections)g(1)i(and)f(2)h(above)e
(provided)h(that)g(you)g(also)g(do)g(one)g(of)h(the)f(following:)264
2482 y(a\))h(Accompany)e(it)h(with)g(the)g(complete)f(corresponding)f
(machine-readable)264 2532 y(source)i(code,)g(which)f(must)h(be)h
(distributed)d(under)i(the)g(terms)g(of)g(Sections)264 2582
y(1)h(and)f(2)h(above)e(on)i(a)f(medium)g(customarily)e(used)i(for)h
(software)e(interchange;)f(or,)264 2682 y(b\))j(Accompany)e(it)h(with)g(a)h
(written)e(offer,)g(valid)h(for)g(at)h(least)f(three)264 2731
y(years,)g(to)g(give)g(any)g(third)g(party,)g(for)g(a)g(charge)g(no)g(more)g
(than)g(your)264 2781 y(cost)g(of)h(physically)d(performing)h(source)h
(distribution,)e(a)i(complete)264 2831 y(machine-readable)e(copy)i(of)g(the)g
(corresponding)e(source)i(code,)g(to)g(be)1042 2940 y Fn(51)p
eop
%%Page: 52 53
52 52 bop 264 42 a Fi(distributed)20 b(under)h(the)g(terms)g(of)g(Sections)f
(1)i(and)f(2)g(above)g(on)h(a)f(medium)264 91 y(customarily)f(used)h(for)g
(software)f(interchange;)f(or,)264 191 y(c\))j(Accompany)e(it)h(with)g(the)g
(information)f(you)h(received)f(as)h(to)h(the)f(offer)264 241
y(to)h(distribute)d(corresponding)h(source)g(code.)43 b(\(This)20
b(alternative)g(is)264 291 y(allowed)h(only)g(for)g(noncommercial)e
(distribution)g(and)i(only)g(if)h(you)264 340 y(received)e(the)i(program)e
(in)h(object)g(code)g(or)g(executable)f(form)h(with)g(such)264
390 y(an)h(offer,)e(in)i(accord)e(with)h(Subsection)f(b)h(above.\))177
490 y(The)g(source)g(code)g(for)g(a)h(work)f(means)f(the)i(preferred)d(form)i
(of)h(the)f(work)g(for)177 540 y(making)g(modifications)e(to)i(it.)43
b(For)21 b(an)h(executable)d(work,)i(complete)f(source)177
589 y(code)h(means)g(all)g(the)g(source)g(code)g(for)g(all)g(modules)f(it)i
(contains,)e(plus)h(any)177 639 y(associated)f(interface)g(definition)g
(files,)g(plus)h(the)g(scripts)g(used)g(to)177 689 y(control)g(compilation)e
(and)i(installation)f(of)h(the)g(executable.)41 b(However,)21
b(as)g(a)177 739 y(special)g(exception,)e(the)i(source)g(code)g(distributed)e
(need)i(not)h(include)177 789 y(anything)e(that)h(is)h(normally)e
(distributed)f(\(in)i(either)g(source)g(or)g(binary)177 839
y(form\))g(with)g(the)g(major)g(components)f(\(compiler,)f(kernel,)i(and)g
(so)g(on\))g(of)h(the)177 888 y(operating)e(system)h(on)g(which)g(the)g
(executable)f(runs,)g(unless)h(that)g(component)177 938 y(itself)g
(accompanies)e(the)i(executable.)177 1038 y(If)h(distribution)d(of)i
(executable)f(or)h(object)g(code)g(is)g(made)g(by)h(offering)177
1088 y(access)f(to)g(copy)g(from)g(a)h(designated)d(place,)i(then)g(offering)
f(equivalent)177 1137 y(access)h(to)g(copy)g(the)g(source)g(code)g(from)g
(the)g(same)g(place)g(counts)f(as)177 1187 y(distribution)f(of)j(the)f
(source)g(code,)f(even)h(though)g(third)g(parties)f(are)h(not)177
1237 y(compelled)f(to)h(copy)g(the)h(source)e(along)h(with)g(the)g(object)g
(code.)221 1337 y(4.)g(You)g(may)g(not)h(copy,)e(modify,)h(sublicense,)e(or)j
(distribute)d(the)j(Program)177 1386 y(except)f(as)g(expressly)f(provided)g
(under)h(this)g(License.)42 b(Any)21 b(attempt)177 1436 y(otherwise)f(to)h
(copy,)g(modify,)g(sublicense)e(or)j(distribute)d(the)j(Program)e(is)177
1486 y(void,)h(and)g(will)g(automatically)e(terminate)h(your)h(rights)g
(under)f(this)h(License.)177 1536 y(However,)f(parties)h(who)g(have)g
(received)f(copies,)g(or)i(rights,)e(from)h(you)g(under)177
1586 y(this)g(License)f(will)h(not)h(have)f(their)f(licenses)g(terminated)g
(so)i(long)f(as)g(such)177 1636 y(parties)g(remain)f(in)h(full)g(compliance.)
221 1735 y(5.)g(You)g(are)g(not)h(required)e(to)h(accept)g(this)g(License,)f
(since)h(you)g(have)g(not)177 1785 y(signed)g(it.)43 b(However,)20
b(nothing)g(else)h(grants)g(you)g(permission)f(to)h(modify)g(or)177
1835 y(distribute)f(the)h(Program)f(or)i(its)f(derivative)f(works.)42
b(These)21 b(actions)f(are)177 1885 y(prohibited)g(by)h(law)g(if)h(you)f(do)g
(not)h(accept)e(this)h(License.)42 b(Therefore,)20 b(by)177
1934 y(modifying)g(or)h(distributing)f(the)h(Program)f(\(or)h(any)h(work)f
(based)f(on)i(the)177 1984 y(Program\),)e(you)h(indicate)f(your)h(acceptance)
f(of)h(this)g(License)g(to)g(do)h(so,)f(and)177 2034 y(all)g(its)h(terms)e
(and)h(conditions)f(for)h(copying,)f(distributing)g(or)h(modifying)177
2084 y(the)g(Program)g(or)g(works)g(based)g(on)g(it.)221 2183
y(6.)g(Each)g(time)g(you)g(redistribute)f(the)h(Program)f(\(or)h(any)g(work)g
(based)g(on)h(the)177 2233 y(Program\),)e(the)h(recipient)f(automatically)f
(receives)h(a)i(license)e(from)h(the)177 2283 y(original)f(licensor)g(to)i
(copy,)f(distribute)e(or)j(modify)e(the)h(Program)g(subject)f(to)177
2333 y(these)h(terms)g(and)g(conditions.)41 b(You)21 b(may)h(not)f(impose)f
(any)h(further)177 2383 y(restrictions)e(on)j(the)f(recipients')f(exercise)g
(of)h(the)g(rights)g(granted)f(herein.)177 2433 y(You)h(are)h(not)f
(responsible)e(for)i(enforcing)f(compliance)g(by)h(third)g(parties)g(to)177
2482 y(this)g(License.)221 2582 y(7.)g(If,)g(as)h(a)f(consequence)f(of)h(a)h
(court)f(judgment)f(or)h(allegation)f(of)h(patent)177 2632
y(infringement)e(or)j(for)f(any)g(other)g(reason)g(\(not)f(limited)h(to)g
(patent)g(issues\),)177 2682 y(conditions)f(are)h(imposed)f(on)i(you)f
(\(whether)f(by)h(court)g(order,)g(agreement)f(or)177 2731
y(otherwise\))g(that)h(contradict)f(the)h(conditions)e(of)j(this)f(License,)f
(they)h(do)g(not)177 2781 y(excuse)g(you)g(from)g(the)g(conditions)f(of)h
(this)g(License.)42 b(If)21 b(you)h(cannot)177 2831 y(distribute)e(so)h(as)h
(to)f(satisfy)f(simultaneously)f(your)i(obligations)f(under)h(this)1042
2940 y Fn(52)p eop
%%Page: 53 54
53 53 bop 177 42 a Fi(License)21 b(and)g(any)g(other)g(pertinent)f
(obligations,)f(then)i(as)g(a)h(consequence)d(you)177 91 y(may)i(not)h
(distribute)d(the)i(Program)g(at)g(all.)43 b(For)21 b(example,)f(if)i(a)f
(patent)177 141 y(license)g(would)f(not)h(permit)g(royalty-free)e
(redistribution)g(of)j(the)f(Program)f(by)177 191 y(all)h(those)g(who)g
(receive)g(copies)f(directly)g(or)i(indirectly)d(through)i(you,)g(then)177
241 y(the)g(only)g(way)g(you)h(could)e(satisfy)h(both)g(it)g(and)g(this)g
(License)g(would)f(be)i(to)177 291 y(refrain)f(entirely)f(from)h
(distribution)e(of)i(the)g(Program.)177 390 y(If)h(any)f(portion)f(of)h(this)
g(section)g(is)g(held)g(invalid)f(or)i(unenforceable)d(under)177
440 y(any)i(particular)f(circumstance,)f(the)i(balance)g(of)g(the)g(section)g
(is)g(intended)f(to)177 490 y(apply)h(and)g(the)g(section)g(as)g(a)h(whole)e
(is)i(intended)e(to)h(apply)g(in)g(other)177 540 y(circumstances.)177
639 y(It)h(is)f(not)g(the)g(purpose)g(of)g(this)g(section)f(to)i(induce)e
(you)h(to)h(infringe)e(any)177 689 y(patents)h(or)g(other)g(property)f(right)
h(claims)f(or)h(to)h(contest)e(validity)g(of)i(any)177 739
y(such)f(claims;)f(this)h(section)g(has)g(the)g(sole)g(purpose)f(of)i
(protecting)e(the)177 789 y(integrity)g(of)h(the)h(free)f(software)f
(distribution)f(system,)h(which)h(is)177 839 y(implemented)f(by)h(public)g
(license)f(practices.)41 b(Many)21 b(people)g(have)g(made)177
888 y(generous)f(contributions)f(to)j(the)f(wide)g(range)g(of)g(software)f
(distributed)177 938 y(through)h(that)f(system)h(in)g(reliance)g(on)g
(consistent)f(application)f(of)j(that)177 988 y(system;)f(it)g(is)g(up)h(to)f
(the)g(author/donor)f(to)h(decide)f(if)i(he)f(or)h(she)f(is)g(willing)177
1038 y(to)h(distribute)d(software)h(through)h(any)g(other)g(system)f(and)h(a)
h(licensee)e(cannot)177 1088 y(impose)h(that)g(choice.)177
1187 y(This)g(section)f(is)i(intended)e(to)h(make)g(thoroughly)f(clear)h
(what)g(is)g(believed)f(to)177 1237 y(be)i(a)f(consequence)f(of)h(the)g(rest)
g(of)h(this)f(License.)221 1337 y(8.)g(If)h(the)f(distribution)e(and/or)i
(use)g(of)g(the)g(Program)g(is)g(restricted)f(in)177 1386 y(certain)h
(countries)e(either)i(by)g(patents)g(or)g(by)g(copyrighted)f(interfaces,)g
(the)177 1436 y(original)g(copyright)g(holder)h(who)g(places)g(the)g(Program)
f(under)h(this)g(License)177 1486 y(may)g(add)h(an)f(explicit)f(geographical)
f(distribution)h(limitation)f(excluding)177 1536 y(those)i(countries,)f(so)h
(that)g(distribution)e(is)j(permitted)e(only)h(in)g(or)g(among)177
1586 y(countries)f(not)h(thus)g(excluded.)42 b(In)21 b(such)g(case,)g(this)g
(License)f(incorporates)177 1636 y(the)h(limitation)f(as)h(if)h(written)e(in)
i(the)f(body)g(of)g(this)g(License.)221 1735 y(9.)g(The)g(Free)g(Software)f
(Foundation)g(may)h(publish)g(revised)f(and/or)h(new)g(versions)177
1785 y(of)h(the)f(General)f(Public)h(License)f(from)h(time)g(to)g(time.)43
b(Such)21 b(new)g(versions)f(will)177 1835 y(be)i(similar)e(in)h(spirit)g(to)
g(the)g(present)g(version,)f(but)h(may)g(differ)g(in)g(detail)g(to)177
1885 y(address)g(new)g(problems)f(or)h(concerns.)177 1984 y(Each)g(version)f
(is)i(given)f(a)g(distinguishing)e(version)h(number.)43 b(If)21
b(the)g(Program)177 2034 y(specifies)f(a)i(version)e(number)h(of)g(this)g
(License)f(which)h(applies)f(to)i(it)f(and)g("any)177 2084
y(later)g(version",)f(you)h(have)g(the)g(option)g(of)g(following)f(the)h
(terms)g(and)g(conditions)177 2134 y(either)g(of)g(that)g(version)f(or)i(of)f
(any)g(later)g(version)f(published)g(by)i(the)f(Free)177 2183
y(Software)f(Foundation.)42 b(If)21 b(the)g(Program)g(does)f(not)i(specify)e
(a)i(version)e(number)g(of)177 2233 y(this)h(License,)f(you)h(may)h(choose)e
(any)h(version)g(ever)g(published)f(by)h(the)g(Free)g(Software)177
2283 y(Foundation.)221 2383 y(10.)g(If)g(you)g(wish)g(to)h(incorporate)d
(parts)i(of)g(the)h(Program)e(into)h(other)g(free)177 2433
y(programs)f(whose)h(distribution)e(conditions)h(are)h(different,)f(write)h
(to)g(the)g(author)177 2482 y(to)h(ask)f(for)g(permission.)41
b(For)21 b(software)g(which)f(is)i(copyrighted)d(by)j(the)f(Free)177
2532 y(Software)f(Foundation,)g(write)h(to)g(the)g(Free)g(Software)f
(Foundation;)g(we)h(sometimes)177 2582 y(make)g(exceptions)f(for)h(this.)43
b(Our)21 b(decision)f(will)h(be)g(guided)g(by)g(the)g(two)h(goals)177
2632 y(of)g(preserving)d(the)i(free)g(status)g(of)g(all)h(derivatives)d(of)i
(our)h(free)f(software)f(and)177 2682 y(of)i(promoting)d(the)j(sharing)e(and)
h(reuse)g(of)g(software)f(generally.)264 2781 y(NO)i(WARRANTY)1042
2940 y Fn(53)p eop
%%Page: 54 55
54 54 bop 221 42 a Fi(11.)21 b(BECAUSE)f(THE)h(PROGRAM)g(IS)g(LICENSED)f
(FREE)h(OF)h(CHARGE,)e(THERE)h(IS)g(NO)h(WARRANTY)177 91 y(FOR)f(THE)h
(PROGRAM,)e(TO)h(THE)g(EXTENT)g(PERMITTED)f(BY)h(APPLICABLE)f(LAW.)43
b(EXCEPT)20 b(WHEN)177 141 y(OTHERWISE)g(STATED)h(IN)g(WRITING)f(THE)i
(COPYRIGHT)d(HOLDERS)i(AND/OR)f(OTHER)h(PARTIES)177 191 y(PROVIDE)g(THE)g
(PROGRAM)f("AS)h(IS")g(WITHOUT)g(WARRANTY)f(OF)h(ANY)g(KIND,)g(EITHER)g
(EXPRESSED)177 241 y(OR)h(IMPLIED,)e(INCLUDING,)f(BUT)j(NOT)f(LIMITED)f(TO,)h
(THE)g(IMPLIED)g(WARRANTIES)f(OF)177 291 y(MERCHANTABILITY)f(AND)i(FITNESS)f
(FOR)i(A)f(PARTICULAR)f(PURPOSE.)42 b(THE)21 b(ENTIRE)g(RISK)f(AS)177
340 y(TO)i(THE)f(QUALITY)f(AND)h(PERFORMANCE)f(OF)h(THE)g(PROGRAM)g(IS)g
(WITH)g(YOU.)43 b(SHOULD)20 b(THE)177 390 y(PROGRAM)h(PROVE)f(DEFECTIVE,)g
(YOU)h(ASSUME)g(THE)g(COST)g(OF)g(ALL)g(NECESSARY)f(SERVICING,)177
440 y(REPAIR)h(OR)g(CORRECTION.)221 540 y(12.)g(IN)g(NO)h(EVENT)e(UNLESS)h
(REQUIRED)f(BY)i(APPLICABLE)d(LAW)i(OR)h(AGREED)e(TO)i(IN)f(WRITING)177
589 y(WILL)g(ANY)g(COPYRIGHT)f(HOLDER,)h(OR)g(ANY)g(OTHER)g(PARTY)g(WHO)g
(MAY)g(MODIFY)g(AND/OR)177 639 y(REDISTRIBUTE)e(THE)j(PROGRAM)e(AS)h
(PERMITTED)f(ABOVE,)h(BE)g(LIABLE)g(TO)g(YOU)g(FOR)h(DAMAGES,)177
689 y(INCLUDING)e(ANY)h(GENERAL,)f(SPECIAL,)h(INCIDENTAL)e(OR)j
(CONSEQUENTIAL)d(DAMAGES)h(ARISING)177 739 y(OUT)h(OF)h(THE)f(USE)g(OR)g
(INABILITY)f(TO)i(USE)f(THE)g(PROGRAM)f(\(INCLUDING)g(BUT)h(NOT)h(LIMITED)177
789 y(TO)g(LOSS)f(OF)g(DATA)g(OR)g(DATA)g(BEING)g(RENDERED)f(INACCURATE)g(OR)
h(LOSSES)g(SUSTAINED)f(BY)177 839 y(YOU)h(OR)h(THIRD)e(PARTIES)h(OR)g(A)h
(FAILURE)e(OF)i(THE)f(PROGRAM)f(TO)h(OPERATE)g(WITH)g(ANY)g(OTHER)177
888 y(PROGRAMS\),)f(EVEN)h(IF)g(SUCH)g(HOLDER)g(OR)g(OTHER)g(PARTY)g(HAS)g
(BEEN)g(ADVISED)f(OF)i(THE)177 938 y(POSSIBILITY)e(OF)h(SUCH)g(DAMAGES.)286
1038 y(END)g(OF)h(TERMS)e(AND)i(CONDITIONS)177 1137 y(Appendix:)e(How)h(to)h
(Apply)e(These)h(Terms)g(to)g(Your)g(New)g(Programs)221 1237
y(If)g(you)g(develop)g(a)g(new)g(program,)g(and)g(you)g(want)g(it)g(to)h(be)f
(of)g(the)h(greatest)177 1287 y(possible)e(use)h(to)h(the)f(public,)f(the)i
(best)f(way)g(to)g(achieve)f(this)h(is)h(to)f(make)g(it)177
1337 y(free)g(software)f(which)h(everyone)f(can)h(redistribute)f(and)h
(change)f(under)h(these)g(terms.)221 1436 y(To)g(do)h(so,)f(attach)f(the)h
(following)f(notices)h(to)g(the)g(program.)42 b(It)22 b(is)f(safest)177
1486 y(to)h(attach)e(them)h(to)g(the)h(start)e(of)i(each)f(source)f(file)h
(to)h(most)f(effectively)177 1536 y(convey)g(the)g(exclusion)f(of)h
(warranty;)f(and)h(each)g(file)g(should)g(have)g(at)g(least)177
1586 y(the)g("copyright")f(line)h(and)g(a)h(pointer)e(to)h(where)g(the)g
(full)g(notice)g(is)g(found.)264 1685 y(<one)g(line)g(to)h(give)f(the)g
(program's)f(name)h(and)g(a)g(brief)g(idea)g(of)h(what)f(it)g(does.>)264
1735 y(Copyright)f(\(C\))h(19yy)43 b(<name)21 b(of)g(author>)264
1835 y(This)g(program)g(is)g(free)g(software;)f(you)h(can)g(redistribute)f
(it)h(and/or)g(modify)264 1885 y(it)h(under)e(the)i(terms)e(of)i(the)f(GNU)g
(General)f(Public)h(License)f(as)i(published)e(by)264 1934
y(the)i(Free)e(Software)h(Foundation;)e(either)i(version)f(2)i(of)f(the)g
(License,)f(or)264 1984 y(\(at)i(your)e(option\))h(any)g(later)g(version.)264
2084 y(This)g(program)g(is)g(distributed)f(in)h(the)g(hope)g(that)g(it)g
(will)g(be)h(useful,)264 2134 y(but)g(WITHOUT)e(ANY)h(WARRANTY;)f(without)g
(even)h(the)g(implied)g(warranty)f(of)264 2183 y(MERCHANTABILITY)f(or)i
(FITNESS)g(FOR)g(A)h(PARTICULAR)d(PURPOSE.)42 b(See)21 b(the)264
2233 y(GNU)h(General)e(Public)g(License)h(for)g(more)g(details.)264
2333 y(You)h(should)e(have)h(received)f(a)i(copy)f(of)g(the)g(GNU)g(General)g
(Public)f(License)264 2383 y(along)h(with)g(this)g(program;)f(if)i(not,)f
(write)f(to)i(the)f(Free)g(Software)264 2433 y(Foundation,)f(Inc.,)h(675)g
(Mass)g(Ave,)g(Cambridge,)e(MA)j(02139,)e(USA.)177 2532 y(Also)h(add)g
(information)f(on)h(how)g(to)h(contact)e(you)h(by)h(electronic)d(and)j(paper)
e(mail.)177 2632 y(If)i(the)f(program)f(is)h(interactive,)f(make)h(it)g
(output)g(a)g(short)g(notice)g(like)g(this)177 2682 y(when)g(it)h(starts)e
(in)h(an)h(interactive)d(mode:)264 2781 y(Gnomovision)h(version)g(69,)h
(Copyright)f(\(C\))h(19yy)g(name)g(of)h(author)264 2831 y(Gnomovision)e
(comes)h(with)g(ABSOLUTELY)e(NO)j(WARRANTY;)e(for)h(details)1042
2940 y Fn(54)p eop
%%Page: 55 56
55 55 bop 264 42 a Fi(type)21 b(`show)g(w'.)264 91 y(This)g(is)h(free)f
(software,)f(and)h(you)g(are)g(welcome)f(to)i(redistribute)d(it)264
141 y(under)i(certain)f(conditions;)g(type)h(`show)g(c')g(for)g(details.)177
241 y(The)g(hypothetical)f(commands)g(`show)h(w')g(and)g(`show)g(c')g(should)
g(show)g(the)g(appropriate)177 291 y(parts)g(of)g(the)g(General)g(Public)f
(License.)42 b(Of)22 b(course,)e(the)h(commands)f(you)i(use)f(may)177
340 y(be)h(called)e(something)g(other)h(than)g(`show)g(w')g(and)g(`show)g
(c';)g(they)g(could)g(even)g(be)177 390 y(mouse-clicks)e(or)j(menu)f
(items--whatever)e(suits)h(your)h(program.)177 490 y(You)g(should)g(also)g
(get)g(your)g(employer)f(\(if)h(you)g(work)g(as)h(a)f(programmer\))f(or)h
(your)177 540 y(school,)g(if)g(any,)g(to)g(sign)g(a)h("copyright)e
(disclaimer")f(for)i(the)g(program,)g(if)177 589 y(necessary.)42
b(Here)21 b(is)g(a)h(sample;)e(alter)h(the)g(names:)221 689
y(Yoyodyne,)f(Inc.,)g(hereby)h(disclaims)f(all)h(copyright)f(interest)g(in)i
(the)f(program)221 739 y(`Gnomovision')e(\(which)h(makes)h(passes)g(at)g
(compilers\))f(written)g(by)i(James)e(Hacker.)221 839 y(<signature)f(of)j(Ty)
f(Coon>,)g(1)g(April)g(1989)221 888 y(Ty)g(Coon,)g(President)f(of)h(Vice)177
988 y(This)g(General)f(Public)h(License)f(does)h(not)h(permit)e
(incorporating)f(your)i(program)f(into)177 1038 y(proprietary)g(programs.)41
b(If)22 b(your)f(program)f(is)h(a)h(subroutine)e(library,)g(you)h(may)177
1088 y(consider)f(it)i(more)f(useful)f(to)i(permit)e(linking)g(proprietary)g
(applications)f(with)i(the)177 1137 y(library.)42 b(If)21 b(this)g(is)h(what)
f(you)g(want)g(to)g(do,)g(use)h(the)f(GNU)g(Library)f(General)177
1187 y(Public)h(License)f(instead)g(of)i(this)f(License.)p
177 1280 1772 2 v 1042 2940 a Fn(55)p eop
%%Page: 56 57
56 56 bop 1042 2940 a Fn(56)p eop
%%Page: 57 58
57 57 bop 177 378 a Ff(App)s(endix)34 b(B)177 610 y Fl(References)177
851 y Fk([ANSI])21 b Fn(Australian)f(Standard)h(AS)f(3955-1991,)f
(\\Programming)e(Languages)j(|)g(C",)g(\(ISBN:)g(0-7262-)177
901 y(6970-0\),)c(12)h(July)g(1991.)27 b(Iden)o(tical)17 b(to:)24
b(In)o(ternational)17 b(Standard)g(ISO/IEC)h(9899:)23 b(1990)16
b(Programming)177 951 y(Languages)e(|)f(C.)177 1025 y Fk([Ben)o(tley86])h
Fn(Ben)o(tley)i(J.,)g(\\Programmi)o(ng)d(P)o(earls:)22 b(Literate)16
b(Programming",)c Fh(Communic)n(ations)17 b(of)g(the)177 1075
y(A)o(CM)p Fn(,)c(V)m(ol.)g(29,)f(No.)i(5,)f(pp.)g(364{369,)f(1986.)177
1150 y Fk([Hoare80])f Fn(Hoare)f(C.A.R.,)f(\\The)h(Emp)q(eror's)g(Old)g
(Clothes",)g(T)m(uring)g(Aw)o(ard)g(Lecture,)i(1980,)e(from)e(\\A)o(CM)177
1200 y(T)m(uring)15 b(Aw)o(ard)g(Lectures:)24 b(The)16 b(First)f(Tw)o(en)o(t)
o(y)h(Y)m(ears)g(1966{1985",)d(A)o(CM)i(Press,)i(New)g(Y)m(ork,)e(\(ISBN:)g
(0-)177 1249 y(201-07794-9\),)c(1987)i(\(see)i(p.)f(155\).)177
1324 y Fk([Horton90])f Fn(Horton)h(M.R.,)e(\\P)o(ortable)i(C)g(Soft)o(w)o
(are",)e(Pren)o(tice)k(Hall,)c(\(ISBN:)i(0-13-868050-7\),)d(1990.)177
1399 y Fk([Kernighan88])k Fn(Kernighan)i(B.W.,)g(Ritc)o(hie)f(D.M.,)g(\\The)h
(C)g(Programming)c(Language",)k(\(second)h(edi-)177 1449 y(tion,\\ANSI)13
b(C"\),)g(Pren)o(tice)j(Hall,)c(\(ISBN:)i(0-13-110362-8\),)d(1988.)177
1523 y Fk([Kn)o(uth83])j Fn(Kn)o(uth)h(D.E.,)f(\\The)h(WEB)g(System)f(of)h
(Structured)h(Do)q(cumen)o(tation",)d(\(W)m(eb)i(User)h(Man)o(ual,)177
1573 y(V)m(ersion)e(2.5,)f(No)o(v)o(em)o(b)q(er,)f(1983\),)h(Stanford)g(Univ)
o(ersit)o(y)m(,)g(1983.)177 1648 y Fk([Kn)o(uth84])f Fn(Kn)o(uth)j(D.E.,)d
(\\The)i(T)767 1657 y(E)790 1648 y(Xb)q(o)q(ok",)f(Addison-W)m(esley)m(,)g
(\(ISBN:)h(0-201-13448-9\),)d(1984.)177 1723 y Fk([Lamp)q(ort86])k
Fn(Lamp)q(ort)h(L.,)g(\\L)723 1718 y Fg(a)742 1723 y Fn(T)765
1735 y(E)788 1723 y(X:)g(A)g(Do)q(cumen)o(t)g(Preparation)h(System",)f
(Addison-W)m(esley)m(,)g(\(ISBN:)177 1773 y(0-201-15790-X\),)11
b(1986.)177 1847 y Fk([Rabino)o(witz90])k Fn(Rabino)o(witz)h(H.,)h(Sc)o(haap)
g(C.,)h(\\P)o(ortable)f(C",)f(Pren)o(tice)j(Hall,)d(\(ISBN:0-13-685967-4\))
177 1897 y(1990.)177 1972 y Fk([Ramsey89])22 b Fn(Ramsey)f(N.,)j(\\W)m(ea)o
(ving)d(a)h(Language-Indep)q(enden)o(t)h(WEB",)f Fh(Communic)n(ations)h(of)g
(the)177 2022 y(A)o(CM)p Fn(,)13 b(V)m(ol.)g(32,)f(No.)i(9,)f(pp.)g
(1051{1055,)e(1989.)177 2096 y Fk([T)l(arjan72])16 b Fn(T)m(arjan)f(R.E.,)h
(\\Depth-First)g(Searc)o(h)i(and)e(Linear)g(Graph)g(Algorithms",)e
Fh(SIAM)k(Journal)f(of)177 2146 y(Computing)p Fn(,)d(V)m(ol.)e(1,)h(No.)h(2,)
f(pp.)g(146{160,)f(June)j(1972.)177 2221 y Fk([USDOD83])i Fn(\\The)i
(Programming)c(Language)j(Ada)g(Reference)i(Man)o(ual",)e(American)g
(National)f(Stan-)177 2271 y(dards)e(Institute)f(Inc,)g
(ANSI/MIL-STD-1815A-1983,)d(1983.)1042 2940 y(57)p eop
%%Page: 58 59
58 58 bop 177 279 a Fl(Index)177 487 y Fn(.cld)14 b(\014le)f(18)177
537 y(==)i(14)177 587 y(@M)f(23)177 637 y(@Z)h(23)177 687 y(abbreviations)f
(iden)o(ti\014er)g(28)177 737 y(ac)o(kno)o(wledgemen)o(ts)f(7)177
787 y(Ada)h(18)177 837 y(Ada)g(27)177 886 y(Ada)g(7)177 936
y(adding)f(features)i(36)177 986 y(Adelaide)f(Univ)o(ersit)o(y)g(27)177
1036 y(analyser)g(45)177 1086 y(Andrew)h(T)m(rev)o(orro)o(w)f(9)177
1136 y(ANSI)g(28)177 1186 y(ANSI)g(57)177 1236 y(an)o(tiquated)g(features)h
(43)177 1286 y(ASCI)q(I)f(mnemonics)e(45)177 1336 y(asking)h(for)h(trouble)g
(28)177 1386 y(authorit)o(y)f(design)i(36)177 1436 y(authorit)o(y)e(securit)o
(y)i(36)177 1486 y(a)o(v)n(ailabilit)o(y)10 b(program)j(37)177
1536 y(bac)o(kw)o(ards)h(compatibilit)o(y)d(11)177 1586 y(Barry)k(Dwy)o(er)f
(7)177 1636 y(Begg)g(Jerem)o(y)g(7)177 1686 y(Ben)o(tley)h(Jon)f(11)177
1736 y(Ben)o(tley86)g(11)177 1786 y(Ben)o(tley86)g(57)177 1836
y(blank)f(inden)o(tation)h(12)177 1886 y(blank)f(inden)o(tation)h(12)177
1935 y(break)o(out,)g(GNU)f(41)177 1985 y(Brissenden)j(Roger)e(7)177
2035 y(c)o(hanges)h(dangers)f(35)177 2085 y(co)q(ding)g(st)o(yle)g(28)177
2135 y(command)d(in)o(terface)k(43)177 2185 y(command)c(in)o(terpreter)16
b(43)177 2235 y(command)11 b(line)j(in)o(terface)g(design)g(goals)f(19)177
2285 y(command)e(line)j(in)o(terface)g(18)177 2335 y(command)d(setall)j(43)
177 2385 y(commen)o(t)e(duplication)h(18)177 2435 y(Comm)o(unicati)o(ons)e
(of)j(the)g(A)o(CM)g(11)177 2485 y(compatibilit)o(y)d(bac)o(kw)o(ards)j(11)
177 2535 y(compiler)f(ThinkC)g(30)177 2585 y(compiler)g(35)177
2635 y(conditionals)g(44)177 2685 y(con)o(tiguous)h(memory)d(45)177
2735 y(cop)o(yrigh)o(t)j(la)o(w)f(38)177 2785 y(cop)o(yrigh)o(t)h(notice)g(1)
177 2835 y(cop)o(yrigh)o(t)g(38)1136 487 y(correctness)i(47)1136
537 y(coun)o(ting)d(diagnostic)g(43)1136 587 y(cross)i(references)h(46)1136
637 y(dangers)e(c)o(hanges)h(35)1136 687 y(dangers)f(inden)o(tation)f(13)1136
737 y(dangers)h(languages)g(35)1136 787 y(Da)o(vid)e(Hulse)j(27)1136
837 y(Da)o(vid)d(Hulse)j(7)1136 886 y(DCL)e(13)1136 936 y(deriv)o(ed)h(w)o
(ork)g(38)1136 986 y(design)g(authorit)o(y)f(36)1136 1036 y(design)h(F)m
(unnelW)m(eb)f(11)1136 1086 y(design)h(goals)f(command)e(line)i(in)o(terface)
i(19)1136 1136 y(design)f(language)f(44)1136 1186 y(detection)i(recursion)g
(45)1136 1236 y(diagnostic)e(coun)o(ting)g(43)1136 1286 y(diagnostic)g
(messages)h(25)1136 1336 y(diagnostics)f(47)1136 1386 y(do)q(cumen)o(t)g
(structure)j(macro)d(structure)j(23)1136 1436 y(do)q(cumen)o(t)d(structure)j
(16)1136 1486 y(do)q(cumen)o(t)d(structure)j(23)1136 1536 y(do)q(cumen)o
(tation)c(out)i(of)f(date)i(18)1136 1586 y(do)q(cumen)o(tation)d(43)1136
1636 y(Donald)g(Kn)o(uth)j(11)1136 1686 y(Donald)d(Kn)o(uth)j(7)1136
1736 y(duplication)d(commen)o(t)g(18)1136 1786 y(Dwy)o(er)i(Barry)g(7)1136
1836 y(e\016ciency)g(47)1136 1886 y(EOL)g(represen)o(tation)h(45)1136
1935 y(example)d(o\016cial)h(43)1136 1985 y(extensions)i(\014lename)d(20)1136
2035 y(factor)i(glue)f(46)1136 2085 y(features)i(adding)e(36)1136
2135 y(features)i(an)o(tiquated)e(43)1136 2185 y(features)i(mo)q
(di\014cation)c(35)1136 2235 y(features)k(remo)o(ving)d(35)1136
2285 y(\014le)i(.cld)f(18)1136 2335 y(\014le)h(extension)g(protection)h(37)
1136 2385 y(\014le)f(mark)o(ers)f(44)1136 2435 y(\014le)h(names)f(19)1136
2485 y(\014le)h(names)f(21)1136 2535 y(\014le)h(signature)g(44)1136
2585 y(\014lename)e(extensions)j(20)1136 2635 y(\014lename)d(inheritance)j
(20)1136 2685 y(\014lenames)e(length)h(29)1136 2735 y(\014lenames)f(p)q
(ortable)h(21)1136 2785 y(formal)d(parameter)j(list)f(44)1136
2835 y(F)m(unnelW)m(eb)g(design)h(11)1042 2940 y(58)p eop
%%Page: 59 60
59 59 bop 177 42 a Fn(F)m(unnelW)m(eb)14 b(future)g(43)177
91 y(F)m(unnelW)m(eb)g(history)f(27)177 141 y(F)m(unnelW)m(eb)h(implem)o(en)o
(tation)d(27)177 191 y(F)m(unnelW)m(eb)j(managem)o(en)o(t)e(39)177
241 y(F)m(unnelW)m(eb)i(mo)q(di\014cation)d(35)177 291 y(F)m(unnelW)m(eb)j
(motiv)n(atio)o(n)d(11)177 341 y(F)m(unnelW)m(eb)j(o\016cial)e(39)177
391 y(F)m(unnelW)m(eb)i(past)g(use)g(27)177 441 y(F)m(unnelW)m(eb)g
(protection)g(37)177 490 y(F)m(unnelW)m(eb)g(syn)o(tax)f(14)177
540 y(F)m(unnelW)m(eb)h(V1)f(11)177 590 y(F)m(unnelW)m(eb)h(v)o(ersion)g(1)f
(27)177 640 y(F)m(unnelW)m(eb)h(v)o(ersion)g(2)f(27)177 690
y(F)m(unnelW)m(eb)h(v)o(ersion)g(3)f(27)177 740 y(F)m(unnelW)m(eb)h(writing)f
(itself)g(28)177 790 y(future)i(F)m(unnelW)m(eb)e(43)177 840
y(genealogy)g(program)g(36)177 889 y(generic)i(t)o(yp)q(esetter)h(46)177
939 y(glue)e(factor)g(46)177 989 y(GNU)g(break)o(out)g(41)177
1039 y(GNU)g(license)h(35)177 1089 y(GNU)f(license)h(39)177
1139 y(GNU)f(License)h(49)177 1189 y(GNU)f(v)o(ersion)g(41)177
1239 y(Hac)o(k)o(ett)h(Simon)d(7)177 1288 y(headings)i(16)177
1338 y(heap)g(memory)e(29)177 1388 y(hierarc)o(hical)i(structure)i(23)177
1438 y(history)e(F)m(unnelW)m(eb)f(27)177 1488 y(Hoare80)h(36)177
1538 y(Hoare80)g(57)177 1588 y(Horton90)g(28)177 1638 y(Horton90)g(57)177
1687 y(Hulse)h(Da)o(vid)d(27)177 1737 y(Hulse)j(Da)o(vid)d(7)177
1787 y(iden)o(ti\014er)i(abbreviations)g(28)177 1837 y(iden)o(ti\014er)g(28)
177 1887 y(implemen)o(tation)d(F)m(unnelW)m(eb)i(27)177 1937
y(include)h(\014le)g(suppression)h(46)177 1987 y(inden)o(tation)e(blank)h(12)
177 2037 y(inden)o(tation)f(dangers)i(13)177 2086 y(inden)o(tation)e(no)h(12)
177 2136 y(inden)o(tation)f(text)i(12)177 2186 y(inden)o(tation)e(text)i(30)
177 2236 y(inden)o(tation)e(text)i(45)177 2286 y(inden)o(tation)e(12)177
2336 y(inden)o(tation)g(12)177 2386 y(inden)o(ted)i(macro)d(call)h(12)177
2436 y(index)h(program)e(43)177 2486 y(inheritance)j(\014lename)d(20)177
2535 y(in)o(terface)j(command)c(line)i(18)177 2585 y(in)o(terface)i(command)c
(43)177 2635 y(in)o(terpreter)16 b(command)11 b(43)177 2685
y(in)o(terpreter)16 b(shell)e(43)177 2735 y(in)o(v)o(o)q(cations)f(n)o(um)o
(b)q(er)g(22)177 2785 y(issues)i(miscellaneous)e(18)177 2835
y(Jerem)o(y)h(Begg)g(7)1136 42 y(Jon)g(Ben)o(tley)g(11)1136
91 y(Kernighan88)f(28)1136 141 y(Kernighan88)g(57)1136 191
y(Kn)o(uth)h(Donald)f(11)1136 241 y(Kn)o(uth)h(Donald)f(7)1136
291 y(Kn)o(uth83)g(11)1136 341 y(Kn)o(uth83)g(57)1136 391 y(Kn)o(uth84)g(57)
1136 441 y(Kn)o(uth84)g(9)1136 490 y(Lamp)q(ort86)f(57)1136
540 y(Lamp)q(ort86)g(9)1136 590 y(language)h(design)h(44)1136
640 y(languages)f(dangers)i(35)1136 690 y(LaT)m(eX)e(9)1136
740 y(LaT)m(eX)g(9)1136 790 y(la)o(w)g(cop)o(yrigh)o(t)g(38)1136
840 y(leak)n(age)g(memory)e(30)1136 889 y(length)i(\014lenames)h(29)1136
939 y(license)g(GNU)g(35)1136 989 y(license)g(GNU)g(39)1136
1039 y(License)h(GNU)e(49)1136 1089 y(license)h(38)1136 1139
y(lister)g(46)1136 1189 y(Macin)o(tosh)g(29)1136 1239 y(Macin)o(tosh)g(30)
1136 1288 y(Macin)o(tosh)g(9)1136 1338 y(macro)e(call)h(syn)o(tax)h(16)1136
1388 y(macro)e(de\014nition)i(syn)o(tax)g(14)1136 1438 y(macro)e(structure)k
(do)q(cumen)o(t)e(structure)i(23)1136 1488 y(macro)c(structure)k(23)1136
1538 y(mak)o(e)c(44)1136 1588 y(mallo)q(c)f(29)1136 1638 y(managemen)o(t)g(F)
m(unnelW)m(eb)i(39)1136 1687 y(man)o(uals)e(mo)q(difying)g(38)1136
1737 y(mapp)q(er)i(44)1136 1787 y(mark)o(ers)g(\014le)h(44)1136
1837 y(memory)d(con)o(tiguous)j(45)1136 1887 y(memory)d(heap)j(29)1136
1937 y(memory)d(leak)n(age)i(30)1136 1987 y(memory)e(pac)o(k)n(age)j(29)1136
2037 y(memory)d(stac)o(k)j(30)1136 2086 y(memory)d(static)j(30)1136
2136 y(memory)d(use)k(of)e(29)1136 2186 y(messages)h(diagnostic)f(25)1136
2236 y(miscellaneous)f(issues)j(18)1136 2286 y(mnemonics)c(ASCI)q(I)j(45)1136
2336 y(mo)q(di\014cation)d(features)k(35)1136 2386 y(mo)q(di\014cation)c(F)m
(unnelW)m(eb)j(35)1136 2436 y(mo)q(difying)d(man)o(uals)g(38)1136
2486 y(motiv)n(atio)o(n)g(F)m(unnelW)m(eb)j(11)1136 2535 y(MSDOS)g(29)1136
2585 y(names)f(\014le)h(19)1136 2635 y(names)f(\014le)h(21)1136
2685 y(naming)d(p)q(oin)o(ters)k(29)1136 2735 y(naming)c(t)o(yp)q(es)k(29)
1136 2785 y(no)e(inden)o(tation)h(12)1136 2835 y(no)f(inden)o(tation)h(12)
1042 2940 y(59)p eop
%%Page: 60 61
60 60 bop 177 42 a Fn(notice)14 b(cop)o(yrigh)o(t)g(1)177 91
y(n)o(um)o(b)q(er)f(in)o(v)o(o)q(cations)g(22)177 141 y(n)o(um)o(b)q(er)g
(output)h(\014les)h(12)177 191 y(n)o(um)o(b)q(ering)e(section)h(23)177
241 y(Occam's)f(razor)i(12)177 291 y(o\016cial)e(example)f(43)177
341 y(o\016cial)h(F)m(unnelW)m(eb)g(39)177 391 y(options)h(43)177
441 y(out)g(of)f(date)h(do)q(cumen)o(tation)f(18)177 490 y(output)h(\014les)g
(n)o(um)o(b)q(er)g(12)177 540 y(OzT)m(eX)h(9)177 590 y(pac)o(k)n(age)f
(memory)d(29)177 640 y(parameter)j(list)f(formal)f(44)177 690
y(parameterized)i(macro)f(call)g(syn)o(tax)h(16)177 740 y(parameterized)g
(macro)f(de\014nitions)h(syn)o(tax)g(15)177 790 y(parser)h(45)177
840 y(P)o(ascal)f(12)177 889 y(past)g(use)h(F)m(unnelW)m(eb)e(27)177
939 y(Ph.D.)g(27)177 989 y(p)q(oin)o(ters)i(naming)c(29)177
1039 y(p)q(ortabilit)o(y)i(28)177 1089 y(p)q(ortable)h(\014lenames)f(21)177
1139 y(pragma)f(syn)o(tax)i(44)177 1189 y(pragma)e(v)o(ersion)i(45)177
1239 y(preface)h(5)177 1288 y(presen)o(tation)g(notes)g(9)177
1338 y(program)d(a)o(v)n(ailabilit)o(y)f(37)177 1388 y(program)h(genealogy)i
(36)177 1438 y(program)e(index)i(43)177 1488 y(programming)c(p)q(earls)15
b(11)177 1538 y(protection)g(\014le)e(extension)i(37)177 1588
y(protection)g(F)m(unnelW)m(eb)e(37)177 1638 y(Rabino)o(witz90)f(28)177
1687 y(Rabino)o(witz90)g(28)177 1737 y(Rabino)o(witz90)g(57)177
1787 y(Ramsey89)g(46)177 1837 y(Ramsey89)g(57)177 1887 y(recursion)j
(detection)g(45)177 1937 y(recursion)g(test)g(43)177 1987 y(references)i
(cross)e(46)177 2037 y(references)i(57)177 2086 y(regression)e(testing)g(18)
177 2136 y(remo)o(ving)d(features)j(35)177 2186 y(represen)o(tation)h(EOL)e
(45)177 2236 y(Rob)q(ert)g(Endre)h(T)m(arjan)e(45)177 2286
y(Roger)h(Brissenden)i(7)177 2336 y(Ross)e(William)o(s)d(1)177
2386 y(scanner)k(44)177 2436 y(section)g(n)o(um)o(b)q(ering)d(23)177
2486 y(section)j(syn)o(tax)f(44)177 2535 y(sections)h(16)177
2585 y(securit)o(y)g(authorit)o(y)e(36)177 2635 y(setall)h(command)d(43)177
2685 y(shell)j(in)o(terpreter)i(43)177 2735 y(signature)e(\014le)g(44)177
2785 y(Simon)e(Hac)o(k)o(ett)j(7)177 2835 y(size)g(stac)o(k)f(30)1136
42 y(South)d(Australian)f(Go)o(v)o(ernmen)o(t)g(Departmen)o(t)g(of)1302
91 y(Lands)k(28)1136 141 y(sp)q(eed)h(47)1136 191 y(spider)f(46)1136
241 y(stac)o(k)g(memory)d(30)1136 291 y(stac)o(k)j(size)h(30)1136
341 y(static)f(memory)d(30)1136 391 y(static)j(v)n(ariables)f(30)1136
440 y(strength)i(t)o(yp)q(esetting)g(46)1136 490 y(structure)h(do)q(cumen)o
(t)d(16)1136 540 y(structure)j(do)q(cumen)o(t)d(23)1136 590
y(structure)j(hierarc)o(hical)d(23)1136 640 y(structure)j(macro)c(23)1136
690 y(st)o(yle)i(co)q(ding)f(28)1136 740 y(suite)h(test)h(47)1136
790 y(suppression)g(include)f(\014le)g(46)1136 840 y(syn)o(tax)f(F)m(unnelW)m
(eb)h(14)1136 889 y(syn)o(tax)f(macro)g(call)g(16)1136 939
y(syn)o(tax)g(macro)g(de\014nition)h(14)1136 989 y(syn)o(tax)f(parameterized)
i(macro)d(call)h(16)1136 1039 y(syn)o(tax)g(parameterized)i(macro)d
(de\014nitions)i(15)1136 1089 y(syn)o(tax)f(pragma)f(44)1136
1139 y(syn)o(tax)h(section)i(44)1136 1189 y(table)e(of)h(con)o(ten)o(ts)h(45)
1136 1239 y(tangle)e(45)1136 1288 y(T)m(arjan)g(Rob)q(ert)h(Endre)h(45)1136
1338 y(T)m(arjan72)d(45)1136 1388 y(T)m(arjan72)g(57)1136 1438
y(test)j(recursion)g(43)1136 1488 y(test)g(suite)f(47)1136
1538 y(testing)g(regression)h(18)1136 1588 y(text)f(inden)o(tation)f(12)1136
1638 y(text)h(inden)o(tation)f(12)1136 1687 y(text)h(inden)o(tation)f(30)1136
1737 y(text)h(inden)o(tation)f(45)1136 1787 y(T)m(eX)h(23)1136
1837 y(T)m(eX)g(9)1136 1887 y(ThinkC)f(compiler)f(30)1136 1937
y(trademark)h(36)1136 1987 y(T)m(rev)o(orro)o(w)g(Andrew)i(9)1136
2037 y(trouble)f(asking)f(for)g(28)1136 2086 y(t)o(yp)q(es)h(naming)e(29)1136
2136 y(t)o(yp)q(esetter)k(generic)f(46)1136 2186 y(t)o(yp)q(esetting)f
(strength)i(46)1136 2236 y(t)o(yp)q(esetting)e(9)1136 2286
y(Univ)o(ersit)o(y)f(Adelaide)h(27)1136 2336 y(Unix)f(36)1136
2386 y(USDOD83)g(27)1136 2436 y(USDOD83)g(57)1136 2485 y(use)h(of)g(memory)d
(29)1136 2535 y(v)n(ariables)i(static)h(30)1136 2585 y(v)n(ax)f(vms)f(18)1136
2635 y(v)o(ersion)i(GNU)f(41)1136 2685 y(v)o(ersion)h(pragma)e(45)1136
2735 y(video)h(game)g(35)1136 2785 y(vms)f(v)n(ax)h(18)1136
2835 y(w)o(ea)o(v)o(e)h(45)1042 2940 y(60)p eop
%%Page: 61 62
61 61 bop 177 42 a Fn(William)o(s)12 b(Ross)h(1)177 91 y(w)o(ork)h(38)177
141 y(writing)f(itself)h(F)m(unnelW)m(eb)f(28)1042 2940 y(61)p
eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF