summaryrefslogtreecommitdiff
path: root/doc/gperf.ps
blob: d12c41784efec1650c859859b5c8db13f044f60f (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
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software
%%Title: ../../doc/gperf.dvi
%%Pages: 32
%%PageOrder: Ascend
%%BoundingBox: 0 0 595 842
%%DocumentFonts: CMBX12 CMTT12 CMR10 CMSY10 CMSL10 CMTT10 CMTI10 CMBX10
%%+ CMSS10 CMB10 CMR9 CMBXTI10
%%DocumentPaperSizes: a4
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D600 -o ../../doc/gperf.ps ../../doc/gperf.dvi
%DVIPSParameters: dpi=600
%DVIPSSource:  TeX output 2006.01.22:1148
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
N/FBB[0 0 0 0]N/nn 0 N/IEn 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 IEn N end A{/foo setfont}2
array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/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 A
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 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 A 1 get A
mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
index cvrs cvn put}for pop 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/Rx 0 N/Ry 0 N/V{}B/RV/v{
/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
(LaserWriter 16/600)]{A length product length le{A length product exch 0
exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end

%%EndProcSet
%%BeginProcSet: texps.pro 0 0
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
end

%%EndProcSet
%%BeginFont: CMBXTI10
%!PS-AdobeFont-1.1: CMBXTI10 1.0
%%CreationDate: 1991 Aug 18 17:46:30
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMBXTI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMBXTI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 46 /period put
readonly def
/FontBBox{-29 -250 1274 754}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
178DAA7C97C35EAFA47778CE03E863303582D8A9900EF4F8DA879DED54BACD7A
4A50C18AA2ED906FC4DC073B1E6CA1E3855AD5B7698EF4A96B77DBE19A12382A
CFA8717DE230CB6182F2250885B8E90AC42A66484A7B527061B223A6D1CC72D4
890359E7E04690BFFA99FAB5CC9999F0873A9DBE49E33F79E483FAD72313DF9A
7B7D926461988C23CCE9F71AB7BB63BDB2B10B3F78176380AFFC154825C9BDCE
82303FBFC3B59E070438984C28D12E8655BBBF049125BF56DD2B0DE8C0450E55
82832DA59EBEB001AAD86F2317460DD7ED264611B9043614221ECF
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMR9
%!PS-AdobeFont-1.1: CMR9 1.0
%%CreationDate: 1991 Aug 20 16:39:59
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR9 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 40 /parenleft put
dup 41 /parenright put
dup 73 /I put
dup 100 /d put
dup 101 /e put
dup 105 /i put
dup 110 /n put
dup 111 /o put
dup 115 /s put
dup 116 /t put
dup 120 /x put
readonly def
/FontBBox{-39 -250 1036 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835
3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203
046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E
C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A
A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2
A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D
731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B
09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1
49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B
5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B
54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C
C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F
11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AD14F1CBE935942AEC
D4004E6BEF379066FD72209DC88D2E634E79BCC2B98C766CBD92C561F2703F8A
109E6C6CEC7B866F2FC7ADF646BF492E520319F3B949AB5D84AE990B33344A40
3971F58DFDF8D8D67FA0B8F2A0D884F8C09A5A721319B911DBA0A35903877343
C37BC36C5EB32353272D1E6ED5FCA611BE319A7E1E842CB7576E7F5458CFC59B
079E0D4D871D2A7D81326B7416856475D76205EAEEC9F3D52327C5B62994CE55
1B930DFFBC741F40F64C00013B59589381551142DA0571D7219B034FE96E2029
3F5A62E3CD07308E303E616DDF322799FDAC2B6B306679295314E08E76644438
6E4BA84059F7CA54E1993211BAD90DD3A51CA589139A75717A5FC3B497DBA3B8
F3629E43414B3522E80742E32BCA188C22779D748C7AA6B46B64B3F85604D799
5C6C5A44FDB20FD4F5637E62AD65F244E8AD62A9B1091B558174854DB42B8BA3
2BB48247AB1F8F9C7735AC08F7F3D4946C4C92815745A64A0B2C9E9836A4691B
C5D3833C22EFE5FC9F3261789CAC68B83C8350C3CA3326FB17DE179CF7707358
07E7B48A010E6A558CFDEB454B91A07BF032E852D09C9491DC4A4DD47AF86968
2D402A79B6770156D4AE6461DB26261E41B72C03F0BE35E5B7094615BE5BD8CA
13D011FD4A241E1BF7F08B4E1ED6367974130E95428CE40E0FFB940521A834D7
13BE1B34B80E1AADC8EB7357B84BDA70506FF89867FC4DD9F829EAEB43DCF7D4
F9D81ADE02EDB4FF128C7B6822533E2386D6110E0A8AD99D02F129D6D3B7BCCC
8E0B4F6BD1357ED5727EA27A4751AA271616C29E2092E2E9AC33C864750941B6
9D9D0EBC991F38832D3A9884CAA06BDF5A3EFE212187F01ABD22D90861DA504F
8E03D4A75E6A84FED5AD1260FD1B5504A5EB660B40EBBC1711B625FAB2E43596
74F2DC1C7E1622F5A9643782E90AD9E03CE154486E3F3202701274B67BD4A823
4206A10BEC6659C6CCFE63B2FA0C581CA42DD7E73023BB4692E9BC4E82125E45
F4530E0BA7E2AEB69F758C93681029D1C4F2D385593C21E9780BB439BCCB924D
6AB1675FFE5B6BD734201EB119E6C66AE2B9781493E99A3545438FA9A395EFEC
D83120B7700CEF5CE34C18F215D28E4936DF84FF7C8E6C1752588762F1626B67
178C501070D7DB2EBAC316AC27F5F802CD796BDD927409E3899D361170D4FAD1
DE63682751881ACBEDBDEA073C0AF5C0509573E9A8AC0A0A71EA52FD5666D09A
36990458CF0F9E8D8ECAA96809EF41F6374BD7E8959D5656ADD23943DF12F496
D4703DAE21C31E787C9CF791E666D35A6F542AF6E5B8124B886474FCF1062873
3F707ECD55F184AAA4A41D3EF08320C5825B912FCD1E07A21BB8661524D71C4B
8E924E047E93B02D13604E630464788A1FAE903EFC8B58B832B5E808EC305998
C792B109B2D200D507C88BB28DF966AF9ED6F6C82776BCBD9AB0636DE09A2F20
90B3645AFFF2A1CFE1BE1778B637391469F82543C6AF4A970084E2D60ADFDD9E
04036DB57FF14118D7669394B808FAA3ABA10BBD19BCB532D73407CDE6E16C2A
6E4801698B00C90073C7A00988D9483D52D13816113602789DB0B2201FDBC5E9
B13A83919E062BCF886008149354F5024465F346EC345F8D549E791030ED3E38
7B34FE9E76C665DE93A2D03210F940D88BC0772934F148EC86CFFBF58E3BC3E3
D4668E55E0B2AA88BB1563B7D18B7AAC911EE728544878CD6B19F37B643F36E5
2929E164D285978F3666881C560ED0E1ECF74CBEC725D469C43B73EB8DB62DB7
7E1DF2E43361C94B763F4DC7885C0BC1937B7E359585913F9F9331862583D9E0
4FABDD346E68DEF044712D26F8E71D8F0E3F1AACC74D024CF2D206624FBA8B40
F8319FE8727248169A48A0045CFB89CCD988F88A2C9DB8C2AED12AAE8FD27F12
7BC63BD88681D3C1C7977A474176C30376B6B8B9C6F3B73E349D202622CB821D
457597241FEFEA76CCB5E76A107E29C5E92221253ACF242BE65DBAA4C762637E
2F2EBA40E01CB70A22BD0190C2C114194159A032E57C39C424565BB11D463C66
9D30AD565CACC1439F95AF8996F22F5812B5E59ED8BD562CA03D383CF6AE1B97
26F8DFFB8DE8DC9F12FBF06D3D4DCAD71439DC1A6A1D5E1C99577BCA37CFB4B7
399BB847AB19787779A7EB9DADC092A5CE6031E7453366C12AB1E542D4781CB0
23FE39F7464954A4BBB423EA3E23D0435C3EF99F575A786BF43CD7588C0C7247
962F148D7389B38D5A3020CDE884FDA3C47BFF161061001BA9A1B2AE6706E80C
3AD68000BBE4835FD86AC30286CB3CFBE4856F1E25D8C0F4082A6F076B459D70
2570C078E8E0F6F08EE108C7AED1ABA955EECBD57EC76FCA0F34C106CFA4E60A
109951865AF71B44B92B9D8A46DFE9C4F516B4EA0F2EC69B5FAB85D834DF374D
504126B9829FE2CFD3A09DF6BC078BCFD29119FF6A2403A9CB1843D9FA8126F9
B3AD679D37B43AE2C56E8A5895A8C71684C870015A9C609728C5A43C9D8E8B41
FE37B0DF82FC4425E9867FEC1AB3177E0BCDDA39FB0B1352AFF87F9631E13D54
113766388AB6D20A516D5BEBF9A8F1707F5152EBF5069F37BDC82A4EF856E6CC
9AE69A3DD107B85C896651AC9AA6DF71D91176197C473F2187DF09534DD3C7AF
A7A5BB5D2F89E2E52860537DF81FE8F026CD8D878D365F98DFB7F18B51B59503
A2C1C0ED445F62A77D9A81428E938B83B0DB94E381E088FF7CF1B8A10E1FA040
7F3BE64BF61F6366F1430F
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMB10
%!PS-AdobeFont-1.1: CMB10 1.0
%%CreationDate: 1991 Aug 20 16:34:36
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMB10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMB10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 97 /a put
dup 108 /l put
readonly def
/FontBBox{-62 -250 1011 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
2DB0E39996C010F3024A5A3C69C8485664A4E3AA81348AE21A30280D0E3B6542
A770F048F31907891EAB8B57DC70FF775574D6CD26B8AC9C3E64C3631325BF0A
99AB413BDADAA3B51A3E168B03A856EC7D346A38BBB0A2700A23B2CA91120B9D
2AA5BE5A359C60CD78F055253785CC9701F5D670ABE4967D74838C3B267C6563
C9651AC41D8684AD5E913A5C9C547CA225A74782D1AC62020FC38E29C356950A
00E8F2B0752CDBF81EE4ACD59BDEBBB9523AE4764B995855F3A401EB4B04EE56
B10758196CB661448A3617B83CA88C41756EF131CFCE0C968B94B6C69AEC1E9F
BF8B21837BC422D766B5089D81CF35A807394A026FE3160580695B1213968D90
8ECD1611E719A871E15C6085A17906F77B5B2DFA6AE670976758E67F8A4FC362
FC7299D85ECC3C0BBAD4649B9DAB4A2FB248D6481CF0CCF274634D37A5AA4DDC
31F3138AAF10998FD66F3817B77060E71C6D8F17205F9C098D81D952E0FE3831
2264C55D73215176470D8D75E7BE6E44514984B9D20208DB3ADD4767CAC09D41
9C8DAB6EDF4FA1AA2CB285CA28E30972B3BFA4F8600DB92164865738B015A331
EA9EFDD478132047DAC28DD4FFE419F94CF5FCDE732E53FD332ADBED32F76B2E
69531BCE0D461BA3F41A528DB0CCEFF9663FEB3EC9CE0F760604F835699D7C08
CADBF7AA3DCCE9E813D66BC62C6E452FA02FE7E5F4FAAA527B4567AA4FACE790
87910AC2498C0999866614C90AF7DFD65A59B9183FD8AC5DB9AA81E8E8477F07
3501D4BFCCBFE32C964D3549B42070D43977640A289060AC0BDF951B78ACDE58
D95548DE8DE75EA7A6F5922BB463FAA93487253414EF4233C8BB976B280E1A92
A77D2D907599AC9302D1143597D4CD494045A0261DB9245A613EE31DF8994568
F7D0FB24D761F5B4E8A96B5AB339418462C29EC1DE163980AAE4B6190A1AA91A
D935859055FF59BDC9365F825C409B52530DB59A099FDE62E716090B6B14D2D7
28662E609B24D00FDD9F092F15D94C0726B1D3610F20A7C658F19D26DC8B53D6
8DD06EA7E45A8150DCD2DB3AEDD9239A029FD6B5344B0FF779CFE958A5889AB6
E941B9BF0464CB0FF3247F17290F82825313C171AAB70BB80D21EDCB7628B5D1
8266B3E93852BBFCE9CA6D38170F6CE57219A301EE8B989D66852EB7A48A8177
96722414CF3B147E046617BA46F6F1439F90B6B3812D61619904CAA0B7CDAF29
D6868D7F8346CF4164DB12015292BFBCE474B05BF886430411E8E937B6F09D74
42A2C0EB14BFC76003DFF172AC44D730214DEE512BF257C8688FBED139C01604
2C34B2E4C33219B9
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMSS10
%!PS-AdobeFont-1.1: CMSS10 1.0
%%CreationDate: 1991 Aug 20 17:33:34
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSS10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMSS10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 40 /parenleft put
dup 41 /parenright put
readonly def
/FontBBox{-61 -250 999 759}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BDCEEA888D07B439DBD4E8B4C9
D198C03874B5E6F8FBF4922065A92BC3E66D05DE53971CB1424510E892442858
D69CE1F76E4DA76C87C763A4B2FE36321E54B1328C9155B8ED6361855A151723
3386AEA3D042B8D89C8C0E9A33E5DF3B466F7BB8C2C8A4ED4CDAFF55FC6D3EE6
0AF2CEBFC1AC3A6E6692F8BB81F82D86BAE85016AD62FCB05467082C2E5AD348
44D1439C2B59F65590E57CA0DE481A7A34E79931B1513C4C30156170409A4BB8
46D412D1DAF88AD30722F12DBCA1CCC6B4BCC28D06B0D29149DDEC520C8FBA13
6B82E2E1790F00B216282FF122EF0D47B70A1B29514DDF7C0435ED238C14BDF5
6DA243117FBEF7398F97EB95597707ED63C6797EBA1B46EA19ABB1DABDA171B3
16CD500F5D64CBFBE4F9CBC3E66A34427D3C4D0C432710289381F9BFD91B4FF4
1E3A896C3EEA2F3105C218877D6C0C6B763760FA364D00065E1CAE9DCB5676ED
286A9ED0D1C946DCA6A2A670EE0936FB4706CC62E234CFEED34AA615C48D2872
A087F30990C85E64BA68F3D5C117123467DB411C9F2D6F6858CC70C1E352C477
713097321B4C4FD4C5CDE305415F998E7245908EEDE6E056A736EA77BD8C639C
3A79FFD0B74B3D28F0494A115F2841CF8A8827AB5608F96FD8998A5F40FB3DFE
3AA0C7696DE4E1D18DC0D6E84B943175FC38FFC42A9C0CBB13A908978C98BFE5
034F88480F32B9DEB2FD228FF6CB0B89B045AB02020C82E3F5716DC640613185
9F597CE262729BC52132F43922B9E28BB71A30AC8709634561B22D13C4FAFE0A
12C4451969226B220038AD8DDA990A4E2CAD53DBEAB698898BBD3046234EB4EA
901287E71CB41296C431383AB85F18882F65BE36923F6C0FD6FADAC5B42FDB68
64C06E047434FA7A659EF7F3D1AA8E547939FBF9C2ED7AC829F03CA59AFFBFA5
A7AD2E0FC7BBE619961AE1785D09444B333993199FFED007382B54DDAEBE21E0
1E75E0AB6D309DBE53BC7BB9F95D342F51798574D70B95021FA40163A86BE6C9
342536A5730837C522D5314B1289D9B7E4EDD108BE7F35A20AB2A16608F6F007
6DDD702A5A9BA1325CE2C1CD020DF677872135CF04F4E4F1E9AA6B494E2BC22F
107C331A7E80718B030A1103804D144802E3B03EF7CB083BCCDEAC7B43F1B4F5
C1BF6016741B741CF7E12B4BF95221A72CC9F4657264771AA69C73DA1DA29102
65D01A0E61F3024E672AFCCBE13CD0B7F54AE1418B72E357A0BABB4D03073B1D
F4EB54F899AD4A41A9F94DC200880A0DB99D67235A2451B25F710C29A882865B
A922E56E9FC16756014FA5CBDB1C32750BD6835A70EB715CEA19A8872041905E
8C660BACDCA26C8247D6B3C10FA5DC240E433E479AC6AFCF57CF96697FF46BE6
44748E
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMBX10
%!PS-AdobeFont-1.1: CMBX10 1.00B
%%CreationDate: 1992 Feb 19 19:54:06
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMBX10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMBX10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 97 /a put
dup 100 /d put
dup 101 /e put
dup 104 /h put
dup 105 /i put
dup 110 /n put
dup 111 /o put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 119 /w put
readonly def
/FontBBox{-301 -250 1164 946}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209608D3976637A
DB9C73EB3A28623DF758C25574D740385B2C3D10086AEB904A33DD76DA2CC4BF
7E37F9117E9D81D3EFDA12D5BDF0067450C5A8A53959C055C5D6087F1FE6FB5D
8306F16FAD71AB986320F1229440C63ACB5FA24E41CFEB12C2BEA2C25E59A3F9
6CA5B7A04B57F2471D36F5B41E6363DCEFF2DFFE9131F044125884739392333E
15418156EEE8DE92EF4C176742032FE8889839755D8D821CD7F8FAAF8A22C283
19F79216C6D454A864898EE9F830DB5F3372B8F47C464DF19C69ACB3BC0566E2
F25E7FF148B2CDA2B90CB5884440F464CD57295728A4415963CC1BC0635BBEF4
E812CA5E0E788035873D05616F7B0F6A30D36BB285E7955CFD860345F16D952A
BF2F7D2702DB352D0874442B2074859EB49313BC27E1067D627362649D82A5C3
A57DC5041B1A13FD2FA89D875019E23C31650A25CBEEC6B93C575C363FAE2164
76ACBDCDFEFC8B7BD24AF41D55196DF6FB2F28DF88349947B448513C7E832EB9
F35B28EF86C231336351C1F89AA9AB1F8C02D0DC35746E97C2B29B7A44CF7418
89DAE02563F58C453F45C231219FC9727D5D477B256530D4492AE7E4E3CBA90F
50E8BAF9435EBFDF819DA9EE1F6F67A0D65D35E3D0EF63274B611B25756461D2
BFEEF8BFD513B0380993B8D52A6546D69773D67A15C059E6A89CAA2772162509
3B054860006DEA20685F5E2937C95B50D07C6316ABC08495EF319B36F8E48FD0
DA482F82D2D981C70ADA2E467608364EC664D151BCE2FDF571BA63FC926CCD72
052D4F83933A9582AA6642773A62555FD57DCF1448BEC02304B798B7E47B93BE
909C2BA1351EF483D0E70DC23BDD52A91391172D27150A70444B980E59DA01E4
6A79ADA80A1660351ECC1541F80EAEABB72C4CE6818C162257480EA3612ED810
C22F1915008ADA791282032FBD321BDE22529B3EE1493BAB010066C6317DFB75
CD9D42CB97A731BB7366D0A170D3E8CE00DDB21095A28DE2A77A995879D026CE
ED6350CDFAF3DB0140E14985A296630EA4D1752B793EC534C60B61F1B41236BE
930D8CC9EC66930E5533FF3A7328F0675312EDF0ABCEE5B559AA42CBBA8CDE9F
F407C8A7E5FE9FBF58CF90CF47F56C5D0F76AD6FACFB4EE3207884A8580CD660
1753486132AA6EDF8C150363743A086B2C138D66032AB2F4BD9F800F59C89EF6
40111353C4E828D61D7937837DF89B62C6E21AB81DFA802A3D106675EE08763A
61D27684F240CC0EFB50434006E3315BD5639B616AF3545BF9888B973339F009
DE44130586FC727828B50E7416A6BD1DFB29EAE0ED9A8DF53CB3E546A8306370
67F9A60F4DE3ADB7B37DB519EA5C793E551301485B1AE60DA7ED9CA3F50FF9EA
A9FD1964C5384459201F0E03125FCBD116382EF3B1693774F084380DC53699E8
478BC40779C80640E0C746CA1C2A03788B41B140E8051885CA590EF733277361
B386DCB99A017AFD298DE708DC15D47063C2B52354E8008A42D6A777C12802F4
D5A65EF3128AE9C600A14F69FA970983D53AD637FEED9A5E89D5CA1A72FC928C
32E6E74397B2EF0BD5836AEAD0615FB1248334F230C8124738B369C4AD756065
841942440A1A7662C23A0E8431B9A20046BABE41AA7753FAAA3805C34732BD1D
F31600ED74C2F2D30B5C415DEB7062E503374C2AAD8A06532FCAB99B66901AFA
73E90A81753D0235B0762E04991FC73F64545C1035BDA459C7FEE514DEABC2BE
37C37E7160DF06FE3466F287E13F1A052600CA833BA100B7B439FDD1D8931DBE
65122DAD5675C81BFE49E1AE43805E2AFBAC3A23D6E95B3DA41AA65FC7EFAABF
DD5AA6661BB47621FC6A7DAD21729EC0400490F30CB74026D00B2CA1ED0A798B
B4CF488E585371BBA519E618C269F47F999B973F86FA742BAC7384EE91C94DE6
088BE1D235965A53650038EE5FBAA6EF06965443D2FDE8FD52A521C6FA492553
C21E7528C713A60C6412F1C1B7312E083799DF466F09E9F4FF07474F21428F24
4850036F3232BEF5A177467A89F1AE5967A8E6745B34D273BF793D04623D0F1E
519E7BA5294D32C926FB29959F7FB4BEB9BAA193D7F2C30E392CDBC25E6A2F7B
A00F4EC543C7DCE8F457DA73D0EF73B773A3BF5162BDDA5C18AB5C5DA8E201AD
2E002328FB3598533E6B2EC5D4F481DB2AECDA3E6D55A5AE2FD1893D7B7A6191
FB74A43F01CEDAFFD142EBCF31F508D6182BA064A8B5B2D640051D521EFE69E6
CDFEAFA0EECF7946AF06715584F9059B858845A1F51E460F78925F830760776B
D5CFB62931B6134B34AB757694190D5DB21ABD3AE042CD9F59A3B434602EFE42
D4502B93B2AE0FCB06C7AD6C3CC1E6C6B4CCFEC730ACE1B65488832D2147A273
7A35049DD6FBD88E4B09B43F8A971EC30A8BDA50434E54967EE684141C589669
21C7A048C49F4FAF51A48870360E0EACC7B4B5AE7C9B1834B88EC4FB53D1ACAE
8E603F20530934509B9042288CE4013DD24F21F6193B1A86448A9AAAFF98049F
E8AE460848C6F06DF140E989E08BC047094C80DA9AD9354CC640EDEF3D2C7EFD
2338DB1217CD5741BB6965E2D6CD2C6BF4EF1DF66CAB33016237E568F7712C58
2A586FCFEE5E089991621A1A2C892B53F8D945734E838DC0D9A9CECD21241BB5
E861F8489B0DF3A05EE643F5FD683EEFC6F8A616E92C7C96DC43147023B11E77
FC2A7CED9204D2EEE35FB57B5BE8D790EDAAC19B150EBB853A07A6A066ABAE2A
E61F0BA577733DC2CE5D3A674725C54D053C3533EE7F68C6E283DCA25E40EF4E
25D953CC4D1D0A8E5E4891EE3151CFD4D3DFD0B428FB634B53C86FC07F63885E
D8D117871DDF365B722A8DDFFD06A6C22C1BCD7210EC14FFEDB569825578B197
6780F0A8E3698BB3F2A6C3B6F13E00124E3DD57A821A764D9B7F4741FBE4C362
8171963AED17179F9A95D9DCEBD24E9D032FD6A393B9C75DBB32EC54468BEB63
5A0B48BE302EFDE364485500F780C82E0D6C825A858C9E9F71F4C6E2DECF7E9D
872C71143E9E272F5A82E0B77AE0CEAE3DB11942B72B020E3A30213D97B661FE
EB583258A2CE3452432A517FD6290B17CC730A30AC2D647C232F668E5E3675CF
9D9F262DC3CDC67A694A8C7BE1B6E89D25C430B58EF63AC518D1A29E7496DC25
5AD9F6AC1EC9A17C6A9FAC798039660AE8C05CD03E41845A7C1FE477B5E2CFD8
0D0052D15A1657813E2844F45C01E6E694D05A8BE6C692B9384387DD16F30CC8
734F639901894F74444CF04F37DE0FC323C22E877304DBB59349E6609C543677
34DC0AF2F48C3E03E61B119CED5F1C1C0C764CDFB06CA29F946776607B7B3068
F7FBE46F571CF7E8FBD304A962CBEFF1F04A7C3485AEE8291192C19A35D06E5A
CC00EBE7F6C5C7AD308AE1D648E8D78A25475CCF7C3E7745839299FEBC31E23D
65D1BDFA1CF3EBD0D0C6C5EBC6982EA25D1BA629B9C44BAAB788BBEFE8428BDD
D54365670F9D3E20F673AE766B4CC74F6913B0272EB3D02C71D8AFD73D6CD2A5
6A2A7DDB0C334D3695E32176DF078618312F09F2C619E2445F4109917F8877D5
6786F19692F56D49C92D9019D6676BA151AB7D7CA3A9AC55C0200A2890C35BF6
CD0CFDFBEB989244D7D77626C72E45E25EA4DE744FECCADD62CDC97029E1911B
F7D868B8EA484D2BC45784BA2795A5D00C0F1A0A8EE14FF7613C8B5759EE97C8
5A8E088654C1A6E816CC900FFE2FCF71CDA4E55CCBC1BDB250B7F7B4A0710B27
B0D427315F18FD3752EEE13C14B9A5C1A34B867059521096B1246AD21C12301F
EB67D150528CB1AEE2E22DDD436510836ED22B4D82A71087C0C50D1A6DFC4AD4
DC5FADF6F5F757FFD25D91C1FF7A4CB16FC9FDEF3CCC4861049F4CD392728772
9DE465C5265F24BF803ADA07327839C8337C3B95239F2AD99DD867FA336D2669
F269BCA4BAE23E2F0743C5B8C39054
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMTT10
%!PS-AdobeFont-1.1: CMTT10 1.00B
%%CreationDate: 1992 Apr 26 10:42:42
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 34 /quotedbl put
dup 35 /numbersign put
dup 36 /dollar put
dup 37 /percent put
dup 38 /ampersand put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 42 /asterisk put
dup 43 /plus put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 59 /semicolon put
dup 60 /less put
dup 61 /equal put
dup 62 /greater put
dup 64 /at put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 89 /Y put
dup 90 /Z put
dup 92 /backslash put
dup 95 /underscore put
dup 96 /quoteleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 123 /braceleft put
dup 125 /braceright put
dup 126 /asciitilde put
readonly def
/FontBBox{-4 -235 731 800}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19
38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF
D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204
EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727
A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593
F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714
4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA
6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E
A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B
E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F
1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438
452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF
8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369
5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA
DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9
BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19
741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79
E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712
E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7
D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE
C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DA
726405EFE420635B5B7F0B48752C06083E92BDE06401C42A2C528C8A60381227
CEBEF0C9440DC034DAD9C19FB27DB399BDAEE22053591D6538587C768C1B7B0B
7D1E222D2D8AF3A6473CC4C0D6C3E0DB49068CEB8C9BD1C5CD486A50DAA10BC7
7D6286142355E3F21DD254E27C00C442728A0BAEC9D3F17AE9CE320D365152E9
EB0D5E3874F2BCEDA98521D23FCFC30B4B69DAD2ADBE80E5964ED0ABEF6C73B6
DAD30E2C5061E3747FE536E1A5D190D028F2130AF608F5DDF9DDDF1E77DC8437
ECB3EC93B33505DF47884DDBD1DC6BBE4098DF04A29AF6FA3AE344600D0AAB53
B3820DD7ECB600A3B8001C51AF2CA7A39AE1485A0FCD5D16F0657F61E9655AA1
B8326F1813FEB669F4EF61CCAEF05098C73D6BE54CE3936F10EE4C56D0B8486E
66F02EDABFE670DFD8F4C41F743CA204E5C7F64B9D06544E1AB0449A45FABC91
5F0536F53E88DFE702A9E92DC317D5587E49A2E4AA2D6C07BC2974FBE2069E05
4A56D8029AD43F8367FB7BB624A49847435ED26374035D5B1EB9505B6D8D7555
6665128B99C201E2B34FA0F362F572FA69E160A4AE99E0E058E53D548B7BE991
76C432D7FBD61DE7DDB8C0BF8B01CE184C35806E9141B79A6DB955DD756C8EE9
C3114D383290DAFD03286DD852D73CF5EEA5657245276DFFF49506B1E5F3EF7E
DAD841A79CEB7ABD1ADED33DDED4BB921F6CBC1C8D7F711169380254070114BE
0F0FABFDDF8DFE74F44D87D8F424F03A3D4EEA65BA913713F837C5128203F99E
12BDCC878BA17B34D796FA747F6D778EF068DBB771554F9C64DBBE16024AB356
FB15A245924EFBCDB3BCD58ADB6AB154DAE796268F407EDE778DF79804532EE4
DF63522FBB599137E5DCAA0054CC09924603DADC05F0BFDEA4D1C2CAC0518633
E4D5891FE58A37D4055BD86BAA99E6B64CCA60BD8B7ED9A258C4EDD356EF78C8
156756286794E407A857F49DFD1C286881CD18055466F50CF2D768F319A2B1FD
116DE2BBD1C0E481D77EE0BF879779465E0E53605DBCCCBACCC3887A4CA8CE1F
E5D3E9B3D84D1CD5BE08DB07B5A324C5A752A3773FBB420E35D2E2FAE456C7F7
66DDA4A2B0922EFA48C7BB12942CEA6EFBBCE12BBB85DE4D19E224E9B602ECD1
3B28CFD50CB2C66DF52A6B4E82A7E9846B0C9C8DB8E90A62260184FC1A470EC6
A5EF9FA92C1F9108F297AEB5C5618AC3DEA1EF3A730A16F8771FA9A65469C26E
F63373649A4A726FC526F1D3186E8C92B3F1940DE24E3A30600F2196153E2B62
1A8B7DEC5781F3577EA3109C9A5B3BED4EE646625CDAFAC8996046851B50EEFF
8D42D20DE055117C0DCEA3A554DBE37D5EFCDAE137564303458F4DE9BC4248D9
79D0FDA7FA1B6551D4CD22F8995E514F11A224C572096A184BFAE2CAC0F49AFB
6344424B5C8940AF3EC477AB1CFD986C5CD99402D5A42C0485245938FDCACECC
D9AA7E145D3F46983EAF9C0851C555EF2FB1F6987C6209E192BF798659B64E03
21751E55FA15B81CD76CB3F15DF85C528CF092498D126FC4DBB7D56F0164514A
999B6F2D3C2C623B97D0439CED312BF5F691573DEF8FD249F904AB4097028691
03D14E024320DB6D4F93C68926B8881B5485B445A668342F88E58F57F13A58DE
078296EFFFA5680BA7F2148852F41BBACFFED59CB89E459E9C71AF71C1C1C267
A2E22492647E9E90BA72039B18CBBFE8EC94B921C5C76B2FAF888BEF44E58CF4
484A5A41DF00263D1C4A99B1F1E887EAA3617C6ED0C38AECC08310A03C2870F7
FA0FE3A6D8DF769B55758342D5866E49C9724566C896E82F850DAFE1FF222629
3814410C1999D616142BDFD986C2DF597365AD905BE00CEEF4A1A0D4F71F7560
4FA1C02BC5D4CDAA18681EDE45A682619E7FF4E2CC574751757EA43C7CB85520
A98D8B47D45E291B0BA25EC803B465198F32981DBF99C4EBF3004FB5B083CBE3
A68706583F79FE0F3152B07E99F0016C9FF4B5B54415CB366C316DE071EBD49D
B7535C5640892CB99DED62E24B73D6BB9626C685F9EEAD6FBD63679B3EF89DDF
C503EB242CE1A0382877C1F93DEB9A4863863A908C640DA19BB24CF48CDADDBB
F0FBF8968567FB87147F678EE8D3498C21FCAE562075A15A412CBA80927C8DFA
BA47B7E80F3CDB6B1EC445197B6B20662BBC206C75E0EEAA11F245CF12336D49
4FC0235C17FA03991579C3F31E9A7254166B9144815891DDCBC805B59DC28CA5
E8F542ADF39F07757B06F9E1C8264BCAE3FDB6C710BC2C4656B997BF7E895DF0
C769722B5DB9EA254B34AF588A77064DA887031B32CCD2180632CD7EC4D4AB5E
BA28D887DE6DC1B912C99AD7BFC0891CD1B6B8C836E7E3A037B2484E5974112C
830575D110DE9FEA4AD94D37E2843306A6CF744EC6830FA60774133D9C49E9C1
DDF8F9696D0A9A2BDCEC578F3D0BC2CCB8A22A4AF539589CA4A2FDB45FE47660
D3EBCE196804A9A7759FACA2940508EC3BA1923706FD1B8664F6F02B731F1ACE
67DD39EDA612B74008E82E2046C8A677114879CB9811F48231DDB465A9BEC565
BD6C5C742056B2C5940F7F5AB9D6367C15D4CC92C368B6536D77A5B2DCA90D5E
0CCCB58D672C3D3F5168C26C4632670F2ADAE2C5B2A1E69D2F984CD210EAD333
40D7D6A5F8EC4EB54AC5259A46B6380F37C76478BB57AF6C9CF7506AA8CE8C82
2571C24D958A65DED2D4C23829C3DD78CBAD71119838D5DDDDC45A095F58D8E8
A3A83A32A9EA790592300D848DE2C1B5F7EAD91A737D681057289A86E7C423C8
389696F1901AA2B850E1FD3ED8852880CA8E89F2091B61311FDA0E2ECD51AF3C
369AD0A08DE9DA1E052F3DCB7C49EC44B6336F3FEB587F1599A640E5EE95BE26
14B3F4A236DE2A5CCD937CC7AC2373BB2E9DBA76A65480E9B87687747D492EE6
458E2254EEA7D504550DBA3A7F4D2E7718DB9B959B65B0B5D79C692B71B37C62
DF5E03A4A38527F853D17C81747F4DB9C86D618ECE977AA0AA9EBC70EF507229
DF089C15FC8F54A1023F29BC817D4DB6C9F7BF1024A859412B795A8E07E4EE5E
5355565C4EDE0AD65AC83B85B459EC1CBACD9A450C9FB7411C4BF4CBBD7828A5
A9E9B671E6C7CAD6CD5F93C8C6CC72C1233C4610BE4FC8B5C377FB7D927E55FB
0CE6E1B337C3E19F9BD7B010B155BC592F342DE7AD6B4286E4B376BD488DDD64
D2A9173F7ED250ABB2980DB7BB8F367089D64504DF14F88C7845B5915F8B20E4
9E876A2480D28ED988826E86DA0C703B6F3AD68FC98CCB91073D3DD3160FC00C
DC3805D8F14447AA9FB199C38DD4B28CB1E6A8001D3903AEF515D822CB784DF1
5C3C179EAB1F2ECEF25C454E7A2ECB454C620C24B80498176523F160E40C3A9D
DE03DAC25A7E5399174A9E8DF8115DBAD6D5B8F16B6A59E7DF7E1E0DF24595D9
F7C6B1ACA13ABCED81F6DE6AC64D1E64154833834EDFD6E12CBA1DFD035FFA6E
05DF3FA5F8173D5C8E43D3E4D053ECC5A7107A38A60E20C93B02BF82C9559C6E
E7C0FA5D9B5F02581AE5AAEECD79B21BCF1C9E1DF0467CC945BB3FC8E9E45CC7
543B34BF2203E212871AD67E10815FC82F76ACF773559519309F5AAF03CD800D
06FB2ACCCA695B06EB64BF455D7353FBE8579FF62E5C33BE93A196B3CBF875F2
5017FCEC574EDB29D2564AD2611E59819994746FF7A7B053302B335EDA8859FD
8813AA235724EDEC0CF215CD4F4FAD37E3A0DEB874A24C4FBDF64E3654E0A350
C0F57FBA5DE0E6333261CD37184C91E38682FE808DF75F98237F158AAC0E87B7
C84157DAAAC88B0779C26DA29F584C065C4B9EA84D74A9FB3B8928751AF1A8F6
5F0DB7A23D7F802EF8A7F9F6C2EA8F4941516D48E12EE4A44A6362F9FCA2DDFC
EB7F8572571BC4DCCE2B2D4F3960AF71BFFB9D98ECC8B0220E79F15AC7A1B490
13121B21C6C44B5EFD8F0BA56736E61F19DCEF803096578B2EE9A9A54F644E1B
84E68806781A5151ED9FDA8F845BCD0B195FC7A408C7AD075E9BC1843CE0C727
026CD9C80B9D7D706E846D67F90128B15955B64F70732AECD8F31909A71A14D5
EBB0E466F7E4274423AC1F139D06F00C6ECBEC861D7C8A2279E9DE2D7FE39966
A1B7EFADB31194731078C4ECAFD04DB6F3D9B6CE4E377398D8D0EE5EE5E0A5E1
515A950897DEABEB0D454FC7036EE43CF196B04FFE50DC6F6D58BF03C3A74978
EE7CF02EF3901B7F623EB86B799351D25C79FA672D7D98F924180E792692EB2B
A6D8F7515C4513C6EA40969D3EA10AEC27B9CD014AB3C4E5BD6AE5522E03BA59
3F4F23C75831B15D0BBC0F9E35852F87A466BE24AB67342DD2F19CD2EB43211F
29E2A8B49D6B9BD5D19D846F8B82CD65189C511E0FB597A25C62AC853EFFFB9F
CECAB90EB54AFF4E40CD0CDFD31D39A7E99030CDCB3CCB61DE928ABE9E0685F8
6CA07450052B90E00641A2EF0FEBBF30007B574FA0CE4365D1844A59841C0853
C7BF5A5984ED0F9821F1CAACA7FC67DCEF57B54327060F4C60BB5E6CE00AFF20
5BDA60693385F5E96D58D8F6EEB6B2DDC1DE7571DED81E65AAEB3DCC4604B8FF
675A7A967DD548BF5AD7EDDA2D6815471CAB5A722E5AA61CB4539D59E043409F
F7EEA6E3EB7D9E5D6D8B0352D32BDCD3C0A13F600C9C03E7F1347F7F0454DB47
C869BC403BC8DDA258A47AB5FD91C1BC0480552E375FB3B015185F35E5786438
0FE833E73F050F0134295531FD0B4086DBCB6D74D1570B3C71DF15B5956396A6
CAEEDE60AA38CC8500AD215431A01EADA80475E688AE8FDCF6498E81B357EA2D
A46DCE5E9107713CDF1CFFE71BC17BAFE4C9C2D635F8E0DD3C54012F401377D7
64E8BD68716499ECD63EDF7D847073E32D2E6C2099D4C5DDC430C6475ECFC2BC
DAE444984B59906F1592705BE5ABF26AA10AFD0271CEE327AB4B9B191E531646
9E69539A55C523AD838A0692285F0EA21FA3100FA739B391ED96B9453A94C242
08D6235D012CC4AEFDE63384D463B11D378B5A835BFFC81B95505107FED0BAD6
9237E44564C0D82A3E4A974B57A904F475BD973710068DFFC91F7AC842A478A1
6857BF1B9DF346CD23F998D64C63B23DC3E4D2A47017EF26D6E475FBCD92C674
167E092750DCA1AE02911EB94026C58912B3BDC5B03D4362D5C4EF76CBDFCC04
CA599719B047F85A8F04D88C368AC467BA920418883787EEFE21C4377CA7D417
3FE01C86113E48DC72CE568772F6930AF79EC5836C0191987A6E33406DB9DB41
C8548744EB4154C59D20273AB56FB83B384837C26C188BAC0CF05A4DA531C954
9ECD2440DF5692B784CEC9492C0BBCD1EF3272545C7CA8618F4A847F9E11C29C
714D0E3E201B5DD949F96AF8F928AD5B72F2588A55EBD1A9C3D9867422E0CF4C
76536728970FF8CB5401C0E816294874E4D52E9C08135FA390377EEB66B8E33D
F60AF1E9EC3D9354AE18F215519BEF0AC1EC037AFC733B5C897440BAAC8557E4
37B7B21A00BD478B91B3251D1F81917A052F6C0A24E063194F0466922AF9EFC6
D619F6A84F97C932A6AC72141D2420E24BB20773FFC8D636CCA493BF1E65202A
D02F78C5A1CE9B325B83CE002865F88305AD4E0A50F9261558B2B4978056A620
0AE9C75BA65F63EC8FC14737D55B7AFF3566BE88443081ED37555E504E9D2125
E041C774F99CD74B8EB6F027C838C03DD59E36B88BDBB9C0F4C3D0C7EAD96274
8E0F4BC5D387294FDEBC3ADA0E9846A6C2869B7B49A332054F6C28F8FC55A679
1176654E35B0AAD9FECEFEB1C967F9C0F8A5DB5575ED4335AD38624E31F45AE4
1A2A3939DA3FBCE9BE99C284867B06AB66993BFE52615620B161CA52893DE0F0
D1A79C9F0399F42A5CDC01B15F4BAA71E53B0ED415031D9984D3CBC81B556C28
CF514D3A160B7314DFC5019C9C431FF0CD1F38494066D0F9EB3A8AD0A8CA0646
24A0A58DC6B362EC895A9BEEB72027DEF4A5320B752496A172EF32D14C3D3CAB
81DAAB12269F5FB13EEDF2FA30318D4F7F5E0493E54779FCD956456C6EAFBE0D
15A2BD6D8D07D045AB8C26D66143A3F24FBD76A00E51BE71D48B45799444AE82
F321135FBBF10461B3C976A5CA9EABD20E411670702B2BC1704995FA95A6B676
631CC5850679256AB7003FC25F7DFD39CF2D8538A8B74116B2F70B3300BACDCA
3A34C1D7DF9D3732ED02F39320FE2C6E01369F4C2BF90551D80F160841DB4629
186C5A26A0DA6D08A965A366684BF3127A3D1E14F46BDA3B46F829F70B255D21
3765A752FF2194BDD74E34A50C59D039C46E10C57538264457ED875F12B656A7
ADAB03E9A3A965811D29F3FCD804D93782294601EF94045C692DCDB3D789E3A8
33055DE95A331B61B958747ADCD6A65EEBD01474BD8E127CABA7949EE6A8143B
86E561BF9CD21297C3F5A330C73DDF08B592F631A9DE0E717A4765706726D499
FE1144F05D3CE8246EFB108599C39345E93C27C8EA35BFC0DC3528F55DAC605D
0478D40A5F13D3839C8D1AB0597B1679CE02E8A09F105179AA8C42A9A2862A2E
40D4361789FC9468885C2068C3DBAC199D1B4E47DFB9C9F9AD5D7598B6D05F24
D53F3B7A129C8B49C946DD40FEA941B89C9EC75514A3E1EFAD180B932C08CAD8
5E5F538903739C150D68702A856B1E1E0B11E262AF51CD1F3DCFAEE2B60795E2
C355D82E0E8B88CB136BCDEDC53D823FEBAA42C231CE55C1853D412B992352E9
130DA25EBCAB9EBDB1F8B75EDAA1EF3B8FEC09F0CFD1909A159D9DD8A15BEF90
1490E788DCC536051CCDF4522337C4EB7CDA989F6EAF09FD8A849231E1D0AB61
AD043B9898FC0DD1BC6F02202D8BB63388BB0FF323073CFAC95EFAA14E792EA7
54239813B08CEEAD085EF994883031FAD6CE4257D570888542136E70EFBC6E96
FADBFCFB148CAA3C9E21B402D6CB490B127F00A761C37D482ABA75A396D5FAD4
B68114BE15987188D34A6E25EC764FC52010040EE830952E92657C1E30F744E4
54940DE488EFD7F8105346FD55F95A942B308C569EB4D22B44230C797E0969E6
1E9496C43DCD898C91DB82FDE6721043BAD7DDEBD6F8ECB79BC5EE093FD39F13
678851D4610C2F105A7532574B4427535178E62F125F1A8098A0C1CF09AFEC6B
5958BDBDBC8F765BACFF90B705E2EDEAEC63B1699D9C076BE99EA08BB8B39C0F
107B3C09962C59D66C3F725FD0ECBE05B00B33D4D950869F5F3EFA578DCCE82C
514FDC51EE564ADF56A2C01CCF3327D14A0B49A7A4D661B4B2FD7F76D5BE4175
72CDB5D4A5D556304FFE79A849070F666990C699E804305A20FEFF0AD7C46C4E
772F2F818020479052D428B1559A0163C99453CC883DF631D98F5766381F7938
2CB87C68F5AC50AD6E82F46122B84A522FB19DEAABC17F57721047900B3B189F
7D91AA51CABAF053A4F865B3A3E1601E1187B069DA67A483BD6E0C254DD98A41
0442E3D8ED6F2250169B98F6A3ED2E3D9DB9631D2C804F545D6162989D31CEF0
D8031B23D288FCA87B8489D0A1E83C8C14B816D7F2DF671201848E25FACD4CEA
48BB7D58570EC0F43DA33E0BAC65860453BDC9E71B54FCAE6EDF04969F4B092F
479C6301DC7E0293038D1850AFB12478FAC8EB6B619A5FE3F4DBD6CE1449BD58
BE4F33A893E6BD91996F5B6CEF8CC792A4A09400E99E57AF4C02BDB44DBB076F
A6B52978DE9578BAC24CB0314280C8E01DB22AF38F243625C88B1ACB0C74BA95
AB92801EB3648151B06034150C64AA944D007536AB50C7EB7D62F64704E006B5
2B1A7D3D1DB15053F454FC5DD0677813AC6E38EF875FFA7E306DC21F4BDCA032
23F09C5F2972259CCBB81F93D09001FC1EE8EFB7930FCFCBDC2E4C6302B1E4CB
82F2D8E062D2FE7BEEA84899921DE14608F3E80025D3D8812EDBC628581CAB46
7B93ADF4B3DC5132B9E9E36DED114077F0BE8DA4AFBB8F7BEA125204CFE44404
4DB8DC722F12A20AC8A5084A7AC93E8003CF7C24908EFB5A734324E856621345
437CD20CBDB3740D38981A5DAACB525A17474F5F85FB7D757A6D08AE78AB2D5F
89762575D264E29FD8EC7A7ECE2C4F74AE641169F58BDDC8C4BC533B7AC7AD60
61BC5B429E97C240542128C879A9D6EA0A9D4C05D6423359E04D25C07E53898C
F88D4F0EDFCC535370218A440F214AF5EB2FE2090585C6E13974AFDF92F95F22
538D50D3EBF9EAD584974FBD064C58E1A77AB99D6DEE84BAF47E7DB4C51E96A9
5AA3C5C78AAA3B7A9C73DB9D582EAE1EAB83668879D68124FEC58E7F7C0C0289
A19AAC8FA63A9C15F861546B4957C1169FF50993CD15598137D0CFCF04E267C5
4E306F920E065579AB7C44B02F7F89263AC0F984D63FB0A7A723EE086E8CFD39
BC0E40F6277A824FB2E53CDBFF57FF1CBB62F8E2AD2C13F36042FABF5E84EB95
1E47494E30058F92ABBBB576B969FE22E93EFFA6A6439621350AAAF1F0C391DE
71FCAA583BAFCED79669BBDFE69487BEFD9C4CB1DBCF2C5575A45D016254AD02
7110C17C6EA288DA6B6B145F1A6AE10D6C70CA996B1E908D13BBA2555E51D7E5
696CB1D9FA80352DB942DEF37E6D8FE5B3B5C05E39AEB63A4F83E7FF8A02B9F0
AA1FD7A03D410B0BAA95297824FEF721625BAE714C82BE603F14233932E0B212
94324A8A1B7CC68F5C249FE637136673560681282ADB38592E5349FA63BA68D2
90447F64364054D6092B893198B7F772CF627107552D3A4EDB47B58D828728A8
D22D0B34F413C4C21E5647D0B321B6B211E0830899A273EAC693F467512B5D16
9EA46A66E73AAF00783CEFA678BA46EE65BBA1A54017213461B146EE28BBE146
5186FED35B5D9DF6B1C29FD6384F2B882EBED0396BF0CD9C6A0C80F2CAA0D17F
1901BCD520A166AFD7787557CCE8B3270896E0CAE601CDE94FF6186A65FAEDA2
8872C3BEA06C7AB218EB0C18C1C611294989CB1BB896F45F193AAED81A3DEE32
C571D517F311F415537ABC1951C033BFDC0609AFFFF246C4E12E405D8AB3A557
19E3A35891700937E9DDF00F8E5D4C89A09F04312BCE74C53AA6A4050EAFF1BC
CD9FAE24500F77AF6E0A997089CE47EFE3D8643DB83720EA87515FA01A50AA45
9157E2DC1D37BD166C52A903A4F7B88E15C006A94151399ACF8492935B4B28B2
5621DCADEC0FD03A317BB323F06A966D83EDE2D4AEB49E19543AEEE4351CB8BC
A99074D1846C8B6118F3F464DE5D6912F68D9BA30D50D8BA4DE28147EF3D9DEB
01367E889FC762233E56FD6A56E2588796B79D591DD57C03698B22E21EA82801
FC7B994860A325115DC22175C2B8BDC9C2CC88DC37BBD9B05F22C61E7DCC26F0
0B554789CF8664ECF688936427D98883D5ADD4C0B8FB51E9AF1CDF3839B22F10
A4F9B5BC83FBE812C0B19C4EE359B93253D43A9F68BF083132180F96FC809594
B23DAFFF7562263DA7DD77BF0B625CE68721EB88230DEE011B5DCBDA5BB27236
DCFD0AEC7828630ECDBACD700274E9E1F77D007B495E56CFBC2737367235B52B
4B757DB9DDFE1BAFA2CF9C66B72DA4C5423CA21FC425156020338BE97213C990
DF02E327F41B08AADF7C3895DB24E3B9A0DED10B11D7A6B789A6872ACA17C202
13FA2DA292F3F4AF398D2C7548711AB60AE3704A322ED418E27CA51FAC181960
9EC62EF5CC6F2A9039BBB607AA756431937D397AB44027AC95FB0DBEF0D04BFC
6CA824464458CD2000F5B60F4B61709483F5C5139FB2E511763654A55B2F0A16
EC7A14DE0B5DAB388ECD328741BBC84BFE419E74DE02D76677B369A56787BEA9
C36943B09B05A8DB51E32F510A350F89688E9DC5F73AD88C124F62C5E1742D8B
C526003FC5E28D7F1628EEF6677EEC4966E84D57E9AEB0BE5E9FB2AE0C07D0FE
3B25F09781CAB270C0B2AA34118F86EB5016BBB7121E9ED3A7B6E2005A302A6D
636625E94A91E6479C01EE1AB6B1987BA89D876BF3A22E05CFC49B3ACA07A36C
9DA1CE5AEE751C4098B73CA25E092DB1821FFAF98D6BE874CFE62AEF00C033D5
C764DD1D1F2C94205BEEB97ABC5AAFA6817E253043E348CFFF2E022DC51E6F33
3D152B84CB88DC33772533EAD686CBAC2FAAF63B39F1C83F6B7DF0C19ECA879C
4E6A1F1F489D98A6E6E98662F209BF6792C53C07E6DCBAFF7712D6824C997A4C
0CF329BFC8C11287EF4BE6EEF4C85FAF886969D11B422ECD0707BD50DF9D15B1
1738DAFE0BBE48E3234CA9BD100E940BBC4841A72A009EFECF8CCEACA68875D4
99D05F38BFD7C399DCB59CC90588B9B4C30A376099D410C010EA1218AE15F6AE
43DE1FCCA09A0915CBE46A4545FB9E12F016F29F85431A380479C959F1C4364A
416AA7B5E7D2CCC9D0FF56AB7E99B015601366B97018DB062B3CEDA1F3BA93B1
1B0E6503E5CCDC64A610B96F7EDDC1790144EDCAF0D3F1E3880B3DF1939C3720
D90C5724DD06E2299641A884F379305951FB9F81A4C2782770069AB5F563B0E4
F9E1FA40EBDA50F36A8406E3547ABB6A443B9DE2A2813ACD17B639D3CBC57C9E
6C2DF03A5596F9CF42178A40DF725CCDD18EDD8642146FBEA744A603E850CBE0
665FE5F2CE6E691D44FC6AA70880FB1E1796FE6E49A7FE18FCA539591E066543
3BF08D78568FB430AED84B8CE7CA07B2E0BD4977457CD18D6EF7C978A16C0301
CE44E994C65546BBB915DB9C8A09D427B70B7CCCF848FFE89A51005C449FD37C
63F35C734EDC4F6C09700B60744F51D111C642089B202942174990DBE413F950
146FD10B5FB5D28BCABA713E75A971E5C6554450414A4A908C36B09A1A475421
0E81315A5E6E40B488E9531CF048D1AB0C09C307B920E3948A033402D07BAA34
23B98C8BBF6816129CFEB665CB0117C18BDF0E5D17FBCA5FBF07DCDD97219C95
0880CF1E9127AA8E72E8115A35F1DE7840EA01E06A489604C3980327B9C4A667
8F6A5F74F38F86838E11268DE1F8BAECA8927D67818EF60C6553E3D645D74864
F679CDE21AD7B657F567B03B697F2C2EE6182F1A3274F2E43135183E227CEF69
B1919221CBD3664040F2823A2D9EBDEE36D6300AA109D0693B2A69162D7BC1BB
86CB892CC774DEDDC99F92C9DC8CBD3CBA4D6B84C1599CF2261E96B24BA49C8B
71DE5731E687B7A0A9FE05AFB31298058C3F573D7988C8BA76173408B720A273
5A8500B5C2DEFD3B16EA606785F1CAEE0DC351BEA9FF1642412286B3576F26B7
AA2757EFC047A0FA472C2257C1133BD2904448F1527A8B88A8842F6BC0721034
77A4569AB2EE79547E703A21B52BBB7B7779CB839529F819C147E50E545FC8EB
03AEB1008D3C59B0E2CE719F4F0B292DD6030A8B7BA959D71B79D1F53D167BB5
FD88A91B985A3E1945B32641F6F6A8884293DFE5CD41CDDFB7A875E6E45B0676
E0E2F27F77DE2E3A04AF174CBF4400FF3ECFF31E71ABABBB945680A93400EA48
6BF761A86C0230D9AB6F7338AC1298C69F28491CD377D747E2B2340D302CAFD4
4EEE642CAB20E86AF26DC4C86176F32F177577AF9596819D4778B982D10622BD
BA074BE2E703EF32C888CB41A6E1CB08B283F3113480A6A38CD4D4CF19B67827
7B64B4959EDC07725890156B124C42FCC414549F66CB947D5376EFCF97949F34
F7C399FCD27F308AC3B57B5687E87B2ED2BD02779C39017B97DC3832038C0C33
D2A27E426BA52970E209C8474E1FF67BDCBDB1DD8F7FB86DDC95D3385B2BF70A
C58A9CC16697E8AA20C67EBFD91661389CC3450549B046CB17C8CB8B9775E99E
1BE18F5B93C826C3B7505BFAF4829726D188014BCFDAFD53CCC1E2E14CAF8996
B01F8F9F89DFF605356337605B36B3EE932A5F76B0DA0AED1AC4F80C4019C03E
7BEAD387BBC5D26D5DB6081AC1C230FDC714E81A3CC9EDD7A98188810A51E95A
AB779B17D442BEA1B27AEC14BDC0A09DCE674261C44FBCF371C2E724593F80FD
02F79C84D1869A2FE5C8F3B2F452F1023D5C0DD0753C438B1F397D96E8B9659A
BD4B772EDEF6D315995B435EEA7C6D2494B58200A88FACC44C2EE2B166E610A2
0AE6C244690A78477EBBE1122813041EAE4509D2082CCEB55922C6024419EB54
5E791DA1A8574FFEC27C51ECAE720B89C2AF19D33EF6E69C9E4F9B2673781448
0EFE546A01BF3934E5E17593DA99BBE0686E519F0662EC25C849DA959E60F804
35EDCA1953BB19FA6A5F4B61849DE8B562DB30E85383A67C9E242944FF80DAF1
59A51C22E9CE91AA5B92C001C9CE122EF6C78E42DCEF622B0BD76D2FB3697C9A
2D6E0942A81AA67EEED73B03773FD5CB4E21831BC096C07F78391E47061486E1
88008EF87DF920B329BD0BB7C918369828FB1E3F873BD12AFB2341F845BC779E
60B7625E98BFCC3132D471DB7C6A7FDD6FDB9CAA2FC49198AB42755410EAAD9E
0B191DEB0CA44FD5BB84109112908E8A8ECB96E070CB473BB280BC7D4826AE03
A579F724DB01E6678F428408D34E9344A64D8D2EA7675D820C561E8145CF1620
3E13194355B2C1A57697AFC305BB906308E24365E66B6902B4269C5671E1AEB0
E9C611FB1FF44BA6E78B28B223B01EFB64AE4502EF98AA5B9374D10232C98881
B64851BD3820ADC4A7DFE08E4C3204DFF68E5879C46F2E1AEC856439DBACF818
51CD04EE662B20C58017CA80B3F888C7331A06E6BB81AFA6674E50537AC6CB29
CAA446AC914A00043837A26667F4158BE018BD8E62A503AA4430ACE200A98DBF
F8B8B78767F9CE4D549A087F7FA1E96F371BF6703FCC0A1076A60DA2F50C2ED5
F9BE2D6945F5B7F44090CF3E10EB18FFB0EBA92F4413DA97A3B338154A9DF2E1
D4DD0F9DB0BA706E5EA5EE7D5E591364C62AAE947076DDF0232E3FC71E477668
B9D731D9D2FD1B78DA993FDDE06ABA940F9D35F01E5801D2FD5FEB5E88FA7D12
7B04D149E4E46145D4F6D9233D4DACE9C1D4BB69193112B0FE831DA200102FA9
29C096324A64C6DF0CCF3D52EB88FDDA629E7A71B1360F38C5A87B4E1ACBF294
3895F1E75E07FC1857AFEFCFD2AFC9EBB2C617D7751CE609A5F24C77F549FEAB
651B13946580DF56CCA73DFD42B7A1C81D62E0717DF34D889E4A87DBD5304387
AE2FAF2ABB39360CC802F24A695409D3351D0C87A76C09A98F3FFE79F07EE365
7BCCB54C76321B82AEAFBBE8C0C28342B3EA76FDD90283E1FF850684502B019D
B3A9691758090160740CAEE96BEDA8D6BBF2AB321F7106834155E77AD41E358C
00879C8A44E91C60ED86EC6CC9FA711AEB173E5271F7871733259DC952D04BE4
CC53D93907A1CDD026DA5340954A025E42EB844BF5A594E3E5D316BD5B419CEB
C08E1FE624B225955E751A0ED66A87C954E3F755C0E3BFCAB2E2AD8B27BC90F0
432C3AAC430416162AC63245EC4D2926AEAB134B5755EB584263DDC91D3F93B9
BAD527C3C0A5F608F0F2EB26365AD8EBA76297F57FCBB98B64AB660109B1FCA2
8A21358E83536EB3D3CE7667AFDBE1DC52B7418630CC8F507A00827A62D15A13
AC5D14A0AE48CA3F67C8CA759011C8C23AB1E3FACC0F28E59FAFBE57DA7917CC
56A636818F6B833441FC7BF1061C899027B56329D287526EF098873824F599FB
199194A22003F05F0B9ECB14BADEBF0DF7A6C80F50839A5FCF45209E3774A50E
17A375F61C5D3759EBF26EE62DE614FB8CFDA025550A0D56F9D3FA34DEF1F7CB
EC6368FAC63027C2887BDAF2093D247B057CE8EA80A2B04ABD2EA48108596C9D
654C41B566D01A78A01C273CE3BB407A417D8B50E76A2F9257700C1EC2918844
3B980340453944288EDDA891C804E69155179A0DD1EF95A4D371E88ABF0946EE
BA7DB725B97CC2B7A4BDD0740C95A757D9DA85966B91AA14E1C85837884B1B78
3CA9F7385F585C0982C43E7C3F4E3B4F11829126210FCEAF6C6FC9C6A5DBF3A4
E9D86EFEE1400DDF61D630815209994807918C9A196BC84F9B64A31AB92A36AA
271B021359DE85EF2A9A757047C6275DFEE63C8EF59F02F8248305EFDC5015B2
3011D07B98DC78ABB7FCCCF04575D5B8AE25696E053832A60DEBE4162545713A
57B48191F1EBE7C3DD940EA198400D89F839B3DFCE6E14CEFDC26AFD40FF7163
E6CDD325588E396653C3050643C3BA39B8E7B5E7B8208E0DD4F364944B8ECEAE
CB584586A630C95140E0B4EBD68BA981287F57A4C2115D560FA9D3AE2960F8D5
2043019D0C119A81B4F060DCD13C8A7A6DCE37CE61253F1A06FE1018E5D5447C
D692C6289EABBB35DAB603564F0ADC831760E40608EFAE87B4811D6C524BDF24
1EB98A26491A7C64DCE206293B7E11C9D380770534F3F4E8D31601056C983D39
915A7581647EFED73B5E6030C6814AD8CCEBCB9DB56C39A7127801FC22A6C427
372C13FCFE5FFD96326E8E5F639EE95FED1BA04EF6BFA7DE21EBD474BD4AA87A
D97D7934AA486C1879542B57FDA1F202D75C31FAC106BA230B2058EBBBE12D98
943451BE72A80582BD5B1B2FB61075BB1A1ADE11DD7EF0052186A6DCA7A8E08B
D43D38A39B972F81B11EE22ADA00046829F6C7B0110ACBBC47FBFDE195D96A93
36C2D275C60DF4B6C6F3BF0284BBEA1EDAB9C3316D9A636CB1BFC23AA5A80A67
92321F56194867F54AB82019BA64E27B964E04AD421297C2D8988810CBDFB237
ADAA240AE7E27BE287DA9B884A22C7441553E588EF1C812130359EBA879FC74F
AE172A11550CDCBDBB9E30FF9B45122BC0C043F471BE9EB00E41F59D47407D7B
9936DF083B25232894EB674DB31C7E646B9009DAB4B708CFDD2362B18F715D2F
30D1EF79D7AE8FAD2AC430CF235866C89E7540AAA3D1AFD24795EE7D97D0F3C4
DF3D45394771D050307FA3DD62142FEBF727E6FD143C556D935DFA8535A7AA1F
8770AFAC9B3DA19D06532CDC0AA8A6040617479C6955617388BEEDB6DB80370B
76C483F8BA14377019736E16FAE2BCCC5AF313AAECF926961F0E833376BBFBF1
89CC0C6118FCEDE34B97D1BAAC665F6314FC5CE61941483234D93CDDB0EFB9E8
C4330146F6320AA04D58F758224730C47B52CB76E9CC533DD35390BFACB945BB
65C86EEB0C365FC2F70AFD1B7DC6144AF0AAA1D19E769C71DEA1B4B76910C9A7
34A6DF1156CAB321E394BB5B3B5186A63A91BA92A807E0F79D9977EE189F9A96
714A54C9E6C3A8BB5F08DD509D2FD27C8018D794727509C5D25B2B41602310FC
09C45CB42C8C92041EAF1D8781712D7AC99AE5EDDE61696B7CEA6BB5D057858E
DE00BD447965F9B4103590A977D44DE07480ED4B86875C330EA0D2DAA8891031
0FC7D0C77665DB7303AF14BDC24E4601D4403205D282CB18B06061829981339F
AD9BE89378FA29EF5ADA6EAA2BDDFEDA255C0A3551C83B2B08E87D15676FA94A
20BA9711D5DB08D426FB3E1A3DF10F3F143256B391230BFE5B5C9B3D2D4FD9E2
BCDA391C3EE4AD779B2453404AE5C2786953F061BDCFC6E854BA5DD9E77E1948
F1DF23B6F52A7906EBE3F4F225B74D2C48401A8DF68DD9BD04D82C1FB7BEB610
680D8439D4606193B50926D7C2AC8C99AA949D18BE5A2E9B56D44C924622C222
566563F4D816641385842D001D2A2972195FC55AB7DFBA118722389589489E3F
4770EBA66EF0E659C1C6417CC6E394C6F9B927E3F114E0C1A396DC50D15966D9
F97B68A0859B74E40291376D0EB62D25BB38660709282C0AC3BFBFDA2F9B8880
4B2E14B1E91B809DE7B53C05A787F446438A42264B0ABC9DDA781F4B381ADD20
744D70A4945FC9DE01566AB429C08A87BEAF7327844DC1A8895587E364B43E40
69DE49E8B171A19A5CC2116F5D5648079FBBE671E7119E76B57F34C1EDA5DC90
5CFF7E9EB9D3E4993302BA3901A303B182A7A240FF3489B8B09AE820027D2586
4D06AF576FEAE03FD39D934CD007F3E162AC1049D7168340D7FD4BDD903A0BA4
00F32DE68815F6C19AB4430824E771A067CD065051FB9CF895C3A0599B61E751
E0F107C4C1AE1649C8909ACED7427DF65235CF5579CCCEE83E3A9B1CEEDC520B
AF2D92A51D953F08F86911D207A1E0971D9DA7909F35EA5C7815F1672551833A
B9609C8D76B390E31E4F88AA2D1C5C977B772CC0DEE9DC65AC7F368594234345
5C19877A237B938F410E5E8EC9D1FA4F986CB07A3F9AC64886B0D4C524819C59
11FD51182E0E0613BC3FE47B5502DFE468485C2576FF4E7BA65121CE7D42B7B0
7838BD5CFD50BB5F91BE699C69E0B9B0E5E510544498507C6B09DD71C1E02C40
B80BEB8507B9BF9D591B20CA0378707E3AEF09E57C737AC66B8566D57AFEFF29
983577E69CA97147B4BEA8CDEF5F9BA1F721916C63A38BCD4B6DD3D8C6BC280F
AB8609D17829E7C7E53799647D6456770F3B79B5B6A8D288ACF3E3DA26DB5A57
69ECB172D60C00C5C83BE140A3D7C495E3F8840EC937566594CE10249B2869F7
E92B1A3541BF6066D7415BAA809D9BCA8E21D0809A847CC8E080D849773428D0
D5B5AD66EAD43EEE4FBC056E3B0EE27E4DD9C836C8AD1F43EB702A7B5621D391
6C428FC59845DFCDF208166A3ECB4281212B98783E3BA60A15720B5A263FD303
81D190A0499C457A46172EABD8B610B3832BDC7A8D51CE5D5E429848B21B8459
4B1F0110CAFCE7A8B3602D9A8983ACEDE78577AFFE4690D69D9EB1C36E3E7C9B
887F9C385F4D8F0897DC0003CD6C5FD907DC9A303C5BAC859D96EFA3ECED26A5
E3970BAA70CEA1F773A9367055BA25AFB35F779BCC747D56DA42075EB38EB7E0
B5839306B05540E41E42219470F38132445CC19166BF5EC51185C19302505219
4A4BD46B1F2E3882BA50E8EC1545B70054434A6109C2FD39986F049F8C2B1AA3
3DE4774F66F3DB019188419123C14E4C097DDEEF9A938B897A4E8E48494BC0C0
C7E8739D171116A57841E335C62D3E7C15437B3DE6735939136CBB706B4E148B
F797C870E0856299633CB03B65E655A5607320B5DE57A01E034BFF2BF7DA752E
F4B9256F003516AF3AACC27FD09EC54885C24CA6A524DDC2D413FCECFF521AE7
26F2383C6FC807BFBC2F7C12D3DB2FCE84AB3D6964558EF78E699FE46B9EDAC5
F1688D33A172C96DF748DAD7F59CEA54E876BCEC5DCCD471ED3521D6AE3C0FAD
46EB7F287FDE54F2ECCE77C540069547B6F6AE6D769DB4DF64D74CE47065D777
C94566924F60BD207C8F013176A4A4EED9F095AEEFBA1177A9E8BDD12182E55F
419EBB5483DF2844D41906FFC636B132283D10513F31E3374A6C237C86C216AA
B94D57DE1F9CE86FF47F198F38425616810335505D9D754CCC40EAF52F5059B3
B185C5603ADE59CFD87FBE5B60DBF808A835E3C669AF31A0BC93B89AB68373E1
DAC31540A7E00E0B0EA4D5FCAE9637346B3C86173B5F49339C722D9017D3AF56
BF80E5185A3A29A6EFAAE01158BFC7DFB5A1ED5417273B67ECE42ADC68511E9E
E2551265DB281A82888288FFB0A596A296543607DD298372AD18EA5C0E3535E6
8F9B41E476AC37A837419DEEF1D7DC32D9439AF3E1A99EFC2D714905B9A21A7F
743B009D8E8D4FA6DCB24537CC48C91CA04E195A116B1819B9D778CF82739A11
03F315F1823FAEF8035C959772168AE3D076B2ADA6393967F99D2BCABC035EE1
2C3A818905FC4550ED17C4E23ECECBF263CA94BDAC1F08ED5A55907684AEA132
831ECDCC65447C6780C63ABD0638D65E8F8451D29E75986F64748EA4389CAE37
43EADBB813B2B10D7F473B73F854DF9E8ABCA0C228866B103778E93B2DB97D0F
4745ECFFAA2A4DAE1E6E450F0C1759CEA0C6AB130F5A7D83D98E11E33D9CCA97
8A14FE3C27CA66D88CC2A0CD24EBDA27397A651136BE5249868B7C19037D9365
B427A82A6645256BA75F8177830C93A74EEE2312AFD7176DAB8127C261A87484
13630BE7DD0B5E6E64360B125208E338739FF644B22D9C450C131989D555DAA5
77E1A731784D6C152D10C126F58221013995DD3447DE42D191C4707424C0DBC7
1025EFE0C1A8A6C6668A5A29581C83267C5B4AA4C2F479A550D8943B48CCC2CA
D9A8B9ED9EB2A51CB98617B4805AE307281499BC1CE8886B3887FABDB3FDEACB
540DDE55DA4E96C5680DD39AD133E3B2D776426F18B928845F5CE730DBED4FB7
19EED88D08CBA2F4C83D803E2932CEDC088B4CA22666386FA68DF24FCDFFF618
BC73F11738853D9A74AB3E0836619A95A6A1C1C729FFD283E131F5CABD7D09C1
4C7D3A9461BEE7401398E375BF3D17522FB2294901FAC0883F913F236EC15F1F
7469BDA601034F133C13B5DD5833A2C6AC843C23FFE1EAF5FFADFCEF28CDDCDE
DCDDF28129DDC97BF78CFFFEEB30D12BA698E99FF46EEE5B856A8C34958F32AB
6B2103238ED8C10B9F1C018336070D7FDA0126445E5EE67BD955E68F8C976C83
E6530EDB363C773B0FD18750B673DE5F89DBB5D0FC1E14904F5DAFA496715CC0
8516F4C28957AD8862B5D254A2BE2B8E12A9FC8999FD76B791984EFB47D45FD8
7B1BE08895DC49F9D7A0852A069210FF89929E936386131913A9CDC1804B7C86
F152B58466F6CD963C0F09276706748EBD1824939431F07FB1C74C7F3041458F
0935D26849FE9FBF6614048628CFC4B451B28AD4B7972CAA524654088EF9A91B
B239721520B829F3CCFC25710E56627EA22C38EBA475BD3F54E3973C79493350
D5276A7455F0F029D03F24292AC6E8CCA1CF7E1AE9A7A61A9FAE9B368234E7D0
B17F6E128F7E4A2C6F31F2B17D01681B72364D0BD9BC1693247F051B5F153798
642408C2632667AFC0B25A5FD17EE325ABAB5A4225B01E8474D726DA3FE69029
08CEBB920DEAD5807651CFA8C9B7D79DDC4E45B5B392DE482CE0682419FE9B98
FD50C2A05C47AFC9CC1E8243BD31675AFEB0ABE5E0FF27CBEAB353976A90CBBA
62C64399F8FDDCF5015B95E92CCD8ED04DE51B9E922B06AE48EED5A4D9D5925C
C611B6D7814536914C28B03F6455C5438AEB7BADF718F63BAFE0242DD4467355
03765B500DCA599DC776FDB53A7FFFAD40774F769E2F5D64CA6D7313A70E1FE8
2E19573353CB59B9E646C5C1E5DEECB81216DC4CAF210F85F90FD2333B47C360
D94D6B45DA01234024A37779121FE3ECAD42D00C335974454A53290CD2214733
72DB9B951D37E3004B18F41BC01C88B4AA90BC4FC66444271C754039D92936DB
E6FCCE7CE68008AA02FA2A83DE7447ED
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMTT12
%!PS-AdobeFont-1.1: CMTT12 1.0
%%CreationDate: 1991 Aug 20 16:45:46
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT12 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 105 /i put
dup 110 /n put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
readonly def
/FontBBox{-1 -234 524 695}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F0364CD5660FE13FF01BC20148F9C480BCD0E
C81D5BFC66F04993DD73F0BE0AB13F53B1BA79FE5F618A4F672B16C06BE3251E
3BCB599BFA0E6041FBD558475370D693A959259A2699BA6E97CF40435B8E8A4B
426343E145DF14E59028D4E0941AB537E34024E6CDE0EA9AF8038A3260A0358D
D5B1DB53582F0DAB7ADE29CF8DBA0992D5A94672DFF91573F38D9BFD1A57E161
E52DA1B41433C82261E47F79997DF603935D2A187A95F7A25D148FB3C2B6AA32
6B982C32C6B25867871ED7B38E150031A3DE568C8D3731A779EAAF09AC5CE6C5
A129C4147E56882B8068DF37C97C761694F1316AF93E33FF7E0B2F1F252735CE
0D9F7BCE136B06EE967ABE0C8DF24DCBBF99874702ED252B677F407CB39678CC
85DDFC2F45C552BA967E4158165ED16FECC4E32AC4D3B3EB8046DCDD37C92FDF
F1F3710BB8EF5CA358ABACA33C7E5ACAD6BF5DC58BDFC3CF09BA2A38291D45A4
C15FF1916FE2EC47FDC80911EB9C61F5D355BEDFC9DB17588547763AC5F0B1CC
12D2FFB32E0803D37E3281DA9CE36C5433655526ACFB3A301C56FAB09DF07B5D
048B47687348DEB96F3F9C53CE56DDD312B93D3918CD92AF53FB9461864D11B8
0138918D0B1270C54873C4012CDE6F886DB11BCEA04B023EBB43E0D0A06BE725
741D08B9DB688731A6C9886C15A83C28DADCC81385EA239E045E8F3670CE03DB
9EE77ED067036595C9F3B1854343BE3A12E486B6E5A2F8AC44FA5378D28DCCEE
306B0E283AA444423F9A4FF38E2B56DCF67A39CEB2C643DAE86865517D5D0371
CB8797208ADEC637330A3A57902C9A88EDB75A7C16FA9850075D9F19578EC666
1353CC1FC512D59DFF847ACCD3D03959C548F21BF622A6C3224EE815E753BC87
E0364A12A1728D0762C266515BFD30F7711A9F1F796BC4BCF679918151320681
D3202FD01EE5901981E7EC55F58812978105DB71D10B0A5A39BB69F703B11160
71E527862BBC00736D616BF295EA94ECB611548BE15829EEBD0909514403608D
4C7C220B61E9F004D1CE7760F7D96A75029244E5505A2579171BFC831AA0C18A
5D09BC573A582787ABBCF9C680DC4A5F41F6D7208A4DE3DD4E566675781B86D4
7631FB52070FBD290AE6DE90DDCBECF4A71A9C04A88F4DCF468E3256B3E240D9
86688B5DE5C0EC734599CC85478045BF32033E14B99C532D3192440F4D23BA99
AABC774E8978CC4CC681102FECA5969C404FD82F9A0E9F772ABA32D9A309E140
C33E65CD55DA1973802702A9D38953F95734097864C045690EB370F9600CF504
1D8C256C3F54789A39130AF465468B2EC43496CD305352AB5C50B19B6D025C0A
8D85950ED3DEDCE064098AB2EFBE0E5470B1553AAA691B108AC28B169609B244
B9A4596E9DDDBB5017847AE359E7CFAE76951CDB353ABB5EAC83026FDD24BFA2
40899B9A904389B04CA8EDD18D19574585FC843F2D8459EDF6A296FFA0047F3A
7D08570D877CCC8AF22684DC4CC7BA11F5E2296FCE728087D5394F3D2E4CD157
399E3BE34CC8A97E4D9B7AE8A54747C945C23C3A2E3C07307815EA77E3DB8F02
FDB2E31E2EFC2F4FB10A6CCD14D6C5121AD7DE0BC201BDAB24998DF9797D7F37
8C00252AA9783E54023EED68AF1D0A7C3DE94C0D51DFD79F6D1CECCC35FCB852
C7F523D4CAD562FB00A60835EA49753F176913C4B79708A071CF88E1757215F9
4844D934D0F0DE9E79A4E68328C9AA900C8351B7A51B5504C651FE9C6832AF05
72A710A16C7693C544D585311E6F81BEC2C33BC8BD3FAE4E82B0DDFCFB1CE847
B4BF65F30AB480B329774BF6BF1246E2D1F402FA72F4298B90887DDE0AD09DB5
4CAAC75BBD2437B7B50A9F42206421D0AB69DF3DEBA9F0134BD699BB223EA67B
B65E5BFD4575E7DDEF810B768D568387AD94DE8A6673134B824C78AE36D0922B
E21F10BA2267BF39AF9D7C06E64A467D96A0F8C4B6733BC9D801FC391D426B46
7FB6CEE46D3C2DD27770565774258E5F2C5773D82F491039976FC29DB4E86213
0A4D9491E5EEFE362AAF37F6C0FC0BD6C285CADA011201809FCE904F0C558834
FF6EDB62354EB38795A4FBA53A670912FF984A2A702B9898D4723FB993AD10D5
E8A3CC543EDEC2D6CFC69E6DB0321010D6A7FC357B9B6292A9F6D5BCA1FC5B62
E769CB1BD40E7711A0298D1A425DA896B11A68DB14795FFD9FCBAE6C35DD3FEC
6F914A57C65068473594716B2CE171E7B59270B129233571D0A5D6D477907286
70057B799C2BC43735E2807CF34BD920C25B736BAE8034A6B8CC5E39EB4B7989
84626CC8667E5912BCFE3C9FD65DA80D6CBAAFA6795E8B9AB9895EFBA2C46704
64FFB18CA92B5215AFAB89876C41E34E5C1F14118714F73E516210C21D44D038
F860AE5512AB012BA7931B8411359B63E6013B3599EA007B774D6B6D85E872DA
979837435B5EC037B756A26BC1DACF1050AA7884F3D694CC4D829688D599C994
3352EF1436AACE4E456C6C8E1DCF29BC276D6B2130EFA0F2318B7904F3391387
EA5650743E6CB1768F4A9ADEB48378D1B86513FD8BF92864812921D262407DEA
276AA0A2ED0C36C7678DD04C5975A8D9CA8A315FA127DB1DE6AEBDF79375543D
654BE2B92AA5BBC5461CEA72A689751C884E7139AEEFF88BC589DFC285CAA007
FDE71A258B28A382967D314721B5D29A2D31444C9EC9A3481247E6C878D3BC6E
43FBDE0B6E18B7540600F0060455FDB2294C88A0C67D635103151F8FB91696DE
D372C14C3742AEFDA7DB3A5719CAFC7BA3BAE587B239F2D55F33C70347558225
1C2A16490B20E00C8976A27FDD326D2151C6FF53CC045D2EC1DFC9E01C169FB6
AD694DB6D8CE3489977471CBB867AACDE52F245BCDEE90C3A23F07BE0E7E2094
7937446BC05A1705D86BB65AEAEE557E4B922C542EFB6172DB59FB9B49785C7E
9DFE1F47B9FE21B6C0D6436EC7E8B1A057B8AF5128E5B888589EC1307734D22D
C2B20BCBCC3DE667F067B44E9D0C9BB639B054CE402EC991B5B12F1A8E2E6BA2
E50CF2D44A7C4C10EC7DC93C472B75ECEE779FCAD56FB7F293314ABEC48CCF74
B04B2AF9078D0E57E936440867CE1BC1FA8FBD944E3EA779BD89977B7C0FCE9B
6B2E4F4895D91654FBB5788FBCA84985E90E92E5366CC32DC874B51ED2281CF2
2E6FE6BE3B206CC18FE73233F014451BCD5D8C2F4873DB3EF2A393F62D5CB2F0
B98CB8D8E19DCC6F885C4E8F7BE5F96BC34661DC6FFCB457F3642866D393DC45
FE66B8AB77F95B02ED26A9D550860BFA4AF0881BBD5D0F01F035FB466CDB8C9D
B6406B2679EFEC268CA1AD8D4CDEE2D47D6EB641D13AB7F3151722588DE3E2C4
3EDFC0BE4B9A65D0CBFA0F369C9900CC105216A86DB6FC9338910DBFBC4F3447
531A32AD80C30F83BE7183E30D9C49D00CCABF3C615A94917851D3145F7FE82B
B62C60EDD92FEC634274679B1BBCD979F502CCE2D76A7A273D071BFF9A6EE664
D88B56896613CEE8617A239391A3140C55D8EE40DB0EF84E1E6F378CA62073CE
D0C24F98F07BC80875B0D07E8D449344826CB71659AF33E196C925256B11A737
066C9A1FF0BEF8C90B068024B012A25E605F1CAB88856FCCBA52F23ECEB9091C
368D3616332718EA80A122C74089B911DA55F7AB3E4BCE1C
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMBX12
%!PS-AdobeFont-1.1: CMBX12 1.0
%%CreationDate: 1991 Aug 20 16:34:54
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMBX12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMBX12 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 11 /ff put
dup 12 /fi put
dup 39 /quoteright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 87 /W put
dup 89 /Y put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
readonly def
/FontBBox{-53 -251 1139 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7A71316B2E148D
E2A1732B3627109EA446CB320EBBE2E78281CDF0890E2E72B6711335857F1E23
337C75E729701E93D5BEC0630CDC7F4E957233EC09F917E5CA703C7E93841598
0E73843FC6619DE017C8473A6D1B2BE5142DEBA285B98FA1CC5E64D2ADB981E6
472971848451A245DDF6AA3B8225E9AC8E4630B0FF32D679EC27ACAD85C6394E
A6F71023B660EE883D8B676837E9EBA4E42BA8F365433A900F1DC3A9F0E88A26
30F0D05285D6CCEF1C6CFF8FFE81F0E5C4D224E4DC6102F6A1BD5C2B6D3C8869
667B2B2879127AF21B390B902894D3513791F49EC4CEC8DDD653648B5EF4C262
8232A1B80899EB578E098AED393A9FF39A19CFF30F61026A552FB61F4403F6A8
5D92496F5C099FE4CDA386EA76573213702F9BB8A7B039ECD80223396BCCC8F1
98713A48A89D951C13DDDE965E5034E27B0679CE30D50309E9410A3BAC7C4927
D3CD5D40DAADD9FE246BF6237A7DD9EAE3C381935D1F472F8B6ABF161FE53961
64FC3A5AB258E3897AE1A00F45628125AE5C2698517BD38B18F1166774B376D3
0546998F1C6A8DA01FCB2E1C8D173E1A2A5134AE4283C62993BE45AEFB04FBDC
5BC8286538485B6F0082E9157CDB615A4353A565557B6EE8F219D5B31F61CC2A
10A43AB189DE20834586005EE6C2430AB287AB0D4463E2B5F5617A16C8E0D922
8A0DDAF4F77E01AD9746D510ECC7811A20CF6C98F9C7A8B8C50A94E973BA8EF2
75A52B678B8E5E059C70CC6336A9680915C5A386DDB2DC69B719C13238905182
D24B2AFD8B006583DDD6BFE44EFF261AABB13004EDB5DFB63E8E5BFA4A982360
CA92D65BF31D2B5FDE6C651FC361B8F7BB18946DEB087814E4CE3E9B94A84D2C
681DAD2939F661AE0FC27211E0049E3AB1DC3C7638A217E2ED5E76A0BB223BB0
F32738B078472899C502FC6B5468990FDA78BF8B4C9A14CAAB6D62FCD2B70515
E96578939BBFC1C18699060B6763F52FF10CB98C1F25783ECD92FC90DB893CBB
25CA4621564EF80CC7156DEFFD3C83D94BB237D4314D5457FC6A618A8752427D
146FCEAFE8E8A1C2A08347E406DCECC9C69D2BC5CFBFF1DE9512FA3352139E6B
51A13610A4EA061D5EC51B112880CE87D938AB70BBAF5EB0FFB2AE497241D52C
0908CED690784DE26C2C10C4693ABA644D4DE34DC7FD54A952909FE988C909FF
4721707AB8DBE2FECD0B987AA73C207EF1B77A563B5577BAC80FC1473F4B1DBF
8CB6CF99DC770B386C67D783F3877948A8EF667272BFABBFCAF6C94656E9B850
7B8726FBF4E3C1F3515FB15957B6BF1EB381863D56B421F64A5022401DE00CA8
2A928D931C9D457ECB9FCCAF57EAD983AE071F568CD039274901D52A3A9B1D05
12885BF6CA557AC65A3769F4B90C3C9ED7E0CC0CC8802CEF9E13170531FD2B1C
D2A6304B880869696792C1D8A50FB4B95EF9E628581E26394C4309D51DA04835
6623BB3716E64E0A2B9D46FD9AAE7E47480935A091CFC6824FCD8EF9AD6F83B9
F2195B624C2940D7A380E9691A3B20D2310EB59E41DC22FBAA23E9A0B695B2FC
238AC8B56090C3494CCF91994D580ADB71E7213CB316287001B8A2878F2F3C1B
6759467DEF855BB899F6365C85195B6813040D461536DA814D59501C10F64DEE
6F51AB8CE95094CC72AD3E1F5EC3D561816AF6A8B11BA9199933B76F76DCDD8A
C1899ED67A2E650476C32A66808F9416EF5317B4F86975776F9F2C34466D886A
5BEAD62B5023413D24B80131165D455322B2BC8661EDD22CB7BDD50FC18C80A0
946DD22EA7E76555597756FE6A172AAA2841071D41FF0B0CE92A64B79EE24EC5
A2A639F7AE08D8B9A8A7514A0C780580AD847D597CA66CA95B54EF64532C21EA
1670A8660F986CF209F7AF70049B7FAC4CC0AD7D21C47E755A8C735CED420F8F
FA9E98C6A0E501E54370C2C7CC45D1578C20EF812E968B6BFD9196B92054612B
1EEE75CBBEC588F2ED8A4EEE0D378E1695116A2EF5618FADB7E1DA9B4E4A18FF
D11471F644171EB4EAD0820703430053CFF4EE3AD78813B7C289121988240CB2
F48230338E5B7DD63641A9937820AD9441671BA15E94780A8E1E21B067D4A0B4
E25C9285C47FAA78082E5B3234217EC9099597214D764E9906CE29C4EFC7090D
9BB0E8911AC5109EF272FF2D0F091CA05C97F87121F685A0F9D39486B5F76301
A73E86D2F8A581696A0DE01E39DE172FA19F3FC26A8DC97E04B45A4A231BC282
21C03D6ED9134748D2F09AE1E7A16BE288458338D951775B3EC5082DAAFFCCC3
246F4E15DFF480B7232E2948CD3C5F730C508081C204649568405178BC901AFE
A59F3DAF0E5980FF5A4E586E03F7C46C9998048375ED9F3B8AA38206F149FCA8
CF5EB7605906EF69F7D5F4D41F59F537ABC877A271088EC1D4CC3C7C33760EDB
314EF716DDE483C47AF31353210F0606FF48D8F3A2620B189C5A8ED71D56F7A5
023356741A236065F59E4CAAC584A5C230C803590C4A7394AB372E95637BCA78
634EF8229A4C77F1A875059810C5BDA94B9F01BCAFCD8F26D02AB64830A40A0A
43757AAF9E6A4220CE7F478928C37DFE4B90CE863F3FA844FEF96524BD46D254
3E30FB670EE76690A35D23F5A5BF59FB4ACDAFD1673EC0464797A903187D0D6B
1C181D73036B93B76B9AA0E62064A05B414E6FF2C16FA9FC17CCFED02D84381F
1A9FEA5C5728637804B7F67E606DB3FAE4C43DA1FA18CF08744C926F631E26D6
7446A1E183F83E4F25A1DE899F9BA59821E6E73355F873B9DEC876AC6C7DEF45
7AC3F1892E4647C5442434056C1868AA6202C58EDBBEDFF39236AE76D8F0AC2F
AED3039AD6885353414BBE496936E2B07EDC8583073464A9CC3469FE08E79946
A2253404518CFA39A9FBC58010DD369DDF6584553EBD3B1E14F17B79BED0372A
2CADF9494BED1EF953288F97180C207155849B6D1D9BA2931D170BF9C30B4B07
CB62BC4FB3E98424F9B278DB66114A0C5F76C4D9FE789C42A796D5669687AC4E
C75B7E224C69DA6507AABED8F87B7D7F80E456D81AFD08D49F6F0A5169CE30FF
D27D2197D922C9BCA2103D0460B92DFE05BAC7AFAC00BD486C0B1DB5379C1FAE
0BD3610A1DD8F3D90EA88D22C90B29EFA2F15F297DA1C4ADA3F085BC07F838B8
9398992BE46EC49DAD78DB55A7D30ECA9699624C76657C0559EF59FFD6478AE9
585567E6C0739A17790256DE272FD4B96C999D43E77C46430BDE8FEBBA71A76E
A49B0516063CBD4CBFDEA2DB98012DC4FC065D858F16356BC79D3DA14C665291
ABB11A66D6F7C21FA8E981E67A285CED046F516010A910C18B7D678F984E359F
0F586D1FE0E045F4167BB76F0CD9E129EFA10FC3411DB8B4B8D3D308B563F53E
54D5F884FFA8BAA6643253622C35C99ED194238FDACBFDF77D01333827EE92E9
2EB65A94B93080933C0CE64FAA1D5CD2BAD24147849986B02DBD6F43F9C7F96B
E9AA76A45BE891F45C1AA29188B7367D0FE265D1E32FCAB6F0AE8E7E9E2FD7E5
821642DC80537E6A103934A6107560735615686E65064A8E16C9C049C28EFFD5
FDDFDB20DFD9DF7BD07FA7E06AF451F54A44A2473E33BE7F6BAE6B0BB8F2835E
A5E169189C632A96FBA71686C12A98DD976B3AEE883FCFAF2E7E6BA82FDD3095
1EAD1F9D3DF7B2694BAAAAB702DD7F1A7D0589E8B5D6449F34B6917281FA3802
A3D998684B91DDCC78A1751D369006553F68B145C4FDD26591C66834DDD271FB
25F9212870BA0D10259C982D22CC04FEA69288CC2E0870329A5C55A0DC567C49
395AFA2A374D32215BB130AA1571F2C57B77A67F3334427823569FC268C210D1
8B56D6F3DD6B483447692E59D08C9A8473BA2A65584FE364EC6C632D6C4EF109
D1D9E6A84DA4E1FA0475777F21325A8B7C7A4A9EFDB5721B41A7F9FFDB2C86FB
E70A5F483D78371EB600F6EBDE27D9E95EBB4A45E8F224B3CEC16C525E86E02D
58DADC2EE818F32173726A9A34F5CEDF1C3B4E0D61A6DD7BBBA19BB8547C04A4
A80BBF117319FEB51EB3E2577E3D2CAFCA7E3B041FD5ACE28631CE39BF72207E
30C0D79C490A8C45A95895EC461AAF8CD43686DBC0B1D368C6B7BA1911E6316C
778F6AC3423EF417BAFCBDE368C86284D265A406FFAB35DDBD4FD4328B504260
4A8B096888215D49CAE6399DA38542D221579377B92F274F807440E9328F27CE
F0E97C0F88B80BA6EEA749A3D70FFC871DB7A2F45A2351349132C4B2FD9CAA49
E4BE537834908A23BAF0F1AC0EC31D85F11EE7358D1EF998CD94F4E7A90D0B04
F9B9B16E5D1C62109E92F204E8D49A5B183CAE51F02CB29361FB3A1EFE0439B5
5E362837296C122FF37A08E626D34AEB2375896A9E69BCB12C64C2B969380DF8
4387386CCDAF7412BA6FA4218477212D7E3300D73C775AFD9B85D0DCAAEEE2F5
50458CC08AA1EF8E1C165852BE15EB560197BBE7F17FDD72785A14219EC0DC99
2B48F163FFCAC0928ACC0C7A58AF3EA525A94D937BD6327B80F00C358AA515A5
9D7B7B179BA367D9174C41D17CD6EE9EF423981DEE95F27057C446F4D96D74BB
5903D7A68B20556E178F9273FF2FD424BAEBA22E0771AC1340D6B47744D5296F
F01677472B3996D658C200384500556FBC0130258ADCD273098F6D624D1C244C
7300C7E5180D3A6DF34D0305E30AB0BC0B0DF2E84EA00FFB50BF8D22D9E916D0
06A4A83222A1E509F8208838F99BEAC24C915757C8C13343BFCDEB27C83F03F1
1835C9A2701CD47EC8AD7281293B1DEBB7C79C8AB575E69F8390991F97401C28
E01DFDF5F0343FCC5E2B370589FB2896942E796E2B5ECB339CFECE60B6AF794B
A17C7FC24F42B7AFFE9FD8EDFA580B613E00A125FD55CFBA9BA56F68BAD581D1
47BC7A2F7EAE4DBB04ECA8BEB6FB6922ECFA0685A3B8B667C8C80D8094124E6B
4F126E60A56878B8C6E46261330AAAD66C13FF94C0BBA40EC670C2FDDE179636
5EBAA95EED3C597191B35EC29F228E22E266903A59242E89D6EA9327ACF07602
58FAFB707D0C5AFD6625A49D514A9E3F811BAD80CDF210F69C45B35DFA918EFA
43BEFF62EE8D58A5B8EFB486A4B57401AABB3578289BE8804C10CBD55DBC51FF
72900B2318BB3A97E08D8EEE4DEAF03A2CEF667BDB6CAD59D1FD1274F42B55EA
075E2EA3B3324F23D3F8DDDF905C872C13154F49C1184D3E8B88F1A589BEE0EE
8213325A35BFE718011C93B4F96E47776B96C1F36040F304B503BED36794E2F2
009FAEDB3EE212590CEC189A7E55EA8C28BC72C96BF822AC7C4E1B197C897992
EC87737263EC1167A9BD966FA18CF6F1B3268D5C23F11236150EDE4BEF78C825
24760C8F2F0029405D6E1351CAE05B3CDC8EDE6FEC60FA3242EF3BCA1370F722
C6184A8E1AE4DD3C99D2E10151786EDB3005D8EB86237C95D9451F8BD7C0EB61
260CF7F1FDE38CC87739D43139A5FC03F704C42E47E1D7D9C17AA3436FA33060
AE4F2368E1624DE32339361D68CFC68A3CE224C91054D2A3765B42EC2F0FB75A
4954854FF0CD755881A3348EECAD8DEACD7E662241C276A41AAA03EF875D8F29
3294AB0CCBC6DC09355174943702F9411B1B4785770AF9A666C0A6228A4D708A
137D2C0FE6CA7D5BF853C504CE85C471D81BBAE73AF72E16045921F580AA4826
84A2D61DCD11A149FD631360CD4954AD902B5CE385AD72E63508B6BA6EDE4D30
661FC6E77CCF2D852894C509AEB93A9D135AD74509697EE3DBC9AEA0B1522975
548B4A390581343E12686FDB39F1E26A4D894E98408E0171B11252C3EB03004B
98A695FC743B94DBAE28B1396C984D2235D3431F73C42D6F5E9F0FA1EC953113
65168137774E652B5793C1DBB0C79D2E8C9FBCAB8922AC0B40475F7F19F44FC7
D8558EADAC39D802932C12AAF5E03C36B9F4AB2C8EF4DBC207C612448F122014
FAD87E63F1CA6CEC17FF8D99BB7038B80C20C77112DEE28F0025995DC62AABB0
C47C4020DB7D0946ADDA0E011D7141B5E000DCF1B4DA00F447351D2C8138626F
8AA3664BA653A9AF9846A43FC76AC9A1EAE2560EDDC4B83E95C121CDB76C0BB3
346AF6D7EAE8C9DBF6843BDAD8AB42FFD060F7F5C47571FFC95E6BE1804909B7
2AABC5EBBEE592709E1A2D55051837B82006BF5A037080FA395B166749062E9D
47ACF1BB5C1EA652284B5B48E703B52B6FD85401C281CA6E6F75E3A162B6A023
39F2A5331DBDDCEB19D9D7588818034BAE3E216E1E30AC813E8D15B0794E964C
CCB6ED09F3BE76F56797B63F3D5A7C03F66F320BA2B5F1664BD6B76C8F0FF7A5
40AD7737DEB1AEEC9ECB873A0F7266863E743A6DBE0A38A10315854F6DBEF4BB
33AF4A9A39A4BB920DEAD5AE3C1D96B7714002FAB977B5450DFEB7AE4639D414
79F88C0AB9D2FCA19854C513233C1824B48D65088FDA64F504298A025B2B6FC2
7D2780968543E0B50F0ED6147D29ECF2CBB557F0331066B15BE35A94A94488A2
21A66FCB70508D822AF1E092210B3CC54F21149CD2A534062EA2AC08954AAAE8
09AF3500C055B15B2477D23223C1D6DB2A20AE78BCE0811F4B123EF976C0A79F
854E4AC7C5A2249FE4201342AF4B6EEBCEA08D01B605916B0A65F0817EE1AF76
ED6130C839137976DB45570E5EC1E8B18B42961F40229EC822E079605AD17483
6141028AA6A70B5CA81C8625AB73597F855ABD2EFFB65959FAED8CBDA920CCB5
9D12A328E216B07512A53C7F1DDFEBFDA42877744D20B0BF890C6ACE8BC3C435
D276C31BA87AABC50A46D1101920812525887F866EA5C17E82387841EC42650C
106DEA09C3D58C1D0BB9CFF3C1A776A591B0E7F791CECA268B953ECD617B8853
32A89324F7D7C96BB52406A0F4E40B6B9124E774C1955A358075CD0C7C56912F
4070BEDFDE8B8D59DC1B26AB80A3A891D4D1536D524DEE42CA2B54C17D54E57C
23D9E642928ACB0547D592FB7B2A465038A20D585D2B40CA90883F46B50C3268
835678A37A3AF06ACBB0EA15B1F58CB9F32EEC7DAD0F6D45EDF2DAC394054654
31C213DAB180F099E9E84578FA202BD689CCFEC72D31A86FCAD751A025CD2A71
F437A3153D5A52E112780282902259941FCA4AA4BC9C519E3344A643A11B8A6C
0859544CF205380EE8D7731CB3408824152306E292A01C6598FB5952E4F12E03
7A59257625EC23C38E8C8755BC85E55BD48F6E982B60D57A552E35858AC382BB
D90353A3EA5963D08400473906798D56AEB9BB0C81A86E688A8F1B77EA854BFE
E2CA0E3A72D48A7367AD19F83C4445BD6A449FD7B36560DA9E4F0F0DA54983E5
5560E40059CAFCDE80B9DD2559F555BC39687E243BDCBA427A4B3D2E31095038
795C41F6AE47AE2A3AA6F0127F97E538B210B444916FC67F76445C113DAFD0D4
525AA5382A5D1958276BD523C9BB96320ACFC8B4FE733B35CEB41CC11AA066A6
6908CDF57794C18119702BD993CAACBB7D9E6149F17964E96A0750D784786DD4
867AD2EA8B0CD39186BC7639868DCDBA9263126F0F565C108D9B3CB2484451F1
9ACF24A2727DECF228ECC9A2E10CD99B0525415FF5F4188C67BDDF6B3A82F6AF
5B2911AE04AB64F7853B54962812173D8CD41DD41D0776AA25CB48E989689684
0AAC760219EFD126DA135D2A453161397B7ADCA897656EFD09ED29616E9EEBB8
39AAA4D66E6B406574F7FC3734443235086AEF9C8AA96B1E3E7C9A3E28485E7C
0026FDCAD2AFBF4F8ED4BA6F9862D6A4F1F9AEFD3FFD4BCEAC5E8421432257AA
E854E6464410C5A8B7E1C32B524D2B59186BD90B8CE0A75456ACAEAAFF95DF26
41ED32B12E2815C83F3C7F17E1414A4CB204963CAA6A4BAC5AD3C5782358ED71
6033C289134C84A0FF2AFFBA949863ED5BB8D886AC9309F43620578FD828D2E2
A1318DD20102208FAF57863C05DC85E5C33577DED67A5F70F4F46799F52A8B14
83E6E51C27D93C807ECEE29850131F2ECBC4F2533EFC8460CC1FA35A610201CF
62ED6D564DFDBCD19E1F8BE7B38BD30286997581A124D5897B08E5E4517FD0AD
DF14758077D26762641E1CE5C1AB8E202E91174074D3DFAEBF1A41D78A8C5329
627A37C6EB6902FF585565D7E8850A60494A86A98CAED7BF7350C14907E065EA
AE8ED9EF06EFEAB84E0AAC9E7C20FEC88D19092C52EF368B41A170145AE2BA5F
703470171DECCBCE4766BEC9FB055167177E72260F512F5B888E6F0E0EF876C2
66AB6FB71C408A39DDE17651FFE7EC7DDE65E3AEA041CCA12D52EF695B2616DD
AE43FDCD3932D075556D53B6AA3AAFAE7AC38EBC6AC338BF2376E227BE840A5B
2CA9F73B1C49916C93E58EFDF0B346BFBD218062C140E5C2B76A412661D7742F
732205A47DE085341A1A7F38ABD660CD24086CB548D1000B017A77268CF61098
CC7FA46BEFBB95C25766B8CC9A1A94D296C1FF74255C4558624E56E52555A2FE
49D6B49D3FB5F414464E7DC285BC5D9EC9F922F2B706141878C7FEAB26C4374D
6EA351E6558192A6B72E2519777C27C93DE66E637CD4956B795AF45B811A1A22
4C150F3EE21DEF0F174710D04A95BE893D1E579649C04C07FE0068C3D889AEB1
011BB0A48FB90F005BB543CA5893D1E63E7BBDF9E99F4916065B6653F9386857
318E0AC2D713C149B6DFB5A64DA05B41148E26C7D341407E6DCBC30EE4A92428
0654CB2E255901EE9D5BD67357086996C75D0215F2E64885F9611193C0173CCE
792BB823146D3B63CEEF2F8715A7DDD69ABB00CEB4043D66A2250B1CA165A61F
18804E397D54DD0E63A91A65C30F0653F6F1632151360BF030AB7638F65A17A9
6A80B363BF5AF695620EB2244C805C674E0516835ADA3F01E1616B871C389606
1EF6260C298D90191FBEEB184C4682BB86280B96791B9B6868536EB88BBC8AB7
A01B1981FC010EA9089CAE1AC63FB7CAAC04AFAFAF27DE55CA86B06D024DC06D
FEF38710DA39B88E102F48C7CE4F81F36E85A0C6053542F765965D09E6D529F3
BCE013785CB5F245F306D69570977D51AE4FF32D00ED855332FC74538A1F9E1D
26AA89C22CA7F7B9977CC273453AA807EFC1A31D313A4708F77F774746C2A6DD
04D5ABE95985B52CACF634983390E13FA60517CDD09B811D8455025FD8A7C6B5
7AF678246CABC6E648B23BF73CF4C2A9D5E18B87BD5F32BCA4E69494F0C55796
E7C126968E4729B4234EF735DE0194E28732758D7E816E3D12C241A17D19A3F6
8639011EC17D6E3A45ECA3E8DC975E12661336692D4524C0C9556845CFB7589B
E4992FE805C03E3DE1D81628810B19CEC2A692A487B3453EADE640788711FA7A
87B11C36723879D3B2971B5DD6C6524CA5DC49192837635C22256AF60B8DA4C7
C69DE48C4C897F9A8F22F8B6B310E7382D5CA82426A1E943ACE8B539F4FE77D3
68696AD07521B018CCF9C5D1C07B5DCC16784D3130295D35AE46BE7B47681624
7AE8B7C4131B9CAC5F5193B04124B7DE261E3D360C1347024C061AD63934BC92
744B468D17DE9DD44E3BA975F7956B7BEF0AE5B58DADEE576C102F6DADC2415A
D14F5290D61CB30761C250E4628C10391DB7DB977A53263D4AF5A96BB06FF240
EABA625BC68D28A8459101A2BAF0C79D69DFF79116D039D6275720FDA9C445DD
FE2A3F9FE667490B4570D13679E36B3AED8C8FEFA3B9324DA8D27F88EC275BCC
EB5E5B0FE84D033717651BF40C073438C49D410892E608CFD7032DC8D28A6AEA
F854C4026326F67127C6335834A09A734F0418D0C1DD190DC656E04B8F58D0C9
16F0FD15DC2614CC769A01C635AD00CBA37BA198089C3E6CFD677FDF9571FE08
50746CA3DA5E8BA7E8444A0E8BABCA3630031F365D56DA5D57861594074E7F7C
2B38909917B32B866E9E61F09143FED52C6764A1EB3F6FE72A17953F495E914C
AAFCB853DD4A6C71731C3387637EB6E6A0332AAF846986284AA119A5A30C2CA9
07096ABEB9C042B6AA9FCA512B0D87B90AC4EF8B30C884EB6C7C56E67E333C81
BA112525504476738192381248A908F0C25E57942EB72A684E051D94119CE36B
1B683A94BEDC34910821BBF9A94E92D09CB9EE7582CED4783E0CF31BADE2413E
4B6D79918EEF2AFB2781E2B3E9EFDD4F0E159861682573F1FBE52957F61DEEDF
1EEDEE1B8577B8AFF085930A65E1B3F9CA089D92BE2F035A74D184E2806BCFC1
7E41C4DCAE62A2550B57B527B513E3BFC0480C3ED389557E6C59D87C2767299B
C4AAE0DA7E2C75E16924324578A89F5FA14F19EF4924140B4306A371133333EF
0AE6D38BAD7E0D31A8047828E0834FCE6E721391F265C62FE6BEA454AB5A9E59
02598D59C690216CC52C12EEDBFFF618048EEA67B867B459080A07184F6B8E7F
F102C364913A11F9C05024A79F5C907DBD494CE8F85113050C62E71C51C8B62F
8510EBE508BA685AD04F5ABF69CBCE3A94EE6A70CF29CFC4B07D163C42A07BEA
24B4C77CAC9D0102C4AA29986BF76AAC5039E9F15D9F515E77227B1300E5F5E7
F760D28D959ED550D9372A31BCBDE3732B28312DFBC7DC643A9FBB3130E8D903
C14D17FEA00600C42C30D01B562FF3C85EF4550E28234038B9E1D197F26C6822
A0A9F4E80A66E7391BE1D14D8611066A7A57B42D7068FA12E5751F599BFDE140
037848930E6E05E2CFD162A3C10BE1148BB690525ED3E2711C0DBB0C2D6F2B67
DE0441F6683160B575714495F5FEA175C2B896C740FC36CDDE8234F53284896F
22CDB78A258218D059B004502A6FCF6B98C1454E81EC1AD9E3B9121449832694
49A19D20ACE379E110C5504CE5A713810B962ED7F4BB660CD9BBA2528806D829
9C0EA1DC8D76D53BD179A62C8FE361EEE3A8D63D0CD05CB44513B8D724D81F8B
51D789BB83FFB30BEC37A12FE473798A514622B13269718C24FD5A136A561E51
FD88C412495440E748D764F82D2C88AC30D01C098226754AF49FA640FAB2F349
F6E60D04698BFC22FBAC18773A340274B0275EFD930F114E8999C74D72926E64
07C7003DC37B3D9271528291B697D14DEA9A8E21E4FB5A70EA4DE92E6703752C
60EEA1C17FE96074FAF9B47B2170272B94EEA06549D2F8C64C77AE0A54938D83
F8A6CA045B85D30327715BBF9BB2C16F47F9568C6B03A09E982CC1BE9893B8EC
EDADBC27BA817893FA7EF798CA707FE70877A9602A71ED725E83EAF41A817FEB
AC08BF1DCC8325A065533A7A6DFEBBA22DDFBA4424DBF6CA6228E7AAC0914813
21B921C6AA429E7D8C27A887C6345E43D63AACC1110CA0A6DA044533EB98D6DD
CD06923BB8E1ADD2488433CF49468DD4FCFCAAD8154C19405E59DF8259878145
6E7808C8E8C52C6656D44137D25BCFBBFE3C6603054A3A758E72F8131F3A9041
F7B1929C2C7D65935BCFC181CEA69C6A8B220BD61CABD0013F3825D1E4D31350
D35374BDB999362B71A74AC48E3E78FDED95104C7718B8D7DD377888ED682099
AD8D56B3E035DE39551E2FDA1742899DD1A696316057519BD860990662E83C48
13461E3FE4D47D616F6C2E195C20B480CB5F9A0F47202D54A319F27C95347948
1E59872DDA86B7959BE9AAEAEF04BC4F4567E6DAD2713388843A2285C1E419AB
E592C0EC22E7B1C7256872F34F3A3A0D414CE96240778729052C94E7D82D4419
445D1B69283F42E55EBF8B0569E9BAD401371FF2ABDA43EE38C48D2A0BDB39FD
BD2BD5002FE5270F65D0E5BC2C15D26278DD8A76C3E844A7A1B6B9B1B32ED852
BA29E9E4B770ADAD6C4B597FD0797F257CA4E0883A7D8DA07FEFD02899DE325B
48A92233D5ADEECEF36564E6D094F9F729C9200CBC92B08FC4DB1304AFB65724
53A873938791D1386729710F8CE45CCD4C8475C7761765E6661562EAF157B0FE
E82A6FF5CA01BB1723ADFCA0F43FD3F0A26679359BD07FD255693213B611547D
BE5FA4487C64EC46469F08491D6811841639E254B9A5CBD300F6C68263F1A4AE
76C742D34B1B17C2220263612966DC713F9E40AED5716736F4AAD4B532D3F95B
F801F2D828BE0AD27ED6258F6A849440FD22991A9500E94C3A3A4C8986EC1A5B
0DAA7ED546AC026368AB4F1700FED36A2E9AFFBBAB7E43248F53AB2960498363
8BB266C99FB765A06FD0E24D271460BC45CCF8786336C7BECE2270DD6F2A0174
55724F095107D7FF537283583E8A4D8BA08ECE55D1874D78C5C1BA594336641E
86D28B6C79D21146CC767A4D8D5FDF29A8DAEA0C82AAAE26215B71F3064014CD
30F10F5E2E319325161809B62F663976BF1233ED1566C0811B1755A536CEB690
E0D295CE88498AE37992A879074A6E75120A2BA49FE72C261F157DA56AB895BC
1B98133DF63E51514847261FCDE36FB1C1DAAEEC0EB0A65B1133CDBECC62C344
51C14D4947491D3B4E6DCE4565B61B6D5F1CBAB56012EA5D6AF946631A1ABE64
EDE858FE388BC0ABB8944FF3A7CB3FD2B9C72F72EB8FB7D23A3CEFAB7FB05C3C
7B456685671CCA1876E06E5E8A0A9294CB344E505E16237042D923D100204ECC
155D619B50645940B92B790BB7633B5C766257CF00E5527E2B055A84A3B2A173
06CA596DFE482E81FD7DDE8B45E6CA79B9D5FCC713D0A0D2AFD77CD61B8EC424
02FA201CC8D5816FFA5B8AB2E460DD3D744E3FCE65479ABE34FDD2F6553FABBA
B81259F488E81545FA1507EE4E26A4B66D44777596998D023939F2CDE82B4A2D
DE9BB15E57BD8AF8FB3526ECAD74A51D5B4B93170B9CD72433FEF961C9FA176A
7F777C642D9C9B3355BDD316A35AE131242C26363F5B5C9EF849C60CFB807569
CCFF76451AF150297BE7C6F6015780B85AF29C2535696A964AB91D0CBAD8A81F
73F2E2E152DB661402E7FAFCDA18B26917E52EBB6F7BFE4776F48CD7D43B49AB
BB812B8DE5DF14070CCFB8DBB3FEAF830FBB8B78C205331E17F135DF7AB31165
9844523606D0EA962E59ACEEBA267BBEA5245BAC046C5971EFAEEA5DB64098C8
0AA8D1F83A13B72F998C746A45A990BDFD93AF5A1E6AB1EA41647F67D6963461
D9264BBB478C1456777E74C632386D018292D145B3477887CD83ED1D5C0A1F28
D8292292428F6A2B48028ADB71F370C2A1102EBC1EB6530D8E3B058D05693335
7FED4FCB9ED98EAC76F5CA82939A285718738D2ECCF914C8B5410C8985FC4778
1F192ACE143FC9FC4B04FCB2CEF1D92DDC3F22C4FB9BAE6803DB4246A135F151
7B6DEE4FBD0A75276638212B81AE0DFB685801F2DACB2E695C0E84CE6D71E6A4
92418DABDCCFA7E8D491CB0BCA4747CABF8EB57CEADF2860DD31D3C555BA94F7
1F796D1BC78F87FFE65312EAB0F23BEAE5AB2F87287D80B6EE6A9B2205352824
B444F0027815F2927475934F68EC8335E3DCCBBB1E89E7C8C205
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMTI10
%!PS-AdobeFont-1.1: CMTI10 1.00B
%%CreationDate: 1992 Feb 19 19:56:16
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 34 /quotedblright put
dup 39 /quoteright put
dup 45 /hyphen put
dup 46 /period put
dup 58 /colon put
dup 65 /A put
dup 67 /C put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 87 /W put
dup 92 /quotedblleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 120 /x put
dup 121 /y put
dup 122 /z put
readonly def
/FontBBox{-163 -250 1146 969}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
5C4DD885310A706B320AB25C8D742C6F29953254FA54DAAEE60ED477877D19BC
D28E9AB576B0EA088171FD000B60D73B3C57F754BC07EBC9BF751B7D2B32459D
993861B7C4B0D98C422A11BECEF76F4EFC0ECAEE89723E6CED53E3678D733363
2DF068AEF0FE7DFB57393BDAA439A6A4C396F86032A98009EAE1247B7DE83B3B
E46DF2898598FF5E6CA6953127432A967E4FD41CDD60D6E413059A58FA556EF3
309178B57C16A763CFC9BEEC276944BDEA255789EF4E1ECDE1EA43EEDB955513
F42EDDCF39AE522A1DC2DC523F046EEC4CCAE25792B702C288732F5B13B5CCE7
E8B6A1A1DB86B1EA38883E481BEAB54023EDD9BB94E7780DEEA577ADAA169E66
AB7D8607B409619E79F242CF52E618AC0DAE43317C507CDB27EA8A1472D4E8D9
17E62C98DFB049C78AD15560CE44A39581BD6B555165091C5D41071212A9D2E3
05965AA02B8A67AEB04D915DADC1B84A531A1D672AAA06E9F720BA88419A3183
63D1F9A3BEF8CB2E23CD1F9C003BD7849F093D3B4C83C153A5A790C1F9E37948
5799C02F004C61A6FFDEAA1F9AE884DDD40DEB1539CFE3C3BE03C7C33CB54D56
2C2A0F467049797B56D407AA43EE6B8C3F978A7D945A80BF711C12D6BFFA3DED
35FA8B22E68BBE4FEC59E4C56D3C57E14995A8ADFA51CC6C3A84D3D775CAFA87
A1A0F45C0283139FB485B8FB0BEF5232494C0CB564F966DFE0D0566031392619
3FE8F0BB6747BDA591DFB26132947872D3B209FFD838A17EB1D5047FF880E7CA
28BA81889AB0DEC353C3435B95D95C2F085D4137A62F570CDEB16C44DBB361AE
83DE118ADA0DA5161C826F65DC8323D7D8C9CC860FDA7ED795EAA20B1CC97FA8
AF8EA786924702E9D7923D38C729D4CF51F3FA68583E9CEFE4C7E2C46F7E343A
78D6B6DFF1CE99695B525932A36FCAE65CBF8CA33F19B5FCC65501732575ADB7
75275A8B076C41B49F6B9DD98CCEE4248EA55F396FF5FD3F2C535A291657FFAF
9F8670C5806792CAB5FA50A235A9D2E5357D8D8A0E05A75A790249CF09AD48B6
05FA7E9A8751BF2EF4D2AA0222D20E405D2471F19DE6D58FAEF624A437902362
5D81178CD62290E4B519BB1C5003AD7D7FE7A42A48F04D640C744AD138C159C5
0F88C3FB95A0E541777EA35C392F09182FD45847263DCE59588AC86D95FBB79D
BCDABA5CE37C217572D6E450C20DC0E84E25EDE104ED8B8E840530134214F0BF
BBB2EFE76225C286D3FF468E55477CB868CA563C7D28C94733A75DB8947B510A
3F4699FCE22CBFF8C01FC6286CB0F64415BD65CCE6A80B84CA751BCEBF315BCB
A3675338D53AAC627C2DAB1F230D056CCF017CFC0DD87A3A47CFC0C126D408B7
4DD99F2DF57DB3330681F0F9E215366B38CF48284DECEA833DAAC926EBE5A535
86F0EFA4474CB1AC1DEE03AEA22D5AE1484355BCD2E6B5A715F1BE34FFDC7E25
5011233239AEE2C49A61AEE7B63068F3FCCE4D8C498E120BA9B13DF0A067285E
49887B2653BE88CF91C6239FEC6192E9DB3A0EF33095056CB4D28588028D61EF
16D171D79CC6A01C4C8983D992C72179D08666AA484F8842335B3F348373B5D3
4284A7168B38B18DBED86BB8E87569A61337D79303F889DE30E1E3EB8A9F59E7
A5FBE8AD4FA13CAE431276AA758B55DAFB8087E3B4B5BDA6F4E491E32010F7DA
1622BAA5796897149FD7A0078B9736039D38E61B3F45DFB9A59791207157B4E1
A9B7A6ED061DD169A3DBE6AEBB360102A01A4A9A939D5B1B4D88354435384C01
D90646D9FA33F52A6F51AE7BC3C20FD35400B7EB9E0DEF902DCD5C683A812E0C
317BCE806452BAF0B635924B29155908F9E398DC842325E7A805CFBBECC780E8
858C4E651DB3F21D7C2A7B0A136320959B4CE6648C443AD58D8940E892160AE4
EAC7A410773E0447C1AD979935B5FCBD2AD2A4700E60F5C7B2DC3B6F952307A2
284241E23617650AC6F7D4699032B7AE2A33429A74EEB3147CA630BBCF023F57
0760E9EAE801D873707FABFB28F845993C74AFC7DDDA61616273420E40D441F0
87E195147C084FD24F5ABC665BC8404927DE8C7FC1AD3905336D6B5C270AF89B
E30DC11A608A6CCE6BCBE3965B99462E74F4104B025134F94F9CAF6355CF48EE
36A0E6E93B01C8A47B6E25801AC20A70055EA99BE72E82781EE7762CECAB33F4
5D2D49CF6A3762310C0926D9EB6D02EFCAE6AE0F19C90F9EADEE2147665594A1
61D1F4BFB9F9F026638A63392DF68995369084E8878D0DDECFB9014051A63949
10A7E2EF46B2E13A6156C7EBC5953AF095AC1DD4D0046E4C5BD5AD4AB5551DFD
FC79F4B1CB623F49131D78C0EBFABA072734D63AD9060418DA63E769B555D7C5
503DE5766C2E8E58F18972DA3A971E059D617B6C87BE20C0D7F35C6DB48A87B9
479E2DC34D28F52E7581E1500ACE5D297FAD917497329D2C861DE6CCDE674AC6
709F1560B9A3815A137C94B3656A9530C94A8E93F785D1F3D3C6D6B572249C54
8096B03616551E37F33EEEBB6E8F51487798BB139BF82DFD0B920F30FF3CEA03
9337A75AE908C570BC7DD9BA08C06A580DC513383EE610E916988B2CE823374F
24394F119F5CE5B07E764FCBF963378288A5250EDDC7D91DF02F7D5B46F45217
F7B52D7F80F82E0C909BDA40B366D02E85D35F2C3165B5D13BFDA6C394093EB9
22AC1D7417C2D8AF50B8EF4C4331FC7C1966BE7F1F9F50847A52CCA3607BE7BF
6508E15283A54B1532BFC2F35597A006CE5427FF7C114B80BD33B58FE42C811D
6706A12A615F4B7BC1CB26E1D686ECB4FF2A962F76D5E946EA5C934650BF0816
988D09E7B49917BC4B33F68982A6D6A0C91A86CF1ADF26EC250FA56FB73813B1
79475C929EE854F49CB11190E94A9173E7C78A65ECAD54643127F8D64F84FAEA
A6E31E14C146A3A3C6DC59D0C29C4C7916E6D2B60B17650AA80EEE170ACE051B
7AD90FED27278C197B82954E63C566AB102CBDF0FA581117782F3A6ADF241ADE
7826CFEEF17961FF5C4EE4BD84C45047A300648F4EC19FDA8212292DBC54B027
901EDC9AAB0D6F5274A1A20CAF591A4B2598409676C9DD3522515458F226C946
7C05F4D88915BD2C149A025027281C92C6EBA700B57EAE12702BFA3D03F5D079
A58999697C16E18F99865FF93ABDA0EA4D01AD8C14BFE3944704AB250D9E7D58
B4E2811DA6C1C1AD351EA15A23AC406F2395F1FD1301F23AEA6CE23A8EC34BB6
032AB1C4B6F3E748FE852BE0C044E07852579E6D0A84B72CDD725ADA718AC14C
DE1FF077D87D37D7282166BE35BE1D6AC4D0C40A0C11852F3F9001BC78E2BC78
35D0B4CBE6965C515002320BDA2721D4968C1835406680A72A0B02B6D83329BD
DB81D24FFA508AA58C8A509C18D9854CB4645A7C05460297B32A2FF9AD1D2F57
4828A85DDD879B7596564425611A023FEBA4859F1080B4F4AACF4565A152697A
FFE891139F18DB6691D2C9CC4B10DF957FCCED4CDE00DB326382676C38F25E8E
759955441A70DE8F722915822357183302742447D892C56CDD3E74D007BCB5B2
27B25D0507053F4EDB0BC66289C83A47B4633FCAB7E626AD5AAD6D24BB252F52
176F6F32826442D59D2195B2A7F5DD540599229A6CC6371D4D94422E31A64047
029DA906D2BDB4B267851488C22347845B0BB402C8A97E7E5E133D8917236A1C
30806D41551582E7C728AC0FB480C255EC810266DE7B46E52A6423579CBFC06E
C8E2FF9FF00EF9FCC51FBB22DE4428E280CE1FD5241CCBF81070486A0DB9536F
B6BF451F7C706EE44D37A0D78793D24CE9049BF285C1DC9AEB61BEED88C4CDF5
D3BFFED602B26D4B3788E171579289859313C918CBF70EF8F655CD4FB73C514A
A34BCFB555B6BD835FA0B80997608E9F938257050F1673AE03E6B4C6F96045AA
A8FE116B8A9C0295D34802D22528B80EDCA6AC2C5CFCD57E12F12ECA8C0BDD0E
EF7F3B6F4EC14C3A9C68ADB70B6454CDDDCD3181DDA00BB3A9DDE3C64F162D0A
9250AAB836AF3F3C71589E1DE6B542E9D82B1266E23046AF5A57A7FD5A3EBA92
B137FA2161E97A54B5C472BD23CF56F3936DAF5C468AB88A6B587226829516C7
71BCD7CF1D3DD40CEC1A6F7895DC95C9C9BF1A571878036428A9A42E9B363EE8
64FE7D1473CF558A246F0921C3257F0EDC4EC2C1FE4E342011AA9CFA4472204C
CA1DF74F5BF01A3D0F518FBD76194711589E02F3F5290599E0F066F617B8F0DF
6C9196A71F091B8D7A8FA8A72E907EFD9821E1A023FA4583B1BFE762A07CB409
FE74B4CE4A642AE77B5FFAE5FD7D65A1C03EF6FB31264EE51BCA46A8927907F3
AD83EC5B5337F738F44E204BB64FE063A8C7738F217BA319F23FDC8A65610014
D99A05449EC21CECBEB27602F66708B1207810BB167AD4D4FA4AF54767A35B1F
B17454FD0D82F04386A595397E2246ED339259A4B70854BAF3F41500CD1FA69F
799BEB5C6FF670D4E0623B2385D545E2F46436FDFEE4F37DE68308BC86551E26
0DAA88D7A8E54B4E5FAA94B88E322EC04542C3F8C9AD3DB9954CC32DDA1A7002
8793B4532A5D6D31DA33470BB6D812891A52EAF966AA1629461C25930BFC4C8B
6B03832F4AEEA5D0B27EDA93F980E91B5493B9618F143A4CBD26B4CD8F0C3D16
5B2F27AE628D9AAFD99F4A1677557D68AA42A8832A7D44092AF20DC586290685
48BC89B6DC4734F8E13F714A54742DFDDC2C85EC30E53E39206594DB51BDCD17
5A68BD85E351CF51E86163748D3AD70555FF1D5F7B0E556E54744181F7C48BA1
C2C56129EBAADE51F7764AB181B6FBA1828107F61E8047A5CE36B58F5D6C2C17
61990478D0D44C23B1BE2BE6CCE369DDD14AC25BBAFEB3E33D5D50285E947EED
3A23B5A8698CF9F42F75A514D7B3B0EE048B2F2A4084912CA66A14D1977AC21F
7B2A332F41CB33D48E09F8F0AE912170F6019D655DE6827277CC043E001E37E0
88C7898F6ED2FDB215E4D4EF79787DB95777151B1951A2CAE8A9528D7E2BD15E
37F3BD6449856E5150075B92F10F9615F66FDDE2111A4B7BB546DAB5536B9437
2290D2405C5152996CB1D4B217FB16D6628A0FAA3DAE60943C98F4890D18E18D
3E2740F42CE9151E388827AAFDAD7CE9F12C54A932837464336B5575F0E2FA55
15DE03FD73C73060E4AB72F7BB3B2FC23D1691FD104F0330193915910A3FA534
B4EBE0B42222AF6F1F8E2657D3CE8AB1E8CEB40686CD6953C233E52C3D1534E9
A7B5EC22ED0CE565CF1B414FF50B6E3D6CFC342DE97F723B674E63CF67D8AE5D
C786A0F6BDE30587A1CCB7BB049B73559AD44CC0BF2CB3934ADF7401E5A8F327
9D701A04B88CF62B6B57FEEB8A36ADC12DCF241AA96C019969BD00317C36D0CA
2642B811E7611680AC3B4DC34B1E98426D7F85043A042B74D8711F587EF31CFE
3AC4F7FD9CC6CCCBA3522AE22809395B0B3BB1B4AB9CC1A5D1EB982E9F8C3F97
2BF975141C39AC80AB0904EAC1BE6A2C7F97A9AF3B32ED276373AE4D9FED44FF
4F1A91ACD26F957F9E50E1D4940263BEA65E273B926AA3E7DF828A43F54D9A49
7AA151A70ED55B8B5717527339C2A468608C1A5D665D0541F53B5386BF6CDE9C
E07FE982E83975D173824F2CE58A357A1EF179483CACF1C2E95563C2E60345CC
21556A26D49F40B84A4B4F00EBE05FE36CB920F65FDACB38AE6EA7734BF35029
9865BF659669E1C829199BD232A128E494B1D6FBEE9D92681BD7C0E430C6F958
2054B0587017126033B6696ACF3ECF85A90B3894AF9FC37D65A6A8853DBBB25B
1E016D3BC01EFC65C13E487DA69A7399F57D02FA6FC3EE6FFA7EEB7186D1AB77
493EB4A36D0FD86592DCB7F28617E4EAD22AB1601138628F521962C978CE0D8A
384573776F31625C13F19D35CC396DFC57DC36173DEB95F8A86C3870DB90C065
70481E6DC8F7980CD49C6A2CFDA7EC07CA76FF8DA24E7B8A6364F2B734E1E645
1829B8652B838E7C55FF037DD51C13B2A6867000D3E8C6652DAA087170804F66
3F9E437FDEBA6989464E9C03528EFA9D82D5C67B80A06892B23F6DBC7FB79988
FE00769CB542ECCDC42FA28F34EBDE4C37152A6C6419033854C7351FFD8DFC69
361909D977C3E8CE7E1AFD26FE2B8A7FE5F43058233310A63B0E11F28C516A4C
7B82A552BB84C0294DE50E6969628C96A9506B1EA590E02D199A6174C0CDDC50
B7E822C9312F3534030FD1838B843375F0B30DBD4AFBAA0D0E3A49495971AF2C
E98061E422984F585528EDC16DAA7ED05B4353424554AD2D6345D6767AC69675
2151A3A2B5C28561DBFEE99CE0C957E8BF045D790BA25949E2B9CE6F63BE452D
7786129389D5314E1A0D6EFE59139FA6583DFAD8C130C8BC8C5D4B9D77E778CF
175CFCA392C7D49331486E34C4A934969F61D00E32750170C7B70CF72983E39B
79C07A23D10937CCCEC01186C028E704BBE47ADD015EFEC387B6419F6E1CEAC5
56E182CC28172FD62A1CD65CF7CB008C637CEE19FD4EFFC27E6BE2ABCC70C5B1
C98E9E4975B21FFF757DBEF194AA8266B0D62FFADC903D525766B90D94F3ACD3
A7FC9C32DE3F22F4501B952AFA043A333C7D4F5EEFC8B8733EC891B1A8737D06
867EB30136155DD70E9843E5E240BE2A27B2A5FE49E681CE09FDF95580D6EAE3
005674C7DDB1F9CCD71599383B145B25B0E2F8D97A257CEC5CB815B87E866C4E
C5742D0259F6ABE53CEB7F99038C604C3F975E43D8549C79C26BE9D90F3B7E8C
D4BDF13BDA5FC962ABDD444491851D4C4DFAB33BA07ACFE9BD0FFBAAFE053379
E2524F7C96C62E2F32A9FF6ACCE2377ED03DEA4C75F4872E9BB2971DCE61F2D6
5E40EB4A94B72A99D95D10B1EA7380DE2D290F06E6A63F50F1C942AB62371FBA
E81128E0B72132BC5967C2AC5863B8E849A57A4A9D21635DA15150B3A5F68E6E
A64170777942B04EB0B06033F5C37CA43F00D2C513D6572370E16B8E381652B1
D4F4270B1ABA10CD543C1CA4F8B86E4A8A41B75733223D9F7632019B86EF650A
FC8290993AF5B2AB365A600B766738BEBF9E9653FF5FAA418D73D84C60056D98
06D94BF718A217725D0EB7E2983DF02FE8D17FB2D3F269A0322839D5B0252A07
EB950B64535EAD9AD6DF3A623855983B92803E98A5B15AD12BC1A74A439B9C1D
9374691E7A77F4967AFA1B84034673A932B0DC5C8401347F5126E2C91F775310
84CC81A0DCE7F2F5B6C94FB0154BB6FF0B4AF290AC3E47AD945E5D5F2E1E094F
1FA125199DE39E768166F35BEAFD4F013E46E91BD2F3A43B1313AAE36DACF9B7
3D930CD6196960C6CCF6AC5898F4A74F00C641BB654C72C8F6F4019487892314
5D7BEA38D16CB807395999F745E89C2C0AF226CB5B4A37A01228457DC91FF7BA
768300416FA88230832FC3E5DF27756173824D8C4B438974947DCDB17FE523A6
E26822458D3861C4E3D94679FC72A3E54C11E4FCA8FAE335DEA7D9F09F3EB320
1DC5E1B69CDAEDF6D01999C3B48F27428FE44CD0EBD9BD2F21D7FFB99EECA344
83DDCA627C2B934935DB8C6EA42C40194F84581FEDD784F1305B49917EE2D745
CD43006AAB08048202F11D0461B6B6917E54717A8FCC254A7FCB525167519DBC
B3A261DA71CA704743F06FBD3BFCFF50FDD815E1C31D3A07BEA05D8FEAA4371F
968D5593D20D351DEF6829F95A89B836D6F67F43C5A969A5495F8142B3527AA3
A8B0B484A7082985804922DC8704C9863C30A798854725D31716115801E440FF
37E1C000A901CCA9316C327F4C5CD651E24629A9D6DB57FF174619AB1BFADE6B
03F189C1121F12731A0BFEB2706E2E49802AECEB2C869E8F3916808FEB82893E
D9102140B95BDECE891EBFDC0877CB05D5D693595BE1744486199A80D2F299F0
1532B5B51D44A81F6630285B775CAEC4219484AB679C387736AB657D2FAB5FF4
C1F38955043568B0923EED7871A79EC0EBE857CEBFEFCDC56BB88B8DF95A5955
B1B5C6C3758EBD3961A9AA8EB80F727587D52F520D9C2F3B16D53D04373C40FF
8B43EF30AA6905E7954B30F8CAC576C961A97D017E38333401D46497F464C58A
6F6DAEA14796130F4207C9A2C915FD60987A4FADCF15B1CE028E19D84741A4CF
E92F14975B22E90408636EC2C6BEADBBE2F700D9C52DAB85A8305314D0E9EF86
7FE155A21200C540749897BBB8446DB0FD9EA6ABCF1EE1384401EDFBC56780F7
BA296BC9949FD913A6C1465F372FBE8A94ECEEB080DE004F68CA85D8E14E2FA3
C2C9F25A7AA3107560737D89D424415F4519CD32C08EE537ED3C1D868FD9E959
B7EFAC23F9A3391952F82B64900A8E823A2C151A507F13B5B8494D969668D5AD
18E616740BF5FB4FCB456948366D740DB5977F1486ECEEC222BA34275678D000
E72627EDBA485B582B3D0B8D39A84066E9EC9AEA514C99A610647E8EBD15002A
2A06B2B774369115542E5819FF5CDC8EFBB376FB8848BABC2A9FE36FE58664CE
ACC537460646EF5BE3E27AEA3EF1B448F483352A74BB076C6C70F26919DC748A
8F8C8F00D17DA9BA1A2C6B2EF2991820AFE725820547C323DC5D881A09951743
CF93DBF69B34DB77E5179489647F10AE99BE1A397C3E9F867E32A41D5E648D37
D2A23BB0BCEE888C27357C184545AEFFEEDFD381F02CDF27365C2F6081A9F130
6C093331619FCD8DAA5785ED724C65C750F68AA4F0DB9482ED5A9C7AFCF992DC
C7E835150F6FB2FA3B7ECF0EF9E2DC3FC4B662A39BB4E6647C970729D6C4AB8F
CE91E89425D5C3A7CFF43E0DE81B4010EBFD6F4B59E6974D8ED78EFAF93403EF
2546021413AECAEC33F23DD20C120A352490BCB429609877704A5283163164B8
36B1F3C515F58DB0539340A6063F88E2846698593D5518413D76184212A1DF22
DD13C9CD8251056A988A0054F340A7A69CA5B946BA01456FD45BED04A44158EB
89AC05C4E21BB4CD9D1721250A8254B62795B4F723DD561ACD73A975B84D387B
FAE002B7854DE9284C72FB4E32BD70F440083A990FCF0B35A7DFC987DF094D8E
31700EACE3BAE2DF2AF61E8675D5A55062426268A169B24CE0975982C76D36A8
BBE2559A8A48F3B022DA0E3339FEB3357B83EDDEA914391DF8F6E80EAACF0742
B31348E509D17A4C02582E854D3838AAC88AA0C0906C8505FCEAF8703970A3B4
38B0579D7AF0E0283FCBEE979A3E08AD484F0C1171E41F58AD8BA063FE85D248
60EA777285CBAC139159875E82165494DC8A35E3A67A75D8B9C8CCDE9805325E
39EA26FFF3BC9BC99BF2D2D70A5F00F410E50D759E1CA678492DE1072966BDE3
6469C249BC34CD048FA81F3241D36839491656C95313E1BBA617EDEEC4ED9703
DA7A345DE172C2760FBF66559ED167BCB696C93FF085D81987602B193E87495D
2A2A19DC6FE716765861A94108BC65FB38DB6EB504E7E351B9347B68886382DC
B872968991EAE65F67B8FC8DFF6E3E97E94AF46EC98C89D877EBE2A9793CA763
EB155FF47A65BEA3D5D23177D8CDEED3523026E9B5132F6342F1257225F087D3
BF2C1177C097AD32E23138CDDE0F651AFB6F10FD173A3B73042669C116081E80
2A4868ECBE26189E358956839C56678FCBAE2D1705A1E5928A5967596A4CB329
AA02488FB3E2EE9E52C67FE4FC7D40F2030E7072F160176BBBD66DF7B2AFB1D7
2A5AF0F3564FAF8049C4B7397D1DAD17A1DC4E2099D3D8BA176FC81EF20A0A63
C3116BFDC1F0700720DC16B6C58259582B39D00B478ECE899951E5B8084E876A
ABB69C19482D66277AF4323FAB7039AA9CD3B17539E75FD7EC8AB8474E9BD4EA
423607C7FAA068A9339ED9ED7B1C67EEE03AF3F3137CFEE8FFE71FFF275D900E
AC82CEFF1A42FF1955309E22E006B69967452AB7F01A2C3ECC090AA180CCAAED
EF42CAD566B25CEF7BB035E4C6F50264BDE376609389EBEB3EAE245555F49F1B
C67BE891C11FE7A4FAB4D9C62974F4E0655A72B36A86AFF1634B6F5E5B569BA2
3C3C5D9E133A4229C4597D4B767C3F55009E29FEF97A003D249E1DF465C73A41
6BC404CE79CDE12E861E8455E88A5C8A92E325192599261D99C319B561B54931
518EC86D45D7BB6F19CC3C66069E597E1CC055C4A3BBDAB813CE6813C6D8BA2B
DE6327582814F278D91B2BA37035F322B921A22EDF9D80DF29C0F6DD0D81C17D
7DA05D5668C25720338B7DD5D71683926279031B8F1C3A6585726F45B173E405
2ACF6F97355BC9856D0597990EA6A35DB3B1EFB83CF1009882AF73CC04FA44A3
5F4B1D9C72BE9F2441B09AF179D154D7964DD71B0F9469525D314330DD1C8BDF
0B2312D6ABF64290EC0B24BCD55294BF719A222D945ACEA9E427A42F32F5F5FE
D839F6378F381BC8194497A8A3B4F042EE1B960DAAB4148B5F1DEAD2049D1726
F28D34283E1F2A2CE61C3DA6E3D1B25F21A2617377C4C5B3B275678A158BBBF2
430A7079B4FC2873DCA92DD3B3DD4903C71E544302E76AA5B855A51FFC17C7DB
D11D7906E024E2F193A10ECD6E74CEC5B1ED8A6A494F4E79E2269AC55A26EA8F
02A6901D66FCD03C338FC6614B892D011DC089C36236AB07DC5104B8266790AB
D464B1775BDEDFB991A9015DA95A6BCE1B3E61B71BDB2C08D3C58108929F1E6A
5BCFA64BBF4E1EE1DC873492B686DA569873C0EB51DF8CFA743FCBBA2CCDE3D1
F4DFB080A258BB14081593ADA424B77DFBA348CE11E723F091AC89C0D25F6794
5D0DD2D1A78CAF3AA1DD692EE3D76C6750B1104A0D6512FF293E23CB895D3285
F9B4CFAE9F4B44129E45102104786D8EFCE9F00B15AF914D27CA7332886D68E7
F32963740C6ED8D1934EDA3A3BC3D16FD3121E76040657E4C917AE56512E46B1
B3E57AD1A83FE1EF1A640E9D1F532A30515CD527153C9A597C5257E6B1DA8018
63A379B4B36F7C0352E184A30A581CDBEDF325D9D92CF9FE2EAF2B4056ADCC46
817C75FAF27861C519C2EECA730EB6215EEAEAFF9E13E9636E356B24C1FF32E2
BDDDD4CAD0D46769E3A4CBF16C9AF3D2C739723CAB2427464A9B5FFCF7BC5318
8365C834564EA5B11F1A22CA59575D07C25C30567983467499F27352D34457F0
DCD55D488CC9E5AB42DB1AF140B73EA7FE27CD44D8E610D9012FB57EA1438F85
5DA3A2ED40810B23A6A8F814CEEB2320CE5E1A9A1BB117EC249E409A06BE8BC5
A37EA89E74B99FBD237917F62EF1CDFFC3893CB8D1BB527779417FEB0351C69A
06231B2BA6939CC21BD9414B9C1C1295D6BA5745B2F6FFA498C20964AA73DA93
F2BB60822D88A77C029C81CBC8118F1369AD883B16CEE5E59E892A027681D02A
D67B1389B10A2A0ABF8F22B6F8382F06F3CB90CFDA91AC45FFFD7AD3A192DCE6
14201D03D9C5F6331137715B6B10D0547434E4E129EFD3ED59C5B2134356F265
E2DFA95CB62EFC4B820966A9A172E5B2A134D359D777B68186704FAF7DAF575A
D201A26C6194B9FA36D41DC291A62613B5522552D2CFFA81D276009A8612212E
293FCC8A5C85EEDA263009C4FB50ACD7B65555A9174AE37B1DC8264A15225426
C43F8A6ED11198FF1BE2ACB099D3A03197696AE50238E20ABB729E5E52571C77
191CF13CCC1401723756C86B0A420A0B906EA5D42A64A44E519F55E03AFC0661
751F9A3C792E69FC2C33129196534A91F1F939092789965E9477CD9BB709ED4F
FBE00A1C99CB740844686E0376C00AD3EAEEE30EB00722D4868842EE0892E746
9659A2100DE024835D5CEE113295339BDDF6DEB2A98A0AD1BFD3B14F635D08C7
AD869861D8996F6D62C1E427117BD63D64EA42D7BA83524496C4987056CFADC9
63125C0FE0140ED103B5D6B0E1AB36A0B1D4CBF91F4169A7D9AFD33DE1797C81
9CE9D164F82D8FE0A418F6C507BC58553625BAE9DBE8BC9C32EBCE696D794999
0CF08A51E382D9D61BA9A775E65AAF66530FE0EC1AC59169B9BCB4639D7BA735
3F2EC8F2717E3FE8D5DE9FF5455B965D020917253C4D2547F2181C4D654D212F
3FC05C4228A594B7210983D1CFD275B1FC3ED531ABF2ED9C2D7DEA0A76803647
F39332BEF79D7E9BC27B37DB13A0FB28589853079C450D5CA4DF04DB318C960D
99AC8299307D088A4FE960B7A9825996C0DAE4D079B7432BE00BE3F7464A964C
5C3C3CAA002B275224F74A1D321C88B5B5A1C75E4BF4D6CFA08A5757A9170235
D6FC628111A061B5BE909D9DFA94D2C9AAF14485C29C8E989E4AC62BFACA48C6
1446A1815C66E27532A8C4739EA1B66CF6C2B1958EA6A4D5050437EC38EF0611
8029D9239ED52DD578381676619C50EA37B607B850897BD128127EEB1E3D309A
C639B8EE8EE137E869CF4A7ABD7A95C91A92843F10695BF222727E1468E3C441
8EA028EF7DB486CF36F39B3FF362C8B1EC317F3308593E9161D3344B0EA7FCC0
D2F9DE79BF85D1FD4E99C08C739F6912D31D564D6CDD5259CD1C4F8A6CD880FA
61B17D640C53D0FDA25243FE24145E591D5AE252F5FFA4D915F7D5A276F24734
C1871202059121ED1925B364F6CB73BC01ED20F15C2DE3B8A57BEC3573521A9B
983424E10A5912C522B1C3910959709D1CA6059BF5D62CD29F839E8990DB94A0
D2F2F933E6222C7B7D2AD2CFD06A7BE46A88D0AF8DAACDE46F75D49A34C4F272
AD93FB97BE8954A737C1703F7A0F838F1D0B3D5087ED11B65E48EC276C768325
A3BE5EF5D572A248068D9E620412F1B3AE3B7946A213712E31318D888CB42AFB
1747CE163ED1CA8A3EFE18FD59ADD9911A8D8106104514123440BBBA69E5CEF5
08B630C56C95328280FD4B222DF082439F36A30FA69D24901879298B98925255
7CAB87C2A1B917A1382E2A7B4253A9FA3A72A7AD0236C9D75910DB3902C6D3C5
2D81416C240740255CA5703A3EB0DBF6BBACFCA8A76EE8C5F5F00D71234556F1
5EA0C1FE6AF7D11E5AE2430405A0031F82BC23C50F689D5521205D6188FE143F
C120F809C26E1628F32CC760D4DA7A4781DC7EF8508ECF12E141F2D9AC668E8C
6E6A41E979AE5CC8488B365F78C9CB2C9B0B213AB9A57EDF56E618B189129E95
DDC72CB8A9DA836D83A01C5909BFCEBDF3C696E6DE0D1144E0BA3DA3FA20006D
C5C73BFE3DEEC1FA9504F2F09B34C269635F6FB343FFFD7BA1562539EFCFB33B
7448C2A38564FFE17B1D9CA7048901FFD113163499A42776AE0A30947AC65D75
4735A13414A2A533A0F1575CCB273C435E78398D74A731E940B750CD4F90FC9E
E03A7A20C25141BDC34A5D729647939D4D90D583CBAD8DDD432446BF28D60362
958F81E6A99F0CB2DBAE71D6C17BEF29ECD901AC4344F3BA01E631467A9938D0
A1188EBA5C2F40FD98466EBFEAF7D4BD6E7FCB269B0992FFC5BE3AA4F1FF7AE1
6A5CC0D5D4E1DD0EC2F1B9B879785048BF5791B06F628482A44159BE758D62E6
E52911494CF6F0E8D0EB25ED90D0641990FB7A39230B47580A34D29F2A900476
A515DF6568B93E22C53C98F7C36DE18EA8B4D501C16190A7C4C91EB7BF7BCB60
74FC91B34B8A6536FABA7E00E0955F5E7A8D382123C7A01D480C8CA3D67B2D74
10BD37407A3CB7F5304D5B79433FCAF67A27453A29467C231B4C96F0A5244EF8
66939723C6B14C7B8B12EABAA8B71920FD550DC8B709333C8680EB548DB9734C
B3759DB19C0AD15F16D3558570A1B2CC7EE67800C4AF664886EFD5198862559D
7294CA27D656B76DABB77A757DAA94E81AC235978E29AF
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMSL10
%!PS-AdobeFont-1.1: CMSL10 1.0
%%CreationDate: 1991 Aug 20 16:40:20
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSL10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -9.46 def
/isFixedPitch false def
end readonly def
/FontName /CMSL10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 12 /fi put
dup 39 /quoteright put
dup 45 /hyphen put
dup 46 /period put
dup 49 /one put
dup 67 /C put
dup 70 /F put
dup 74 /J put
dup 83 /S put
dup 84 /T put
dup 87 /W put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 121 /y put
dup 122 /z put
readonly def
/FontBBox{-62 -250 1123 750}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
9429B9D40924DC059325D9D4CC0344F3F997A99E6CC0676735EBCD685AAC9142
08DAFEC78BB41AFC2F1C219910BDF41D6279284EF600B69776CA15BC8A34347C
30783C52AFA60FBE3E353E2AE354CF87B558776A22C776C7A0B5AB5CE1F941EF
C2D9CAC37294BF407A671F10E4743BF842143F4F7DFEE643BA3BBD8BB9E3F24A
BCCF7F0ADF8BA500620C81033EAE8C4EF2C1DEF13AC575F1B3BBB66F093D3B78
5412B82B67FFA087AF57182B2230F9F2137180CA58A7D9B2C822FF04BE6CD01D
43B2CA7058C7B953F6D9B5D6E91ECBAA5CDE1159B0E59C83DBAD96D6C8C8BAB1
374EF652D10C0F3EE7104472C98DD3572AAF2D45A70BF7061447E21EE3C3BF23
DF39C2D1B35B42CD5297BEBE6BC94F7C9DC6E61EC67E4F677256FED9064BD3E4
B51A71B1D27CA4E5AA9E1D8080E6DAB5310711EEF87C40859FA935B19524AE83
63B163FA8397BDFF443227FEDF7DB27DC35D89FB1C5E435DA0619A5C88AFC73B
89A2DF5E767C5B536BC7167A840A0C32BD57A14DE69A7D0D819AC36FF32F908A
5070F32983BB007437E3500799DF5E0AD3710A4C0000F0098D5BE99F2EB9C1C2
C444FD9552D0DCA098A94B3BF176F511CEE13DB7EFFAED7C47B5ADCF8D4700F5
7B6DF50EE617C00966B9A2828882804DB7477F4A8CF5345B7F3568B4F72BCE73
2E2AA5BC4B4C70E21F3AD9AFC3B8605A00D67EF9ED1F4D13DDAA920D45B43CE0
0941BF17CF05D2B777C11D4D844AB20C0693D1DDF00B27D9E1AA2D98A4A06CC6
D342AD8F644F4787B66CA7D861E7CE13FCDA85C1B0C9F94009768EA89838EBA2
7818F40A3ADDFA3289CF11C1ABC8DA5AC3A477CC71580E3842433B383B7A6662
2C86BD7E6DBF9E45B9BB6086E0E014F50DC64B401C33C8AEDE6B2756F5341ADF
C9E390C565A64326A18ABBBCF16E34D9F65897A334D9E64077D4A27867103DB0
08C77CD64D79A5E5F9EEFB3DB4D3793C20E6B2E76AC6AB2DEB5A90CFA93E334C
257BD0068AF79C07C4866CEC5F430DF8F884A653CD1B88157B7DDE592F218979
EE3E839363A39DA10E5282390355ACAAD951D63C2FDF3D99BC77E54AF18A30EA
A47AF562D077BD7E5248D279A933CD80A3CD51CE38A991341BD96B71C0E5C264
3B7DDA225411DD0E3B744E8FC0BCDC2B6D7C48722F0CE06873C62CEDB6FEF393
7D03841FC158E2A243B635A38C018B3092B574FD93F9A62CFCEDACBF09EF0251
A1CC77E97C9613A9CD124F9AF7B9B7A0301C78055EC9E31BC58AC86913751A58
4A7D0798331B71F2991FF4CD88F3941095E8AB1558645733709A14D61580FE67
B31AFB106CCFB57F1325CF351786962AB73D6F7CBB948AADA5D3829E465247CC
087D25AD54023D15C5E1E229BB7BB422085A2C1EB62F9EB74B00F887F67B8A23
017A793AEC5A4537C494D49E61B9091C9339DB3544C73AF64D3BBE0056987DC8
E3D230DF0B82DC9D9DB5DA80647AC90C542C7A1965FD835D069CCE389D5F665F
DE21106ADCFF7AA7A93914E31A1BFE1F39633145498BDAE7A4C5FD94254594A8
06B4D5B66DC6A1560AB80EF3A26FA66A4532FB591F2AB99C98E27E035CFEB2B4
7B310B722DB67CFEE05FF09C3107110C847BA7879663AB69193885448328216F
336B65F083F3C17A641F2EEE9551C64FD7F5EE6EAADAAD908324915DF373D0AC
F567132A7034CB61EABC2816845DB93F5A05EA541680C9F49784FB8B00EBCCC6
6BEEC3B142C24B9AB6F5672763F8B051E9D2CFD7E27E2697A2665E684FB94BB7
F0907238FB54782608D8144A853C338C768705F7EFBB13FBBBDAA7CC1DFE6478
63FD9E1195504255C5A87980BBE692D75BD996DF8B3A09D43998AAB833D694AF
C7BFA95E9DF0A8676B84D1381DFF1CDA7E2F1C6F8F9D14FDF23DB01D31CC1CCA
3F5962F0568CD50D12ACB13EE81E0860C8848AE1271F6DD7772AE083212F2D48
780EABA77C42057DD1FD54E4070E3194BABB272FC86104643B80D997A467891F
630B6E3561058BC3B9A28511CD0D45F417D8FF9F4198A5C72E0C7C5E7CA54739
94045DFA1CF0D558581D78CB8205BBAFEA27CA9A4F282DFF0C29B629968913CC
CC8F782A01C606892F8B948443BFB3A4E79F777FAC8225F1DC09A8533EF65C17
CE6A783131F4B6CD6C324EEED05F573BE5A8641447EE8D8EF96D115D632C1B4E
4ACD4BAE86DD8F14B7B4C709A9A82DD0AA2A9B43BFA330AECDCED601728370E9
F8D4E668A916E27CBE843B8B5854445848C3BDDC10211E274D6A54C0C4A67A0D
19678F750D5A700FC9307A6433D1CE71897A3CC25221CCB5370FBE42872A482D
2052708A3F2516897A060C4DB178E5C4312432972861B6225570A9ED4978D287
94D9615A650D235B1127671E30A38810408C80B8DCE01286B8D3D74AE9CC8B01
D83C4E4B2BF5E6808F7753FD0DEA81B69F8C9B60821A48777B7AA7F3DC0596A7
756CFAE0C08AB5536A555A05174313B3D75368489A1F2CA8F73A7F56BC56F9D8
2400F622E16C6A1763E525DD70BE17DCFF962FD52AFDD44D9C50FFE9DF6B507C
E1A1FAF9739C011B262D8DE65801C3B1BB7D78679756B7DCB47F7DCEB9B2A2AA
D5F6F7C8296D83B1513D3C8D0B94E006E901C2CB8EE13ECD14BFDFAAC75B8A66
431AE22CE58CB869B08AF92E2B0941FA8B822ADF2CD54D65C959EFBE35BD6408
1C3CBBD68696DAEF6843C29D63633F345162299797AB724D357C061999ACB616
B7F0B6F639C32BA34A9796B2442587E74C5D90211F1793EC68D119C260565172
1B9E03C660A5FE4F12CD75D1F3A80451DCDAE137A0F972D31BCF4E7035CD9F67
113415F928705DD89EC43862D1C1DCE445D6A132AFACDA3CD01B2E1AFF5F3120
97C536C42AD9322BA34D1E8CE90D67DB144FE71B1300BD0B69F81268918C2867
83E718CC8CBF432E523CE8A240870ED708068E551BC3744FF481CCE43216003A
4434CE57B3E55A5C861C4E3D158FD88989B59D242605C1900F241018A8C8B298
935C650C038917AC8311D5D8AF4008EF5084AB624BCC93AA3534A86E22501F76
A02F76C7F610DC077E55FEF5A37AB2F46EE55C2C507BE4C5F330F449412781F8
1298597517BD3A6CF5AA604BC7EC073B1BAA19AEC6C3A626B4620D58122A97D9
1CE84A5A049C6F033EB302AAB1094B292B6254EB8DDA76742550BBC2AE8C9F4F
620C3FF47BC32D4C758B10F40D3EEDC5EF711B593F3363BC144CA9E356C2E6AF
283E0AB8600EA8A2706C860EF823A035B102829B239A61C49565DF182AD92F7A
74149C35A4A46511AE451A93E28391CBD324387F3FEF232D53EF91483E09AB19
56F39FE9C6513737940B7232F5153458CEDAB4A6E80F9001979275070B3B194F
B6A0F8CDD628AA150AB8E6729352A1E2CA1B4847AAF49A524CF8EE3B1A9761E1
22915D55303E430BB5AAF7404760AF827DF53D63857A8ED31F40DFFB7711A68F
5687D6B397AE004B8D490D1360CB062EEB45199BB8DF4DC51A2CC2EDCE65183F
B101A020ECEC5E4678A03EF4FFEADBCD2AC36CFA64D3FAD3FE8E6FEAD4CF30B6
530365AF486008E60A0392C1E5937A482AE8705565DFB0EC87422B26B2662FAC
2C79094D1AEDEE757709898EA92927C5DD183C13880CBE926184850529122B5E
F91C48D56C835D14AD2CD4E5AA2221894A68A91E2155A7A1809DD71D5BA8F5FD
D23815E05315EAE40422545CFE5F49DA9EA4642D27CFF414DE97819E3845C34F
E914776DB01CEF3667A3B547A6F8C5940529EE4C2C68AC1204F32D5DEB366D7B
C8997AFCEBAC14A9009A5174C54CDBA3F336CD3F7AC525309BAC156626F9B5E3
91F65A3A8F9C62B56C1C49C8CAD0E8857487F6728BC548B08CC4D4DFA8B3B76F
7BD1CAC3BE68D6426822548EA702FB57DD1A9E050FBF68787CE97B18E5904993
5DEBC1684E7C35AE0AEE844E9A9D1F24BE5A5950F6880D793359F58A3214E352
E4D07130C9BBFD00F3635C8507DF0985FB56E9EFBF113DA98A23574B49239064
C8D06697205C4E74E708F5AC699CCC68282D03773530B3A479B0A3FE8A6AA9DE
0AA677A925E25BCE731C0EAA652FAA03D188F32BD7541085B6123484E97FB263
FE43B844F6D34DDC8916243D3F8B126BF0DD6C8536B69ECDFD06670B80BDE750
9FA4C6128126DCD36C9894D54AC125E21B57EDFE228C8DE6774DA44461221106
3B507EAA89865E445C192146050A956443F308DF446E7CA7C19E75EFC0F62C6A
4B6A1AA33884AD4ED5B74676CC2AD323CA41223DC6EE8D621F1EF94E7A4AF0EB
AF1F40FDFCE5FD8C9CFB2E5FB4F4C0D7E42887FC7B4BAFD748EFF5EF48B0459A
C4E880E6446E2F51169A7818EA7DE6FBD936CF66586A947C3EE2A15AF479B27E
60C9949FB301D3B7218D72C5FE1B6DB91B685CE42792CAFAFCD5271F1D9084E6
DDB017D33088EBFB3C479D5357102925A710482F05417892355F9C58FB5D9937
1250AEDB15EE99524558CE9CDDEA43CFE66A97E05D3B86BFF7B5362A4A84B736
47C3DB1DBC5B150314BD7F5FC8139050B40194A5AE1F691A78AE9353F788E266
00424C0987C9B0B93F965131742202844C3383BA6CFF52995C08B406C27D2A21
B7822664081F30AA39709CD76CA9EEB1E59179A8C3332A391027DC0B21CA7F62
14CCD2AED6249DDC2B0F8A50959B61A60F342F44119BF8508D05509D65683607
2DB3F753D076ED3FCA6A2802D35390FDB79A7393F5082F62794AF00912B0CD29
495549A63B0C060A64B5AA351523200D6C1EE31A782165BCD6C5AF13A9BE91CA
44331ECD97CA95A0B9842F5069C9A73759451646312E4AD61C551805ECB3BBF6
266EC78F08132E28A6DD7318B200CAED5EC69CB7387DBAD895C26C314645258D
2503B6B2AAAD2FA9882B172B33B6FA61817108F1C3AF88A0F52550C7411D0767
9D49FC7E256AF00317E751D347A148F4A7951F5D7C2ED12070FAAB14464B004B
1ADE76BDD497590718895D1766F3B0E735C7CC421E455521AFE33705659928B0
18354E80BD38DEA4034719ACE13378B191327B185EAD5C22281CB520ECED6AF4
1242691EB0308F5E6A0B9EB2FD1D3F8F4F91219F7E8C95320915862A2CF98CDD
A035BC61B859CB4638F82D09113F1A33B9C01456DE233622885F8EE3DC5600A4
451BBBDE57F42DD995DF42DB4BFE247BC4AC6F441461A05A702E28A8A19261D1
05EEDD11D807808C9810553ED04DDFF35F79F266001FC760CB4D5F11FB54300F
2E15853F57AF0334B453AA7846BB53261B57C52184A3D427E50752800642F3AB
A1B999320EBB096DD2C295EEC8911FEFF88D2CA88A370073828641C4A3FD6D55
A822251639757FA9F0C8BA1CB9AB479401262ED37980725271F4CF15DA8C8933
1FCF465B1DDC6668CA0ECE9AC01706B0A8F0A7BFA24AE8220DEAB2595304CC05
AC1A6B5A1B0D6F11D814A59659928E7A2D0DEDC004559166BC4247AC3F874032
5659E2D272B073CF42C9039559813615C984981A981E028B0BFC312E0030A1B4
3C888FA54DB54191BBB106F4A1A0758C7E764B4D7C4ACE41D0FC0508EDCF9063
1F92C05A4125C2C161EBE22ED9E5406EE92E4616C187D20D78C3DC5119D98EA3
6A61D4C68946257C1EF72C73B963A3019C98F398975839227AAE45A9BE4C98D8
81F059372F5AE180D266C038D3BF49633CCE671AA3FF3549E86ABE6CDADBCC5B
DE5CBDCC11B6E38435C7C6D6CFAC215B87339E046A493664FBF08E5DDC255E3E
2177C6F9EB01F99C9324C636EB668BF03D2CE7F21F964DBF28C2F945E368CBAB
EC5728270B6D38D7D88F5091B942E20FACD25B4ED69A780E327F10A2A13254A5
349888371329059948E672D23CA607A6168C12EEB1CD90AC7A78DD5B43DD4F16
6F9376D4740643A52BD60FCEFC8D3E05A91ABAA74717FA0802FD4AA2C01B1354
62C7C1FDA92904E02E5CF4D37AD588B5E73FB826E06DD1A6500157D1131C6AA9
25B38CEBDDC9255BC58B92F88CECE0F6B18F019438D2BCE56CE686DD29A32258
63B624C8D492BFE52883079B7995D5F868080D90C297121CC800D6FEA1A33CFC
108FFEBC29FAF9A2CC2BCB0A22D9AA42FB825F16EF09DB92103C9D644F49BFD0
2A2CB434F4DA6E7C2BC9B4EBF5D814B2BCD8103E730DEFCA70FFCEC0BD46654C
CD6F74684B6AFDF4B3C25CD8355A787C1D72B5C85C54180C37A58E725A7EE4BB
32E73438CFF5A973F5660C452027F5A226D102047BB6E7F30A99C4EF253A31EB
CF976821A2F4B5E88E4812BE125DB3F8780220D9123485CEF8F4FE4A649B8F3F
AFB543CE79F22AF78DD5A98B0BCD358F0BF81A1087F73EF1DDA956BE09E31D48
9D378715A7400B565869F0774754CA7E4AD76D335B03EA7902874AE4B75E70D5
651D44FE1380CE4445EDD7ABC14D7B6355DE55DE3DD72330F70CAEDF95D6705F
29A9C9F578F36A9167809816BB9C0AF317A7FA6CCAC1B0CE9B1A78276DC53A9F
A75188831B0F3A23591BE06780EE4A15B5C690A1AB56F8FACC395BF408EEEE51
4D481E48B606246CD923BE9FFA8E54C878D1B311149FB2331374C3E020388118
0275346988D2A90358D944DECFE459AE69D94F9F8FD7C7B48C0DFB861111AF66
0069BEF3F1EF40840FF0764BCF8DC107996F4CACA42CAAFE7EA447132443F50D
C24B5B2CCCB9D3B829EF589AEE5ECCB0D8C1F8CB9E6A51C42BD57B4FC1CAB49F
21E28E418D0519CF2445BA410618D4E40E4C95D632C7B65A802F5AEF2786C1D4
7768196D752BB954AB5656F209E72E091150728B33AF8FFD5BE128B1A79180FA
86EB92B9E70BDC48D1C6C34E22A880F7A9760DDB9365C8B93076452B20813171
73F6DB182B495422532DE4E40034633B57A7C92E1A7B31AFEDDDCC3BF1800488
283D63A3C691420ECD269A22D905669D2C0310615AAF63E0DF63F26C2997A13C
55CCE68A45FCC8998638E4618BF57755BCCD2DE97DC0577584EBD84DD712F03F
D15203B0BB130F44E6F73B1A5970EDEB76493CA365AFBAF67396C7F75A0932F2
432FFC177E86B6D1CDDEF700720DE437C5041B76687F8E809D07B66D64D22931
A07E301230079BD03874E6A5A055028457DFD073A4FA6750B5EA2EBB40DDC2EE
4606E47BE9E10F709A158A4C65D5C10BFC3A548470835DF29E5CDD74C0B02621
100F124E90CCB954B742FFE19B90DFAEE0754A8EAD4BB4905633EEDB61B71F12
2F63040C1100F7803991C184E5827AC34469FE3E7E5095CE098117DD22CDAE8C
6C920D76767B1E686FD901164AEF47FDA9B92EB9DC76708B2F2F36240D8D11AD
E294922366D2DD0D28F55DA0FF964128A5223FF57DBA66B8C22D392E6AD1B6BD
4EC69AD619DBBBB2699B50ACFAC8744CD53E798EA08D5D396CEDC38A3EFBF870
E4B38D546B081D28A4371D1F87720BF5A36648922E92DAF68B0067BE1C093C48
94B24453680E9C4B625E77F353402CBFA35C135B5C0E95C8DEB5BD7997D0EDEF
16091E4BA39FEDB943CC272FCFD78E2A09CB616CF3EAC21BD921FFA14DC15C07
F3D601E00889F2C967C88B1A04439ACD707335EE56CE8DCD1109A10D7522FE03
D17A3AB244F8A6CC69F32D2CCC7EDF594081D6F37AFDA8711D8E89DC22588637
38F4712914B72C86D669CBE598F90FE585004AB77AFCBC3FB1FC937233D2BEC5
50BBFD682D20B2971ADFDD060AE9338F845C5665E307FB3E851F0394C1E9458B
040A4713B19BEC70C601E1BC5B4FE1198B4046EB74C8B42C6EA21652BD8FBAA5
EE30F10C032AE379B366D1D7EC26B053DC7694E7AB1DD90B9F7971F4C0560BA0
B4A90E4DA818BA24F7AF3C9A9C01FAA90C3111D86C6EF207A01DA98A1DD67219
CA750F4BBB5FA1CBA65B110722F9C62839D3E48868F41DDEDB1685DEE3FE9C00
4C4B5A894E4F89F25346FE0A1E18222D14320E7DC6FE54F37DF7266C1408105B
D4A79211F3C44A64855325F80403D59155615213081AE8B1BD4A1CA5E4364957
43406190FC152BB31F90726E6C3F594B8CA1A939A73A2DABBD5D549F4B638E29
D6DFC72D57ACE7E6A33FF9000066C52685F07134E5BC9DF4E776D749742F163A
C14A7F07898745D2CF4F55F5CC10E4F1AEEE09932171894933C3A4E079B2EC44
5D59EFDE1688D1EB57937CCE92E9D315A12AB179EE19C48EA1A0AE40615829BF
5866E4217A337084668DA912BBCEAEE455E82C271F1786BDDA03025956A81C91
C064EDF471361AF6AF86FABA4537A0E7FB3F6A6425834F3BE587CB157268E6FB
D4AC0BEDD9E8E552AE51758707D28CB03E0873BCD0A5B1F1154902544FE2E006
D297EDBE9736395C05ABD2BA27391094AC4D937DC359E5E411833DD7ADE001AF
0A1655C45B7575871522A0A5D06E3FE350A2F43034EE8C2C8F4110CF288CFD52
0E59942FEBFAE475647608A9D2F0B63AD46B36063F1A23032CB800E05411FD28
42946B2E87ABFB3D70430BDC3A3009A80FE720B15B5940191F0FB60C223C57A8
FEC36F5EB459ECBDEFCBE905B15600879325DFDDA763D9A155D59D28A5E1CB55
57816930E3826CADE29ABA5ED3A464235FC797CA8886B624924F5B5DD6F1A456
CCD960398BEA79E011AFEA3E705A0282A70EB79EE0A7F4D4675A43DF7C70D38D
79145E7A07D37029188341B1D63FDE4A5C5CC36A1892578B5B54CD8091C3172C
6E0A0B19159A7628512A525199BA7CDB6D992C1A9A5FDDAA99FFB4A37E4B6E72
21FDDD98960F9167AA5825000B4BA73566F2F2CC2B9708D17DB5257B28CE36E9
DC11711E3614F99AEC6CA60D2251C4A5611A3B3D103751A823DFDC9644B80E77
D9C0C47DA707CE0C350F3C46CDCC16170BFE28280D6172BA5E5767D256E6D45C
AD0E773F896C99FD3234DFECD792E2F8AD09BC3526EB34B78B86E28E1CF09331
0D1B99ECFFE17653F95AE29E8C3677FDCF913198D630AE5C063C900DE3A2D23A
406208F9B9F55AE84CB034FA2CE266D75EB77E9CB946050FA7D73D4FB943DF58
E59AABC7A3D77E765B1971D19D487A679F0649E9581E6A73DDDA9A2A43F102BA
45547C603C5AAB447481309E58E4DC32F5C2809EBBB03356093B2C7C0A74578E
7284C24847F5E866DF58F83B471A8E9F4BE01A4F64B862E4D29569326618186D
A7B976BAF1AC858F39B7E78E0EE321A498E6AFD21D999F7DA70FEECFB8685222
8CC65AF2D54D9A48A4C8C3814FED8D2077430CB904EB3E1F9B93C26798A9C4D1
C3FF4D8BCF5DEF1BB075A81CC73E6C0745D64A423FDF6565A3A88C7F40FA58BB
7CE92F26D2EC92DCF98479DA7483C92FA26D4685DC678F1B3C4A4A7382A6F932
AA0579C468939AE28B2F0AF5E7B24084C3F2377771A4FA99C004DD363D0D5ECE
2E1E6276843D91E01451FD565EE1923D801A957A4FBCBF4ED69718B97A589207
9BB69EC43BD1213E8DD30DA0D612560C072BB1DA7030FD895914431FB8E0FBFE
EEADC7D78186E4C7AB07AC47B4999755449050EBE24C26C44A6A2D416A3900ED
5555A8DA510EB6E320F0206C1BF6C735B1C8B86118450BBE44B9F7B5C618783A
2935CE222D28794C2B84D4316243DDD98CBB876EE54113ABAC115EA040E1FEBD
D1818680857C97640BFD4F92AE77A57FC4545F7E69E3B07E22DE3CDE7CBF6564
2B2B1BF587148149CA6A626FA21AE060A42B7BEF98D889450F8F95F402DB20C6
514ADC3DE2668C3EB909E4424D6FC58561D702DEF6468213097B2DD1E9DE5A3A
A052503DFF3F3E37DB8D4A16A7F2FBD97AEEAAA7E3A1FC528EB13E492CCD5B33
5CB787AFC490B1823557D6549683229E8E8949FBE6352C361354BAC54EDA985E
B11CFFC7A12409C0D04686430738B4FC277218B59361F2903D58B145554C4EF6
C257C7861330D4B7C987D597F9B9EA54D241DAA822DD28D9AF6056AB2306BC0C
7EB0D27347EC94159764B11B2625CB1D57C5A0A83DB4940FC7F8E00BD4DEFBFD
81766464EBBE6CF70A97193269B6BD8C30484F758224A2D5
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMSY10
%!PS-AdobeFont-1.1: CMSY10 1.0
%%CreationDate: 1991 Aug 15 07:20:57
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSY10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 13 /circlecopyrt put
dup 15 /bullet put
readonly def
/FontBBox{-29 -960 1116 775}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
515DB70A8D4F6146FE068DC1E5DE8BC57036431151EC603C8BCFE359BBD953AD
5F3D998D8365AF76D4CF6A06FB66E1CBCFDB3A67D8880377CD677B9705EE853A
D849F88A828E244FA5816B7D081D4D1975A56D771790C21AE05809BEE6613452
953F26C39CE61F0E134BC35404FE2F0B7D244D9A6F66E4D817D1C65024013AD3
5F242EDE94633B8E20EA42B07F83BA649F12B784B2AAFA542BC597C6C2C9AE9C
39D60FBA6CD16AADB5DFDABF22F37E244DF3987FBFA55031CFCD46ADF03650CE
D6CDFFD87BF7407FFB63F3FE4C29FE753896101B2CEAB9007B66E29D6A5B85D3
FF91F888E445677157A5996FC7A3BD19BAF3A3BCF33F0719B992A0F013B1F0A1
82E42DF6F651071FB407F448DFF37653E2A0569BDD8EABC3280B3582745DB98B
644E5B341F531B0D81ED85F815B993C2B8B34CDDC6AE97606F6B3B1C5427F174
362FAB82B935087B568E6F526347058C406E878F1CC2DD05C26D35565347C5A5
7575891BB4
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMR10
%!PS-AdobeFont-1.1: CMR10 1.00B
%%CreationDate: 1992 Feb 19 19:54:52
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 11 /ff put
dup 12 /fi put
dup 13 /fl put
dup 14 /ffi put
dup 34 /quotedblright put
dup 35 /numbersign put
dup 36 /dollar put
dup 38 /ampersand put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 42 /asterisk put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 59 /semicolon put
dup 61 /equal put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 88 /X put
dup 89 /Y put
dup 91 /bracketleft put
dup 92 /quotedblleft put
dup 93 /bracketright put
dup 96 /quoteleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 124 /emdash put
readonly def
/FontBBox{-251 -250 1009 969}readonly def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65
0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830
B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D
AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007
97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8
FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5
20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4
0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F966977BD8C8D07FDBD
F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20
3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122
A737435305D42DE9C6B614926BFD44DF10D14402EBEDFF0B144B1C9BD22D7379
5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA77428025D4059BA
2988AC2E3D7246BAAAFB89745F0E38580546045527C8779A254DB08DCC6FB9B9
0E172209FBE3857AF495A7F2B34BC893D942C145C2204CFCD6A5C69FEFC25B60
E412CB2BEAE7F7FAD03AF46344F6A7D483BBB1E896BF16B0F4C363799DF23CE2
E8127996DE841B6F9D8A9E56BD799B6A938582988AF87151BB8D3AEA85C49857
DD862B5E10D9F33D57795D656FB616BC9B8397B3612131A2B0F472656700958F
739A548F7C3A348698AF9F6F9821D7A9FD4131781ACBF7EAB885A3AC254DBF94
02FA697941A0F97F048861788BEACC20DE829764413CA58F9D045A6B38BCD6E6
E4827247EDF1171F64E3B041A69B244308DC07F66643FCD7D5FD37F36EC4CB5F
957D4ADAF91850A3B1A765E0E580EDC77556593D1B2E1C22685268469298688A
45C474C9D0472D019CE1E83F25182D084AD85A49C502E8D679C227DA8E32045F
8055D1622C478F8FDA342685F858DE3F53F1CEA0D70BF3FE09037D981E9E7FFB
BC3F896535D0DCF53F4C85A1DA5D0B632484D1F25460E3EB38E251D2AA17817E
F3B25A2A49C0AEDE0B89E277F52CBF744EF0243C409FD71FB0C574640CF11599
117A4F42F27D8D282D34485AD116F7E753A8DEBFDF7C552A1179C02B7A37782B
743D0DF85C15A333BE9EE82C13DBC9CB007DEB5900954AD9309902E08B3D5BB4
E8414211B971CE8B9F05A61C15F400D9297745F606C6419E8A8A9ADCBDC39243
617EFABFDCF9F836D14411BD72EE19D0BDE89234BF7D52E7A68ECC952FB74FE3
33E1A87DA39AEEE9E90406E2B1CF3799C63E9BA858D54F38918B814C0DF0B696
839C820C26FB473ACC5C08E2056457A74123A398806EECDB427BB183F5458105
2B66D7E1FC3529025D3243A045625E9DD9417FA089B3C7C394D2B65C0367FF73
79F17ADEC6B5D27A5D3D3E244A0839E38267ACF07B2D994C2B4E7F30A416EEE2
D1688F167D1641A72A795B1F4DA3350F75AD6D546AA118B5F8A5085F5794E6E5
28256CD31D250D8328C9620B8ACAB03E4A33DB4595E959F4D0FB1C8CE85A710E
22F1940067C036A7DCED7EA48F1EB81AC4735FB26A249A32AC2E3E7636B32D31
7D76FBEBA106D6C67C94A3BD4256B786B71C6EF8D191CA90CAD8D2EEAD42C6DD
8BB4BEA7DAD4ECB6E002F3B71C2955A5A401E34D55F755BED68178C270109BAB
FA0AD848347EB977325530B27180661A59447D7DB55A62D65309DE24B6638986
1D3A539BD37E74C2C00DFED3336B5C6B28D915AB7188FFBCE3ADB3CB903944DF
1BA5923A1C053D4682BB8616F44E81E18DB2B58298F4B1A6289CA993DF3E7C73
B00DEA3A9B747FEEBC4A11E5B9B8B05CA2709B8AA935A42159D3DE399544F5AF
AC1CC00F6CB94AB69856078C9A2EB2046BB9055CDD6A0622112F7D3710143F1C
20CD8DAB4109CD47BC00EBCB88314081C1D6C43132412F261CE0262FA28DB7A3
C7D8534BCBE1A60488EA230DC558B73C72AE87539A9D7E28C2BE05FC05F58DDD
87117EE8FAF3A04EF44C9A4020B1725993A09C560AFF330080A53AC25D5FD7CE
7EF47AC32DA4032E3B69032505A2E7FEB961C16EC693C931AF988BC1F88299FE
8A83805D021F2E3BD6C0F422441E48786BFB7C7B9369FAAC61EF94113FB5A09F
5B635ED1B7AB82441FA6D37D43788209B0F0CB48675E8F4EED3B4E40B131EFE2
7A62A5E7A4829FDB51F9D2FDDD9235864795FB6A7E35B00CF593EE5B10DC32F1
3E4E56F4441D4E21EB964D0802FC2A5CC4D579723D751FB07F49B263178A7F55
7F5732646257C2D8E07DFE7303BF3E564EF08A25BF42A1E973D5266EB4DCD07E
DEA171F3A020A5A5EF98887A048523603FA6AED2C4D78615852461EBC8626B2A
3592FD561370E74C76C37BCD1286D56D5B02D2FC6D3DA35E693DB67002953F26
A917F29B0CC194A84F435BD0474F94CB7DFE5D62DA09EBCA1BCF344FBCBC0E5E
DAF4A7638F50EED5F97A42B4F49F6AC709727BAD621D383DE360A9B8A93E842D
4B91F8097BDC51D0E571CF4EE5C252BE1EB5EF7EB38094E58F183BCA9C827EC2
F30745A0E0D1CA2FDF07395E9E1AB24A685E6A37565DE435C2D320C9D656E024
FDFEAE3FDA071E31DB8FB403A7B1F9DCDD6EAF6C2DD70832FF3B0123DD20E5FA
9150583463CC1C96A61E63FEEABB39C988C152208C348296FF6949DBE5FB84C5
A15B8F758CCA07DBA756FA4A071F5F83513E928D0D08A075DC2497BFCDF4AF24
2B02C7C3693C0F303F848482A3DF422733E8BC738197124745A03DD519B827EE
84E900762D6365FFD2CB41EA45BF0C57AE703AE4DEAD4C477D86037DB937F8A6
D599D13CCAFE8DEA8FE920AEC09F669F3C7990252DC434FC36F0C6C077C3BBF0
D70F2686B59227F2CA6244C1E40740C19AD2B3F6B60F933AFC53C4AC65B9F181
4D8FE23F5C518BC193E4EA50F6731E91BD18B3F3CDD23606B181482F23A9E291
11E0B29E943262873E137C902EBB3D52E2C4CFE7982CE0F493B891006812CE34
AF792849A25359E3D795507257DA3B143CE7F036F4730AEFACDC3B09B1436727
722BC7D257750FF5DC77229F9FB15D25C6DC92667ABAAFFED5EA14096E3DCD6C
C3C26E0876B548B52B217E1C39BE74C0735B95F84FA239D87545D62169361ED0
369DA20E240804AF7288BFF7618C6431DB42E5C41F3256E47FA2436E82908F24
D2D9EEDB7E9D3A81C1BDA0598B4F5DBCF0141D97F1AA82FB08948F78860E2343
501700E457E03219F1E33998531B5F27EDBBAE52483ED79DE6C294211D835A0D
A30FC94ADCC7854E8FF9A241E14CA4A3713EFBB932B305494191E93BD969AC7D
9D129BF7DD661A970B03D17543B64F3D690FBE809611A8FEBD6D5B64C7072D10
2C5B0575C32383558B0A6F5F5C75603DBC19D672D50F8E0A1A61053D58722291
0C6CAF79A40C6CA8186ED01F37686DAC94FE80C1FDE34CF9A1E864B5A541AEC7
4619BBD36317C204EE3098884A992D7FFD05DFDC5422B6067B760690FE082070
3950D0A1FC6AAC937BF37A964548E748F5E69643F9C91FFC46ED86A1CE613570
445B9067458CD4F82F0DF1A37E640225086D640A97A9A100E336AAB021F39CA5
2F8550A707070C8AA5EFCF0157DB7823627AD01A9AD2B9851E39ACE6B24CB787
17AAA254B349B5C2B1D6478AAFF1E8F450D0A6DFC19B381FF94A67CD15A22CFD
CFEE409F71E0B9AF34BBB4D5AC0AB98A69797D1F43D9F013A56C627D3D90504A
0F17DBCB03BDF740E3810AE9AC288B9511A952F4B47C182F3B4D86EEAE488200
88CCEC9CE4C2113E0C3A75B2EE73577048530474613C27D9D04119CE44D1E016
77606065D96E89271D107C3281036010944BBEF0810EC016C7D841081D99C11C
1D83B982E3AF62A32F5A3D56DD6B59339C80D7D461B94FFD9207B46EE809E886
368CE4589308F55BD78987657E65AC269A8FFC39363F5BD475D8A1A680B93E10
217F84204A39E12CFCA85A472C528269F04215C411461389AF5E9F2DD8227DFC
CF1AEEF9342018CF38838D67639E625F0FAA434F6DAD0AB03E4EC2E932CD30CE
A3BC4B7E67177EB7CB99A5AF5C4EC17BE29EE2B07263EB932F9795E3332B9487
BB02A1EB222FBD292C5E86F0653B09A194DADC4C24C73E223017B2E70680F327
075BBA88496F0905578CFF71C07CE3F46D018352116CEAD7F219B1FFBAF09893
028DD06F5AF04275B3C1A5140CE055CC84FE8CF1019927885B8D173D5A7580F0
B07ADE2180DB44670BA4E6F994B671C6369E510B135EE3BE61ED047199CF0725
65B0BA4DC6F03EDC42E332B89D9EE8C9E7D884CBB9A99290B455C8079295F807
767A6CAE1F5577C6FBF05AA24667A66E460ED23509FEF861C13968ECAC508A3D
B66840F35A153C78ED23EB1D874CEE172DB4D0CE00622A3B28A6C10813C998B7
04A38C1120E04AFAF09D8EF9EA6C3750B318707BD4DE09622680D07AB8D10DFC
D26740AD8EA8E1F7A93A1AE975D0B159869BB452A62959A07D89F339CAF543EE
ADDF81D8CB868482879025840DB8E3DB9512CB8DACB3546F52C861B1F840AA46
8A766A437A47574BABAE4EAE70BC4271AC12ABC28651EE7BD063468201ED055A
B5D8403E72C0B504895E80839D11E54E200D9FA6866D43FB95240262D9892259
7ECF5039C110343985E3DD0B5AA309B6ABE57F5599F0FCB46D292703BF969219
18461B585740D4609AB58960F6DB114B5573F890C0A3816876BBF06DFA1E98A2
8C2A601A76D3A8216842DE2341CBDC750AF85B4DEECA987B5BA66A6F6DE4F797
07B387CF02F0969D9E154E4204E8A0C0892A814EEF54FFCEC6E351596321E650
736160981008221EB805C1E49D9B6F2DD183CB41129EF228FCFEEB637CDAB86E
33015FE68944ECA716C07628B8030CE87956CD0E8DE0205FFDA01BDB84B20FA2
317EFD862406924353045B0D4241A85124083346F4C00E872CE4610F14BD0988
1A5F9ED7481F947ECCF2126120E420B4F0CB727FC3133CCBA4305BE0EABEBB1D
73CB539B7EA9F92588C098000C5C488EA9508DDA2986FAA24309D553F8F557C2
4D2473903552EB821353DF4534623C6AE5EF79D982D05BFF67E97F2C6EACDBE6
EF0467FB82F54C00EB9572B1A13A3CFCD058FB1FD7FE954E800D3A892C2F61A2
094EFB8F89585F933E56A54D0AADD20ADDB9E937E138D53C8AAC13E0904D0B40
055B2AF95712B488414BC1089BD29C1160034B1A1A38C95D5936D0802E11305A
C8090D7EFBA3624704AF26B0C05A6133E27DAE7356CCB5C21A33B07728F1E83E
B0488734103EA8DB4192741D536F7C97350BA9A006D60603B95ABA09A6C71BA6
6C5EEDC7B7DC48CC6467FB8A27ADEE17E7A96DF0899B87E47F16D615B1B91A26
B050C27EABDD028A92979050039D1CAEDF2907B061798BE79E62A4EC5CEEA6D6
12EEBB05FBB716A3A60F6D3CDD6CBBFC4CF4029BA7B1180B76C85A598E05E083
EAC829660C76529CC5E6603DACD5D1A47667D713F8DEFAC3F2E203E4344BC38A
8B9D8916EAD5E48816F31E0DA810AE5C21B09C184EFAFB3F17324CFBD2B696E7
4AFB2D060E9A01A7EF4D0B08A562B499737E3FFA3CB0960420807455CD330703
A9B2BC874F7A2414695AD4D87B9134E8A53D65EF82DDD707B9D398C3EFDDFBA3
C69E1B3A5BA5FDEBD4783A0C70E289252CAB144C00222018BF2CD8F2773B5BC2
E06B8B17A3C669A43409541C5D4AD0DD5FDF21E57BD420EE40808B7535706BB4
67B11AF5440E43DCEE2EE4F420D08AA51DA170B08C5470EFB6C731EBD7649975
62F58090389120202D7CA8ED4FB9AF564985C1BC9C00CA804D295CBA672C16A6
EFA3F767E1BB38D6D364E21430E70E3B4AA4ED3D6FABEF4DE09048EED656E400
89CF3F5864C75C3600587AA94EAA012201602DB62C528CC05DE3AF08F196A861
57FBE68BBEC5DEACB74B9CDEFDF54530EB5EFFC56882E167F0610FCC7C461F30
A3171557B94E7BD0D659B7CC2CD0B8BFF57D7286AF2A7378858A4445ACDCCE48
C7A5C50412895DA2265D32F195E09A07805642EFED5C54199080FE10E2941FF3
2078EF7EEA1CD37C35D2B4E708DBB45C328BC16DB5D6F3DD77612977617E74FB
34088498D0D14A7C8A25D2A8B31B1FC242F76C63984205B4242975B00C9D53BB
BA04452FA68F4854E3A96B27D8FEFD2C3D772795FAE2CA868B485F0622D8EAEE
12BE413B18668455B3C3879C080C478C99EE6F4713C1B417721812E021B27970
C4E616793ABAF63D206266E92813FD580B75B5436618003B7ACF906D97AFCD4E
E1497402BF45DB772D011B7C756AA89B9D4F516E82E9ED0670D4A7684C8A3763
615EAAFCD3C7D022534AEF4D43F494D0EE2EA4D0D87FBED55F43AF3B42FA8F5C
3B7789141C8EAA23EDB6B988E492F22287623B61F130FBB6D1131FA0AA6D8DF4
70F5D8A3D9163B96F1594124BE4452E9C5864814E698717E49AE7A39D07F42B1
EB27EEE6E0B53D718115725B2EAA2546FCB741D1516673D4BD2E88EE33DEDD30
868E4C61E12ADC25192A724695BDE0C72A54E1C97555BE73022C3C931A708D72
DF11C1A1E371C235AFE73CA254A6366643222BCC641979EAE2DD8A29A186B78C
B1DF1BB02200441D1FD73195158BB32A03C314AB974C7B641C5C28B4B4628D0D
C0C5559B575727E0CAEFCEAA978D1D1EADE592A2E7B9BA7DD0D00A3AE759718A
A4904F6A7EEE30EFF4AAF9F3529D1C79F654DDF6DAB70142A17516B8ABD439DA
53F6DE513E8CB1FD7AC03239F7DE76041AA11D3BC19CCFED635CC9835DA458DA
A25C394B6679DAB4ACF76692C9CBA52DB56C2D6467C14ED50668D7678DBE81DF
FF0BFF55C614FA2609DD902C14FA3A379664E449A0DCEE81693B10F60AA540CF
81540D43290BE0AFEBED295461B649A9779DBCC1A3BD9F1A5FF1E6F887CFB636
8C02DF95BE1B47B29337E5C15784409074BB88996F2F753C5B0A0A3640D5A81D
3C1C6CD879A8E2B3186A1F030B00D023E9E903407BB8DD148A7BA65BF9A95FB6
3980046A774FDD9E7EA5FDA1F8810FC74CDC707658D2C0260BEAD0AA587B34AC
36AC3FC6D5F105A8FFDA7E736687050D5AA3E21E240634F443F764F5232C6A13
C9FD4A61C926A14D3FF8437AAFBC201553B745CEA1811D1E2D028F4DEDB4A8DC
2344EAB65DD7B543E1CBA556523A9C696B1C7160797E85598CD5CBE336FFED1A
8CB41FF8218C40EADDBEE89285648A7DEBFC1700CAA09BEBBD163B90A6A2342C
DF9DAF31D393E1265285C83DC5289CC1C4C128B820044983995D36E77608C40A
4F167048C14E5135ABFBA5E40484AFE8CE2251156DCC2E8C847EE2D8F7E29B48
50B6EA48C53AF6D9ECD988ED30D316CF6FFD07946EE3ED32ED87D4579F14635C
850D3F625EC16A287FE70467F8BD85BC72AD0C5FAA1D70DB9A78BC573DBB0BD8
5C89B19DC37C715180F86BBF737021C01DC41BA14A370ECBC8185D5060348879
B1FB58AFABE8AD55083CCFDB8A5BF3618B2AB44FFD556AC5050D708315095C37
2164A48F1A67BF2E40B5F15BA0173C0A247504ED1342A8968E8527A0C44A95BA
0F3DF0A60BFA33F4085615BD6BB6B6F34CEAB9AB0142ADB2ABAA08B028F1E096
9F38449495A706785CB1C46B5E5731D77F28C2A73C2AE1BEA8FFC5F7224CEDDF
E66A0B0C35DB740A3D2398705842D49C6161D88F7CD754A289F7B3C4940A3806
FE2908D54168F19C1C98FDE7822FF31375CFA6D359B6762844DE78CD51075604
589E3229EB6E3D1972E66947B4999FB4E2AACFB7A965FF3260543F289DEDFA11
C8833E7EB2972F7C7CCE00B6ABB95F5740C9E2C9997F0DF39BA7E43BA6B5ECA4
C587009D37CEB257865A1CDB9A0654254C225E11056E90A4682E4BA7C68AA056
7C54A81437276F071B067C5E79711CF6147D8ED3C410BE2C874D4BA26268B190
F9AC54BCB45B23207426A122A6D28319C2EC5A6D2D968CF1216DBD74BD9D6430
625DFCEFC3A680EB2324F1E2ACFD387CCE51788A401B92BC3B86AF185F8EA881
AE9FF6A6A9471A6A5701CE2B987CD4DA06634785112E326450263FF6193C304B
80ECF6EC773CE8DF1D248A6BC027D3547D1C1CCD7518F311A1C06BDFF8B78C26
27DEDB432D0AEDF36EDB3FA156B81D0773B17998CDC8D5B9C4837AFF61000B10
89C233A58051604DD0ED874B9EF34FB16AFF0186D795508E04AFF1B7537C727C
AF79F73B023B67BE4574F931C48CFDAD8FF4C08A89DD85022AD6412F40A3D95E
9F1040B2FC92B8D19DF79AC537AB96DE652D5BB9F6A957BB06F9DD4BB4E18628
2F3689C160F8435677E0FB6847144C18D9C650CBBF7D97AAAE4F9266E846C63C
F45577DBEA7F5203DF521812003AAF9699918D090B06D32378AB96DAAA1BF45E
C9FA449E7F67561E745063950DA722C50BAADC3ADF03CE66060C85F31BCA0643
D419D74D352A065271F01F6A273650ACE31F43723BA351E3CC279A3D8FAB0DB8
4D587F126BDA34D7AD10C76E17003621566F8E19B71A4C434CD4F1D7AE686A0B
A07172AB285ACE6F1EF89F16E35B63EF5C458491A5A0A10D49C3CBB7FA7FF04D
F6347FF5331A1EF9CD90F66AA875B1E5E4CC1D11031CFA6075C43B4D0BE9F5AA
D2C9B0848EA42591BCD48F552DC71077B5E0458226716B266D8ACED04703F644
43F136C0ADDABAD16380FF9DC9D6F8761C1EE0F3E067B4EADDCD8074A9F4BED8
28EB1D93F2F69060E63D3B7A75DB2BB7EBC84733B38C302B359BF0CBF8CD4F06
868DCC36E5F5078A87602C77C00CB36A1BB749F3B66AB3B259B015B839DF0E33
AD6C9C7220C3B3ACEAAF37F2BDE073D33A51DD60EA827B94BE0739722567D1A3
8E8183AAF92A41C13BBFA53BED31946F74DD91211452FB2111B4114D4BF69349
B47BF8BD85663C615DB8AD7E5814F9E9D674AF69EB52802498EA7A520EEA6A82
6E0799FD975ED07F59D64A139EB98256CB39868A60F5C95B76F1B32CFC4A610A
16A41249F52A0B484C89A8CDFB8816B65093E629390B6F716820DCA409EE3B9F
E749AB230DC69552E32FC755C726DDB02AC2099E7ED6B153F4FE112EED6F4216
0068B75329B7D0C52B748866630341391CC8FB1C69161188F56765E1BEFBCDDC
802BE5EC785BD1564DDF133015B45B481E6E57A4FFA79D49F792361A970652B4
B9FADA8242DDEB704DB34D4E84F9E7A7E48AB957DD04F91E96B15A8F742B64B3
EA928009F07EA6B727F734E60EFDAAADA39F2909222A5848D581ED647105575A
78AF6704B14A9BC89616E21C42995F0F10536E8B66A391DAABBDB7E077807CA8
A1CA57B2C2551D3A5574BFA56CD930DEDB666B14D9E5460DE2F6FDE12A101908
69912C5AC85D24E14F14535403754901B1170A5DE349FF1E9AA6DF86ED9DD992
0A403B4411D73E3FB2E0F8C02C42572790F0224A7ACC93E1CB0FD8009F8229EA
A6BE77D644B44361C340C2F04585550C9325D5D89EA69EA8E9C77BEB254D9D06
074E9594878BF49C8BE1DA57EA01730B40290A87862A46515E840EF7EF95D5C2
F7CB0438C94F7196D0150A2606088203E72F73889C6B351D3B7AEA89FA8ED68E
BC22C235C8B94D91DEC7ABF4F67827C123EBB2E0114CA9B430F8C3A4C52D9F91
5FBF1E5B7EE99EE1F32FAD68E51C9EF5857935D90CD6787F5A7D26CA2DAE398C
B0E03FFB6686769682F45187CA9ADC29528AFD6C0626B569D1E1CF81ECBE911C
7272D78A7E9C2892E0A9864D82DD7A06EEE8C79DE87AA7CDEF73A81F62174E28
A3DE77D00BD02174B4E4EE5A960CF73F742D0402470B87C1255AA3FE9F9C0798
7C691462AAD55FFF9115731B36F827B8197FCB50C20AC134427E3AF225F3852E
C320C4F6564D19E9D90DAAA6C6989440EECEFBC7E0515F6C903ACDF55EBB2745
7FD1866136E1E34CF014CBF6AF08BF8637046532A649D2A703C1D163AA125FC3
B5A1A7A54787690A355A386198B496440EC3DB11C0477B0FC6A1BFD9C68DCEB8
D05FF860951090B268B62347999024F0B029619A1329A7CDC9B22E221F29482F
7880831094A44EEDB2BDD19581A52453E1A5CC6C5D357DCBE28C087E64F3BF42
A34081BBE7BD7CBB456033B6B743EC91E8F31652F99FF2F888157BB68605E782
A08186A4CD2D3185B96C4DBF360530FC93B1EA53F295B47EB37B7FA1DD44C5F4
416E4F17CC18ADF918BECF8A33D638DBB55567FB9BB3B416D4384D709466BDE5
3E19F1A83F5A635B879BF0BC9BEA61310213702A61A9B64A551FBDFF61D7A484
E7B92AD5E0CE331F4D747750E4B1D05083370437C57F4175F5D632BDD017A398
12D14D8A8540103F3C8836C108063D8A354B61B5843E7CB98B68421F7EF3BE66
DAB94C5FE72A193A6A85701535576837E16173B173C4D458BFAFCF235DB013BA
3ED696A230834BB66260CD8B6FEEAB419B16C8D09EF7AF735263E9DEFD4491F2
8ADEADFF0477E817EB061C2FD5501FA5B11EFBC8F2A251165E832D7498C346D4
0C5038BA7DCD69117065EEEB44A4D2F1B00F7812008578D1F08473950F91602D
CB26FD9A426BA5FBCBC3A67E43CEFEF418D4DFEE378B51EE79914E438CCD8512
5A3FDFC5AC5CBA66884350FB1817FB8D81512E4421CDD7B55FCF6C5DC5AE410A
FBD21F40836104D515BDD985FC5D7FFAE58DBD62099554740986A908E655BA82
5879165458C9CB5CB893A1300F850C70C9880979EEDDF306C1B2CDEEAC6F08A7
B8A286E2816D538207988E80C8B8ABB3B584901C310A2C37E2DF00AEDC429F9F
51FA60DCA40CFD89457C0DEC2329114407910E6945826A15AD634A34026524AB
D7EB01765E0A01735F527D084D99D70AC10FE0AF7358D2958734BD3B251B686F
75370D45DE3B02CCEB64BC773DC9AE49C5EEB9CA4E1F6025F37760DF03EB384A
9AB69AF3695772239C5C210144E7793801260D4F712E2375C7BED1475CF0EC98
7D3396A1FDD01ADA41E26B6FB486E7A65379CA697E94453E12C7E1EBACFF713C
7686104C1E8A97F5CA43D90720A9DF8158BA122B30E76780D2D7D14B28A8E2CD
487EA9ACD7F41FF520C828F96B01113AF6326E709FB33E4C0C40630ECDBACDE4
2B00CF4DA171C5FB56EC13D2314AAC34B7E6CD522EF577849F16FBD63CA74115
B1020955853DFDD69504896C78DDAEBA13CE1503CE6298857E95AD30F9AE3D13
EA679C0755CD9D347E62C2C6BB02B3B70BB5ABE5D42E933095995E82F2B468E8
1E67BD75E31F3FC998AB527CEAF6D22C3A9D3A9D37F49792B0613BC26E966D10
ACFCB08924B5DBBB5F34C1532918F5EC819D58D58F22F5B4C34091B6D5D5AE4A
2DAA6A4153DA1E980C1A877F92F3E62CADEE753F835E1D4041726AB4DD8FB54A
663731BF848A92548D7FF200CDCEB755AAC2D4538D609CFC32AC7A64BA4C19A1
A60FCC95E65834A8477AD1851D4F42313C7D45BD41A7C128FB3F1EB3B8A9C9DC
EB87ECB0E62437F660D7B7B1A2BD1A83D0A858B48DB4FC346A5019BE1453FFFD
365DB2B79BA982FF3074C61A7EF728068C3276A7454B934249CB0FF347B72375
2B98FD0D5407161B65BFFE96F974730D5700AC5426D102933BC8CEE26A3D7CE4
E91439C6AC286879CB513453533CE793440B6465A43FC931A95934B0F389FD9D
F2C414562251BA1015F2877F28E0A113876AF203836E03AA29BD327204A55C35
A8595C42D4C65F6F7EAA5E7C82F8B764B311428074BE70A8A730D323C96EBCB0
3E0DEA328220E2DD2967423BC227D2EEE3B92D520F08AA0C6670F8D3634F9964
80B6CF0C575A43AAE6701022678EB581216F94D96E120319F8B4C669DB4F8563
1EEE57B64FD370EACC725A8C3365A9DA815CCA27ED6B225AAEC2B63231D9EDD1
251B2FB4E2E428427005B886A09CC42A37323DB8C0FC0B236BFA6608BF3BF90F
F9331DE8D013BE9246A5F7E11BF56A82480A7E3A789D2148EDF9D4C31E9D1621
BCD28FD7E3129FB191484009367760D442109F4289F0C1F793B1B54A245FA790
FA945075EA220FE8BAC943E1D68DE00BE2401819AE2F0854AC5C85EAFB40F5F8
CEF3513B826DB403A4C94CACB3CBCAD5DDB843C4864840AD4086C00C8354B4DB
6F7A67A9238155ED872AF356E27BAE5121450C534F1D64C5814E9FAA11FC6BD4
FBB0EB1A762EA9D591C97B938349323B9FE6B541A13DB805D6DD18719C3C7BE8
EFB5471E10BACB574AE708504E9BCB71861246CDABCDEB07164173C949FE332C
4D9EBA9DC8DCB71D914B4AEEDD0F91C891450BD84D7CD827516E33BE15F1AD6B
30396AF928DFB1F8078F439C335261C98BB7CD4DF1532C0F04DABB1B58AF4874
6D889884716E069AFDA1D41DD9773B024FDC110E565DABD6FE092E062F394EA2
4B23A3F5647E41143558F695F1648CAEC64AE83F13B900FE6D3F3D1CC94137D5
DDC2D608F6D09E46AE5300FD23D9873580B6AC180B5CAE378FC14189B8823E96
CDA6234404F1D472FE468FB4F8BB2DE023BDAF6F43156720B75B175F94CACCAD
68D901CCC375B24AD5AD32965B59D528B555DEA3585B610BFA6F4528FA5BB645
525F2D4DFFF85703A9E3B82F43B5863FC5EBE8D0B9D96C6E8DABBC2D84DEA858
5B6A1D35CE535251B09B2E4CE62C43DBAD3E86FC2E0EF06EA1FA62A4B6EEA756
6EAF9D5AEAC1337CB9D791D54CC67CDDC03FEE7A4BF9D9D967AAC6882EA113C9
3008B00C93E10C9B5FC8C763EA8EA0C3ACB25D29DE119D42A09019E539D0D99E
69DC8A812E12D5FEA6E95EF4BB6F142AACB08C5C4B0440DA7202830C929B2E75
9A7294BD9E4F4F891BBFC0CE1029B85FEFE7AB2B4C7731DB532A79A365A58258
76F20C921730965662DDF829970BAD45BD66D6928DCFE7399A2FDB0BEEA5F75A
8488E764D3D29CEC29558F06370948DD2FE4F7985DAADA9FFBDDAFC956AAC926
9F924773215CE94B0D3632CFEDF4CFE7AACF7940FEDF598434E4F82E9F6C9C22
2DADA01E508C43FDBF0E41454A57682007F12B979E6C21BAF4380993B54413B0
50A8F42E4D5D8C11BEF44E49F4543890822697654567E8BE9EC4487A00C1678C
D25849E8B3CF962D0EB05A3C1BB5DC3AD0964DA95CA31DC31D84FD0757725F02
D1A9906969EBD96F5B5FF34614F7030CD4E7C39A6324A2E3B3D70002CA3FC904
A56B650D65061B3FD52D6D0ADF4C9230949F0C89058F623AE1126ABB094517E4
CF8529C15C7EAFFB689F749694BCA6BEB6208D9AF34CBD4B2F50EC03979E59D4
DCCA4DA1CE446CC07A923D80D9574B5C4A9311B4E2E83B88F378998D5CCE9EDA
1778C87383FF7363A374FA6E5272120EC8032FA66EBDDC75567BD586FFC49DDF
861A0A3A3D382C07E1E2CFB2200EF1F8D6E47EA35FC0909F6D4E3EFA71C68327
374F80D5AF728F4C7EB3BC8D470D67FEFC190F86FB837788E058223E2A0E3D74
2DAC9DC921F7CEBC61454AB8D82964F636EE2E235F38801032F451039CFD5DB5
D7AC5F17DBFD037123021F2D661A966F70CF41782FA372D86669DB84557C6EF2
EAA4E0B2CA8340D21DF6F0273E286B13FA6BB4505BA75AE8A25FEB68A14967CB
2F32AC4283212B8C7767DE86CE7ED5DF41BC4B4A26F0E3E1CE53D40C64A2FFE2
0882EED4A6663DDA91BAE6386AD46CFB4745F48CA93F7E89962067DD2808F3C1
BC082814D72465ACEE843CF6A2B2C9821BE729E04B8F8C12FA56EF1B1E04F005
6167690B0DCDBC4DC8FB782B0DEE1B00D586DDD499EA9D4A2394DE1339A8DAB3
A71E0F8CC3D3DF4AEF3B65BF73E2C6EF888CFEAA804659B6AD76708F54E36F88
7B3D9A39C8A9FF93205FD30C87E9EACE8AFE46CDCB5520DA38A5228C5B5D3DC5
89888E0D559F379D40DB5625B2394805D7BD7052A33EC03C399B3413C44ABED6
111BAF898686E9CE54093969AF7B6F2FD9E27633BB681B8218882EF7BD9877B4
3F649F01FBF7E8C5F523E66DAB6485FFD34FE0CA373EB4CF8BD7C84CD22A6502
F43F50EC14A412454156777C8935E5C7B61B9E4BF51132D97EF8DF945068B33A
3C122D4C34CDFD5085C6437F20CEC3B29E6AAA2065AD05A19E7BB92969EEA246
87BEAAAEB0F01F53844AC095F629AD8D0BEF5AD402D1C874CE9DE233326BA82F
BE7C30A81A98802A01A3D5113285B0EBC89337265DA78A32512397426637D5FD
58F646D86B111E53FF600FDEEC02DD2DA52DA9AE875F43585C69733B7F5D8515
41E1EAD1B961A6920B9728604930397AA497739C3E8B2470BACB685ABAB79214
5EF5E1DC2D6FCF072A01C43D5B0BE96D9D4475474F5B683D01A03AF6D2979FD2
58F34D54ABAC17D9B7B4A9DBEC9DF5D179C402F4B1FE8F74B47DF5C628A22762
5853D4128C42D4D11C8DEC7E99C01F4AB06C57A92D84C55D82238AA1ADC5CC85
1A7D3D2DD4CD962FD2EC8B3251B360A9A55C3C22DDCAFCD06DE5F9F2D859260C
1A14F2650D7E83ADB95231FA22718B8F7A2CE6A39E44AA844EE6CB6C1865BD4C
2425E517598BB8DA4ABCB8F7B41AD8AE2C364B85A7439598F1F9A9696E9FA50F
1BEC16680627D3346DF648576CA30DA11B04F2C5C5AFC18EBD9EF3A04D4EE2F2
3E326A34339A26924C2059A50C5284B4EF69140C6D99A5376F79C39B006C2D8A
840D064DB477C70EB9B0BDB4581C493BCFAD557A01BDCD96A24B6013780C0DDE
65C1CEDF6EDA691BAED459EE21A54CB814E2C6C05DE4D8D3EAB7010F12747EEC
EB73CD6846C12B4F2FD8F3ECEFF292C255B29AB938F2C3DC50BC46ED04888F9F
5A60430EE5871FA0488422819C81849BAB5D3FABF176CF71168A7694156DD65C
1837A0916DAFFDC44D36B66AA28B3BA1C6178DD86C6A096C6C36794935BCE017
DF02EADECA82A05166D2C100A56C2C4038E3A3694401CD53D514F787F8361279
2EC1C2853D50DA2B2C481B2CAC90726914DE60E7D3F99C0AEF696B242204A174
CB4EC72F5B142190E913937F422994B5D082D412509C67810C6D6F6B3A6E7E4E
E5938B3FAC8E8124E026460DD215C4F3E01E399B3C25EC98E7F7256E0BF02250
BDDDD75E918B04532C2E4EF6984C5A546ABEEF79233893FE95E7AD29B22DA6D1
B3A722417C714688444C7DA3E545407B8E95D50F75F4E0AB7CAE2EA9AD82C43C
2C2ECD095EAAE32158ECCA60A5B92D96E760CD2474454C9025930850705DC591
FE9B8A9B83F0A59D7919BE14A4E57E164C114FD4461506D5D32001F73C70D21D
013F753C716A60FFA0FC1E8D5726141FB24EC31E97FBFC9C11909706FE8646CC
983B0DEC377A9009D3EFDBE831518DEF429EDF15D4D0B81D932F18ED82E80D1E
DD7752CF86609B6801D34AE6733317369CB04AE78C5AB83E9E72C55F0FFBDEFC
521C1AE7733880A49B109DC2E6E11950A22A094DBC4B74DB9326E7AA2732A2D2
D4DBBEED9B069829444316B586CCC5F95FFA1807D31EEFAD24AAA205F2ECBB37
927D69F778371A8765FBDF9E47D908E54030996576783DD21A4B57DC28CEE8B5
46E88FB974A48A15437630C300F527644A83C286420E843F8980D507DBE88D07
08CB5DE0992A1608D994853082567887C6E5C62B2751F78E87EE808A01C7E11D
6401C4226C0B9615E778C63DB94A6180862183C350020ACBA3DFDA4C41E028FB
4C6286B287EFDE41D4963FF5BD4D849729067A9C99D6BB9D90345E630DDA41F9
A6F9C0D3DE55A58EEF3B01ED8830E785015F3BD0AEDA7C79207A249F46CFCCA6
FD26130A755B058DEE5032BF842F1D65F1573A2E53B8AD566EFC9211421646C1
83F1951BAD29A5AF7FD01A9E267BA2B91420EB7CB0CF3A9D61BFDDB23FA70390
2553247EB8A1D940BD6A8EC2D5E6AA90E7FB1E23EF6C68F65003CEA43F34F59A
807CC4D834EF3845D9C192F9B83D44138DA9ABC8B05C8EC383596FA63642D774
26CADF5AD03D5F86830D61556E212B49B0C73CBD761E1EB254CE971C4E854EC7
35DE8CD55B036D00C2407E6884F4B0BACC0A7D8CA9D64F32E78E97A6DE0CC2AF
C86AFC0EFB124CC153B3528451A064465A68A4898AA720A0932B019A81F1DF6D
AEBD44901714879141C2153121583B695C1F54855671FC0703DB52CCF8306636
B49196BDB6FF50FAAE3C9C100F5E8AE60B112144C72552ABAAA0F1C2560C72E6
0DCB995D07686152CAC803A73351E3914DB513B7C8D268FDB1F8965B06D95ED7
DF552B25C4B3465173F37D839159980598C3DECD6B8555758D88330E3E17FFCB
D29B2091A2D9D86C15FAAF029A718ACCDAE07C7E70342E1C2A47627A54A162BA
9FF7D5E72485BB785C09FB709BAD704B8E7C3CEF9066EF387E7D9803AEDCA0FC
A786E44EA4371613BB4AC89A71016E3857450A95A332DDE5E348D96D04838428
C9EF68881B174397FFB02E9557CCA0978F098E6613015ADE1994A66B47B430F1
5FA7C42208D301FFEB0C35C8C1944987A025F0F00B2A5D4E71A4053F60AA18DA
08B991358C00879C8DEFBBC37AEFFFFA76D701518CCD0F773EFBC32E400073A4
F91B3BBFDECB3B697D23AF2D526D4636E740DDE5BFEE12CB605D705C69D98B21
E62BC152A81A7ADDA0CE3A2CCA277302647A40B3F94F884579AC6DD4670CB768
B11E9C08E6FB9B6461C21C9090ABDE38ABF5F2FB7C6A163784215401581C0FA0
5EA26685A6AB6351F8967C3A652C61E467ADDD5DA9CE1E60999F95EA03DCADBA
636EE42A60183BE03A25550D37BAAC6A177361F106FD1EF77946E7E21FF6F17E
0B09D91B215CA56AA2799948B07213571E2C462A273E3E1C582E991207603D64
C348DBE840D52086441A52896A2EF4305AC3F5048D9AAB82E4A256AC5BD25DCC
14DECEAFDFD4E46098B5DEFCF699852EDCCF7EE6DF2AE8A1BA43F77BFAE0B16F
08C783F559A763514CA8C3D114E79D47592A52C1E4FD7AE46E13817E658D509E
2B16B1AC6EA63DF28961F6D35D584C29AF35E6021A8B1D0C5AACE373B5ADFDA2
CC7C25BF3F6397DE4B97D012DDF18A066D93382B4E3E1EE2948F4632984DD1DC
4795465CE32DF616F42463605831229F6F3FDB8C66420045F0409EC28E5E45D7
5A5979B40534A35343C6CDC35515031721D9A41480E61BBE5F41D0173561F717
251E614ADA39D9CAFC8017D2BBD6B8A7D9ACE4567B3481B0386C247041D8535E
2059DC62BE192C837AAC57ECE8BB1256A687B9E73DC708FDD26E2A07A0FCCB85
5C0600DB53B27C1BBEF0730AF506520443AB98903180D5F6B68273A6A81DB392
890B2D8B56555758EBD98F49A60BB468812928C80AADBE5E0F8AE8B17277799D
ADD186DE3F8735C86CE4DC9122FADE97507F52B1A5DCD766880326F5D07ED228
C68D6F1256E08F598B9C405D32011C07E3EF24B33ADC2BEEE55F2CA3C9BEFEB0
4F9BC5339835342D1B1D1E2E7864C924E00C009BA28029DA8AD356C82D4B987A
DC6E6405542A7048A952657A0A94D0AAD64A28EEB99982C9C77E298B019709C5
67922CD18D730CC44A6E9C9C03CC22647CCE27B5662EE14BFFEA77A58D99E657
0D21CCBB6464E161D3B4C3DC0CBD41EB8B67CE18111FEDDEE11CFA14809418B4
1DCDFDADC8F204ED30F457E21EB21492E66094D37B04EC331B34BFB08DA5BD5F
BE5ABE603E5E26D003DEDC0151BA1DB0BAA9EF1293DE5BDDAE043D1F58177418
97175B27708F82EC3BC739F3B3CC50A2C7DF59D2EDA2A3A701217C0B4F3425EC
150F2F53EC9C7F823A35C1B13DA22F6E1688DB0D18F4B0E7320EA04EA52D1D23
9C117231F36047CC26C7B15AA6FAADA74E07F4DC00F14B621A33D7232B37614D
2014859AE78E007C8C57F2B0800817848623EE7E7DA0335A7D98088C1BE24B23
9584830E0AE0B406A03270B81D1B3D1CC8F838C72EFB71BC4E56F423C256E550
E34E89EBF764B578D2576F8171E6EFB9BD269F2C96C3335BBB610D8589DE3DA1
AEDCDEC233B6F7CAFD98E5EB6A14566E43952F8AB3EFFFA2DF5BA57E9FF04ADC
79A8E2A1971D9E5802794190B5FB7131A47C8790C1AF9D74134735BAB737648F
5ECF5D2E7B124B75922C67463FC6AFCB67B4B050E0D8F7094966E8D8C42EDAFB
FCB5A34AB0EFDF76ED504FAC574C7667917B6DC812A2C062FC744BCB4CBB8009
0201AC104B89711D037A28493C7D40BBAA55A26668428384E5EDC782A896D2D5
B67E7E5D3E1CBBEA10C3DA445AF8B51B387EF2FA5A12FBE6F8F5FF04FFF0AA8C
0A934A2259067CF3A287149E79F65339A1661D71E31E77A84D8BE1C030B4E849
E995B605C68C2F2D662DB7BFFB205F4A2C620115F61D472405D0745D36337C56
053AB2EE55ED8E3B46FF9D634AF9C2807B3E8A919BF7ACC98BCAAD21CEBEFA70
F9263F6438BB0F791F35FCA852028B2BB08E5B57F25E3E3367BF7C7EFDEEAEEF
64654A2C610F133228CD4159A997B8C81C4ACC1EAE871F26275D1C46F2A71228
3AD44F71E23E7B9D8CB24098F82793417D1D6B547900F304F0BD915D70388940
6BC6BB4F99A25171A19A3A49A4682BC2C4819445A6383A0CEC2FBBCC975064C3
A8B783644C5A9A7B45C51BD257936652E470FF4876ACD7D567468964E1D17E4F
5DE87E683451CCC4777D684E8B75FE7879670EBFE59972F3B4F85E20A056F5FC
9A73B433D6798F8132828E29E30FDDA1C6592A846B14F92D2BB812D3AEB8780B
36F2A057F3C8FF33790598EC213C88D21A75E380652B0D4308E4856ED490F5BD
A33A67149FE25942BEFDCFCBC1243659CD06477B1424840CBA441885AAB15C70
1F05F620B2EE3F5E171C57AE618560872D76E985649E8C8178769BD863EADE0D
DE389553B5D4EE8ABF2FA369CDBDD68BC74C1C627949D90ADABE106AC61BDC34
AF63527A7C44AB04726F6D2216BFCC49578C10D9AA5A83BF402ADEA76503752A
44A1E728C720ADCE158F5555C4919CBE7510AB284FCDA60C44473291851043EA
E27EB7392BC9C02F65B218065ACF4A2A12E7E6C191140C7D16890EA4739D122D
0D1910388185988AB09430CC172034413A0097E8E4EEEC00A514FBFD8CA689C9
FB1A59A36A678B81CEAB955DBD690722D33C28828CBA0911A51E5CD170620018
2D88E8374B77DD966ADBE2F693685B43EB7FC26E5C107ACD8E1CD3AB0401DA30
E75D5378A2E95E4E068AC2CC8DBBC377F964787119122E8674C39BC01464D9D4
6AFD9D742ACD9C8730C26F3A29D754F292F21B50E9819B75D7878D1449569DD7
CE9619F575219243BE5C48B6C29E5D93DB338C64544ACD8BA3C60B8DB63086CD
4E7C342CE820938C59B90336C494DF404FCBB970580C89CF3E430E4B5C648F1C
5AAC545AA7895598C44728EB40597009CEB21F94432843FD41CBE45EC38491BF
F1A492213D9B002D64B26E1EF68C939D7402AE4C3B5268DCEC1F55E1D3CFED5C
21F43524F211F2646FAF3F4A73B1707CDD2E302CE0297BE68BFEED4D98D60EC0
C331FA1FA8E94F8840E822B01B45A7F1FD0E34C95A4B414D2DC72A765C3A12B6
2E61819B8B8F6E549C3AD47F4A005933545C7F4537960466DEAD6DC011C691B1
230B986605436BB3F87716BAEDF2A009CA6CE0B3AC37A14E9E3D50F9393FD7E7
CD9C9B4E91C4C0B8D6A9F093538991E08657EA0D37561EC0357A85F2F1D9994A
73728736C1D15161CEDA7335EAEAC671A519647BA805E095ABC7ABE4796D6649
634167E28BA49AF423D23AAC9151012CA7CA16271C844A02655293A9589AA236
5408AE35CBE9FF075EF4EC925F8D82DFF3CE17EADEDC820C2BC7DD1671D8D546
B333FFAA0B13255B8608062ACFAFC4BAE24DB9DBADFADA09D939E39A69BE279C
160F8AAA24B939A48AF73A17CE378DA9A8B2F9FB6843033CCAC112CF9D4492D3
B0B8B51997F3077A185C240B8CD73DCD8BBACF71762963D6BF35985179AFEF4B
F3720D8A17CB7CFBFF4A9824518BC2311677C6900B37F6338547EA7274D01CC5
FAF067C615AFBAF3B625FB7354368E58A6C8CFB9974E6FE9F72AD2C801108A48
7C5C4C57BFAC2718DEBCFC39573842037B1E806C96BB76E310994014CC777A7B
7072BB178DDB5A2E78D9441C4008D9E72B21C20D44620648BC51B8A0AF3C5B21
7B7DE4EC1F908DA6248A818308C6021EFC68AAA131DA1233CE09066FB2D022F6
7C00417A6120E014276DD53BF924FD8FC8D62DBF94AE802273F32DE34AD2BB79
90BAF4BBCE936757788F785D315D36B5A8E7891A0ADDB26B847DB4FC969A7AA3
22B535DFD9BD86B3CFECF0D9AD58A4D30BCEC2FA55A2DD3159C47CF0D0F6ED13
E584D3FA9D83105746EA536AF600FB81772184A0679A14AEFEF3A3F15DC20DD3
D450FDA175002E11E4EA83F19A7EBD343FB951CF0B33693A5BC7C5B4DA252B4B
D9D752CE580B129019FE89FC62EE05E08A68283CD59DA8F1B072A046B3690978
496A7B4E4A39ABD78EFB7D42BAD9884536F8AA9CE3A397411CE310FA9A108FDC
6DB7779D805786104892881576FBDBD87FB608524A2B171AEF771A2070539087
6D82E338FD43A9C72F7714B8ECB03E3FC5229844C9A132436F3AE54F1CC9D069
41EAEB395B9D960DB455E7D71B26F04442E6F66BB044FCFB98AB5D0115D59D77
6346B0A8F5D6BFE8CB240E20FE02728D769CC024EDFF580C77F607C22046F362
81A4BB6083DE452A01872F5AB7A045FEF26926AB10C914BEA406BC396A8CB3A2
6AF03BCE3356885EA2181D91D3381152F8FB94F9E6C3BC8159B2A95486E78AC9
4890BC76DF88DD6D80A5E8529048F864513F09534299232FA33D4797F174AB4C
88951B4043D2B724EBFAC18A0A1B60CCBC732DF60E2DFC613CE316C63B9B8430
23AEA901FB72B0322483374E0430A29193CCFDCB327338736BC8CD82799ECB38
51FC9003F04B7C46158CC3C0C8703BDC2FD260F7A88040E423EF89DE955AB912
CA3DB5BC0C2CF534F74D86AB4BF8BCAFAC5ABE1E1E61DE252D241DDA0EEFF7C9
FEFBD77818325F307B9BB9245E9FEDB0F525CE15E5CE1C72437136BC12F8B102
C77F2C0315BA67D7A9EF59C21145EFAFDD57479BB4C89198CFFCDD2488C61BC0
62373DF3E6B62F53EA0ABF2151C590ACD370721AE1D831AFC1B28E87597356F5
6923A192FEBC63B357B2BF3323891D8CEA75C37B8FEF56A4083A4523F8F83738
26B1E6099D34CFEC32A10B2FFCBCC0F324876EDD1110AB3540D641BA415F44E6
9BBC0473FB420CEB68575A6664E99CF248B0511749F0B11EE124A87086EA7E9F
B73F3A8AE1D5585CA6FB3A72456E06C3BF32AA6C130B1209D9B969AC4A13C8A4
F14AE884A8779D9C3759C2BCCCBCDE519673CA73CC606EEC30E9D2BBAA2EE540
2E8683D8E61EB78FABDD8E7C111D7F5A772E9319692BCA9D462FA4E064FA9C3C
62BAE54D0AB9C0B183F9F45699E52301A20D409FD6F95823392FCCBA892D7BFD
4590D2FCB9F75B90CB94609467794E6F0AE74F37E9999014CBBE9BFA1BE5F64E
B9E57A6F904E89576042A9BFBD00DBF255BC5B26089049AE818EFA4973F9A776
0E9517ED7470822328DCA1A7DDA0E0821F59EE4A7F4E3407ABDB0D0F4703A1D4
A389A53DFFE0E49964F60DED12E1F9A2F703FB29E4593CE8C070D7261651E8FF
7C2EC6E37E497195BBCDA16056F8E192B28067010CD5F001F4F861DC7D83B3F9
94B2B59F6EFF26EFF0E50C43FB20723041DC07F63FEACCBBA360BCC8FEEE0799
911159C30E4090004DB4B12A6B26B0532A8EAE44AEC0A912F0D7D1FD51A62A32
141F8CA382B6E41CEC4D70F73B81597A56AD2795B3C835D5ED894847D49DAAF4
B771485F39ECDD20D29EA4133DCCDF90C9CA0F1F2385317B2053B1A53FF8F4C4
0BB4DECE37AB4D36CA7CC8E339ACBB356296EA6C459C740074DA8B2B6DBA2ED2
5F1CCEE6432198244CDA15DEECB51A2CD7CD5D16AB8425
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
TeXDict begin 39139632 55387786 1000 600 600 (../../doc/gperf.dvi)
@start /Fa 209[43 46[{}1 119.552 /CMBXTI10 rf /Fb 135[41
3[30 30 3[38 43 4[21 3[34 43 26[28 31[30 30 40[{}11 74.7198
/CMR9 rf /Fc 147[25 10[44 97[{}2 90.9091 /CMB10 rf /Fd
214[35 35 40[{}2 90.9091 /CMSS10 rf /Fe 136[83 2[45 45
47 2[57 64 4[32 64 2[53 64 2[56 97[{}11 99.6264 /CMBX10
rf /Ff 138[52 52 52 4[52 4[52 1[52 1[52 52 100[{}8 99.6264
/CMTT10 rf /Fg 138[56 56 56 56 3[56 4[56 3[56 56 56 99[{}9
109.091 /CMTT12 rf /Fh 134[65 1[89 65 68 48 48 50 1[68
61 68 102 34 2[34 68 61 37 56 68 55 1[60 9[127 1[94 6[96
2[96 1[46 1[96 77 81 94 89 1[93 12[61 61 61 61 2[34 41
45[{}37 109.091 /CMBX12 rf /Fi 141[62 1[62 8[62 62 62
101[{}5 119.552 /CMTT12 rf /Fj 133[37 44 42 1[42 49 30
37 38 1[46 46 51 74 23 42 1[28 46 42 28 42 46 42 42 46
4[47 4[91 1[68 65 51 66 1[62 70 68 82 57 3[68 70 59 62
1[65 1[68 6[28 11[28 33 5[28 4[47 34[{}45 90.9091 /CMTI10
rf /Fk 141[74 1[74 8[74 74 74 101[{}5 143.462 /CMTT12
rf /Fl 129[48 48 1[48 48 48 48 48 48 48 48 48 48 1[48
48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 2[48
1[48 48 1[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
48 48 48 48 48 48 48 48 48 1[48 48 48 48 48 48 48 48
48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
48 48 48 34[{}86 90.9091 /CMTT10 rf /Fm 133[40 48 1[66
48 51 35 36 36 1[51 45 51 76 25 48 28 25 51 45 28 40
51 40 51 45 9[93 2[66 51 8[47 3[59 2[66 17[45 2[25 30
5[25 26[51 12[{}35 90.9091 /CMSL10 rf /Fn 134[85 85 117
85 90 63 64 66 1[90 81 90 134 45 85 1[45 90 81 49 74
90 72 90 78 11[124 112 90 120 1[110 1[126 1[97 126 1[60
126 127 1[106 124 117 115 122 9[81 81 81 81 81 81 81
3[54 45[{}47 143.462 /CMBX12 rf /Fo 240[45 1[91 13[{}2
90.9091 /CMSY10 rf /Fp 134[71 71 97 71 75 52 53 55 1[75
67 75 112 37 71 1[37 75 67 41 61 75 60 75 65 7[102 1[139
1[103 94 75 100 1[92 101 105 128 81 105 1[50 105 106
85 88 103 97 96 102 7[67 67 67 67 67 67 67 67 67 67 1[37
45 37 31[75 78 11[{}59 119.552 /CMBX12 rf /Fq 131[91
1[40 48 48 66 48 51 35 36 36 48 51 45 51 76 25 48 28
25 51 45 28 40 51 40 51 45 25 2[25 45 25 1[68 68 93 68
68 66 51 67 71 62 71 68 83 57 71 47 33 68 71 59 62 69
66 64 68 3[71 1[25 25 45 45 45 45 45 45 45 45 45 45 45
25 30 25 1[45 35 35 25 71 1[45 76 45 19[76 51 51 53 11[{}85
90.9091 /CMR10 rf /Fr 141[89 1[89 8[89 89 89 101[{}5
172.154 /CMTT12 rf /Fs 138[108 75 76 79 2[97 5[54 3[88
108 14[149 13[152 19[97 97 1[97 1[54 6[54 39[{}15 172.154
/CMBX12 rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%BeginPaperSize: a4
a4
%%EndPaperSize
 end
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 150 1318 a Fs(User's)65 b(Guide)g(to)f
Fr(gperf)f Fs(3.0.2)p 150 1423 3600 34 v 2005 1519 a
Fq(The)30 b(GNU)h(P)m(erfect)h(Hash)e(F)-8 b(unction)31
b(Generator)2530 1627 y(Edition)g(3.0.2,)h(13)f(Jan)m(uary)f(2006)150
4958 y Fp(Douglas)46 b(C.)f(Sc)l(hmidt)150 5091 y(Bruno)f(Haible)p
150 5141 3600 17 v eop end
%%Page: 2 2
TeXDict begin 2 1 bop 150 4152 a Fq(Cop)m(yrigh)m(t)602
4149 y(c)577 4152 y Fo(\015)30 b Fq(1989-2004)k(F)-8
b(ree)32 b(Soft)m(w)m(are)f(F)-8 b(oundation,)32 b(Inc.)150
4286 y(P)m(ermission)g(is)h(gran)m(ted)g(to)f(mak)m(e)i(and)d
(distribute)h(v)m(erbatim)h(copies)g(of)f(this)g(man)m(ual)h(pro)m
(vided)f(the)150 4396 y(cop)m(yrigh)m(t)g(notice)f(and)f(this)g(p)s
(ermission)g(notice)h(are)g(preserv)m(ed)f(on)h(all)g(copies.)150
4530 y(P)m(ermission)38 b(is)h(gran)m(ted)f(to)h(cop)m(y)g(and)f
(distribute)g(mo)s(di\014ed)f(v)m(ersions)h(of)h(this)f(man)m(ual)g
(under)f(the)150 4640 y(conditions)44 b(for)f(v)m(erbatim)h(cop)m
(ying,)k(pro)m(vided)43 b(also)h(that)h(the)e(section)i(en)m(titled)g
(\\GNU)f(General)150 4749 y(Public)27 b(License")g(is)g(included)f
(exactly)j(as)e(in)f(the)h(original,)i(and)d(pro)m(vided)h(that)g(the)g
(en)m(tire)h(resulting)150 4859 y(deriv)m(ed)i(w)m(ork)h(is)f
(distributed)g(under)f(the)h(terms)g(of)h(a)g(p)s(ermission)e(notice)j
(iden)m(tical)g(to)f(this)f(one.)150 4994 y(P)m(ermission)j(is)h(gran)m
(ted)f(to)h(cop)m(y)g(and)f(distribute)f(translations)i(of)g(this)f
(man)m(ual)g(in)m(to)h(another)f(lan-)150 5103 y(guage,)41
b(under)35 b(the)j(ab)s(o)m(v)m(e)g(conditions)g(for)f(mo)s(di\014ed)g
(v)m(ersions,)i(except)g(that)e(the)h(section)g(en)m(titled)150
5213 y(\\GNU)e(General)h(Public)e(License")h(ma)m(y)g(b)s(e)e(included)
h(in)g(a)h(translation)g(appro)m(v)m(ed)f(b)m(y)h(the)f(author)150
5322 y(instead)c(of)f(in)g(the)h(original)g(English.)p
eop end
%%Page: 1 3
TeXDict begin 1 2 bop 150 -116 a Fq(GNU)31 b(GENERAL)f(PUBLIC)h
(LICENSE)2052 b(1)150 299 y Fn(GNU)54 b(GENERAL)g(PUBLIC)f(LICENSE)1537
564 y Fq(V)-8 b(ersion)31 b(2,)g(June)f(1991)390 720
y(Cop)m(yrigh)m(t)842 717 y(c)817 720 y Fo(\015)g Fq(1989,)j(1991)f(F)
-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.,)390
824 y(59)g(T)-8 b(emple)31 b(Place,)h(Suite)e(330,)i(Boston,)g(MA)e
(02111-1307,)35 b(USA.)390 1032 y(Ev)m(ery)m(one)c(is)g(p)s(ermitted)f
(to)h(cop)m(y)g(and)f(distribute)g(v)m(erbatim)h(copies)390
1135 y(of)g(this)f(license)h(do)s(cumen)m(t,)g(but)e(c)m(hanging)j(it)f
(is)f(not)h(allo)m(w)m(ed.)150 1462 y Fp(Pream)l(ble)275
1683 y Fq(The)39 b(licenses)j(for)e(most)h(soft)m(w)m(are)g(are)g
(designed)f(to)h(tak)m(e)h(a)m(w)m(a)m(y)h(y)m(our)d(freedom)g(to)h
(share)g(and)150 1793 y(c)m(hange)g(it.)71 b(By)40 b(con)m(trast,)k
(the)c(GNU)h(General)g(Public)f(License)h(is)f(in)m(tended)g(to)g
(guaran)m(tee)i(y)m(our)150 1902 y(freedom)24 b(to)h(share)f(and)f(c)m
(hange)i(free)f(soft)m(w)m(are|to)j(mak)m(e)e(sure)e(the)h(soft)m(w)m
(are)i(is)e(free)g(for)g(all)h(its)g(users.)150 2012
y(This)39 b(General)i(Public)e(License)i(applies)f(to)g(most)g(of)g
(the)g(F)-8 b(ree)41 b(Soft)m(w)m(are)g(F)-8 b(oundation's)40
b(soft)m(w)m(are)150 2121 y(and)35 b(to)h(an)m(y)g(other)g(program)f
(whose)h(authors)f(commit)h(to)h(using)e(it.)56 b(\(Some)36
b(other)g(F)-8 b(ree)37 b(Soft)m(w)m(are)150 2231 y(F)-8
b(oundation)32 b(soft)m(w)m(are)h(is)e(co)m(v)m(ered)i(b)m(y)e(the)g
(GNU)h(Library)f(General)h(Public)f(License)g(instead.\))44
b(Y)-8 b(ou)150 2340 y(can)31 b(apply)f(it)h(to)g(y)m(our)f(programs,)g
(to)s(o.)275 2503 y(When)37 b(w)m(e)g(sp)s(eak)g(of)g(free)h(soft)m(w)m
(are,)i(w)m(e)e(are)g(referring)e(to)i(freedom,)h(not)f(price.)61
b(Our)36 b(General)150 2612 y(Public)e(Licenses)g(are)h(designed)f(to)h
(mak)m(e)g(sure)f(that)g(y)m(ou)h(ha)m(v)m(e)g(the)g(freedom)f(to)g
(distribute)g(copies)150 2722 y(of)i(free)h(soft)m(w)m(are)g(\(and)f(c)
m(harge)i(for)e(this)g(service)h(if)f(y)m(ou)h(wish\),)h(that)e(y)m(ou)
h(receiv)m(e)h(source)e(co)s(de)h(or)150 2832 y(can)e(get)h(it)f(if)f
(y)m(ou)h(w)m(an)m(t)h(it,)g(that)f(y)m(ou)g(can)g(c)m(hange)h(the)e
(soft)m(w)m(are)i(or)f(use)f(pieces)i(of)e(it)h(in)g(new)f(free)150
2941 y(programs;)c(and)g(that)h(y)m(ou)g(kno)m(w)f(y)m(ou)h(can)f(do)h
(these)g(things.)275 3104 y(T)-8 b(o)40 b(protect)h(y)m(our)f(righ)m
(ts,)j(w)m(e)d(need)g(to)h(mak)m(e)g(restrictions)f(that)h(forbid)e(an)
m(y)m(one)i(to)g(den)m(y)f(y)m(ou)150 3213 y(these)d(righ)m(ts)g(or)f
(to)h(ask)g(y)m(ou)f(to)h(surrender)e(the)h(righ)m(ts.)59
b(These)36 b(restrictions)h(translate)h(to)f(certain)150
3323 y(resp)s(onsibilities)30 b(for)h(y)m(ou)f(if)h(y)m(ou)f
(distribute)g(copies)h(of)g(the)f(soft)m(w)m(are,)j(or)d(if)g(y)m(ou)h
(mo)s(dify)f(it.)275 3485 y(F)-8 b(or)30 b(example,)g(if)g(y)m(ou)f
(distribute)g(copies)i(of)e(suc)m(h)g(a)h(program,)g(whether)e(gratis)j
(or)e(for)g(a)h(fee,)h(y)m(ou)150 3595 y(m)m(ust)i(giv)m(e)i(the)f
(recipien)m(ts)g(all)h(the)e(righ)m(ts)h(that)g(y)m(ou)g(ha)m(v)m(e.)51
b(Y)-8 b(ou)34 b(m)m(ust)g(mak)m(e)g(sure)f(that)h(they)-8
b(,)35 b(to)s(o,)150 3704 y(receiv)m(e)k(or)f(can)g(get)g(the)g(source)
g(co)s(de.)62 b(And)37 b(y)m(ou)h(m)m(ust)f(sho)m(w)h(them)f(these)h
(terms)f(so)h(they)g(kno)m(w)150 3814 y(their)30 b(righ)m(ts.)275
3976 y(W)-8 b(e)29 b(protect)g(y)m(our)f(righ)m(ts)g(with)g(t)m(w)m(o)h
(steps:)40 b(\(1\))29 b(cop)m(yrigh)m(t)g(the)f(soft)m(w)m(are,)j(and)c
(\(2\))i(o\013er)g(y)m(ou)f(this)150 4086 y(license)j(whic)m(h)f(giv)m
(es)i(y)m(ou)f(legal)h(p)s(ermission)d(to)i(cop)m(y)-8
b(,)32 b(distribute)e(and/or)g(mo)s(dify)g(the)h(soft)m(w)m(are.)275
4248 y(Also,)46 b(for)c(eac)m(h)i(author's)f(protection)g(and)f(ours,)j
(w)m(e)e(w)m(an)m(t)h(to)f(mak)m(e)h(certain)f(that)g(ev)m(ery)m(one)
150 4358 y(understands)29 b(that)j(there)f(is)g(no)g(w)m(arran)m(t)m(y)
h(for)f(this)g(free)g(soft)m(w)m(are.)44 b(If)30 b(the)i(soft)m(w)m
(are)g(is)f(mo)s(di\014ed)f(b)m(y)150 4467 y(someone)h(else)f(and)f
(passed)h(on,)g(w)m(e)g(w)m(an)m(t)h(its)f(recipien)m(ts)h(to)f(kno)m
(w)g(that)g(what)g(they)g(ha)m(v)m(e)h(is)f(not)g(the)150
4577 y(original,)h(so)e(that)g(an)m(y)h(problems)e(in)m(tro)s(duced)g
(b)m(y)h(others)g(will)g(not)g(re\015ect)h(on)f(the)g(original)h
(authors')150 4686 y(reputations.)275 4849 y(Finally)-8
b(,)27 b(an)m(y)e(free)f(program)g(is)h(threatened)f(constan)m(tly)i(b)
m(y)f(soft)m(w)m(are)h(paten)m(ts.)39 b(W)-8 b(e)26 b(wish)d(to)i(a)m
(v)m(oid)150 4958 y(the)30 b(danger)g(that)h(redistributors)e(of)i(a)f
(free)h(program)f(will)g(individually)g(obtain)h(paten)m(t)g(licenses,)
g(in)150 5068 y(e\013ect)39 b(making)f(the)g(program)f(proprietary)-8
b(.)63 b(T)-8 b(o)38 b(prev)m(en)m(t)g(this,)i(w)m(e)e(ha)m(v)m(e)h
(made)f(it)g(clear)g(that)h(an)m(y)150 5178 y(paten)m(t)31
b(m)m(ust)g(b)s(e)e(licensed)i(for)f(ev)m(ery)m(one's)i(free)f(use)f
(or)g(not)h(licensed)g(at)g(all.)275 5340 y(The)e(precise)i(terms)f
(and)g(conditions)h(for)f(cop)m(ying,)i(distribution)d(and)h(mo)s
(di\014cation)h(follo)m(w.)p eop end
%%Page: 2 4
TeXDict begin 2 3 bop 150 -116 a Fq(GNU)31 b(GENERAL)f(PUBLIC)h
(LICENSE)2052 b(2)150 166 y Fp(TERMS)44 b(AND)h(CONDITIONS)g(F)l(OR)g
(COPYING,)150 299 y(DISTRIBUTION)f(AND)h(MODIFICA)-11
b(TION)199 515 y Fq(0.)61 b(This)42 b(License)h(applies)f(to)i(an)m(y)f
(program)f(or)g(other)h(w)m(ork)g(whic)m(h)f(con)m(tains)i(a)f(notice)g
(placed)330 625 y(b)m(y)33 b(the)h(cop)m(yrigh)m(t)h(holder)e(sa)m
(ying)i(it)f(ma)m(y)g(b)s(e)f(distributed)g(under)f(the)h(terms)h(of)g
(this)f(General)330 735 y(Public)39 b(License.)68 b(The)39
b(\\Program",)j(b)s(elo)m(w,)g(refers)d(to)h(an)m(y)g(suc)m(h)f
(program)g(or)g(w)m(ork,)j(and)d(a)330 844 y(\\w)m(ork)29
b(based)f(on)h(the)g(Program")g(means)f(either)i(the)e(Program)h(or)g
(an)m(y)g(deriv)-5 b(ativ)m(e)30 b(w)m(ork)e(under)330
954 y(cop)m(yrigh)m(t)33 b(la)m(w:)43 b(that)32 b(is)f(to)i(sa)m(y)-8
b(,)33 b(a)e(w)m(ork)h(con)m(taining)h(the)e(Program)h(or)f(a)h(p)s
(ortion)f(of)g(it,)h(either)330 1063 y(v)m(erbatim)e(or)f(with)f(mo)s
(di\014cations)h(and/or)g(translated)h(in)m(to)g(another)f(language.)41
b(\(Hereinafter,)330 1173 y(translation)28 b(is)f(included)g(without)g
(limitation)i(in)e(the)g(term)g(\\mo)s(di\014cation".\))42
b(Eac)m(h)27 b(licensee)i(is)330 1282 y(addressed)g(as)i(\\y)m(ou".)330
1429 y(Activities)41 b(other)e(than)f(cop)m(ying,)43
b(distribution)38 b(and)g(mo)s(di\014cation)h(are)g(not)g(co)m(v)m
(ered)h(b)m(y)f(this)330 1538 y(License;)34 b(they)f(are)f(outside)h
(its)f(scop)s(e.)47 b(The)32 b(act)h(of)g(running)d(the)j(Program)f(is)
g(not)h(restricted,)330 1648 y(and)24 b(the)g(output)g(from)g(the)h
(Program)f(is)h(co)m(v)m(ered)h(only)e(if)g(its)h(con)m(ten)m(ts)h
(constitute)g(a)f(w)m(ork)f(based)330 1758 y(on)h(the)h(Program)f
(\(indep)s(enden)m(t)g(of)h(ha)m(ving)g(b)s(een)e(made)i(b)m(y)f
(running)f(the)h(Program\).)40 b(Whether)330 1867 y(that)31
b(is)f(true)h(dep)s(ends)d(on)i(what)h(the)f(Program)h(do)s(es.)199
2014 y(1.)61 b(Y)-8 b(ou)42 b(ma)m(y)g(cop)m(y)g(and)e(distribute)h(v)m
(erbatim)h(copies)g(of)g(the)f(Program's)h(source)f(co)s(de)h(as)g(y)m
(ou)330 2123 y(receiv)m(e)33 b(it,)f(in)f(an)m(y)g(medium,)g(pro)m
(vided)g(that)g(y)m(ou)h(conspicuously)f(and)f(appropriately)i(publish)
330 2233 y(on)h(eac)m(h)h(cop)m(y)g(an)f(appropriate)g(cop)m(yrigh)m(t)
i(notice)f(and)f(disclaimer)g(of)h(w)m(arran)m(t)m(y;)h(k)m(eep)f(in)m
(tact)330 2342 y(all)f(the)e(notices)i(that)g(refer)e(to)h(this)g
(License)g(and)f(to)i(the)f(absence)g(of)g(an)m(y)g(w)m(arran)m(t)m(y;)
h(and)e(giv)m(e)330 2452 y(an)m(y)g(other)f(recipien)m(ts)i(of)e(the)h
(Program)f(a)h(cop)m(y)g(of)g(this)f(License)h(along)g(with)f(the)h
(Program.)330 2598 y(Y)-8 b(ou)31 b(ma)m(y)g(c)m(harge)h(a)f(fee)g(for)
f(the)h(ph)m(ysical)g(act)h(of)f(transferring)f(a)h(cop)m(y)-8
b(,)32 b(and)e(y)m(ou)h(ma)m(y)g(at)g(y)m(our)330 2708
y(option)g(o\013er)g(w)m(arran)m(t)m(y)g(protection)h(in)e(exc)m(hange)
i(for)e(a)g(fee.)199 2854 y(2.)61 b(Y)-8 b(ou)24 b(ma)m(y)h(mo)s(dify)e
(y)m(our)h(cop)m(y)g(or)g(copies)h(of)f(the)g(Program)g(or)g(an)m(y)g
(p)s(ortion)f(of)h(it,)i(th)m(us)e(forming)g(a)330 2964
y(w)m(ork)j(based)g(on)f(the)h(Program,)h(and)f(cop)m(y)g(and)g
(distribute)f(suc)m(h)h(mo)s(di\014cations)g(or)f(w)m(ork)h(under)330
3074 y(the)k(terms)f(of)g(Section)i(1)e(ab)s(o)m(v)m(e,)i(pro)m(vided)e
(that)h(y)m(ou)g(also)g(meet)g(all)h(of)e(these)h(conditions:)379
3220 y(a.)61 b(Y)-8 b(ou)43 b(m)m(ust)f(cause)i(the)e(mo)s(di\014ed)g
(\014les)g(to)h(carry)g(prominen)m(t)f(notices)i(stating)f(that)h(y)m
(ou)510 3330 y(c)m(hanged)31 b(the)g(\014les)f(and)g(the)g(date)h(of)g
(an)m(y)g(c)m(hange.)374 3476 y(b.)60 b(Y)-8 b(ou)31
b(m)m(ust)g(cause)g(an)m(y)h(w)m(ork)f(that)g(y)m(ou)g(distribute)f(or)
h(publish,)f(that)h(in)g(whole)g(or)g(in)f(part)510 3586
y(con)m(tains)36 b(or)g(is)f(deriv)m(ed)g(from)g(the)g(Program)g(or)g
(an)m(y)h(part)f(thereof,)i(to)f(b)s(e)e(licensed)i(as)g(a)510
3695 y(whole)31 b(at)g(no)f(c)m(harge)i(to)f(all)g(third)e(parties)i
(under)e(the)i(terms)f(of)g(this)h(License.)384 3842
y(c.)61 b(If)39 b(the)h(mo)s(di\014ed)f(program)g(normally)h(reads)g
(commands)f(in)m(teractiv)m(ely)k(when)c(run,)i(y)m(ou)510
3951 y(m)m(ust)30 b(cause)h(it,)g(when)f(started)h(running)d(for)j(suc)
m(h)f(in)m(teractiv)m(e)j(use)d(in)g(the)h(most)g(ordinary)510
4061 y(w)m(a)m(y)-8 b(,)25 b(to)d(prin)m(t)f(or)g(displa)m(y)h(an)f
(announcemen)m(t)g(including)g(an)h(appropriate)f(cop)m(yrigh)m(t)i
(notice)510 4170 y(and)h(a)g(notice)i(that)e(there)h(is)f(no)g(w)m
(arran)m(t)m(y)h(\(or)g(else,)h(sa)m(ying)f(that)g(y)m(ou)g(pro)m(vide)
f(a)h(w)m(arran)m(t)m(y\))510 4280 y(and)35 b(that)g(users)g(ma)m(y)g
(redistribute)g(the)h(program)f(under)e(these)j(conditions,)h(and)e
(telling)510 4390 y(the)f(user)f(ho)m(w)h(to)g(view)g(a)h(cop)m(y)f(of)
g(this)g(License.)51 b(\(Exception:)e(if)33 b(the)h(Program)g(itself)h
(is)510 4499 y(in)m(teractiv)m(e)i(but)c(do)s(es)h(not)g(normally)g
(prin)m(t)g(suc)m(h)f(an)h(announcemen)m(t,)h(y)m(our)f(w)m(ork)g
(based)510 4609 y(on)c(the)h(Program)f(is)h(not)f(required)g(to)h(prin)
m(t)f(an)g(announcemen)m(t.\))330 4792 y(These)41 b(requiremen)m(ts)h
(apply)f(to)h(the)g(mo)s(di\014ed)f(w)m(ork)g(as)h(a)g(whole.)74
b(If)42 b(iden)m(ti\014able)g(sections)330 4902 y(of)g(that)h(w)m(ork)g
(are)f(not)h(deriv)m(ed)f(from)g(the)h(Program,)i(and)d(can)h(b)s(e)e
(reasonably)i(considered)330 5011 y(indep)s(enden)m(t)25
b(and)i(separate)g(w)m(orks)g(in)f(themselv)m(es,)j(then)d(this)h
(License,)h(and)e(its)i(terms,)f(do)g(not)330 5121 y(apply)37
b(to)h(those)f(sections)h(when)f(y)m(ou)g(distribute)g(them)g(as)g
(separate)h(w)m(orks.)61 b(But)37 b(when)g(y)m(ou)330
5230 y(distribute)29 b(the)g(same)g(sections)i(as)e(part)g(of)g(a)h
(whole)f(whic)m(h)g(is)g(a)g(w)m(ork)h(based)e(on)h(the)h(Program,)330
5340 y(the)h(distribution)g(of)g(the)h(whole)f(m)m(ust)g(b)s(e)g(on)g
(the)g(terms)g(of)h(this)f(License,)h(whose)f(p)s(ermissions)p
eop end
%%Page: 3 5
TeXDict begin 3 4 bop 150 -116 a Fq(GNU)31 b(GENERAL)f(PUBLIC)h
(LICENSE)2052 b(3)330 299 y(for)22 b(other)h(licensees)g(extend)g(to)g
(the)f(en)m(tire)h(whole,)i(and)c(th)m(us)h(to)h(eac)m(h)h(and)d(ev)m
(ery)i(part)g(regardless)330 408 y(of)31 b(who)e(wrote)i(it.)330
538 y(Th)m(us,)48 b(it)e(is)f(not)h(the)f(in)m(ten)m(t)h(of)g(this)f
(section)h(to)g(claim)h(righ)m(ts)e(or)g(con)m(test)i(y)m(our)f(righ)m
(ts)f(to)330 648 y(w)m(ork)34 b(written)f(en)m(tirely)i(b)m(y)f(y)m
(ou;)h(rather,)g(the)f(in)m(ten)m(t)h(is)e(to)i(exercise)f(the)g(righ)m
(t)g(to)h(con)m(trol)g(the)330 757 y(distribution)30
b(of)g(deriv)-5 b(ativ)m(e)32 b(or)f(collectiv)m(e)i(w)m(orks)e(based)f
(on)g(the)h(Program.)330 887 y(In)41 b(addition,)j(mere)d(aggregation)j
(of)e(another)f(w)m(ork)g(not)h(based)f(on)g(the)g(Program)h(with)f
(the)330 996 y(Program)22 b(\(or)g(with)f(a)h(w)m(ork)g(based)f(on)h
(the)g(Program\))g(on)f(a)h(v)m(olume)h(of)f(a)g(storage)h(or)f
(distribution)330 1106 y(medium)29 b(do)s(es)i(not)f(bring)g(the)g
(other)h(w)m(ork)f(under)f(the)i(scop)s(e)f(of)h(this)f(License.)199
1235 y(3.)61 b(Y)-8 b(ou)38 b(ma)m(y)f(cop)m(y)h(and)f(distribute)f
(the)i(Program)f(\(or)g(a)h(w)m(ork)f(based)g(on)g(it,)j(under)35
b(Section)j(2\))330 1345 y(in)30 b(ob)5 b(ject)31 b(co)s(de)g(or)g
(executable)h(form)e(under)e(the)j(terms)f(of)h(Sections)g(1)g(and)f(2)
h(ab)s(o)m(v)m(e)g(pro)m(vided)330 1455 y(that)g(y)m(ou)g(also)g(do)f
(one)h(of)f(the)h(follo)m(wing:)379 1584 y(a.)61 b(Accompan)m(y)47
b(it)f(with)f(the)h(complete)h(corresp)s(onding)e(mac)m(hine-readable)i
(source)e(co)s(de,)510 1694 y(whic)m(h)26 b(m)m(ust)g(b)s(e)f
(distributed)g(under)f(the)j(terms)e(of)i(Sections)f(1)h(and)e(2)h(ab)s
(o)m(v)m(e)i(on)d(a)i(medium)510 1803 y(customarily)k(used)f(for)g
(soft)m(w)m(are)i(in)m(terc)m(hange;)g(or,)374 1933 y(b.)60
b(Accompan)m(y)30 b(it)g(with)f(a)h(written)f(o\013er,)i(v)-5
b(alid)29 b(for)g(at)i(least)f(three)g(y)m(ears,)g(to)g(giv)m(e)h(an)m
(y)f(third)510 2042 y(part)m(y)-8 b(,)32 b(for)f(a)h(c)m(harge)g(no)f
(more)h(than)f(y)m(our)g(cost)h(of)f(ph)m(ysically)i(p)s(erforming)d
(source)h(distri-)510 2152 y(bution,)d(a)g(complete)i(mac)m
(hine-readable)f(cop)m(y)f(of)g(the)g(corresp)s(onding)f(source)h(co)s
(de,)h(to)g(b)s(e)510 2262 y(distributed)k(under)g(the)h(terms)g(of)h
(Sections)g(1)f(and)g(2)h(ab)s(o)m(v)m(e)g(on)f(a)h(medium)e
(customarily)510 2371 y(used)d(for)g(soft)m(w)m(are)i(in)m(terc)m
(hange;)g(or,)384 2501 y(c.)61 b(Accompan)m(y)33 b(it)f(with)g(the)g
(information)g(y)m(ou)g(receiv)m(ed)h(as)f(to)g(the)g(o\013er)g(to)h
(distribute)e(cor-)510 2610 y(resp)s(onding)h(source)h(co)s(de.)50
b(\(This)32 b(alternativ)m(e)k(is)d(allo)m(w)m(ed)i(only)f(for)f
(noncommercial)h(dis-)510 2720 y(tribution)e(and)f(only)h(if)g(y)m(ou)h
(receiv)m(ed)g(the)f(program)g(in)g(ob)5 b(ject)33 b(co)s(de)f(or)g
(executable)h(form)510 2829 y(with)d(suc)m(h)g(an)g(o\013er,)h(in)f
(accord)i(with)e(Subsection)g(b)g(ab)s(o)m(v)m(e.\))330
2979 y(The)j(source)h(co)s(de)g(for)f(a)h(w)m(ork)g(means)f(the)h
(preferred)e(form)h(of)h(the)g(w)m(ork)f(for)h(making)g(mo)s(di\014-)
330 3088 y(cations)e(to)f(it.)41 b(F)-8 b(or)31 b(an)f(executable)i(w)m
(ork,)f(complete)g(source)g(co)s(de)f(means)h(all)g(the)f(source)h(co)s
(de)330 3198 y(for)25 b(all)i(mo)s(dules)e(it)h(con)m(tains,)i(plus)c
(an)m(y)i(asso)s(ciated)h(in)m(terface)h(de\014nition)d(\014les,)i
(plus)d(the)i(scripts)330 3308 y(used)41 b(to)i(con)m(trol)h
(compilation)f(and)f(installation)i(of)e(the)h(executable.)77
b(Ho)m(w)m(ev)m(er,)48 b(as)42 b(a)g(sp)s(e-)330 3417
y(cial)32 b(exception,)h(the)e(source)g(co)s(de)g(distributed)f(need)g
(not)h(include)g(an)m(ything)g(that)h(is)f(normally)330
3527 y(distributed)39 b(\(in)g(either)h(source)g(or)f(binary)g(form\))h
(with)f(the)h(ma)5 b(jor)39 b(comp)s(onen)m(ts)h(\(compiler,)330
3636 y(k)m(ernel,)c(and)e(so)g(on\))g(of)h(the)f(op)s(erating)h(system)
f(on)g(whic)m(h)g(the)g(executable)i(runs,)e(unless)f(that)330
3746 y(comp)s(onen)m(t)e(itself)g(accompanies)h(the)e(executable.)330
3875 y(If)39 b(distribution)f(of)i(executable)h(or)e(ob)5
b(ject)40 b(co)s(de)f(is)h(made)f(b)m(y)g(o\013ering)h(access)g(to)g
(cop)m(y)g(from)330 3985 y(a)e(designated)g(place,)i(then)e(o\013ering)
g(equiv)-5 b(alen)m(t)39 b(access)f(to)h(cop)m(y)f(the)f(source)h(co)s
(de)g(from)f(the)330 4095 y(same)29 b(place)g(coun)m(ts)f(as)h
(distribution)e(of)h(the)h(source)f(co)s(de,)h(ev)m(en)g(though)e
(third)h(parties)g(are)h(not)330 4204 y(comp)s(elled)i(to)g(cop)m(y)g
(the)g(source)f(along)i(with)e(the)g(ob)5 b(ject)31 b(co)s(de.)199
4334 y(4.)61 b(Y)-8 b(ou)35 b(ma)m(y)h(not)f(cop)m(y)-8
b(,)37 b(mo)s(dify)-8 b(,)36 b(sublicense,)g(or)e(distribute)h(the)g
(Program)f(except)i(as)f(expressly)330 4443 y(pro)m(vided)40
b(under)f(this)i(License.)71 b(An)m(y)41 b(attempt)h(otherwise)f(to)g
(cop)m(y)-8 b(,)45 b(mo)s(dify)-8 b(,)43 b(sublicense)d(or)330
4553 y(distribute)26 b(the)h(Program)g(is)f(v)m(oid,)i(and)e(will)h
(automatically)j(terminate)d(y)m(our)g(righ)m(ts)g(under)e(this)330
4663 y(License.)71 b(Ho)m(w)m(ev)m(er,)45 b(parties)c(who)f(ha)m(v)m(e)
h(receiv)m(ed)h(copies,)i(or)c(righ)m(ts,)k(from)c(y)m(ou)g(under)f
(this)330 4772 y(License)e(will)g(not)g(ha)m(v)m(e)h(their)f(licenses)g
(terminated)h(so)f(long)g(as)g(suc)m(h)f(parties)h(remain)g(in)f(full)
330 4882 y(compliance.)199 5011 y(5.)61 b(Y)-8 b(ou)38
b(are)g(not)g(required)e(to)i(accept)h(this)f(License,)i(since)e(y)m
(ou)f(ha)m(v)m(e)i(not)f(signed)f(it.)63 b(Ho)m(w)m(ev)m(er,)330
5121 y(nothing)24 b(else)g(gran)m(ts)h(y)m(ou)f(p)s(ermission)e(to)j
(mo)s(dify)e(or)g(distribute)h(the)g(Program)g(or)f(its)h(deriv)-5
b(ativ)m(e)330 5230 y(w)m(orks.)38 b(These)23 b(actions)h(are)g
(prohibited)e(b)m(y)h(la)m(w)h(if)f(y)m(ou)g(do)g(not)h(accept)g(this)f
(License.)39 b(Therefore,)330 5340 y(b)m(y)d(mo)s(difying)f(or)h
(distributing)f(the)h(Program)g(\(or)h(an)m(y)f(w)m(ork)g(based)g(on)f
(the)i(Program\),)h(y)m(ou)p eop end
%%Page: 4 6
TeXDict begin 4 5 bop 150 -116 a Fq(GNU)31 b(GENERAL)f(PUBLIC)h
(LICENSE)2052 b(4)330 299 y(indicate)33 b(y)m(our)g(acceptance)h(of)f
(this)f(License)h(to)h(do)e(so,)h(and)f(all)h(its)g(terms)f(and)g
(conditions)h(for)330 408 y(cop)m(ying,)f(distributing)d(or)i(mo)s
(difying)e(the)i(Program)f(or)h(w)m(orks)f(based)g(on)g(it.)199
545 y(6.)61 b(Eac)m(h)43 b(time)f(y)m(ou)g(redistribute)g(the)g
(Program)g(\(or)g(an)m(y)h(w)m(ork)f(based)f(on)h(the)g(Program\),)k
(the)330 655 y(recipien)m(t)33 b(automatically)j(receiv)m(es)e(a)f
(license)g(from)f(the)g(original)i(licensor)f(to)g(cop)m(y)-8
b(,)34 b(distribute)330 765 y(or)i(mo)s(dify)g(the)g(Program)h(sub)5
b(ject)36 b(to)h(these)g(terms)f(and)g(conditions.)59
b(Y)-8 b(ou)37 b(ma)m(y)g(not)f(imp)s(ose)330 874 y(an)m(y)27
b(further)f(restrictions)h(on)g(the)g(recipien)m(ts')h(exercise)g(of)f
(the)g(righ)m(ts)g(gran)m(ted)g(herein.)39 b(Y)-8 b(ou)28
b(are)330 984 y(not)j(resp)s(onsible)e(for)h(enforcing)h(compliance)h
(b)m(y)e(third)f(parties)i(to)g(this)f(License.)199 1121
y(7.)61 b(If,)27 b(as)g(a)g(consequence)h(of)f(a)g(court)g(judgmen)m(t)
f(or)h(allegation)i(of)e(paten)m(t)h(infringemen)m(t)e(or)h(for)g(an)m
(y)330 1230 y(other)h(reason)f(\(not)h(limited)g(to)g(paten)m(t)h
(issues\),)f(conditions)g(are)f(imp)s(osed)g(on)g(y)m(ou)h(\(whether)f
(b)m(y)330 1340 y(court)c(order,)h(agreemen)m(t)g(or)f(otherwise\))g
(that)g(con)m(tradict)i(the)d(conditions)h(of)g(this)g(License,)i(they)
330 1450 y(do)34 b(not)g(excuse)h(y)m(ou)f(from)g(the)g(conditions)h
(of)f(this)g(License.)53 b(If)33 b(y)m(ou)i(cannot)g(distribute)e(so)i
(as)330 1559 y(to)f(satisfy)g(sim)m(ultaneously)h(y)m(our)e
(obligations)j(under)c(this)h(License)h(and)f(an)m(y)h(other)g(p)s
(ertinen)m(t)330 1669 y(obligations,)44 b(then)c(as)g(a)g(consequence)h
(y)m(ou)f(ma)m(y)g(not)g(distribute)g(the)g(Program)g(at)g(all.)70
b(F)-8 b(or)330 1778 y(example,)26 b(if)e(a)h(paten)m(t)g(license)g(w)m
(ould)f(not)g(p)s(ermit)g(ro)m(y)m(alt)m(y-free)j(redistribution)c(of)h
(the)h(Program)330 1888 y(b)m(y)35 b(all)h(those)f(who)f(receiv)m(e)j
(copies)f(directly)f(or)g(indirectly)h(through)e(y)m(ou,)i(then)f(the)g
(only)g(w)m(a)m(y)330 1998 y(y)m(ou)27 b(could)f(satisfy)h(b)s(oth)e
(it)i(and)f(this)g(License)h(w)m(ould)f(b)s(e)g(to)h(refrain)e(en)m
(tirely)j(from)e(distribution)330 2107 y(of)31 b(the)f(Program.)330
2244 y(If)43 b(an)m(y)g(p)s(ortion)g(of)g(this)h(section)g(is)f(held)g
(in)m(v)-5 b(alid)44 b(or)f(unenforceable)g(under)f(an)m(y)i
(particular)330 2354 y(circumstance,)j(the)d(balance)g(of)f(the)h
(section)g(is)f(in)m(tended)g(to)h(apply)f(and)f(the)i(section)g(as)g
(a)330 2463 y(whole)31 b(is)f(in)m(tended)g(to)h(apply)f(in)g(other)h
(circumstances.)330 2600 y(It)41 b(is)f(not)h(the)f(purp)s(ose)f(of)i
(this)f(section)i(to)f(induce)f(y)m(ou)h(to)g(infringe)f(an)m(y)h
(paten)m(ts)g(or)g(other)330 2710 y(prop)s(ert)m(y)e(righ)m(t)i(claims)
f(or)g(to)h(con)m(test)h(v)-5 b(alidit)m(y)41 b(of)f(an)m(y)g(suc)m(h)g
(claims;)45 b(this)40 b(section)h(has)f(the)330 2819
y(sole)31 b(purp)s(ose)d(of)j(protecting)g(the)f(in)m(tegrit)m(y)i(of)e
(the)h(free)f(soft)m(w)m(are)h(distribution)f(system,)g(whic)m(h)330
2929 y(is)35 b(implemen)m(ted)h(b)m(y)f(public)f(license)i(practices.)
56 b(Man)m(y)36 b(p)s(eople)f(ha)m(v)m(e)h(made)f(generous)h(con)m
(tri-)330 3039 y(butions)f(to)h(the)f(wide)h(range)f(of)h(soft)m(w)m
(are)h(distributed)d(through)h(that)h(system)f(in)g(reliance)i(on)330
3148 y(consisten)m(t)g(application)g(of)e(that)h(system;)i(it)e(is)g
(up)e(to)i(the)g(author/donor)f(to)h(decide)g(if)g(he)f(or)330
3258 y(she)i(is)h(willing)g(to)g(distribute)f(soft)m(w)m(are)i(through)
e(an)m(y)g(other)h(system)g(and)f(a)g(licensee)i(cannot)330
3367 y(imp)s(ose)30 b(that)h(c)m(hoice.)330 3504 y(This)26
b(section)j(is)e(in)m(tended)g(to)h(mak)m(e)g(thoroughly)f(clear)h
(what)f(is)g(b)s(eliev)m(ed)h(to)g(b)s(e)f(a)g(consequence)330
3614 y(of)k(the)f(rest)h(of)f(this)g(License.)199 3751
y(8.)61 b(If)35 b(the)g(distribution)f(and/or)h(use)g(of)g(the)g
(Program)g(is)g(restricted)h(in)f(certain)h(coun)m(tries)f(either)330
3861 y(b)m(y)g(paten)m(ts)h(or)g(b)m(y)f(cop)m(yrigh)m(ted)i(in)m
(terfaces,)h(the)d(original)i(cop)m(yrigh)m(t)g(holder)e(who)g(places)h
(the)330 3970 y(Program)g(under)f(this)h(License)h(ma)m(y)g(add)e(an)i
(explicit)g(geographical)i(distribution)c(limitation)330
4080 y(excluding)29 b(those)g(coun)m(tries,)h(so)f(that)g(distribution)
f(is)g(p)s(ermitted)h(only)f(in)g(or)h(among)g(coun)m(tries)330
4189 y(not)k(th)m(us)f(excluded.)48 b(In)32 b(suc)m(h)g(case,)j(this)d
(License)i(incorp)s(orates)f(the)g(limitation)h(as)f(if)g(written)330
4299 y(in)d(the)h(b)s(o)s(dy)d(of)j(this)f(License.)199
4436 y(9.)61 b(The)26 b(F)-8 b(ree)28 b(Soft)m(w)m(are)g(F)-8
b(oundation)27 b(ma)m(y)h(publish)d(revised)h(and/or)h(new)f(v)m
(ersions)h(of)g(the)g(General)330 4545 y(Public)37 b(License)g(from)g
(time)h(to)f(time.)62 b(Suc)m(h)36 b(new)h(v)m(ersions)g(will)h(b)s(e)e
(similar)h(in)g(spirit)g(to)h(the)330 4655 y(presen)m(t)30
b(v)m(ersion,)i(but)d(ma)m(y)i(di\013er)f(in)g(detail)i(to)f(address)e
(new)h(problems)g(or)g(concerns.)330 4792 y(Eac)m(h)46
b(v)m(ersion)f(is)g(giv)m(en)h(a)f(distinguishing)f(v)m(ersion)i(n)m
(um)m(b)s(er.)83 b(If)44 b(the)h(Program)g(sp)s(eci\014es)g(a)330
4902 y(v)m(ersion)36 b(n)m(um)m(b)s(er)f(of)h(this)f(License)i(whic)m
(h)e(applies)h(to)h(it)f(and)f(\\an)m(y)i(later)f(v)m(ersion",)j(y)m
(ou)d(ha)m(v)m(e)330 5011 y(the)d(option)g(of)g(follo)m(wing)h(the)f
(terms)g(and)f(conditions)h(either)h(of)f(that)g(v)m(ersion)g(or)g(of)g
(an)m(y)g(later)330 5121 y(v)m(ersion)e(published)d(b)m(y)i(the)g(F)-8
b(ree)31 b(Soft)m(w)m(are)g(F)-8 b(oundation.)42 b(If)29
b(the)i(Program)f(do)s(es)g(not)g(sp)s(ecify)g(a)330
5230 y(v)m(ersion)e(n)m(um)m(b)s(er)f(of)h(this)f(License,)i(y)m(ou)f
(ma)m(y)h(c)m(ho)s(ose)f(an)m(y)h(v)m(ersion)f(ev)m(er)g(published)e(b)
m(y)i(the)g(F)-8 b(ree)330 5340 y(Soft)m(w)m(are)31 b(F)-8
b(oundation.)p eop end
%%Page: 5 7
TeXDict begin 5 6 bop 150 -116 a Fq(GNU)31 b(GENERAL)f(PUBLIC)h
(LICENSE)2052 b(5)154 299 y(10.)61 b(If)29 b(y)m(ou)g(wish)g(to)h
(incorp)s(orate)g(parts)f(of)g(the)g(Program)h(in)m(to)g(other)g(free)f
(programs)g(whose)g(distri-)330 408 y(bution)f(conditions)h(are)h
(di\013eren)m(t,)f(write)g(to)h(the)f(author)f(to)i(ask)e(for)h(p)s
(ermission.)39 b(F)-8 b(or)29 b(soft)m(w)m(are)330 518
y(whic)m(h)24 b(is)g(cop)m(yrigh)m(ted)h(b)m(y)f(the)g(F)-8
b(ree)25 b(Soft)m(w)m(are)g(F)-8 b(oundation,)26 b(write)e(to)h(the)f
(F)-8 b(ree)25 b(Soft)m(w)m(are)g(F)-8 b(oun-)330 628
y(dation;)29 b(w)m(e)f(sometimes)h(mak)m(e)f(exceptions)h(for)e(this.)
40 b(Our)26 b(decision)i(will)g(b)s(e)f(guided)g(b)m(y)g(the)h(t)m(w)m
(o)330 737 y(goals)c(of)f(preserving)f(the)g(free)h(status)g(of)f(all)i
(deriv)-5 b(ativ)m(es)24 b(of)e(our)g(free)h(soft)m(w)m(are)h(and)e(of)
h(promoting)330 847 y(the)31 b(sharing)f(and)f(reuse)h(of)h(soft)m(w)m
(are)h(generally)-8 b(.)330 995 y Fp(NO)45 b(W)-15 b(ARRANTY)154
1187 y Fq(11.)61 b(BECA)m(USE)40 b(THE)f(PR)m(OGRAM)i(IS)e(LICENSED)g
(FREE)g(OF)h(CHAR)m(GE,)h(THERE)e(IS)g(NO)330 1297 y(W)-10
b(ARRANTY)26 b(F)m(OR)f(THE)g(PR)m(OGRAM,)h(TO)e(THE)h(EXTENT)f
(PERMITTED)h(BY)g(APPLI-)330 1406 y(CABLE)i(LA)-10 b(W.)27
b(EX)m(CEPT)g(WHEN)h(OTHER)-10 b(WISE)25 b(ST)-8 b(A)g(TED)28
b(IN)e(WRITING)i(THE)e(COPY-)330 1516 y(RIGHT)35 b(HOLDERS)g(AND/OR)h
(OTHER)f(P)-8 b(AR)g(TIES)35 b(PR)m(O)m(VIDE)h(THE)f(PR)m(OGRAM)h(\\AS)
330 1626 y(IS")22 b(WITHOUT)f(W)-10 b(ARRANTY)23 b(OF)f(ANY)g(KIND,)h
(EITHER)e(EXPRESSED)g(OR)h(IMPLIED,)330 1735 y(INCLUDING,)33
b(BUT)g(NOT)g(LIMITED)f(TO,)g(THE)h(IMPLIED)g(W)-10 b(ARRANTIES)32
b(OF)h(MER-)330 1845 y(CHANT)-8 b(ABILITY)28 b(AND)g(FITNESS)e(F)m(OR)i
(A)g(P)-8 b(AR)g(TICULAR)27 b(PURPOSE.)g(THE)g(ENTIRE)330
1954 y(RISK)19 b(AS)h(TO)g(THE)g(QUALITY)g(AND)h(PERF)m(ORMANCE)g(OF)f
(THE)g(PR)m(OGRAM)h(IS)f(WITH)330 2064 y(YOU.)h(SHOULD)g(THE)f(PR)m
(OGRAM)i(PR)m(O)m(VE)f(DEFECTIVE,)g(YOU)g(ASSUME)f(THE)g(COST)330
2174 y(OF)30 b(ALL)g(NECESSAR)-8 b(Y)30 b(SER)-10 b(VICING,)30
b(REP)-8 b(AIR)30 b(OR)g(CORRECTION.)154 2308 y(12.)61
b(IN)26 b(NO)g(EVENT)g(UNLESS)f(REQUIRED)h(BY)h(APPLICABLE)f(LA)-10
b(W)26 b(OR)g(A)m(GREED)h(TO)f(IN)330 2418 y(WRITING)37
b(WILL)f(ANY)i(COPYRIGHT)e(HOLDER,)h(OR)f(ANY)h(OTHER)f(P)-8
b(AR)g(TY)38 b(WHO)330 2527 y(MA)-8 b(Y)52 b(MODIFY)g(AND/OR)g
(REDISTRIBUTE)e(THE)h(PR)m(OGRAM)h(AS)f(PERMITTED)330
2637 y(ABO)m(VE,)40 b(BE)f(LIABLE)f(TO)g(YOU)h(F)m(OR)g(D)m(AMA)m(GES,)
h(INCLUDING)f(ANY)h(GENERAL,)330 2746 y(SPECIAL,)e(INCIDENT)-8
b(AL)40 b(OR)e(CONSEQUENTIAL)g(D)m(AMA)m(GES)j(ARISING)e(OUT)g(OF)330
2856 y(THE)44 b(USE)g(OR)g(INABILITY)h(TO)f(USE)g(THE)g(PR)m(OGRAM)h
(\(INCLUDING)h(BUT)e(NOT)330 2966 y(LIMITED)29 b(TO)g(LOSS)f(OF)h(D)m
(A)-8 b(T)g(A)31 b(OR)e(D)m(A)-8 b(T)g(A)31 b(BEING)f(RENDERED)g(INA)m
(CCURA)-8 b(TE)29 b(OR)330 3075 y(LOSSES)38 b(SUST)-8
b(AINED)40 b(BY)h(YOU)f(OR)g(THIRD)g(P)-8 b(AR)g(TIES)40
b(OR)g(A)h(F)-10 b(AILURE)40 b(OF)g(THE)330 3185 y(PR)m(OGRAM)f(TO)f
(OPERA)-8 b(TE)38 b(WITH)h(ANY)g(OTHER)f(PR)m(OGRAMS\),)h(EVEN)g(IF)f
(SUCH)330 3294 y(HOLDER)33 b(OR)h(OTHER)f(P)-8 b(AR)g(TY)34
b(HAS)f(BEEN)h(AD)m(VISED)g(OF)g(THE)f(POSSIBILITY)f(OF)330
3404 y(SUCH)e(D)m(AMA)m(GES.)150 3661 y Fp(END)45 b(OF)g(TERMS)f(AND)h
(CONDITIONS)p eop end
%%Page: 6 8
TeXDict begin 6 7 bop 150 -116 a Fq(GNU)31 b(GENERAL)f(PUBLIC)h
(LICENSE)2052 b(6)150 299 y Fp(Ho)l(w)46 b(to)f(Apply)f(These)h(T)-11
b(erms)45 b(to)g(Y)-11 b(our)44 b(New)i(Programs)275
503 y Fq(If)38 b(y)m(ou)i(dev)m(elop)g(a)f(new)g(program,)j(and)c(y)m
(ou)i(w)m(an)m(t)g(it)f(to)h(b)s(e)f(of)g(the)h(greatest)h(p)s(ossible)
d(use)h(to)150 612 y(the)i(public,)i(the)f(b)s(est)e(w)m(a)m(y)i(to)g
(ac)m(hiev)m(e)h(this)e(is)g(to)h(mak)m(e)g(it)g(free)f(soft)m(w)m(are)
h(whic)m(h)f(ev)m(ery)m(one)i(can)150 722 y(redistribute)30
b(and)g(c)m(hange)h(under)e(these)i(terms.)275 868 y(T)-8
b(o)29 b(do)h(so,)g(attac)m(h)h(the)f(follo)m(wing)h(notices)f(to)h
(the)e(program.)40 b(It)30 b(is)g(safest)g(to)g(attac)m(h)h(them)f(to)g
(the)150 978 y(start)j(of)g(eac)m(h)h(source)e(\014le)h(to)g(most)g
(e\013ectiv)m(ely)j(con)m(v)m(ey)e(the)e(exclusion)i(of)e(w)m(arran)m
(t)m(y;)j(and)d(eac)m(h)i(\014le)150 1087 y(should)29
b(ha)m(v)m(e)j(at)f(least)h(the)e(\\cop)m(yrigh)m(t")j(line)e(and)e(a)i
(p)s(oin)m(ter)g(to)g(where)f(the)g(full)g(notice)i(is)e(found.)390
1227 y Fm(one)h(line)f(to)h(giv)m(e)h(the)f(program's)f(name)h(and)e
(an)i(idea)g(of)f(what)g(it)h(do)s(es.)390 1331 y Fl(Copyright)45
b(\(C\))i Fm(y)m(ear)103 b(name)30 b(of)h(author)390
1539 y Fl(This)47 b(program)e(is)j(free)e(software;)g(you)g(can)h
(redistribute)e(it)i(and/or)390 1642 y(modify)f(it)h(under)g(the)g
(terms)f(of)h(the)g(GNU)g(General)f(Public)g(License)390
1746 y(as)h(published)e(by)j(the)f(Free)f(Software)g(Foundation;)e
(either)j(version)e(2)390 1850 y(of)i(the)g(License,)f(or)h(\(at)g
(your)f(option\))g(any)h(later)f(version.)390 2057 y(This)h(program)e
(is)j(distributed)c(in)k(the)e(hope)h(that)g(it)g(will)g(be)g(useful,)
390 2161 y(but)g(WITHOUT)f(ANY)h(WARRANTY;)e(without)h(even)g(the)h
(implied)f(warranty)g(of)390 2265 y(MERCHANTABILITY)e(or)j(FITNESS)f
(FOR)h(A)g(PARTICULAR)e(PURPOSE.)93 b(See)47 b(the)390
2369 y(GNU)g(General)f(Public)g(License)g(for)h(more)f(details.)390
2576 y(You)h(should)f(have)h(received)e(a)j(copy)e(of)h(the)g(GNU)g
(General)f(Public)g(License)390 2680 y(along)g(with)h(this)g(program;)e
(if)i(not,)g(write)f(to)i(the)e(Free)h(Software)390 2784
y(Foundation,)e(Inc.,)h(59)h(Temple)f(Place,)g(Suite)h(330,)f(Boston,)g
(MA)h(02111-1307,)e(USA.)275 2930 y Fq(Also)31 b(add)e(information)i
(on)f(ho)m(w)h(to)g(con)m(tact)i(y)m(ou)d(b)m(y)g(electronic)j(and)d
(pap)s(er)f(mail.)275 3076 y(If)f(the)g(program)h(is)f(in)m(teractiv)m
(e,)k(mak)m(e)e(it)f(output)f(a)h(short)f(notice)i(lik)m(e)g(this)e
(when)g(it)h(starts)g(in)f(an)150 3185 y(in)m(teractiv)m(e)33
b(mo)s(de:)390 3325 y Fl(Gnomovision)45 b(version)h(69,)g(Copyright)g
(\(C\))h Fm(y)m(ear)103 b(name)30 b(of)g(author)390 3429
y Fl(Gnomovision)45 b(comes)h(with)h(ABSOLUTELY)e(NO)i(WARRANTY;)e(for)
i(details)390 3533 y(type)g(`show)f(w'.)95 b(This)46
b(is)h(free)g(software,)e(and)i(you)g(are)g(welcome)390
3637 y(to)g(redistribute)e(it)i(under)f(certain)g(conditions;)f(type)h
(`show)h(c')390 3740 y(for)g(details.)275 3886 y Fq(The)27
b(h)m(yp)s(othetical)i(commands)f(`)p Fl(show)h(w)p Fq(')f(and)f(`)p
Fl(show)j(c)p Fq(')d(should)g(sho)m(w)h(the)g(appropriate)g(parts)g(of)
150 3996 y(the)38 b(General)h(Public)e(License.)64 b(Of)37
b(course,)j(the)f(commands)e(y)m(ou)h(use)g(ma)m(y)g(b)s(e)f(called)i
(something)150 4106 y(other)25 b(than)f(`)p Fl(show)29
b(w)p Fq(')c(and)f(`)p Fl(show)29 b(c)p Fq(';)e(they)d(could)h(ev)m(en)
g(b)s(e)f(mouse-clic)m(ks)i(or)f(men)m(u)f(items|whatev)m(er)150
4215 y(suits)30 b(y)m(our)g(program.)275 4361 y(Y)-8
b(ou)28 b(should)f(also)i(get)g(y)m(our)f(emplo)m(y)m(er)h(\(if)f(y)m
(ou)g(w)m(ork)g(as)h(a)f(programmer\))g(or)g(y)m(our)f(sc)m(ho)s(ol,)j
(if)e(an)m(y)-8 b(,)150 4471 y(to)34 b(sign)g(a)f(\\cop)m(yrigh)m(t)j
(disclaimer")e(for)g(the)f(program,)h(if)g(necessary)-8
b(.)51 b(Here)34 b(is)f(a)h(sample;)h(alter)g(the)150
4580 y(names:)390 4720 y Fl(Yoyodyne,)45 b(Inc.,)i(hereby)f(disclaims)f
(all)i(copyright)390 4824 y(interest)f(in)h(the)g(program)e
(`Gnomovision')390 4928 y(\(which)h(makes)g(passes)h(at)g(compilers\))e
(written)390 5032 y(by)i(James)g(Hacker.)390 5239 y Fm(signature)31
b(of)f(T)m(y)h(Co)s(on)p Fl(,)47 b(1)g(April)g(1989)390
5343 y(Ty)g(Coon,)g(President)e(of)i(Vice)p eop end
%%Page: 7 9
TeXDict begin 7 8 bop 150 -116 a Fq(GNU)31 b(GENERAL)f(PUBLIC)h
(LICENSE)2052 b(7)275 299 y(This)20 b(General)h(Public)g(License)g(do)s
(es)g(not)g(p)s(ermit)f(incorp)s(orating)h(y)m(our)g(program)f(in)m(to)
i(proprietary)150 408 y(programs.)38 b(If)22 b(y)m(our)h(program)f(is)h
(a)g(subroutine)f(library)-8 b(,)25 b(y)m(ou)e(ma)m(y)g(consider)g(it)g
(more)g(useful)f(to)i(p)s(ermit)150 518 y(linking)36
b(proprietary)g(applications)i(with)e(the)g(library)-8
b(.)59 b(If)35 b(this)i(is)f(what)g(y)m(ou)h(w)m(an)m(t)g(to)g(do,)h
(use)e(the)150 628 y(GNU)31 b(Library)f(General)h(Public)f(License)h
(instead)f(of)h(this)f(License.)p eop end
%%Page: 8 10
TeXDict begin 8 9 bop 150 -116 a Fq(Con)m(tributors)30
b(to)h(GNU)g Fl(gperf)e Fq(Utilit)m(y)2140 b(8)150 299
y Fn(Con)l(tributors)50 b(to)j(GNU)h Fk(gperf)f Fn(Utilit)l(y)225
533 y Fo(\017)60 b Fq(The)45 b(GNU)h Fl(gperf)d Fq(p)s(erfect)j(hash)e
(function)h(generator)i(utilit)m(y)f(w)m(as)g(written)f(in)g(GNU)h(C)p
Fl(++)330 643 y Fq(b)m(y)e(Douglas)i(C.)f(Sc)m(hmidt.)83
b(The)44 b(general)i(idea)f(for)f(the)h(p)s(erfect)g(hash)e(function)i
(generator)330 752 y(w)m(as)34 b(inspired)e(b)m(y)h(Keith)g(Bostic's)j
(algorithm)e(written)f(in)g(C,)g(and)g(distributed)f(to)i(net.sources)
330 862 y(around)42 b(1984.)79 b(The)42 b(curren)m(t)g(program)h(is)g
(a)g(hea)m(vily)h(mo)s(di\014ed,)g(enhanced,)i(and)c(extended)330
971 y(implemen)m(tation)d(of)e(Keith's)g(basic)h(idea,)h(created)f(at)g
(the)f(Univ)m(ersit)m(y)h(of)g(California,)h(Irvine.)330
1081 y(Bugs,)31 b(patc)m(hes,)g(and)f(suggestions)h(should)f(b)s(e)f
(rep)s(orted)h(to)h Fl(<bug-gnu-gperf@gnu.org>)p Fq(.)225
1215 y Fo(\017)60 b Fq(Sp)s(ecial)33 b(thanks)g(is)g(extended)g(to)h
(Mic)m(hael)h(Tiemann)e(and)g(Doug)h(Lea,)g(for)f(pro)m(viding)g(a)h
(useful)330 1325 y(compiler,)d(and)f(for)g(giving)h(me)g(a)g(forum)e
(to)i(exhibit)g(m)m(y)f(creation.)330 1460 y(In)22 b(addition,)i(Adam)f
(de)f(Bo)s(or)h(and)f(Nels)i(Olson)e(pro)m(vided)g(man)m(y)h(tips)f
(and)g(insigh)m(ts)h(that)g(greatly)330 1569 y(help)s(ed)29
b(impro)m(v)m(e)j(the)e(qualit)m(y)i(and)e(functionalit)m(y)h(of)g
Fl(gperf)p Fq(.)225 1704 y Fo(\017)60 b Fq(Bruno)26 b(Haible)i
(enhanced)f(and)f(optimized)i(the)f(searc)m(h)h(algorithm.)41
b(He)27 b(also)h(rewrote)g(the)f(input)330 1813 y(routines)j(and)g(the)
h(output)f(routines)g(for)g(b)s(etter)g(reliabilit)m(y)-8
b(,)33 b(and)d(added)g(a)h(testsuite.)p eop end
%%Page: 9 11
TeXDict begin 9 10 bop 150 -116 a Fq(Chapter)30 b(1:)41
b(In)m(tro)s(duction)2592 b(9)150 299 y Fn(1)80 b(In)l(tro)t(duction)
275 533 y Fl(gperf)31 b Fq(is)j(a)f(p)s(erfect)h(hash)e(function)h
(generator)i(written)e(in)g(C)p Fl(++)p Fq(.)49 b(It)33
b(transforms)g(an)g Fm(n)f Fq(elemen)m(t)150 643 y(user-sp)s(eci\014ed)
k(k)m(eyw)m(ord)i(set)g Fm(W)49 b Fq(in)m(to)39 b(a)e(p)s(erfect)h
(hash)e(function)h Fm(F)p Fq(.)h Fm(F)44 b Fq(uniquely)37
b(maps)g(k)m(eyw)m(ords)150 752 y(in)e Fm(W)47 b Fq(on)m(to)36
b(the)f(range)g(0..)p Fm(k)p Fq(,)j(where)c Fm(k)40 b
Fl(>)p Fq(=)35 b Fm(n-1)p Fq(.)54 b(If)35 b Fm(k)40 b
Fq(=)35 b Fm(n-1)42 b Fq(then)35 b Fm(F)42 b Fq(is)35
b(a)g Fj(minimal)46 b Fq(p)s(erfect)35 b(hash)150 862
y(function.)68 b Fl(gperf)39 b Fq(generates)i(a)f(0..)p
Fm(k)46 b Fq(elemen)m(t)41 b(static)g(lo)s(okup)f(table)g(and)f(a)i
(pair)e(of)h(C)f(functions.)150 971 y(These)34 b(functions)g(determine)
h(whether)e(a)i(giv)m(en)g(c)m(haracter)h(string)f Fm(s)j
Fq(o)s(ccurs)c(in)g Fm(W)p Fq(,)h(using)e(at)j(most)150
1081 y(one)31 b(prob)s(e)e(in)m(to)i(the)g(lo)s(okup)f(table.)275
1215 y Fl(gperf)22 b Fq(curren)m(tly)h(generates)j(the)d(reserv)m(ed)h
(k)m(eyw)m(ord)g(recognizer)i(for)d(lexical)j(analyzers)e(in)g(sev)m
(eral)150 1325 y(pro)s(duction)30 b(and)g(researc)m(h)h(compilers)g
(and)g(language)h(pro)s(cessing)e(to)s(ols,)i(including)e(GNU)i(C,)e
(GNU)150 1435 y(C)p Fl(++)p Fq(,)24 b(GNU)f(Ja)m(v)-5
b(a,)26 b(GNU)d(P)m(ascal,)j(GNU)e(Mo)s(dula)f(3,)i(and)d(GNU)h(inden)m
(t.)38 b(Complete)24 b(C)p Fl(++)e Fq(source)h(co)s(de)150
1544 y(for)42 b Fl(gperf)f Fq(is)h(a)m(v)-5 b(ailable)44
b(from)e Fl(http://ftp.gnu.org/pub/g)o(nu/g)o(perf)o(/)p
Fq(.)70 b(A)42 b(pap)s(er)f(describing)150 1654 y Fl(gperf)p
Fq('s)d(design)i(and)f(implemen)m(tation)j(in)d(greater)i(detail)g(is)f
(a)m(v)-5 b(ailable)42 b(in)e(the)g(Second)f(USENIX)150
1763 y(C)p Fl(++)29 b Fq(Conference)g(pro)s(ceedings)h(or)g(from)f
Fl(http://www.cs.wustl.edu)o(/~sc)o(hmid)o(t/r)o(esum)o(e.ht)o(ml)p
Fq(.)p eop end
%%Page: 10 12
TeXDict begin 10 11 bop 150 -116 a Fq(Chapter)30 b(2:)41
b(Static)32 b(searc)m(h)f(structures)e(and)h(GNU)h Fl(gperf)1425
b Fq(10)150 299 y Fn(2)80 b(Static)53 b(searc)l(h)g(structures)e(and)j
(GNU)f Fk(gperf)275 533 y Fq(A)24 b Fm(static)i(searc)m(h)f(structure)k
Fq(is)c(an)f(Abstract)h(Data)i(T)m(yp)s(e)c(with)i(certain)g(fundamen)m
(tal)f(op)s(erations,)150 643 y(e.g.,)32 b Fj(initialize)p
Fq(,)g Fj(insert)p Fq(,)f(and)f Fj(r)-5 b(etrieve)p Fq(.)42
b(Conceptually)-8 b(,)32 b(all)g(insertions)f(o)s(ccur)f(b)s(efore)h
(an)m(y)g(retriev)-5 b(als.)150 752 y(In)20 b(practice,)25
b Fl(gperf)19 b Fq(generates)k(a)e Fj(static)27 b Fq(arra)m(y)22
b(con)m(taining)g(searc)m(h)g(set)f(k)m(eyw)m(ords)h(and)e(an)m(y)h
(asso)s(ciated)150 862 y(attributes)37 b(sp)s(eci\014ed)f(b)m(y)h(the)f
(user.)59 b(Th)m(us,)37 b(there)g(is)g(essen)m(tially)h(no)f
(execution-time)i(cost)e(for)g(the)150 971 y(insertions.)j(It)27
b(is)g(a)g(useful)g(data)g(structure)g(for)g(represen)m(ting)g
Fj(static)j(se)-5 b(ar)g(ch)32 b(sets)p Fq(.)40 b(Static)28
b(searc)m(h)g(sets)150 1081 y(o)s(ccur)c(frequen)m(tly)h(in)f(soft)m(w)
m(are)i(system)e(applications.)40 b(T)m(ypical)25 b(static)h(searc)m(h)
f(sets)g(include)f(compiler)150 1191 y(reserv)m(ed)42
b(w)m(ords,)j(assem)m(bler)e(instruction)f(op)s(co)s(des,)j(and)c
(built-in)h(shell)h(in)m(terpreter)f(commands.)150 1300
y(Searc)m(h)g(set)g(mem)m(b)s(ers,)h(called)g Fm(k)m(eyw)m(ords)p
Fq(,)i(are)c(inserted)h(in)m(to)g(the)g(structure)f(only)g(once,)k
(usually)150 1410 y(during)29 b(program)h(initialization,)k(and)c(are)g
(not)h(generally)h(mo)s(di\014ed)d(at)i(run-time.)275
1544 y(Numerous)c(static)i(searc)m(h)g(structure)e(implemen)m(tations)i
(exist,)h(e.g.,)f(arra)m(ys,)g(link)m(ed)g(lists,)g(binary)150
1654 y(searc)m(h)45 b(trees,)j(digital)d(searc)m(h)g(tries,)j(and)43
b(hash)g(tables.)83 b(Di\013eren)m(t)45 b(approac)m(hes)g(o\013er)f
(trade-o\013s)150 1763 y(b)s(et)m(w)m(een)e(space)h(utilization)g(and)f
(searc)m(h)g(time)g(e\016ciency)-8 b(.)77 b(F)-8 b(or)42
b(example,)k(an)41 b Fm(n)h Fq(elemen)m(t)h(sorted)150
1873 y(arra)m(y)d(is)g(space)h(e\016cien)m(t,)i(though)d(the)g(a)m(v)m
(erage-case)k(time)c(complexit)m(y)i(for)e(retriev)-5
b(al)41 b(op)s(erations)150 1983 y(using)31 b(binary)f(searc)m(h)i(is)f
(prop)s(ortional)g(to)g(log)i Fm(n)p Fq(.)42 b(Con)m(v)m(ersely)-8
b(,)33 b(hash)d(table)i(implemen)m(tations)h(often)150
2092 y(lo)s(cate)27 b(a)f(table)g(en)m(try)g(in)f(constan)m(t)i(time,)g
(but)e(t)m(ypically)i(imp)s(ose)e(additional)i(memory)e(o)m(v)m(erhead)
i(and)150 2202 y(exhibit)k(p)s(o)s(or)e(w)m(orst)i(case)g(p)s
(erformance.)275 2336 y Fj(Minimal)26 b(p)-5 b(erfe)g(ct)28
b(hash)f(functions)32 b Fq(pro)m(vide)24 b(an)f(optimal)i(solution)f
(for)f(a)h(particular)g(class)h(of)e(static)150 2446
y(searc)m(h)31 b(sets.)41 b(A)31 b(minimal)f(p)s(erfect)g(hash)g
(function)g(is)h(de\014ned)e(b)m(y)h(t)m(w)m(o)i(prop)s(erties:)225
2580 y Fo(\017)60 b Fq(It)34 b(allo)m(ws)i(k)m(eyw)m(ord)f(recognition)
h(in)e(a)h(static)h(searc)m(h)f(set)g(using)f(at)h(most)g
Fj(one)41 b Fq(prob)s(e)33 b(in)m(to)j(the)330 2690 y(hash)30
b(table.)41 b(This)30 b(represen)m(ts)g(the)h(\\p)s(erfect")g(prop)s
(ert)m(y)-8 b(.)225 2824 y Fo(\017)60 b Fq(The)35 b(actual)j(memory)e
(allo)s(cated)i(to)e(store)h(the)f(k)m(eyw)m(ords)h(is)f(precisely)g
(large)h(enough)f(for)g(the)330 2934 y(k)m(eyw)m(ord)31
b(set,)g(and)f Fj(no)j(lar)-5 b(ger)p Fq(.)42 b(This)29
b(is)i(the)f(\\minimal")i(prop)s(ert)m(y)-8 b(.)275 3093
y(F)g(or)38 b(most)g(applications)h(it)f(is)g(far)f(easier)i(to)f
(generate)h Fj(p)-5 b(erfe)g(ct)47 b Fq(hash)37 b(functions)g(than)h
Fj(minimal)150 3203 y(p)-5 b(erfe)g(ct)47 b Fq(hash)36
b(functions.)60 b(Moreo)m(v)m(er,)41 b(non-minimal)c(p)s(erfect)g(hash)
f(functions)g(frequen)m(tly)i(execute)150 3313 y(faster)44
b(than)g(minimal)g(ones)g(in)f(practice.)83 b(This)43
b(phenomena)g(o)s(ccurs)g(since)h(searc)m(hing)h(a)f(sparse)150
3422 y(k)m(eyw)m(ord)34 b(table)g(increases)g(the)g(probabilit)m(y)f
(of)h(lo)s(cating)h(a)e(\\n)m(ull")i(en)m(try)-8 b(,)35
b(thereb)m(y)e(reducing)g(string)150 3532 y(comparisons.)56
b Fl(gperf)p Fq('s)34 b(default)h(b)s(eha)m(vior)g(generates)i
Fj(ne)-5 b(ar-minimal)47 b Fq(p)s(erfect)35 b(hash)f(functions)h(for)
150 3641 y(k)m(eyw)m(ord)40 b(sets.)68 b(Ho)m(w)m(ev)m(er,)44
b Fl(gperf)39 b Fq(pro)m(vides)g(man)m(y)h(options)f(that)h(p)s(ermit)f
(user)g(con)m(trol)i(o)m(v)m(er)g(the)150 3751 y(degree)31
b(of)g(minimalit)m(y)g(and)f(p)s(erfection.)275 3885
y(Static)37 b(searc)m(h)f(sets)g(often)g(exhibit)g(relativ)m(e)i
(stabilit)m(y)f(o)m(v)m(er)g(time.)58 b(F)-8 b(or)36
b(example,)i(Ada's)e(63)h(re-)150 3995 y(serv)m(ed)31
b(w)m(ords)f(ha)m(v)m(e)i(remained)e(constan)m(t)i(for)f(nearly)g(a)g
(decade.)42 b(It)31 b(is)g(therefore)g(frequen)m(tly)g(w)m(orth-)150
4105 y(while)22 b(to)h(exp)s(end)e(concerted)i(e\013ort)g(building)e
(an)h(optimal)i(searc)m(h)e(structure)g Fj(onc)-5 b(e)p
Fq(,)25 b(if)d(it)g(subsequen)m(tly)150 4214 y(receiv)m(es)j(hea)m(vy)f
(use)e(m)m(ultiple)i(times.)39 b Fl(gperf)22 b Fq(remo)m(v)m(es)i(the)f
(drudgery)f(asso)s(ciated)j(with)d(constructing)150 4324
y(time-)38 b(and)f(space-e\016cien)m(t)j(searc)m(h)d(structures)g(b)m
(y)g(hand.)61 b(It)37 b(has)g(pro)m(v)m(en)h(a)f(useful)g(and)f
(practical)150 4433 y(to)s(ol)29 b(for)f(serious)g(programming)g(pro)5
b(jects.)40 b(Output)27 b(from)h Fl(gperf)e Fq(is)i(curren)m(tly)h
(used)e(in)h(sev)m(eral)h(pro-)150 4543 y(duction)d(and)e(researc)m(h)j
(compilers,)g(including)e(GNU)h(C,)g(GNU)g(C)p Fl(++)p
Fq(,)g(GNU)g(Ja)m(v)-5 b(a,)28 b(GNU)e(P)m(ascal,)j(and)150
4653 y(GNU)38 b(Mo)s(dula)f(3.)63 b(The)36 b(latter)j(t)m(w)m(o)g
(compilers)f(are)f(not)h(y)m(et)h(part)e(of)g(the)h(o\016cial)h(GNU)f
(distribu-)150 4762 y(tion.)51 b(Eac)m(h)34 b(compiler)g(utilizes)h
Fl(gperf)d Fq(to)i(automatically)i(generate)f(static)g(searc)m(h)f
(structures)f(that)150 4872 y(e\016cien)m(tly)f(iden)m(tify)f(their)f
(resp)s(ectiv)m(e)i(reserv)m(ed)e(k)m(eyw)m(ords.)p eop
end
%%Page: 11 13
TeXDict begin 11 12 bop 150 -116 a Fq(Chapter)30 b(3:)41
b(High-Lev)m(el)32 b(Description)g(of)e(GNU)h Fl(gperf)1520
b Fq(11)150 299 y Fn(3)80 b(High-Lev)l(el)52 b(Description)f(of)j(GNU)g
Fk(gperf)275 539 y Fq(The)29 b(p)s(erfect)h(hash)g(function)g
(generator)h Fl(gperf)e Fq(reads)h(a)h(set)g(of)f(\\k)m(eyw)m(ords")i
(from)d(an)i(input)e(\014le)150 648 y(\(or)34 b(from)g(the)g(standard)f
(input)g(b)m(y)h(default\).)52 b(It)34 b(attempts)h(to)f(deriv)m(e)h(a)
f(p)s(erfect)g(hashing)f(function)150 758 y(that)k(recognizes)i(a)e
(mem)m(b)s(er)f(of)h(the)g Fm(static)h(k)m(eyw)m(ord)f(set)j
Fq(with)c(at)i(most)f(a)g(single)g(prob)s(e)f(in)m(to)i(the)150
867 y(lo)s(okup)26 b(table.)41 b(If)26 b Fl(gperf)f Fq(succeeds)i(in)g
(generating)h(suc)m(h)e(a)h(function)f(it)i(pro)s(duces)d(a)i(pair)g
(of)f(C)h(source)150 977 y(co)s(de)39 b(routines)g(that)h(p)s(erform)d
(hashing)i(and)f(table)i(lo)s(okup)e(recognition.)69
b(All)39 b(generated)h(C)f(co)s(de)150 1086 y(is)f(directed)g(to)g(the)
g(standard)f(output.)62 b(Command-line)38 b(options)g(describ)s(ed)e(b)
s(elo)m(w)i(allo)m(w)h(y)m(ou)f(to)150 1196 y(mo)s(dify)30
b(the)g(input)g(and)f(output)h(format)h(to)g Fl(gperf)p
Fq(.)275 1332 y(By)23 b(default,)i Fl(gperf)d Fq(attempts)i(to)g(pro)s
(duce)e(time-e\016cien)m(t)k(co)s(de,)f(with)e(less)h(emphasis)e(on)h
(e\016cien)m(t)150 1442 y(space)31 b(utilization.)43
b(Ho)m(w)m(ev)m(er,)33 b(sev)m(eral)e(options)g(exist)g(that)g(p)s
(ermit)f(trading-o\013)h(execution)h(time)f(for)150 1552
y(storage)i(space)f(and)g(vice)g(v)m(ersa.)46 b(In)31
b(particular,)h(expanding)f(the)h(generated)h(table)g(size)f(pro)s
(duces)f(a)150 1661 y(sparse)26 b(searc)m(h)g(structure,)h(generally)g
(yielding)f(faster)h(searc)m(hes.)40 b(Con)m(v)m(ersely)-8
b(,)28 b(y)m(ou)f(can)f(direct)g Fl(gperf)150 1771 y
Fq(to)21 b(utilize)h(a)f(C)f Fl(switch)f Fq(statemen)m(t)k(sc)m(heme)e
(that)g(minimizes)g(data)g(space)g(storage)h(size.)39
b(F)-8 b(urthermore,)150 1880 y(using)40 b(a)g(C)g Fl(switch)e
Fq(ma)m(y)i(actually)i(sp)s(eed)d(up)g(the)h(k)m(eyw)m(ord)h(retriev)-5
b(al)41 b(time)g(somewhat.)70 b(Actual)150 1990 y(results)30
b(dep)s(end)f(on)h(y)m(our)g(C)g(compiler,)i(of)e(course.)275
2126 y(In)44 b(general,)50 b Fl(gperf)44 b Fq(assigns)h(v)-5
b(alues)46 b(to)g(the)f(b)m(ytes)h(it)g(is)f(using)g(for)g(hashing)f
(un)m(til)i(some)f(set)150 2236 y(of)d(v)-5 b(alues)43
b(giv)m(es)g(eac)m(h)h(k)m(eyw)m(ord)e(a)h(unique)e(v)-5
b(alue.)77 b(A)42 b(helpful)f(heuristic)i(is)f(that)h(the)f(larger)h
(the)150 2345 y(hash)36 b(v)-5 b(alue)37 b(range,)i(the)e(easier)h(it)f
(is)g(for)f Fl(gperf)f Fq(to)j(\014nd)d(and)h(generate)i(a)f(p)s
(erfect)g(hash)f(function.)150 2455 y(Exp)s(erimen)m(tation)31
b(is)f(the)h(k)m(ey)g(to)g(getting)h(the)f(most)g(from)e
Fl(gperf)p Fq(.)150 2717 y Fp(3.1)68 b(Input)44 b(F)-11
b(ormat)46 b(to)f Fi(gperf)275 2911 y Fq(Y)-8 b(ou)38
b(can)g(con)m(trol)i(the)e(input)f(\014le)h(format)g(b)m(y)g(v)-5
b(arying)38 b(certain)g(command-line)h(argumen)m(ts,)h(in)150
3021 y(particular)f(the)g(`)p Fl(-t)p Fq(')g(option.)66
b(The)38 b(input's)g(app)s(earance)h(is)g(similar)g(to)g(GNU)h
(utilities)g Fl(flex)e Fq(and)150 3131 y Fl(bison)29
b Fq(\(or)i(UNIX)f(utilities)i Fl(lex)e Fq(and)f Fl(yacc)p
Fq(\).)40 b(Here's)31 b(an)g(outline)g(of)f(the)h(general)g(format:)390
3261 y Fl(declarations)390 3365 y(\045\045)390 3469 y(keywords)390
3572 y(\045\045)390 3676 y(functions)275 3806 y Fj(Unlike)41
b Fl(flex)35 b Fq(or)g Fl(bison)p Fq(,)h(the)g(declarations)g(section)h
(and)e(the)h(functions)f(section)i(are)f(optional.)150
3915 y(The)30 b(follo)m(wing)i(sections)f(describ)s(e)f(the)g(input)g
(format)h(for)f(eac)m(h)h(section.)275 4051 y(It)h(is)g(p)s(ossible)g
(to)h(omit)g(the)g(declaration)h(section)f(en)m(tirely)-8
b(,)35 b(if)d(the)h(`)p Fl(-t)p Fq(')f(option)h(is)f(not)h(giv)m(en.)48
b(In)150 4161 y(this)30 b(case)i(the)e(input)g(\014le)g(b)s(egins)g
(directly)h(with)f(the)h(\014rst)e(k)m(eyw)m(ord)i(line,)g(e.g.:)390
4292 y Fl(january)390 4395 y(february)390 4499 y(march)390
4603 y(april)390 4707 y(...)150 4926 y Fh(3.1.1)63 b(Declarations)275
5121 y Fq(The)33 b(k)m(eyw)m(ord)i(input)f(\014le)g(optionally)i(con)m
(tains)g(a)f(section)g(for)f(including)g(arbitrary)h(C)f(declara-)150
5230 y(tions)d(and)e(de\014nitions,)h Fl(gperf)f Fq(declarations)j
(that)f(act)g(lik)m(e)h(command-line)f(options,)g(as)f(w)m(ell)i(as)e
(for)150 5340 y(pro)m(viding)g(a)h(user-supplied)e Fl(struct)p
Fq(.)p eop end
%%Page: 12 14
TeXDict begin 12 13 bop 150 -116 a Fq(Chapter)30 b(3:)41
b(High-Lev)m(el)32 b(Description)g(of)e(GNU)h Fl(gperf)1520
b Fq(12)150 299 y Fh(3.1.1.1)63 b(User-supplied)43 b
Fg(struct)275 500 y Fq(If)24 b(the)h(`)p Fl(-t)p Fq(')f(option)h(\(or,)
i(equiv)-5 b(alen)m(tly)d(,)28 b(the)d(`)p Fl(\045struct-type)p
Fq(')d(declaration\))k Fj(is)32 b Fq(enabled,)26 b(y)m(ou)f
Fj(must)150 609 y Fq(pro)m(vide)37 b(a)f(C)h Fl(struct)d
Fq(as)j(the)g(last)g(comp)s(onen)m(t)g(in)f(the)h(declaration)h
(section)f(from)f(the)h(input)f(\014le.)150 719 y(The)26
b(\014rst)f(\014eld)h(in)g(this)g(struct)g(m)m(ust)g(b)s(e)g(of)g(t)m
(yp)s(e)g Fl(char)j(*)d Fq(or)g Fl(const)j(char)h(*)25
b Fq(if)h(the)h(`)p Fl(-P)p Fq(')f(option)g(is)h(not)150
829 y(giv)m(en,)k(or)g(of)f(t)m(yp)s(e)g Fl(int)g Fq(if)g(the)g(option)
h(`)p Fl(-P)p Fq(')f(\(or,)h(equiv)-5 b(alen)m(tly)d(,)32
b(the)f(`)p Fl(\045pic)p Fq(')e(declaration\))j(is)f(enabled.)150
938 y(This)k(\014rst)f(\014eld)h(m)m(ust)h(b)s(e)e(called)j(`)p
Fl(name)p Fq(',)f(although)g(it)g(is)g(p)s(ossible)f(to)h(mo)s(dify)e
(its)i(name)g(with)f(the)150 1048 y(`)p Fl(-K)p Fq(')30
b(option)h(\(or,)g(equiv)-5 b(alen)m(tly)d(,)33 b(the)d(`)p
Fl(\045define)f(slot-name)p Fq(')f(declaration\))k(describ)s(ed)e(b)s
(elo)m(w.)275 1191 y(Here)g(is)h(a)g(simple)f(example,)h(using)f(mon)m
(ths)g(of)h(the)f(y)m(ear)i(and)d(their)i(attributes)g(as)f(input:)390
1328 y Fl(struct)46 b(month)g({)i(char)f(*name;)f(int)h(number;)e(int)i
(days;)g(int)g(leap_days;)e(};)390 1432 y(\045\045)390
1535 y(january,)141 b(1,)47 b(31,)g(31)390 1639 y(february,)93
b(2,)47 b(28,)g(29)390 1743 y(march,)237 b(3,)47 b(31,)g(31)390
1847 y(april,)237 b(4,)47 b(30,)g(30)390 1950 y(may,)333
b(5,)47 b(31,)g(31)390 2054 y(june,)285 b(6,)47 b(30,)g(30)390
2158 y(july,)285 b(7,)47 b(31,)g(31)390 2262 y(august,)189
b(8,)47 b(31,)g(31)390 2366 y(september,)e(9,)i(30,)g(30)390
2469 y(october,)93 b(10,)47 b(31,)g(31)390 2573 y(november,)e(11,)i
(30,)g(30)390 2677 y(december,)e(12,)i(31,)g(31)275 2813
y Fq(Separating)25 b(the)g Fl(struct)f Fq(declaration)i(from)f(the)g
(list)h(of)f(k)m(eyw)m(ords)h(and)e(other)h(\014elds)g(are)g(a)h(pair)f
(of)150 2922 y(consecutiv)m(e)33 b(p)s(ercen)m(t)f(signs,)f(`)p
Fl(\045\045)p Fq(',)h(app)s(earing)f(left)h(justi\014ed)e(in)h(the)h
(\014rst)e(column,)i(as)f(in)g(the)h(UNIX)150 3032 y(utilit)m(y)g
Fl(lex)p Fq(.)275 3175 y(If)k(the)i Fl(struct)d Fq(has)i(already)h(b)s
(een)f(declared)h(in)f(an)g(include)g(\014le,)i(it)f(can)g(b)s(e)e(men)
m(tioned)i(in)f(an)150 3284 y(abbreviated)31 b(form,)f(lik)m(e)i(this:)
390 3421 y Fl(struct)46 b(month;)390 3525 y(\045\045)390
3629 y(january,)141 b(1,)47 b(31,)g(31)390 3733 y(...)150
3966 y Fh(3.1.1.2)63 b(Gp)s(erf)43 b(Declarations)275
4167 y Fq(The)31 b(declaration)j(section)g(can)e(con)m(tain)i
Fl(gperf)c Fq(declarations.)48 b(They)32 b(in\015uence)g(the)g(w)m(a)m
(y)h Fl(gperf)150 4276 y Fq(w)m(orks,)43 b(lik)m(e)f(command)f(line)g
(options)g(do.)72 b(In)40 b(fact,)k(ev)m(ery)e(suc)m(h)e(declaration)i
(is)f(equiv)-5 b(alen)m(t)42 b(to)g(a)150 4386 y(command)30
b(line)h(option.)41 b(There)30 b(are)h(three)f(forms)g(of)h
(declarations:)199 4529 y(1.)61 b(Declarations)33 b(without)d(argumen)m
(t,)h(lik)m(e)h(`)p Fl(\045compare-lengths)p Fq('.)199
4667 y(2.)61 b(Declarations)33 b(with)d(an)g(argumen)m(t,)h(lik)m(e)h
(`)p Fl(\045switch=)p Fm(coun)m(t)r Fq('.)199 4806 y(3.)61
b(Declarations)114 b(of)e(names)g(of)g(en)m(tities)i(in)d(the)h(output)
g(\014le,)132 b(lik)m(e)114 b(`)p Fl(\045define)330 4916
y(lookup-function-name)25 b Fm(name)5 b Fq('.)275 5088
y(When)35 b(a)h(declaration)h(is)f(giv)m(en)g(b)s(oth)f(in)h(the)f
(input)g(\014le)h(and)f(as)h(a)g(command)f(line)h(option,)i(the)150
5197 y(command-line)31 b(option's)g(v)-5 b(alue)31 b(prev)-5
b(ails.)275 5340 y(The)29 b(follo)m(wing)j Fl(gperf)d
Fq(declarations)j(are)f(a)m(v)-5 b(ailable.)p eop end
%%Page: 13 15
TeXDict begin 13 14 bop 150 -116 a Fq(Chapter)30 b(3:)41
b(High-Lev)m(el)32 b(Description)g(of)e(GNU)h Fl(gperf)1520
b Fq(13)150 299 y(`)p Fl(\045delimiters=)p Fm(delimiter-list)r
Fq(')630 408 y(Allo)m(ws)30 b(y)m(ou)f(to)g(pro)m(vide)g(a)g(string)g
(con)m(taining)h(delimiters)g(used)d(to)j(separate)g(k)m(eyw)m(ords)630
518 y(from)k(their)h(attributes.)54 b(The)34 b(default)g(is)h
Fl(")p Fq(,)p Fl(")p Fq(.)53 b(This)34 b(option)h(is)f(essen)m(tial)j
(if)d(y)m(ou)h(w)m(an)m(t)630 628 y(to)c(use)f(k)m(eyw)m(ords)h(that)g
(ha)m(v)m(e)g(em)m(b)s(edded)f(commas)h(or)f(newlines.)150
774 y(`)p Fl(\045struct-type)p Fq(')630 883 y(Allo)m(ws)i(y)m(ou)e(to)i
(include)e(a)h Fl(struct)d Fq(t)m(yp)s(e)j(declaration)h(for)e
(generated)i(co)s(de;)f(see)g(ab)s(o)m(v)m(e)630 993
y(for)f(an)g(example.)150 1139 y(`)p Fl(\045ignore-case)p
Fq(')630 1249 y(Consider)43 b(upp)s(er)f(and)i(lo)m(w)m(er)h(case)g
(ASCI)s(I)e(c)m(haracters)i(as)f(equiv)-5 b(alen)m(t.)83
b(The)44 b(string)630 1358 y(comparison)28 b(will)h(use)f(a)h(case)g
(insigni\014can)m(t)g(c)m(haracter)h(comparison.)40 b(Note)29
b(that)g(lo)s(cale)630 1468 y(dep)s(enden)m(t)g(case)j(mappings)d(are)i
(ignored.)150 1614 y(`)p Fl(\045language=)p Fm(language-name)5
b Fq(')630 1724 y(Instructs)33 b Fl(gperf)f Fq(to)i(generate)h(co)s(de)
f(in)f(the)h(language)h(sp)s(eci\014ed)d(b)m(y)i(the)g(option's)g(ar-)
630 1833 y(gumen)m(t.)41 b(Languages)31 b(handled)f(are)h(curren)m
(tly:)630 1979 y(`)p Fl(KR-C)p Fq(')238 b(Old-st)m(yle)27
b(K&R)f(C.)g(This)f(language)j(is)f(understo)s(o)s(d)d(b)m(y)i(old-st)m
(yle)i(C)e(com-)1110 2089 y(pilers)e(and)g(ANSI)f(C)h(compilers,)i(but)
e(ANSI)f(C)h(compilers)h(ma)m(y)f(\015ag)h(w)m(arn-)1110
2198 y(ings)30 b(\(or)h(ev)m(en)g(errors\))f(b)s(ecause)h(of)f(lac)m
(king)i(`)p Fl(const)p Fq('.)630 2345 y(`)p Fl(C)p Fq(')382
b(Common)23 b(C.)f(This)h(language)h(is)f(understo)s(o)s(d)e(b)m(y)i
(ANSI)g(C)f(compilers,)k(and)1110 2454 y(also)k(b)m(y)e(old-st)m(yle)i
(C)f(compilers,)g(pro)m(vided)f(that)i(y)m(ou)f Fl(#define)f(const)f
Fq(to)1110 2564 y(empt)m(y)k(for)f(compilers)h(whic)m(h)f(don't)g(kno)m
(w)h(ab)s(out)f(this)g(k)m(eyw)m(ord.)630 2710 y(`)p
Fl(ANSI-C)p Fq(')142 b(ANSI)39 b(C.)h(This)e(language)j(is)f(understo)s
(o)s(d)e(b)m(y)h(ANSI)g(C)h(compilers)g(and)1110 2819
y(C)p Fl(++)29 b Fq(compilers.)630 2966 y(`)p Fl(C++)p
Fq(')286 b(C)p Fl(++)p Fq(.)40 b(This)29 b(language)j(is)f(understo)s
(o)s(d)d(b)m(y)i(C)p Fl(++)g Fq(compilers.)630 3112 y(The)g(default)g
(is)h(C.)150 3258 y(`)p Fl(\045define)e(slot-name)e Fm(name)5
b Fq(')630 3367 y(This)65 b(declaration)j(is)e(only)g(useful)f(when)g
(option)h(`)p Fl(-t)p Fq(')g(\(or,)76 b(equiv)-5 b(alen)m(tly)d(,)77
b(the)630 3477 y(`)p Fl(\045struct-type)p Fq(')27 b(declaration\))32
b(has)e(b)s(een)g(giv)m(en.)41 b(By)31 b(default,)f(the)g(program)g
(assumes)630 3587 y(the)48 b(structure)g(comp)s(onen)m(t)h(iden)m
(ti\014er)f(for)g(the)g(k)m(eyw)m(ord)h(is)f(`)p Fl(name)p
Fq('.)94 b(This)47 b(option)630 3696 y(allo)m(ws)f(an)e(arbitrary)g(c)m
(hoice)i(of)f(iden)m(ti\014er)f(for)h(this)f(comp)s(onen)m(t,)k
(although)d(it)g(still)630 3806 y(m)m(ust)30 b(o)s(ccur)g(as)h(the)g
(\014rst)e(\014eld)h(in)g(y)m(our)h(supplied)e Fl(struct)p
Fq(.)150 3952 y(`)p Fl(\045define)g(initializer-suffix)c
Fm(initializers)t Fq(')630 4061 y(This)65 b(declaration)j(is)e(only)g
(useful)f(when)g(option)h(`)p Fl(-t)p Fq(')g(\(or,)76
b(equiv)-5 b(alen)m(tly)d(,)77 b(the)630 4171 y(`)p Fl(\045struct-type)
p Fq(')33 b(declaration\))38 b(has)d(b)s(een)g(giv)m(en.)58
b(It)36 b(p)s(ermits)f(to)i(sp)s(ecify)e(initializers)630
4281 y(for)44 b(the)g(structure)g(mem)m(b)s(ers)f(follo)m(wing)i
Fm(slot-name)51 b Fq(in)43 b(empt)m(y)i(hash)e(table)i(en)m(tries.)630
4390 y(The)d(list)g(of)h(initializers)g(should)e(start)i(with)f(a)g
(comma.)77 b(By)42 b(default,)k(the)c(emitted)630 4500
y(co)s(de)31 b(will)f(zero-initialize)k(structure)c(mem)m(b)s(ers)g
(follo)m(wing)i Fm(slot-name)p Fq(.)150 4646 y(`)p Fl(\045define)d
(hash-function-name)c Fm(name)5 b Fq(')630 4755 y(Allo)m(ws)31
b(y)m(ou)f(to)g(sp)s(ecify)g(the)g(name)g(for)f(the)h(generated)h(hash)
e(function.)40 b(Default)31 b(name)630 4865 y(is)f(`)p
Fl(hash)p Fq('.)40 b(This)30 b(option)h(p)s(ermits)e(the)i(use)f(of)h
(t)m(w)m(o)g(hash)f(tables)h(in)f(the)h(same)g(\014le.)150
5011 y(`)p Fl(\045define)e(lookup-function-name)24 b
Fm(name)5 b Fq(')630 5121 y(Allo)m(ws)43 b(y)m(ou)f(to)h(sp)s(ecify)e
(the)i(name)f(for)f(the)h(generated)h(lo)s(okup)f(function.)75
b(Default)630 5230 y(name)28 b(is)g(`)p Fl(in_word_set)p
Fq('.)37 b(This)27 b(option)h(p)s(ermits)f(m)m(ultiple)i(generated)f
(hash)f(functions)630 5340 y(to)k(b)s(e)f(used)f(in)h(the)h(same)g
(application.)p eop end
%%Page: 14 16
TeXDict begin 14 15 bop 150 -116 a Fq(Chapter)30 b(3:)41
b(High-Lev)m(el)32 b(Description)g(of)e(GNU)h Fl(gperf)1520
b Fq(14)150 299 y(`)p Fl(\045define)29 b(class-name)e
Fm(name)5 b Fq(')630 408 y(This)66 b(option)i(is)f(only)h(useful)e
(when)h(option)g(`)p Fl(-L)30 b(C++)p Fq(')67 b(\(or,)77
b(equiv)-5 b(alen)m(tly)d(,)79 b(the)630 518 y(`)p Fl(\045language=C++)
p Fq(')43 b(declaration\))k(has)f(b)s(een)f(giv)m(en.)88
b(It)46 b(allo)m(ws)h(y)m(ou)f(to)g(sp)s(ecify)g(the)630
628 y(name)30 b(of)h(generated)g(C)p Fl(++)f Fq(class.)41
b(Default)32 b(name)e(is)h Fl(Perfect_Hash)p Fq(.)150
792 y(`)p Fl(\0457bit)p Fq(')190 b(This)36 b(option)i(sp)s(eci\014es)f
(that)g(all)h(strings)f(that)h(will)f(b)s(e)g(passed)f(as)i(argumen)m
(ts)f(to)h(the)630 902 y(generated)e(hash)e(function)g(and)h(the)g
(generated)g(lo)s(okup)g(function)f(will)h(solely)h(consist)630
1011 y(of)d(7-bit)h(ASCI)s(I)e(c)m(haracters)j(\(b)m(ytes)f(in)f(the)g
(range)h(0..127\).)51 b(\(Note)35 b(that)f(the)g(ANSI)e(C)630
1121 y(functions)f Fl(isalnum)f Fq(and)i Fl(isgraph)e
Fq(do)i Fj(not)41 b Fq(guaran)m(tee)33 b(that)g(a)f(b)m(yte)h(is)f(in)f
(this)h(range.)630 1230 y(Only)e(an)g(explicit)i(test)f(lik)m(e)h(`)p
Fl(c)e(>=)g('A')f(&&)h(c)g(<=)g('Z')p Fq(')f(guaran)m(tees)j(this.\))
150 1395 y(`)p Fl(\045compare-lengths)p Fq(')630 1504
y(Compare)40 b(k)m(eyw)m(ord)g(lengths)g(b)s(efore)f(trying)h(a)h
(string)e(comparison.)70 b(This)39 b(option)h(is)630
1614 y(mandatory)32 b(for)h(binary)e(comparisons)i(\(see)g(Section)h
(3.3)f([Binary)g(Strings],)g(page)g(18\).)630 1724 y(It)g(also)h(migh)m
(t)g(cut)f(do)m(wn)f(on)h(the)g(n)m(um)m(b)s(er)f(of)h(string)g
(comparisons)g(made)g(during)f(the)630 1833 y(lo)s(okup,)i(since)g(k)m
(eyw)m(ords)f(with)g(di\013eren)m(t)h(lengths)g(are)f(nev)m(er)h
(compared)f(via)h Fl(strcmp)p Fq(.)630 1943 y(Ho)m(w)m(ev)m(er,)d
(using)d(`)p Fl(\045compare-lengths)p Fq(')c(migh)m(t)29
b(greatly)h(increase)f(the)g(size)g(of)g(the)f(gen-)630
2052 y(erated)j(C)f(co)s(de)h(if)f(the)h(lo)s(okup)f(table)i(range)e
(is)h(large)g(\(whic)m(h)g(implies)g(that)g(the)f(switc)m(h)630
2162 y(option)24 b(`)p Fl(-S)p Fq(')g(or)g(`)p Fl(\045switch)p
Fq(')f(is)h(not)g(enabled\),)i(since)e(the)g(length)h(table)f(con)m
(tains)i(as)e(man)m(y)630 2271 y(elemen)m(ts)32 b(as)e(there)h(are)g
(en)m(tries)g(in)f(the)g(lo)s(okup)g(table.)150 2436
y(`)p Fl(\045compare-strncmp)p Fq(')630 2545 y(Generates)22
b(C)f(co)s(de)g(that)h(uses)e(the)i Fl(strncmp)d Fq(function)h(to)i(p)s
(erform)e(string)h(comparisons.)630 2655 y(The)30 b(default)g(action)i
(is)f(to)g(use)f Fl(strcmp)p Fq(.)150 2819 y(`)p Fl
(\045readonly-tables)p Fq(')630 2929 y(Mak)m(es)41 b(the)f(con)m(ten)m
(ts)h(of)f(all)h(generated)f(lo)s(okup)f(tables)i(constan)m(t,)i(i.e.,)
h(\\readonly".)630 3039 y(Man)m(y)31 b(compilers)g(can)g(generate)h
(more)e(e\016cien)m(t)i(co)s(de)f(for)f(this)h(b)m(y)f(putting)g(the)h
(tables)630 3148 y(in)f(readonly)h(memory)-8 b(.)150
3313 y(`)p Fl(\045enum)p Fq(')190 b(De\014ne)31 b(constan)m(t)g(v)-5
b(alues)31 b(using)f(an)g(en)m(um)g(lo)s(cal)i(to)f(the)g(lo)s(okup)f
(function)g(rather)g(than)630 3422 y(with)37 b(#de\014nes.)60
b(This)36 b(also)i(means)g(that)f(di\013eren)m(t)h(lo)s(okup)f
(functions)g(can)g(reside)g(in)630 3532 y(the)31 b(same)f(\014le.)41
b(Thanks)29 b(to)j(James)e(Clark)g Fl(<jjc@ai.mit.edu>)p
Fq(.)150 3696 y(`)p Fl(\045includes)p Fq(')630 3806 y(Include)g(the)h
(necessary)h(system)f(include)g(\014le,)g Fl(<string.h>)p
Fq(,)e(at)i(the)g(b)s(eginning)g(of)g(the)630 3915 y(co)s(de.)39
b(By)27 b(default,)g(this)f(is)g(not)g(done;)i(the)e(user)f(m)m(ust)h
(include)g(this)f(header)h(\014le)g(himself)630 4025
y(to)31 b(allo)m(w)h(compilation)g(of)e(the)h(co)s(de.)150
4189 y(`)p Fl(\045global-table)p Fq(')630 4299 y(Generate)38
b(the)f(static)h(table)f(of)g(k)m(eyw)m(ords)g(as)g(a)g(static)h
(global)g(v)-5 b(ariable,)39 b(rather)d(than)630 4408
y(hiding)30 b(it)h(inside)f(of)g(the)h(lo)s(okup)f(function)g(\(whic)m
(h)g(is)h(the)f(default)h(b)s(eha)m(vior\).)150 4573
y(`)p Fl(\045pic)p Fq(')238 b(Optimize)42 b(the)f(generated)h(table)g
(for)f(inclusion)g(in)g(shared)f(libraries.)73 b(This)40
b(reduces)630 4682 y(the)35 b(startup)g(time)h(of)f(programs)g(using)g
(a)h(shared)e(library)h(con)m(taining)i(the)e(generated)630
4792 y(co)s(de.)j(If)21 b(the)h(`)p Fl(\045struct-type)p
Fq(')d(declaration)24 b(\(or,)g(equiv)-5 b(alen)m(tly)d(,)26
b(the)c(option)g(`)p Fl(-t)p Fq('\))g(is)g(also)630 4902
y(giv)m(en,)32 b(the)f(\014rst)e(\014eld)i(of)f(the)h(user-de\014ned)e
(struct)i(m)m(ust)f(b)s(e)g(of)h(t)m(yp)s(e)g(`)p Fl(int)p
Fq(',)f(not)h(`)p Fl(char)630 5011 y(*)p Fq(',)h(b)s(ecause)f(it)i
(will)e(con)m(tain)i(o\013sets)g(in)m(to)f(the)g(string)f(p)s(o)s(ol)h
(instead)f(of)h(actual)h(strings.)630 5121 y(T)-8 b(o)33
b(con)m(v)m(ert)h(suc)m(h)f(an)f(o\013set)i(to)f(a)g(string,)h(y)m(ou)f
(can)g(use)f(the)h(expression)f(`)p Fl(stringpool)630
5230 y(+)e Fm(o)5 b Fq(',)34 b(where)f Fm(o)38 b Fq(is)33
b(the)g(o\013set.)50 b(The)32 b(string)h(p)s(o)s(ol)g(name)g(can)g(b)s
(e)g(c)m(hanged)g(through)g(the)630 5340 y(`)p Fl(\045define)c
(string-pool-name)p Fq(')d(declaration.)p eop end
%%Page: 15 17
TeXDict begin 15 16 bop 150 -116 a Fq(Chapter)30 b(3:)41
b(High-Lev)m(el)32 b(Description)g(of)e(GNU)h Fl(gperf)1520
b Fq(15)150 299 y(`)p Fl(\045define)29 b(string-pool-name)d
Fm(name)5 b Fq(')630 408 y(Allo)m(ws)42 b(y)m(ou)f(to)h(sp)s(ecify)f
(the)g(name)g(of)g(the)g(generated)h(string)f(p)s(o)s(ol)g(created)h(b)
m(y)f(the)630 518 y(declaration)48 b(`)p Fl(\045pic)p
Fq(')e(\(or,)51 b(equiv)-5 b(alen)m(tly)d(,)53 b(the)47
b(option)f(`)p Fl(-P)p Fq('\).)90 b(The)46 b(default)g(name)h(is)630
628 y(`)p Fl(stringpool)p Fq('.)38 b(This)29 b(declaration)i(p)s
(ermits)e(the)h(use)g(of)g(t)m(w)m(o)h(hash)e(tables)h(in)g(the)g(same)
630 737 y(\014le,)39 b(with)d(`)p Fl(\045pic)p Fq(')g(and)g(ev)m(en)h
(when)f(the)h(`)p Fl(\045global-table)p Fq(')c(declaration)38
b(\(or,)h(equiv)-5 b(a-)630 847 y(len)m(tly)d(,)32 b(the)f(option)g(`)p
Fl(-G)p Fq('\))f(is)h(giv)m(en.)150 1074 y(`)p Fl(\045null-strings)p
Fq(')630 1183 y(Use)39 b(NULL)g(strings)f(instead)i(of)e(empt)m(y)i
(strings)e(for)h(empt)m(y)g(k)m(eyw)m(ord)g(table)h(en)m(tries.)630
1293 y(This)e(reduces)g(the)h(startup)g(time)g(of)g(programs)g(using)f
(a)h(shared)f(library)g(con)m(taining)630 1402 y(the)29
b(generated)g(co)s(de)g(\(but)f(not)g(as)h(m)m(uc)m(h)g(as)f(the)h
(declaration)h(`)p Fl(\045pic)p Fq('\),)f(at)g(the)f(exp)s(ense)630
1512 y(of)j(one)f(more)h(test-and-branc)m(h)g(instruction)f(at)h(run)e
(time.)150 1739 y(`)p Fl(\045define)g(word-array-name)d
Fm(name)5 b Fq(')630 1848 y(Allo)m(ws)41 b(y)m(ou)f(to)h(sp)s(ecify)f
(the)g(name)g(for)f(the)i(generated)g(arra)m(y)f(con)m(taining)i(the)e
(hash)630 1958 y(table.)106 b(Default)53 b(name)e(is)h(`)p
Fl(wordlist)p Fq('.)103 b(This)51 b(option)h(p)s(ermits)f(the)h(use)g
(of)g(t)m(w)m(o)630 2068 y(hash)37 b(tables)h(in)g(the)g(same)g
(\014le,)i(ev)m(en)e(when)f(the)h(option)g(`)p Fl(-G)p
Fq(')g(\(or,)i(equiv)-5 b(alen)m(tly)d(,)42 b(the)630
2177 y(`)p Fl(\045global-table)p Fq(')27 b(declaration\))33
b(is)d(giv)m(en.)150 2404 y(`)p Fl(\045define)f(length-table-name)c
Fm(name)5 b Fq(')630 2514 y(Allo)m(ws)36 b(y)m(ou)e(to)i(sp)s(ecify)e
(the)h(name)f(for)g(the)h(generated)h(arra)m(y)f(con)m(taining)h(the)f
(length)630 2623 y(table.)77 b(Default)43 b(name)g(is)f(`)p
Fl(lengthtable)p Fq('.)74 b(This)41 b(option)i(p)s(ermits)e(the)h(use)g
(of)h(t)m(w)m(o)630 2733 y(length)33 b(tables)h(in)f(the)g(same)g
(\014le,)h(ev)m(en)g(when)e(the)h(option)h(`)p Fl(-G)p
Fq(')f(\(or,)h(equiv)-5 b(alen)m(tly)d(,)36 b(the)630
2842 y(`)p Fl(\045global-table)p Fq(')27 b(declaration\))33
b(is)d(giv)m(en.)150 3069 y(`)p Fl(\045switch=)p Fm(coun)m(t)r
Fq(')630 3179 y(Causes)35 b(the)h(generated)h(C)e(co)s(de)h(to)h(use)e
(a)h Fl(switch)e Fq(statemen)m(t)k(sc)m(heme,)g(rather)d(than)630
3289 y(an)j(arra)m(y)g(lo)s(okup)g(table.)64 b(This)37
b(can)h(lead)h(to)f(a)h(reduction)f(in)f(b)s(oth)g(time)i(and)e(space)
630 3398 y(requiremen)m(ts)43 b(for)h(some)f(input)g(\014les.)80
b(The)43 b(argumen)m(t)h(to)g(this)f(option)h(determines)630
3508 y(ho)m(w)33 b(man)m(y)f Fl(switch)f Fq(statemen)m(ts)k(are)e
(generated.)49 b(A)32 b(v)-5 b(alue)34 b(of)e(1)i(generates)g(1)f
Fl(switch)630 3617 y Fq(con)m(taining)25 b(all)e(the)h(elemen)m(ts,)i
(a)d(v)-5 b(alue)23 b(of)h(2)f(generates)h(2)g(tables)f(with)g(1/2)h
(the)g(elemen)m(ts)630 3727 y(in)38 b(eac)m(h)h Fl(switch)p
Fq(,)g(etc.)65 b(This)37 b(is)h(useful)g(since)g(man)m(y)h(C)e
(compilers)i(cannot)g(correctly)630 3836 y(generate)29
b(co)s(de)f(for)f(large)h Fl(switch)e Fq(statemen)m(ts.)41
b(This)27 b(option)h(w)m(as)g(inspired)e(in)h(part)g(b)m(y)630
3946 y(Keith)k(Bostic's)h(original)f(C)f(program.)150
4173 y(`)p Fl(\045omit-struct-type)p Fq(')630 4282 y(Prev)m(en)m(ts)f
(the)e(transfer)h(of)f(the)h(t)m(yp)s(e)g(declaration)h(to)g(the)f
(output)f(\014le.)40 b(Use)28 b(this)f(option)630 4392
y(if)j(the)h(t)m(yp)s(e)f(is)h(already)g(de\014ned)e(elsewhere.)150
4751 y Fh(3.1.1.3)63 b(C)41 b(Co)s(de)g(Inclusion)275
5011 y Fq(Using)26 b(a)g(syn)m(tax)h(similar)f(to)h(GNU)f(utilities)i
Fl(flex)d Fq(and)g Fl(bison)p Fq(,)h(it)g(is)g(p)s(ossible)g(to)g
(directly)h(include)150 5121 y(C)i(source)h(text)g(and)f(commen)m(ts)h
(v)m(erbatim)g(in)m(to)h(the)e(generated)i(output)e(\014le.)40
b(This)29 b(is)g(accomplished)150 5230 y(b)m(y)37 b(enclosing)h(the)g
(region)g(inside)e(left-justi\014ed)i(surrounding)d(`)p
Fl(\045{)p Fq(',)k(`)p Fl(\045})p Fq(')e(pairs.)61 b(Here)38
b(is)f(an)g(input)150 5340 y(fragmen)m(t)31 b(based)f(on)g(the)h
(previous)f(example)h(that)g(illustrates)g(this)g(feature:)p
eop end
%%Page: 16 18
TeXDict begin 16 17 bop 150 -116 a Fq(Chapter)30 b(3:)41
b(High-Lev)m(el)32 b(Description)g(of)e(GNU)h Fl(gperf)1520
b Fq(16)390 299 y Fl(\045{)390 403 y(#include)46 b(<assert.h>)390
506 y(/*)h(This)g(section)f(of)h(code)f(is)i(inserted)d(directly)h
(into)g(the)h(output.)f(*/)390 610 y(int)h(return_month_days)c
(\(struct)j(month)g(*months,)g(int)h(is_leap_year\);)390
714 y(\045})390 818 y(struct)f(month)g({)i(char)f(*name;)f(int)h
(number;)e(int)i(days;)g(int)g(leap_days;)e(};)390 922
y(\045\045)390 1025 y(january,)141 b(1,)47 b(31,)g(31)390
1129 y(february,)93 b(2,)47 b(28,)g(29)390 1233 y(march,)237
b(3,)47 b(31,)g(31)390 1337 y(...)150 1632 y Fh(3.1.2)63
b(F)-10 b(ormat)41 b(for)h(Keyw)m(ord)e(En)m(tries)275
1865 y Fq(The)33 b(second)i(input)e(\014le)i(format)g(section)g(con)m
(tains)h(lines)e(of)h(k)m(eyw)m(ords)g(and)e(an)m(y)i(asso)s(ciated)h
(at-)150 1974 y(tributes)i(y)m(ou)h(migh)m(t)g(supply)-8
b(.)64 b(A)39 b(line)f(b)s(eginning)g(with)g(`)p Fl(#)p
Fq(')h(in)f(the)h(\014rst)f(column)g(is)g(considered)h(a)150
2084 y(commen)m(t.)53 b(Ev)m(erything)34 b(follo)m(wing)h(the)g(`)p
Fl(#)p Fq(')f(is)g(ignored,)h(up)e(to)i(and)e(including)h(the)g(follo)m
(wing)h(new-)150 2193 y(line.)57 b(A)36 b(line)h(b)s(eginning)e(with)g
(`)p Fl(\045)p Fq(')h(in)g(the)g(\014rst)f(column)g(is)h(an)g(option)g
(declaration)i(and)d(m)m(ust)h(not)150 2303 y(o)s(ccur)30
b(within)g(the)h(k)m(eyw)m(ords)f(section.)275 2477 y(The)36
b(\014rst)g(\014eld)g(of)h(eac)m(h)g(non-commen)m(t)h(line)f(is)g(alw)m
(a)m(ys)h(the)f(k)m(eyw)m(ord)g(itself.)60 b(It)37 b(can)g(b)s(e)f(giv)
m(en)150 2587 y(in)f(t)m(w)m(o)h(w)m(a)m(ys:)51 b(as)35
b(a)g(simple)g(name,)i(i.e.,)g(without)e(surrounding)e(string)i
(quotation)h(marks,)g(or)f(as)h(a)150 2696 y(string)i(enclosed)g(in)f
(double-quotes,)j(in)d(C)h(syn)m(tax,)i(p)s(ossibly)d(with)g(bac)m
(kslash)h(escap)s(es)g(lik)m(e)h Fl(\\")e Fq(or)150 2806
y Fl(\\234)23 b Fq(or)i Fl(\\xa8)p Fq(.)37 b(In)24 b(either)h(case,)i
(it)e(m)m(ust)f(start)h(righ)m(t)g(at)g(the)g(b)s(eginning)e(of)i(the)g
(line,)h(without)e(leading)150 2916 y(whitespace.)58
b(In)35 b(this)h(con)m(text,)j(a)e(\\\014eld")f(is)g(considered)g(to)g
(extend)g(up)f(to,)j(but)d(not)h(include,)i(the)150 3025
y(\014rst)g(blank,)i(comma,)i(or)c(newline.)65 b(Here)39
b(is)f(a)h(simple)g(example)g(tak)m(en)g(from)f(a)h(partial)h(list)f
(of)f(C)150 3135 y(reserv)m(ed)31 b(w)m(ords:)390 3303
y Fl(#)47 b(These)g(are)g(a)g(few)g(C)h(reserved)d(words,)h(see)h(the)g
(c.gperf)f(file)390 3407 y(#)h(for)g(a)h(complete)d(list)i(of)g(ANSI)g
(C)g(reserved)f(words.)390 3511 y(unsigned)390 3615 y(sizeof)390
3718 y(switch)390 3822 y(signed)390 3926 y(if)390 4030
y(default)390 4133 y(for)390 4237 y(while)390 4341 y(return)275
4508 y Fq(Note)38 b(that)f(unlik)m(e)g Fl(flex)f Fq(or)h
Fl(bison)e Fq(the)j(\014rst)e(`)p Fl(\045\045)p Fq(')g(mark)m(er)i(ma)m
(y)f(b)s(e)f(elided)h(if)g(the)g(declaration)150 4618
y(section)32 b(is)e(empt)m(y)-8 b(.)275 4792 y(Additional)29
b(\014elds)f(ma)m(y)h(optionally)h(follo)m(w)g(the)f(leading)g(k)m(eyw)
m(ord.)41 b(Fields)29 b(should)e(b)s(e)h(separated)150
4902 y(b)m(y)g(commas,)i(and)d(terminate)j(at)f(the)f(end)g(of)g(line.)
41 b(What)29 b(these)f(\014elds)g(mean)g(is)h(en)m(tirely)g(up)e(to)i
(y)m(ou;)150 5011 y(they)k(are)h(used)e(to)i(initialize)h(the)f(elemen)
m(ts)g(of)f(the)h(user-de\014ned)d Fl(struct)h Fq(pro)m(vided)g(b)m(y)h
(y)m(ou)h(in)f(the)150 5121 y(declaration)40 b(section.)67
b(If)39 b(the)g(`)p Fl(-t)p Fq(')f(option)h(\(or,)j(equiv)-5
b(alen)m(tly)d(,)43 b(the)c(`)p Fl(\045struct-type)p
Fq(')d(declaration\))150 5230 y(is)g Fj(not)45 b Fq(enabled)36
b(these)g(\014elds)g(are)g(simply)f(ignored.)58 b(All)36
b(previous)g(examples)g(except)h(the)f(last)h(one)150
5340 y(con)m(tain)32 b(k)m(eyw)m(ord)f(attributes.)p
eop end
%%Page: 17 19
TeXDict begin 17 18 bop 150 -116 a Fq(Chapter)30 b(3:)41
b(High-Lev)m(el)32 b(Description)g(of)e(GNU)h Fl(gperf)1520
b Fq(17)150 299 y Fh(3.1.3)63 b(Including)41 b(Additional)g(C)g(F)-10
b(unctions)275 490 y Fq(The)30 b(optional)i(third)e(section)i(also)g
(corresp)s(onds)d(closely)j(with)f(con)m(v)m(en)m(tions)i(found)c(in)i
Fl(flex)f Fq(and)150 600 y Fl(bison)p Fq(.)36 b(All)23
b(text)g(in)f(this)f(section,)k(starting)e(at)g(the)f(\014nal)f(`)p
Fl(\045\045)p Fq(')h(and)f(extending)i(to)f(the)g(end)g(of)g(the)g
(input)150 710 y(\014le,)31 b(is)g(included)g(v)m(erbatim)g(in)m(to)h
(the)f(generated)h(output)f(\014le.)42 b(Naturally)-8
b(,)33 b(it)e(is)g(y)m(our)g(resp)s(onsibilit)m(y)150
819 y(to)g(ensure)f(that)h(the)f(co)s(de)h(con)m(tained)g(in)g(this)f
(section)h(is)g(v)-5 b(alid)30 b(C.)150 1040 y Fh(3.1.4)63
b(Where)41 b(to)g(place)f(directiv)m(es)g(for)i(GNU)g
Fg(indent)p Fh(.)275 1231 y Fq(If)26 b(y)m(ou)i(w)m(an)m(t)g(to)g(in)m
(v)m(ok)m(e)h(GNU)f Fl(indent)e Fq(on)h(a)g Fl(gperf)f
Fq(input)h(\014le,)h(y)m(ou)f(will)h(see)g(that)g(GNU)g
Fl(indent)150 1341 y Fq(do)s(esn't)33 b(understand)e(the)i(`)p
Fl(\045\045)p Fq(',)h(`)p Fl(\045{)p Fq(')e(and)h(`)p
Fl(\045})p Fq(')g(directiv)m(es)h(that)f(con)m(trol)i
Fl(gperf)p Fq('s)c(in)m(terpretation)k(of)150 1451 y(the)23
b(input)f(\014le.)38 b(Therefore)23 b(y)m(ou)g(ha)m(v)m(e)h(to)g
(insert)f(some)g(directiv)m(es)h(for)f(GNU)h Fl(indent)p
Fq(.)36 b(More)24 b(precisely)-8 b(,)150 1560 y(assuming)30
b(the)h(most)f(general)i(input)d(\014le)i(structure)390
1688 y Fl(declarations)44 b(part)j(1)390 1791 y(\045{)390
1895 y(verbatim)f(code)390 1999 y(\045})390 2103 y(declarations)e(part)
j(2)390 2207 y(\045\045)390 2310 y(keywords)390 2414
y(\045\045)390 2518 y(functions)150 2644 y Fq(y)m(ou)31
b(w)m(ould)f(insert)g(`)p Fl(*INDENT-OFF*)p Fq(')e(and)h(`)p
Fl(*INDENT-ON*)p Fq(')f(commen)m(ts)k(as)e(follo)m(ws:)390
2772 y Fl(/*)47 b(*INDENT-OFF*)e(*/)390 2875 y(declarations)f(part)j(1)
390 2979 y(\045{)390 3083 y(/*)g(*INDENT-ON*)e(*/)390
3187 y(verbatim)h(code)390 3291 y(/*)h(*INDENT-OFF*)e(*/)390
3394 y(\045})390 3498 y(declarations)f(part)j(2)390 3602
y(\045\045)390 3706 y(keywords)390 3809 y(\045\045)390
3913 y(/*)g(*INDENT-ON*)e(*/)390 4017 y(functions)150
4263 y Fp(3.2)68 b(Output)45 b(F)-11 b(ormat)45 b(for)g(Generated)h(C)f
(Co)t(de)g(with)g Fi(gperf)275 4454 y Fq(Sev)m(eral)28
b(options)g(con)m(trol)h(ho)m(w)e(the)h(generated)h(C)e(co)s(de)h(app)s
(ears)e(on)i(the)g(standard)e(output.)40 b(Tw)m(o)150
4564 y(C)22 b(function)g(are)g(generated.)39 b(They)22
b(are)h(called)g Fl(hash)e Fq(and)h Fl(in_word_set)p
Fq(,)f(although)h(y)m(ou)h(ma)m(y)g(mo)s(dify)150 4673
y(their)32 b(names)g(with)g(a)g(command-line)h(option.)46
b(Both)33 b(functions)f(require)g(t)m(w)m(o)h(argumen)m(ts,)g(a)g
(string,)150 4783 y Fl(char)c(*)43 b Fm(str)p Fq(,)j(and)d(a)g(length)h
(parameter,)j Fl(int)42 b Fm(len)p Fq(.)79 b(Their)43
b(default)g(function)g(protot)m(yp)s(es)g(are)h(as)150
4892 y(follo)m(ws:)3525 5121 y(F)-8 b(unction)-3724 b
Ff(unsigned)41 b(int)e Fe(hash)44 b Fd(\()p Fl(const)30
b(char)f(*)h Fm(str)p Fl(,)g(unsigned)e(int)h Fm(len)p
Fd(\))390 5230 y Fq(By)35 b(default,)h(the)e(generated)i
Fl(hash)d Fq(function)h(returns)f(an)i(in)m(teger)h(v)-5
b(alue)34 b(created)i(b)m(y)e(adding)390 5340 y Fm(len)28
b Fq(to)g(sev)m(eral)h(user-sp)s(eci\014ed)d Fm(str)34
b Fq(b)m(yte)28 b(p)s(ositions)g(indexed)f(in)m(to)h(an)f
Fm(asso)s(ciated)i(v)-5 b(alues)32 b Fq(table)p eop end
%%Page: 18 20
TeXDict begin 18 19 bop 150 -116 a Fq(Chapter)30 b(3:)41
b(High-Lev)m(el)32 b(Description)g(of)e(GNU)h Fl(gperf)1520
b Fq(18)390 299 y(stored)28 b(in)g(a)g(lo)s(cal)i(static)f(arra)m(y)-8
b(.)41 b(The)28 b(asso)s(ciated)h(v)-5 b(alues)29 b(table)g(is)f
(constructed)g(in)m(ternally)h(b)m(y)390 408 y Fl(gperf)34
b Fq(and)g(later)i(output)e(as)i(a)f(static)i(lo)s(cal)f(C)e(arra)m(y)i
(called)g(`)p Fl(hash_table)p Fq('.)52 b(The)35 b(relev)-5
b(an)m(t)390 518 y(selected)28 b(p)s(ositions)f(\(i.e.)41
b(indices)27 b(in)m(to)h Fm(str)7 b Fq(\))26 b(are)h(sp)s(eci\014ed)f
(via)i(the)f(`)p Fl(-k)p Fq(')g(option)g(when)f(running)390
628 y Fl(gperf)p Fq(,)j(as)i(detailed)g(in)f(the)h Fj(Options)39
b Fq(section)31 b(b)s(elo)m(w)g(\(see)g(Chapter)f(4)h([Options],)f
(page)h(19\).)3525 857 y(F)-8 b(unction)-3724 b Fe(in)p
253 857 35 5 v 41 w(w)m(ord)p 542 857 V 41 w(set)44 b
Fd(\()p Fl(const)30 b(char)f(*)h Fm(str)p Fl(,)g(unsigned)e(int)h
Fm(len)p Fd(\))390 967 y Fq(If)k Fm(str)41 b Fq(is)33
b(in)h(the)g(k)m(eyw)m(ord)g(set,)i(returns)c(a)j(p)s(oin)m(ter)f(to)g
(that)h(k)m(eyw)m(ord.)51 b(More)35 b(exactly)-8 b(,)37
b(if)d(the)390 1076 y(option)d(`)p Fl(-t)p Fq(')g(\(or,)g(equiv)-5
b(alen)m(tly)d(,)33 b(the)e(`)p Fl(\045struct-type)p
Fq(')d(declaration\))k(w)m(as)f(giv)m(en,)h(it)f(returns)f(a)390
1186 y(p)s(oin)m(ter)g(to)h(the)g(matc)m(hing)h(k)m(eyw)m(ord's)e
(structure.)41 b(Otherwise)30 b(it)h(returns)e Fl(NULL)p
Fq(.)275 1367 y(If)39 b(the)i(option)f(`)p Fl(-c)p Fq(')g(\(or,)j
(equiv)-5 b(alen)m(tly)d(,)45 b(the)c(`)p Fl(\045compare-strncmp)p
Fq(')36 b(declaration\))42 b(is)e(not)g(used,)150 1477
y Fm(str)k Fq(m)m(ust)37 b(b)s(e)f(a)i(NUL)f(terminated)h(string)f(of)h
(exactly)h(length)e Fm(len)p Fq(.)62 b(If)37 b(`)p Fl(-c)p
Fq(')g(\(or,)i(equiv)-5 b(alen)m(tly)d(,)42 b(the)150
1587 y(`)p Fl(\045compare-strncmp)p Fq(')22 b(declaration\))28
b(is)e(used,)g Fm(str)32 b Fq(m)m(ust)26 b(simply)g(b)s(e)f(an)h(arra)m
(y)g(of)g Fm(len)g Fq(b)m(ytes)h(and)e(do)s(es)150 1696
y(not)31 b(need)f(to)h(b)s(e)f(NUL)g(terminated.)275
1830 y(The)f(co)s(de)i(generated)g(for)g(these)f(t)m(w)m(o)i(functions)
e(is)g(a\013ected)i(b)m(y)f(the)f(follo)m(wing)i(options:)150
1987 y(`)p Fl(-t)p Fq(')150 2097 y(`)p Fl(--struct-type)p
Fq(')630 2207 y(Mak)m(e)g(use)e(of)h(the)f(user-de\014ned)f
Fl(struct)p Fq(.)150 2364 y(`)p Fl(-S)h Fm(total-switc)m(h-statemen)m
(ts)t Fq(')150 2474 y(`)p Fl(--switch=)p Fm(total-switc)m(h-statemen)m
(ts)t Fq(')630 2583 y(Generate)22 b(1)f(or)g(more)g(C)f
Fl(switch)f Fq(statemen)m(t)j(rather)f(than)f(use)h(a)g(large,)j(\(and)
c(p)s(oten)m(tially)630 2693 y(sparse\))j(static)h(arra)m(y)-8
b(.)40 b(Although)23 b(the)g(exact)h(time)g(and)e(space)i(sa)m(vings)g
(of)f(this)g(approac)m(h)630 2802 y(v)-5 b(ary)32 b(according)g(to)h(y)
m(our)e(C)g(compiler's)i(degree)f(of)g(optimization,)i(this)d(metho)s
(d)h(often)630 2912 y(results)e(in)g(smaller)h(and)f(faster)h(co)s(de.)
275 3070 y(If)c(the)h(`)p Fl(-t)p Fq(')g(and)f(`)p Fl(-S)p
Fq(')g(options)i(\(or,)f(equiv)-5 b(alen)m(tly)d(,)31
b(the)d(`)p Fl(\045struct-type)p Fq(')d(and)i(`)p Fl(\045switch)p
Fq(')g(declara-)150 3179 y(tions\))f(are)f(omitted,)i(the)e(default)g
(action)h(is)f(to)h(generate)g(a)g Fl(char)j(*)24 b Fq(arra)m(y)i(con)m
(taining)g(the)f(k)m(eyw)m(ords,)150 3289 y(together)32
b(with)e(additional)i(empt)m(y)f(strings)f(used)g(for)g(padding)g(the)g
(arra)m(y)-8 b(.)43 b(By)30 b(exp)s(erimen)m(ting)h(with)150
3398 y(the)g(v)-5 b(arious)32 b(input)e(and)g(output)h(options,)h(and)f
(timing)g(the)h(resulting)f(C)g(co)s(de,)h(y)m(ou)f(can)h(determine)150
3508 y(the)f(b)s(est)f(option)g(c)m(hoices)i(for)f(di\013eren)m(t)f(k)m
(eyw)m(ord)h(set)g(c)m(haracteristics.)150 3763 y Fp(3.3)68
b(Use)46 b(of)f(NUL)g(b)l(ytes)275 3954 y Fq(By)30 b(default,)h(the)f
(co)s(de)g(generated)i(b)m(y)e Fl(gperf)e Fq(op)s(erates)j(on)f(zero)h
(terminated)g(strings,)f(the)g(usual)150 4064 y(represen)m(tation)41
b(of)e(strings)h(in)f(C.)h(This)e(means)i(that)g(the)g(k)m(eyw)m(ords)g
(in)f(the)h(input)f(\014le)g(m)m(ust)h(not)150 4173 y(con)m(tain)d(NUL)
f(b)m(ytes,)i(and)e(the)g Fm(str)42 b Fq(argumen)m(t)36
b(passed)g(to)g Fl(hash)f Fq(or)h Fl(in_word_set)d Fq(m)m(ust)j(b)s(e)f
(NUL)150 4283 y(terminated)c(and)f(ha)m(v)m(e)h(exactly)h(length)f
Fm(len)p Fq(.)275 4417 y(If)k(option)i(`)p Fl(-c)p Fq(')f(\(or,)i
(equiv)-5 b(alen)m(tly)d(,)40 b(the)c(`)p Fl(\045compare-strncmp)p
Fq(')c(declaration\))38 b(is)e(used,)h(then)f(the)150
4526 y Fm(str)e Fq(argumen)m(t)29 b(do)s(es)e(not)h(need)g(to)h(b)s(e)e
(NUL)h(terminated.)41 b(The)27 b(co)s(de)h(generated)h(b)m(y)f
Fl(gperf)f Fq(will)h(only)150 4636 y(access)h(the)f(\014rst)g
Fm(len)p Fq(,)g(not)h Fm(len)p Fl(+)p Fm(1)p Fq(,)f(b)m(ytes)h
(starting)g(at)f Fm(str)p Fq(.)40 b(Ho)m(w)m(ev)m(er,)31
b(the)d(k)m(eyw)m(ords)g(in)g(the)g(input)f(\014le)150
4745 y(still)k(m)m(ust)g(not)f(con)m(tain)i(NUL)e(b)m(ytes.)275
4879 y(If)35 b(option)i(`)p Fl(-l)p Fq(')f(\(or,)i(equiv)-5
b(alen)m(tly)d(,)40 b(the)c(`)p Fl(\045compare-lengths)p
Fq(')c(declaration\))38 b(is)e(used,)h(then)f(the)150
4988 y(hash)c(table)i(p)s(erforms)d(binary)h(comparison.)47
b(The)33 b(k)m(eyw)m(ords)g(in)f(the)h(input)f(\014le)g(ma)m(y)i(con)m
(tain)g(NUL)150 5098 y(b)m(ytes,)46 b(written)41 b(in)h(string)g(syn)m
(tax)g(as)g Fl(\\000)f Fq(or)h Fl(\\x00)p Fq(,)i(and)d(the)h(co)s(de)g
(generated)h(b)m(y)f Fl(gperf)f Fq(will)150 5208 y(treat)i(NUL)e(lik)m
(e)i(an)m(y)f(other)g(b)m(yte.)75 b(Also,)45 b(in)c(this)g(case)i(the)f
(`)p Fl(-c)p Fq(')f(option)h(\(or,)j(equiv)-5 b(alen)m(tly)d(,)47
b(the)150 5317 y(`)p Fl(\045compare-strncmp)p Fq(')26
b(declaration\))33 b(is)d(ignored.)p eop end
%%Page: 19 21
TeXDict begin 19 20 bop 150 -116 a Fq(Chapter)30 b(4:)41
b(In)m(v)m(oking)31 b Fl(gperf)2433 b Fq(19)150 299 y
Fn(4)80 b(In)l(v)l(oking)52 b Fk(gperf)275 542 y Fq(There)35
b(are)i Fj(many)46 b Fq(options)36 b(to)i Fl(gperf)p
Fq(.)57 b(They)36 b(w)m(ere)h(added)e(to)j(mak)m(e)f(the)g(program)f
(more)g(con-)150 651 y(v)m(enien)m(t)f(for)e(use)g(with)g(real)h
(applications.)50 b(\\On-line")34 b(help)f(is)g(readily)h(a)m(v)-5
b(ailable)36 b(via)e(the)f(`)p Fl(--help)p Fq(')150 761
y(option.)41 b(Here)31 b(is)f(the)h(complete)h(list)f(of)f(options.)150
1025 y Fp(4.1)68 b(Sp)t(ecifying)45 b(the)g(Lo)t(cation)h(of)f(the)g
(Output)g(File)150 1247 y Fq(`)p Fl(--output-file=)p
Fm(\014le)5 b Fq(')630 1357 y(Allo)m(ws)31 b(y)m(ou)g(to)g(sp)s(ecify)f
(the)h(name)f(of)h(the)f(\014le)h(to)g(whic)m(h)f(the)h(output)f(is)g
(written)g(to.)275 1521 y(The)f(results)i(are)f(written)h(to)g
(standard)e(output)h(if)h(no)f(output)g(\014le)g(is)h(sp)s(eci\014ed)f
(or)g(if)g(it)h(is)g(`)p Fl(-)p Fq('.)150 1785 y Fp(4.2)68
b(Options)45 b(that)h(a\013ect)g(In)l(terpretation)h(of)e(the)g(Input)g
(File)275 1981 y Fq(These)d(options)h(are)g(also)g(a)m(v)-5
b(ailable)45 b(as)e(declarations)h(in)e(the)h(input)f(\014le)g(\(see)i
(Section)f(3.1.1.2)150 2090 y([Gp)s(erf)30 b(Declarations],)j(page)e
(12\).)150 2254 y(`)p Fl(-e)f Fm(k)m(eyw)m(ord-delimiter-list)r
Fq(')150 2364 y(`)p Fl(--delimiters=)p Fm(k)m(eyw)m(ord-delimiter-list)
r Fq(')630 2473 y(Allo)m(ws)g(y)m(ou)f(to)g(pro)m(vide)g(a)g(string)g
(con)m(taining)h(delimiters)g(used)d(to)j(separate)g(k)m(eyw)m(ords)630
2583 y(from)k(their)h(attributes.)54 b(The)34 b(default)g(is)h
Fl(")p Fq(,)p Fl(")p Fq(.)53 b(This)34 b(option)h(is)f(essen)m(tial)j
(if)d(y)m(ou)h(w)m(an)m(t)630 2692 y(to)f(use)e(k)m(eyw)m(ords)h(that)h
(ha)m(v)m(e)g(em)m(b)s(edded)e(commas)h(or)g(newlines.)48
b(One)33 b(useful)f(tric)m(k)i(is)630 2802 y(to)d(use)f(-e'T)-8
b(AB',)33 b(where)c(T)-8 b(AB)31 b(is)g(the)f(literal)i(tab)f(c)m
(haracter.)150 2964 y(`)p Fl(-t)p Fq(')150 3074 y(`)p
Fl(--struct-type)p Fq(')630 3183 y(Allo)m(ws)h(y)m(ou)g(to)g(include)f
(a)g Fl(struct)f Fq(t)m(yp)s(e)h(declaration)i(for)e(generated)h(co)s
(de.)44 b(An)m(y)31 b(text)630 3293 y(b)s(efore)43 b(a)i(pair)e(of)h
(consecutiv)m(e)i(`)p Fl(\045\045)p Fq(')d(is)h(considered)g(part)f(of)
h(the)g(t)m(yp)s(e)g(declaration.)630 3403 y(Keyw)m(ords)39
b(and)g(additional)h(\014elds)f(ma)m(y)i(follo)m(w)f(this,)i(one)e
(group)f(of)h(\014elds)f(p)s(er)f(line.)630 3512 y(A)31
b(set)g(of)g(examples)g(for)f(generating)i(p)s(erfect)e(hash)g(tables)i
(and)e(functions)g(for)g(Ada,)h(C,)630 3622 y(C)p Fl(++)p
Fq(,)24 b(P)m(ascal,)j(Mo)s(dula)c(2,)j(Mo)s(dula)d(3)h(and)f(Ja)m(v)-5
b(aScript)24 b(reserv)m(ed)f(w)m(ords)g(are)h(distributed)630
3731 y(with)30 b(this)g(release.)150 3894 y(`)p Fl(--ignore-case)p
Fq(')630 4003 y(Consider)43 b(upp)s(er)f(and)i(lo)m(w)m(er)h(case)g
(ASCI)s(I)e(c)m(haracters)i(as)f(equiv)-5 b(alen)m(t.)83
b(The)44 b(string)630 4113 y(comparison)28 b(will)h(use)f(a)h(case)g
(insigni\014can)m(t)g(c)m(haracter)h(comparison.)40 b(Note)29
b(that)g(lo)s(cale)630 4222 y(dep)s(enden)m(t)e(case)i(mappings)f(are)g
(ignored.)40 b(This)28 b(option)g(is)h(therefore)f(not)h(suitable)f(if)
h(a)630 4332 y(prop)s(erly)k(in)m(ternationalized)k(or)d(lo)s(cale)i(a)
m(w)m(are)g(case)f(mapping)f(should)f(b)s(e)h(used.)52
b(\(F)-8 b(or)630 4442 y(example,)31 b(in)e(a)g(T)-8
b(urkish)29 b(lo)s(cale,)i(the)f(upp)s(er)d(case)k(equiv)-5
b(alen)m(t)30 b(of)g(the)g(lo)m(w)m(ercase)h(ASCI)s(I)630
4551 y(letter)42 b(`)p Fl(i)p Fq(')g(is)f(the)g(non-ASCI)s(I)e(c)m
(haracter)k(`)p Fl(capital)29 b(i)h(with)f(dot)g(above)p
Fq('.\))72 b(F)-8 b(or)42 b(this)630 4661 y(case,)d(it)d(is)g(b)s
(etter)h(to)f(apply)g(an)g(upp)s(ercase)f(or)h(lo)m(w)m(ercase)i(con)m
(v)m(ersion)g(on)e(the)g(string)630 4770 y(b)s(efore)30
b(passing)g(it)h(to)g(the)g Fl(gperf)e Fq(generated)i(function.)150
5035 y Fp(4.3)68 b(Options)45 b(to)h(sp)t(ecify)f(the)g(Language)h(for)
f(the)g(Output)f(Co)t(de)275 5230 y Fq(These)e(options)h(are)g(also)g
(a)m(v)-5 b(ailable)45 b(as)e(declarations)h(in)e(the)h(input)f(\014le)
g(\(see)i(Section)f(3.1.1.2)150 5340 y([Gp)s(erf)30 b(Declarations],)j
(page)e(12\).)p eop end
%%Page: 20 22
TeXDict begin 20 21 bop 150 -116 a Fq(Chapter)30 b(4:)41
b(In)m(v)m(oking)31 b Fl(gperf)2433 b Fq(20)150 299 y(`)p
Fl(-L)30 b Fm(generated-language-name)5 b Fq(')150 408
y(`)p Fl(--language=)p Fm(generated-language-name)g Fq(')630
518 y(Instructs)33 b Fl(gperf)f Fq(to)i(generate)h(co)s(de)f(in)f(the)h
(language)h(sp)s(eci\014ed)d(b)m(y)i(the)g(option's)g(ar-)630
628 y(gumen)m(t.)41 b(Languages)31 b(handled)f(are)h(curren)m(tly:)630
798 y(`)p Fl(KR-C)p Fq(')238 b(Old-st)m(yle)27 b(K&R)f(C.)g(This)f
(language)j(is)f(understo)s(o)s(d)d(b)m(y)i(old-st)m(yle)i(C)e(com-)
1110 907 y(pilers)e(and)g(ANSI)f(C)h(compilers,)i(but)e(ANSI)f(C)h
(compilers)h(ma)m(y)f(\015ag)h(w)m(arn-)1110 1017 y(ings)30
b(\(or)h(ev)m(en)g(errors\))f(b)s(ecause)h(of)f(lac)m(king)i(`)p
Fl(const)p Fq('.)630 1187 y(`)p Fl(C)p Fq(')382 b(Common)23
b(C.)f(This)h(language)h(is)f(understo)s(o)s(d)e(b)m(y)i(ANSI)g(C)f
(compilers,)k(and)1110 1296 y(also)k(b)m(y)e(old-st)m(yle)i(C)f
(compilers,)g(pro)m(vided)f(that)i(y)m(ou)f Fl(#define)f(const)f
Fq(to)1110 1406 y(empt)m(y)k(for)f(compilers)h(whic)m(h)f(don't)g(kno)m
(w)h(ab)s(out)f(this)g(k)m(eyw)m(ord.)630 1576 y(`)p
Fl(ANSI-C)p Fq(')142 b(ANSI)39 b(C.)h(This)e(language)j(is)f(understo)s
(o)s(d)e(b)m(y)h(ANSI)g(C)h(compilers)g(and)1110 1685
y(C)p Fl(++)29 b Fq(compilers.)630 1855 y(`)p Fl(C++)p
Fq(')286 b(C)p Fl(++)p Fq(.)40 b(This)29 b(language)j(is)f(understo)s
(o)s(d)d(b)m(y)i(C)p Fl(++)g Fq(compilers.)630 2025 y(The)g(default)g
(is)h(C.)150 2195 y(`)p Fl(-a)p Fq(')334 b(This)33 b(option)h(is)f
(supp)s(orted)f(for)h(compatibilit)m(y)j(with)d(previous)g(releases)i
(of)f Fl(gperf)p Fq(.)49 b(It)630 2305 y(do)s(es)30 b(not)h(do)f(an)m
(ything.)150 2475 y(`)p Fl(-g)p Fq(')334 b(This)33 b(option)h(is)f
(supp)s(orted)f(for)h(compatibilit)m(y)j(with)d(previous)g(releases)i
(of)f Fl(gperf)p Fq(.)49 b(It)630 2584 y(do)s(es)30 b(not)h(do)f(an)m
(ything.)150 2868 y Fp(4.4)68 b(Options)45 b(for)g(\014ne)g(tuning)g
(Details)i(in)e(the)g(Output)f(Co)t(de)275 3071 y Fq(Most)21
b(of)g(these)g(options)g(are)g(also)h(a)m(v)-5 b(ailable)23
b(as)e(declarations)h(in)f(the)g(input)e(\014le)i(\(see)h(Section)f
(3.1.1.2)150 3181 y([Gp)s(erf)30 b(Declarations],)j(page)e(12\).)150
3356 y(`)p Fl(-K)f Fm(slot-name)5 b Fq(')150 3466 y(`)p
Fl(--slot-name=)p Fm(slot-name)g Fq(')630 3575 y(This)21
b(option)h(is)g(only)f(useful)g(when)g(option)h(`)p Fl(-t)p
Fq(')f(\(or,)j(equiv)-5 b(alen)m(tly)d(,)26 b(the)c(`)p
Fl(\045struct-type)p Fq(')630 3685 y(declaration\))41
b(has)e(b)s(een)f(giv)m(en.)67 b(By)39 b(default,)j(the)d(program)g
(assumes)f(the)h(structure)630 3795 y(comp)s(onen)m(t)28
b(iden)m(ti\014er)h(for)f(the)g(k)m(eyw)m(ord)g(is)h(`)p
Fl(name)p Fq('.)39 b(This)27 b(option)i(allo)m(ws)g(an)f(arbitrary)630
3904 y(c)m(hoice)33 b(of)f(iden)m(ti\014er)g(for)f(this)h(comp)s(onen)m
(t,)g(although)g(it)g(still)g(m)m(ust)g(o)s(ccur)f(as)h(the)g(\014rst)
630 4014 y(\014eld)e(in)g(y)m(our)g(supplied)f Fl(struct)p
Fq(.)150 4184 y(`)p Fl(-F)h Fm(initializers)t Fq(')150
4293 y(`)p Fl(--initializer-suffix=)p Fm(initializers)t
Fq(')630 4403 y(This)21 b(option)h(is)g(only)f(useful)g(when)g(option)h
(`)p Fl(-t)p Fq(')f(\(or,)j(equiv)-5 b(alen)m(tly)d(,)26
b(the)c(`)p Fl(\045struct-type)p Fq(')630 4512 y(declaration\))34
b(has)f(b)s(een)e(giv)m(en.)49 b(It)32 b(p)s(ermits)g(to)h(sp)s(ecify)f
(initializers)i(for)f(the)f(structure)630 4622 y(mem)m(b)s(ers)23
b(follo)m(wing)i Fm(slot-name)30 b Fq(in)23 b(empt)m(y)h(hash)f(table)h
(en)m(tries.)39 b(The)23 b(list)h(of)g(initializers)630
4732 y(should)37 b(start)i(with)g(a)f(comma.)66 b(By)39
b(default,)i(the)e(emitted)g(co)s(de)g(will)f(zero-initialize)630
4841 y(structure)30 b(mem)m(b)s(ers)f(follo)m(wing)j
Fm(slot-name)p Fq(.)150 5011 y(`)p Fl(-H)e Fm(hash-function-name)5
b Fq(')150 5121 y(`)p Fl(--hash-function-name=)p Fm(hash-fu)o
(nction-name)g Fq(')630 5230 y(Allo)m(ws)31 b(y)m(ou)f(to)g(sp)s(ecify)
g(the)g(name)g(for)f(the)h(generated)h(hash)e(function.)40
b(Default)31 b(name)630 5340 y(is)f(`)p Fl(hash)p Fq('.)40
b(This)30 b(option)h(p)s(ermits)e(the)i(use)f(of)h(t)m(w)m(o)g(hash)f
(tables)h(in)f(the)h(same)g(\014le.)p eop end
%%Page: 21 23
TeXDict begin 21 22 bop 150 -116 a Fq(Chapter)30 b(4:)41
b(In)m(v)m(oking)31 b Fl(gperf)2433 b Fq(21)150 299 y(`)p
Fl(-N)30 b Fm(lo)s(okup-function-name)5 b Fq(')150 408
y(`)p Fl(--lookup-function-name=)p Fm(lo)s(okup-fu)o(nction-name)g
Fq(')630 518 y(Allo)m(ws)43 b(y)m(ou)f(to)h(sp)s(ecify)e(the)i(name)f
(for)f(the)h(generated)h(lo)s(okup)f(function.)75 b(Default)630
628 y(name)28 b(is)g(`)p Fl(in_word_set)p Fq('.)37 b(This)27
b(option)h(p)s(ermits)f(m)m(ultiple)i(generated)f(hash)f(functions)630
737 y(to)k(b)s(e)f(used)f(in)h(the)h(same)g(application.)150
938 y(`)p Fl(-Z)f Fm(class-name)5 b Fq(')150 1048 y(`)p
Fl(--class-name=)p Fm(class-name)g Fq(')630 1157 y(This)66
b(option)i(is)f(only)h(useful)e(when)h(option)g(`)p Fl(-L)30
b(C++)p Fq(')67 b(\(or,)77 b(equiv)-5 b(alen)m(tly)d(,)79
b(the)630 1267 y(`)p Fl(\045language=C++)p Fq(')43 b(declaration\))k
(has)f(b)s(een)f(giv)m(en.)88 b(It)46 b(allo)m(ws)h(y)m(ou)f(to)g(sp)s
(ecify)g(the)630 1377 y(name)30 b(of)h(generated)g(C)p
Fl(++)f Fq(class.)41 b(Default)32 b(name)e(is)h Fl(Perfect_Hash)p
Fq(.)150 1577 y(`)p Fl(-7)p Fq(')150 1687 y(`)p Fl(--seven-bit)p
Fq(')630 1797 y(This)36 b(option)i(sp)s(eci\014es)f(that)g(all)h
(strings)f(that)h(will)f(b)s(e)g(passed)f(as)i(argumen)m(ts)f(to)h(the)
630 1906 y(generated)e(hash)e(function)g(and)h(the)g(generated)g(lo)s
(okup)g(function)f(will)h(solely)h(consist)630 2016 y(of)d(7-bit)h
(ASCI)s(I)e(c)m(haracters)j(\(b)m(ytes)f(in)f(the)g(range)h(0..127\).)
51 b(\(Note)35 b(that)f(the)g(ANSI)e(C)630 2125 y(functions)f
Fl(isalnum)f Fq(and)i Fl(isgraph)e Fq(do)i Fj(not)41
b Fq(guaran)m(tee)33 b(that)g(a)f(b)m(yte)h(is)f(in)f(this)h(range.)630
2235 y(Only)26 b(an)g(explicit)i(test)g(lik)m(e)f(`)p
Fl(c)k(>=)f('A')f(&&)h(c)g(<=)g('Z')p Fq(')25 b(guaran)m(tees)j
(this.\))40 b(This)26 b(w)m(as)h(the)630 2345 y(default)g(in)g(v)m
(ersions)g(of)g Fl(gperf)e Fq(earlier)j(than)e(2.7;)k(no)m(w)d(the)g
(default)g(is)f(to)i(supp)s(ort)d(8-bit)630 2454 y(and)30
b(m)m(ultib)m(yte)h(c)m(haracters.)150 2655 y(`)p Fl(-l)p
Fq(')150 2765 y(`)p Fl(--compare-lengths)p Fq(')630 2874
y(Compare)40 b(k)m(eyw)m(ord)g(lengths)g(b)s(efore)f(trying)h(a)h
(string)e(comparison.)70 b(This)39 b(option)h(is)630
2984 y(mandatory)32 b(for)h(binary)e(comparisons)i(\(see)g(Section)h
(3.3)f([Binary)g(Strings],)g(page)g(18\).)630 3093 y(It)g(also)h(migh)m
(t)g(cut)f(do)m(wn)f(on)h(the)g(n)m(um)m(b)s(er)f(of)h(string)g
(comparisons)g(made)g(during)f(the)630 3203 y(lo)s(okup,)i(since)g(k)m
(eyw)m(ords)f(with)g(di\013eren)m(t)h(lengths)g(are)f(nev)m(er)h
(compared)f(via)h Fl(strcmp)p Fq(.)630 3313 y(Ho)m(w)m(ev)m(er,)j
(using)c(`)p Fl(-l)p Fq(')g(migh)m(t)h(greatly)h(increase)g(the)f(size)
g(of)g(the)f(generated)i(C)e(co)s(de)h(if)630 3422 y(the)k(lo)s(okup)g
(table)g(range)h(is)f(large)h(\(whic)m(h)f(implies)g(that)g(the)g
(switc)m(h)h(option)f(`)p Fl(-S)p Fq(')g(or)630 3532
y(`)p Fl(\045switch)p Fq(')29 b(is)i(not)g(enabled\),)h(since)f(the)g
(length)g(table)h(con)m(tains)g(as)f(man)m(y)g(elemen)m(ts)h(as)630
3641 y(there)f(are)f(en)m(tries)i(in)e(the)g(lo)s(okup)g(table.)150
3842 y(`)p Fl(-c)p Fq(')150 3952 y(`)p Fl(--compare-strncmp)p
Fq(')630 4061 y(Generates)22 b(C)f(co)s(de)g(that)h(uses)e(the)i
Fl(strncmp)d Fq(function)h(to)i(p)s(erform)e(string)h(comparisons.)630
4171 y(The)30 b(default)g(action)i(is)f(to)g(use)f Fl(strcmp)p
Fq(.)150 4372 y(`)p Fl(-C)p Fq(')150 4482 y(`)p Fl(--readonly-tables)p
Fq(')630 4591 y(Mak)m(es)41 b(the)f(con)m(ten)m(ts)h(of)f(all)h
(generated)f(lo)s(okup)f(tables)i(constan)m(t,)i(i.e.,)h(\\readonly".)
630 4701 y(Man)m(y)31 b(compilers)g(can)g(generate)h(more)e(e\016cien)m
(t)i(co)s(de)f(for)f(this)h(b)m(y)f(putting)g(the)h(tables)630
4810 y(in)f(readonly)h(memory)-8 b(.)150 5011 y(`)p Fl(-E)p
Fq(')150 5121 y(`)p Fl(--enum)p Fq(')142 b(De\014ne)31
b(constan)m(t)g(v)-5 b(alues)31 b(using)f(an)g(en)m(um)g(lo)s(cal)i(to)
f(the)g(lo)s(okup)f(function)g(rather)g(than)630 5230
y(with)37 b(#de\014nes.)60 b(This)36 b(also)i(means)g(that)f
(di\013eren)m(t)h(lo)s(okup)f(functions)g(can)g(reside)g(in)630
5340 y(the)31 b(same)f(\014le.)41 b(Thanks)29 b(to)j(James)e(Clark)g
Fl(<jjc@ai.mit.edu>)p Fq(.)p eop end
%%Page: 22 24
TeXDict begin 22 23 bop 150 -116 a Fq(Chapter)30 b(4:)41
b(In)m(v)m(oking)31 b Fl(gperf)2433 b Fq(22)150 299 y(`)p
Fl(-I)p Fq(')150 408 y(`)p Fl(--includes)p Fq(')630 518
y(Include)30 b(the)h(necessary)h(system)f(include)g(\014le,)g
Fl(<string.h>)p Fq(,)e(at)i(the)g(b)s(eginning)g(of)g(the)630
628 y(co)s(de.)39 b(By)27 b(default,)g(this)f(is)g(not)g(done;)i(the)e
(user)f(m)m(ust)h(include)g(this)f(header)h(\014le)g(himself)630
737 y(to)31 b(allo)m(w)h(compilation)g(of)e(the)h(co)s(de.)150
897 y(`)p Fl(-G)p Fq(')150 1007 y(`)p Fl(--global-table)p
Fq(')630 1117 y(Generate)38 b(the)f(static)h(table)f(of)g(k)m(eyw)m
(ords)g(as)g(a)g(static)h(global)g(v)-5 b(ariable,)39
b(rather)d(than)630 1226 y(hiding)30 b(it)h(inside)f(of)g(the)h(lo)s
(okup)f(function)g(\(whic)m(h)g(is)h(the)f(default)h(b)s(eha)m(vior\).)
150 1386 y(`)p Fl(-P)p Fq(')150 1496 y(`)p Fl(--pic)p
Fq(')190 b(Optimize)42 b(the)f(generated)h(table)g(for)f(inclusion)g
(in)g(shared)f(libraries.)73 b(This)40 b(reduces)630
1606 y(the)35 b(startup)g(time)h(of)f(programs)g(using)g(a)h(shared)e
(library)h(con)m(taining)i(the)e(generated)630 1715 y(co)s(de.)j(If)21
b(the)h(option)h(`)p Fl(-t)p Fq(')e(\(or,)k(equiv)-5
b(alen)m(tly)d(,)25 b(the)d(`)p Fl(\045struct-type)p
Fq(')d(declaration\))24 b(is)e(also)630 1825 y(giv)m(en,)32
b(the)f(\014rst)e(\014eld)i(of)f(the)h(user-de\014ned)e(struct)i(m)m
(ust)f(b)s(e)g(of)h(t)m(yp)s(e)g(`)p Fl(int)p Fq(',)f(not)h(`)p
Fl(char)630 1934 y(*)p Fq(',)h(b)s(ecause)f(it)i(will)e(con)m(tain)i
(o\013sets)g(in)m(to)f(the)g(string)f(p)s(o)s(ol)h(instead)f(of)h
(actual)h(strings.)630 2044 y(T)-8 b(o)33 b(con)m(v)m(ert)h(suc)m(h)f
(an)f(o\013set)i(to)f(a)g(string,)h(y)m(ou)f(can)g(use)f(the)h
(expression)f(`)p Fl(stringpool)630 2153 y(+)e Fm(o)5
b Fq(',)34 b(where)f Fm(o)38 b Fq(is)33 b(the)g(o\013set.)50
b(The)32 b(string)h(p)s(o)s(ol)g(name)g(can)g(b)s(e)g(c)m(hanged)g
(through)g(the)630 2263 y(option)e(`)p Fl(--string-pool-name)p
Fq('.)150 2423 y(`)p Fl(-Q)f Fm(string-p)s(o)s(ol-name)5
b Fq(')150 2533 y(`)p Fl(--string-pool-name=)p Fm(string-p)s(o)s
(ol-name)g Fq(')630 2642 y(Allo)m(ws)32 b(y)m(ou)g(to)g(sp)s(ecify)f
(the)g(name)h(of)f(the)h(generated)g(string)f(p)s(o)s(ol)g(created)h(b)
m(y)f(option)630 2752 y(`)p Fl(-P)p Fq('.)38 b(The)21
b(default)g(name)h(is)f(`)p Fl(stringpool)p Fq('.)36
b(This)20 b(option)i(p)s(ermits)f(the)g(use)g(of)h(t)m(w)m(o)h(hash)630
2862 y(tables)i(in)e(the)h(same)g(\014le,)i(with)d(`)p
Fl(-P)p Fq(')h(and)f(ev)m(en)h(when)f(the)h(option)g(`)p
Fl(-G)p Fq(')g(\(or,)i(equiv)-5 b(alen)m(tly)d(,)630
2971 y(the)31 b(`)p Fl(\045global-table)p Fq(')c(declaration\))32
b(is)f(giv)m(en.)150 3131 y(`)p Fl(--null-strings)p Fq(')630
3241 y(Use)39 b(NULL)g(strings)f(instead)i(of)e(empt)m(y)i(strings)e
(for)h(empt)m(y)g(k)m(eyw)m(ord)g(table)h(en)m(tries.)630
3351 y(This)e(reduces)g(the)h(startup)g(time)g(of)g(programs)g(using)f
(a)h(shared)f(library)g(con)m(taining)630 3460 y(the)j(generated)g(co)s
(de)g(\(but)f(not)h(as)f(m)m(uc)m(h)h(as)g(option)g(`)p
Fl(-P)p Fq('\),)i(at)e(the)g(exp)s(ense)f(of)h(one)630
3570 y(more)31 b(test-and-branc)m(h)f(instruction)h(at)g(run)e(time.)
150 3730 y(`)p Fl(-W)h Fm(hash-table-arra)m(y-name)5
b Fq(')150 3839 y(`)p Fl(--word-array-name=)p Fm(hash-table-arra)m
(y-name)g Fq(')630 3949 y(Allo)m(ws)41 b(y)m(ou)f(to)h(sp)s(ecify)f
(the)g(name)g(for)f(the)i(generated)g(arra)m(y)f(con)m(taining)i(the)e
(hash)630 4059 y(table.)106 b(Default)53 b(name)e(is)h(`)p
Fl(wordlist)p Fq('.)103 b(This)51 b(option)h(p)s(ermits)f(the)h(use)g
(of)g(t)m(w)m(o)630 4168 y(hash)37 b(tables)h(in)g(the)g(same)g
(\014le,)i(ev)m(en)e(when)f(the)h(option)g(`)p Fl(-G)p
Fq(')g(\(or,)i(equiv)-5 b(alen)m(tly)d(,)42 b(the)630
4278 y(`)p Fl(\045global-table)p Fq(')27 b(declaration\))33
b(is)d(giv)m(en.)150 4413 y(`)p Fl(--length-table-name=)p
Fm(length-table-arra)m(y-name)5 b Fq(')630 4522 y(Allo)m(ws)36
b(y)m(ou)e(to)i(sp)s(ecify)e(the)h(name)f(for)g(the)h(generated)h(arra)
m(y)f(con)m(taining)h(the)f(length)630 4632 y(table.)77
b(Default)43 b(name)g(is)f(`)p Fl(lengthtable)p Fq('.)74
b(This)41 b(option)i(p)s(ermits)e(the)h(use)g(of)h(t)m(w)m(o)630
4741 y(length)33 b(tables)h(in)f(the)g(same)g(\014le,)h(ev)m(en)g(when)
e(the)h(option)h(`)p Fl(-G)p Fq(')f(\(or,)h(equiv)-5
b(alen)m(tly)d(,)36 b(the)630 4851 y(`)p Fl(\045global-table)p
Fq(')27 b(declaration\))33 b(is)d(giv)m(en.)150 5011
y(`)p Fl(-S)g Fm(total-switc)m(h-statemen)m(ts)t Fq(')150
5121 y(`)p Fl(--switch=)p Fm(total-switc)m(h-statemen)m(ts)t
Fq(')630 5230 y(Causes)35 b(the)h(generated)h(C)e(co)s(de)h(to)h(use)e
(a)h Fl(switch)e Fq(statemen)m(t)k(sc)m(heme,)g(rather)d(than)630
5340 y(an)j(arra)m(y)g(lo)s(okup)g(table.)64 b(This)37
b(can)h(lead)h(to)f(a)h(reduction)f(in)f(b)s(oth)g(time)i(and)e(space)p
eop end
%%Page: 23 25
TeXDict begin 23 24 bop 150 -116 a Fq(Chapter)30 b(4:)41
b(In)m(v)m(oking)31 b Fl(gperf)2433 b Fq(23)630 299 y(requiremen)m(ts)
43 b(for)h(some)f(input)g(\014les.)80 b(The)43 b(argumen)m(t)h(to)g
(this)f(option)h(determines)630 408 y(ho)m(w)33 b(man)m(y)f
Fl(switch)f Fq(statemen)m(ts)k(are)e(generated.)49 b(A)32
b(v)-5 b(alue)34 b(of)e(1)i(generates)g(1)f Fl(switch)630
518 y Fq(con)m(taining)25 b(all)e(the)h(elemen)m(ts,)i(a)d(v)-5
b(alue)23 b(of)h(2)f(generates)h(2)g(tables)f(with)g(1/2)h(the)g
(elemen)m(ts)630 628 y(in)38 b(eac)m(h)h Fl(switch)p
Fq(,)g(etc.)65 b(This)37 b(is)h(useful)g(since)g(man)m(y)h(C)e
(compilers)i(cannot)g(correctly)630 737 y(generate)29
b(co)s(de)f(for)f(large)h Fl(switch)e Fq(statemen)m(ts.)41
b(This)27 b(option)h(w)m(as)g(inspired)e(in)h(part)g(b)m(y)630
847 y(Keith)k(Bostic's)h(original)f(C)f(program.)150
1000 y(`)p Fl(-T)p Fq(')150 1110 y(`)p Fl(--omit-struct-type)p
Fq(')630 1219 y(Prev)m(en)m(ts)f(the)e(transfer)h(of)f(the)h(t)m(yp)s
(e)g(declaration)h(to)g(the)f(output)f(\014le.)40 b(Use)28
b(this)f(option)630 1329 y(if)j(the)h(t)m(yp)s(e)f(is)h(already)g
(de\014ned)e(elsewhere.)150 1483 y(`)p Fl(-p)p Fq(')334
b(This)33 b(option)h(is)f(supp)s(orted)f(for)h(compatibilit)m(y)j(with)
d(previous)g(releases)i(of)f Fl(gperf)p Fq(.)49 b(It)630
1592 y(do)s(es)30 b(not)h(do)f(an)m(ything.)150 1841
y Fp(4.5)68 b(Options)45 b(for)g(c)l(hanging)h(the)f(Algorithms)h
(emplo)l(y)l(ed)g(b)l(y)f Fi(gperf)150 2052 y Fq(`)p
Fl(-k)30 b Fm(selected-b)m(yte-p)s(ositions)t Fq(')150
2162 y(`)p Fl(--key-positions=)p Fm(selected-b)m(yte-p)s(ositions)t
Fq(')630 2271 y(Allo)m(ws)e(selection)h(of)e(the)g(b)m(yte)h(p)s
(ositions)f(used)f(in)h(the)g(k)m(eyw)m(ords')h(hash)e(function.)39
b(The)630 2381 y(allo)m(w)m(able)24 b(c)m(hoices)g(range)e(b)s(et)m(w)m
(een)h(1-255,)j(inclusiv)m(e.)38 b(The)22 b(p)s(ositions)f(are)i
(separated)f(b)m(y)630 2491 y(commas,)27 b(e.g.,)i(`)p
Fl(-k)h(9,4,13,14)p Fq(';)25 b(ranges)h(ma)m(y)g(b)s(e)f(used,)h(e.g.,)
i(`)p Fl(-k)i(2-7)p Fq(';)d(and)e(p)s(ositions)630 2600
y(ma)m(y)c(o)s(ccur)f(in)h(an)m(y)g(order.)37 b(F)-8
b(urthermore,)22 b(the)f(wildcard)f('*')h(causes)g(the)g(generated)h
(hash)630 2710 y(function)37 b(to)h(consider)g Fc(all)g
Fq(b)m(yte)g(p)s(ositions)f(in)g(eac)m(h)i(k)m(eyw)m(ord,)h(whereas)d
('$')h(instructs)630 2819 y(the)31 b(hash)g(function)f(to)i(use)f(the)g
(\\\014nal)h(b)m(yte")g(of)f(a)h(k)m(eyw)m(ord)f(\(this)g(is)h(the)f
(only)g(w)m(a)m(y)h(to)630 2929 y(use)e(a)h(b)m(yte)g(p)s(osition)f
(greater)i(than)e(255,)i(inciden)m(tally\).)630 3060
y(F)-8 b(or)37 b(instance,)h(the)e(option)h(`)p Fl(-k)30
b(1,2,4,6-10,'$')p Fq(')i(generates)38 b(a)e(hash)g(function)f(that)630
3170 y(considers)g(p)s(ositions)g(1,2,4,6,7,8,9,10,)42
b(plus)34 b(the)i(last)g(b)m(yte)f(in)g(eac)m(h)h(k)m(eyw)m(ord)g
(\(whic)m(h)630 3280 y(ma)m(y)j(b)s(e)f(at)i(a)f(di\013eren)m(t)g(p)s
(osition)g(for)f(eac)m(h)i(k)m(eyw)m(ord,)h(ob)m(viously\).)67
b(Keyw)m(ords)38 b(with)630 3389 y(length)30 b(less)g(than)f(the)g
(indicated)h(b)m(yte)h(p)s(ositions)e(w)m(ork)g(prop)s(erly)-8
b(,)30 b(since)f(selected)i(b)m(yte)630 3499 y(p)s(ositions)k
(exceeding)h(the)g(k)m(eyw)m(ord)f(length)g(are)h(simply)e(not)i
(referenced)f(in)f(the)i(hash)630 3608 y(function.)630
3740 y(This)28 b(option)i(is)f(not)g(normally)g(needed)g(since)g(v)m
(ersion)g(2.8)i(of)e Fl(gperf)p Fq(;)f(the)h(default)g(b)m(yte)630
3849 y(p)s(ositions)36 b(are)g(computed)f(dep)s(ending)f(on)i(the)f(k)m
(eyw)m(ord)h(set,)i(through)d(a)h(searc)m(h)g(that)630
3959 y(minimizes)31 b(the)f(n)m(um)m(b)s(er)f(of)i(b)m(yte)g(p)s
(ositions.)150 4113 y(`)p Fl(-D)p Fq(')150 4222 y(`)p
Fl(--duplicates)p Fq(')630 4332 y(Handle)h(k)m(eyw)m(ords)h(whose)f
(selected)i(b)m(yte)e(sets)h(hash)e(to)i(duplicate)g(v)-5
b(alues.)46 b(Duplicate)630 4441 y(hash)33 b(v)-5 b(alues)34
b(can)h(o)s(ccur)e(if)h(a)g(set)h(of)f(k)m(eyw)m(ords)g(has)g(the)g
(same)g(names,)h(but)e(p)s(ossesses)630 4551 y(di\013eren)m(t)f
(attributes,)g(or)f(if)h(the)f(selected)i(b)m(yte)f(p)s(ositions)f(are)
h(not)f(w)m(ell)h(c)m(hosen.)44 b(With)630 4660 y(the)36
b(-D)g(option)g Fl(gperf)e Fq(treats)j(all)f(these)h(k)m(eyw)m(ords)e
(as)h(part)g(of)g(an)f(equiv)-5 b(alence)37 b(class)630
4770 y(and)31 b(generates)i(a)f(p)s(erfect)g(hash)f(function)g(with)h
(m)m(ultiple)g(comparisons)g(for)f(duplicate)630 4880
y(k)m(eyw)m(ords.)38 b(It)21 b(is)f(up)g(to)h(y)m(ou)g(to)h(completely)
g(disam)m(biguate)g(the)f(k)m(eyw)m(ords)g(b)m(y)g(mo)s(difying)630
4989 y(the)28 b(generated)g(C)f(co)s(de.)40 b(Ho)m(w)m(ev)m(er,)30
b Fl(gperf)c Fq(helps)h(y)m(ou)g(out)h(b)m(y)f(organizing)i(the)e
(output.)630 5121 y(Using)32 b(this)g(option)g(usually)g(means)g(that)g
(the)g(generated)h(hash)e(function)h(is)g(no)f(longer)630
5230 y(p)s(erfect.)48 b(On)31 b(the)i(other)g(hand,)g(it)g(p)s(ermits)f
Fl(gperf)f Fq(to)i(w)m(ork)g(on)g(k)m(eyw)m(ord)g(sets)g(that)g(it)630
5340 y(otherwise)e(could)f(not)h(handle.)p eop end
%%Page: 24 26
TeXDict begin 24 25 bop 150 -116 a Fq(Chapter)30 b(4:)41
b(In)m(v)m(oking)31 b Fl(gperf)2433 b Fq(24)150 299 y(`)p
Fl(-m)30 b Fm(iterations)t Fq(')150 408 y(`)p Fl
(--multiple-iterations=)p Fm(iterations)t Fq(')630 518
y(P)m(erform)24 b(m)m(ultiple)h(c)m(hoices)h(of)e(the)h(`)p
Fl(-i)p Fq(')f(and)g(`)p Fl(-j)p Fq(')g(v)-5 b(alues,)26
b(and)d(c)m(ho)s(ose)j(the)e(b)s(est)g(results.)630 628
y(This)34 b(increases)i(the)f(running)e(time)i(b)m(y)g(a)g(factor)h(of)
f Fm(iterations)40 b Fq(but)34 b(do)s(es)g(a)i(go)s(o)s(d)e(job)630
737 y(minimizing)d(the)f(generated)i(table)f(size.)150
907 y(`)p Fl(-i)f Fm(initial-v)-5 b(alue)5 b Fq(')150
1016 y(`)p Fl(--initial-asso=)p Fm(initial-v)-5 b(alue)5
b Fq(')630 1126 y(Pro)m(vides)29 b(an)f(initial)h Fm(v)-5
b(alue)34 b Fq(for)28 b(the)g(asso)s(ciate)i(v)-5 b(alues)29
b(arra)m(y)-8 b(.)41 b(Default)29 b(is)f(0.)41 b(Increasing)630
1235 y(the)30 b(initial)h(v)-5 b(alue)31 b(helps)e(in\015ate)h(the)g
(\014nal)g(table)h(size,)g(p)s(ossibly)e(leading)i(to)f(more)g(time)630
1345 y(e\016cien)m(t)f(k)m(eyw)m(ord)e(lo)s(okups.)39
b(Note)29 b(that)e(this)g(option)h(is)f(not)g(particularly)h(useful)e
(when)630 1455 y(`)p Fl(-S)p Fq(')i(\(or,)i(equiv)-5
b(alen)m(tly)d(,)31 b(`)p Fl(\045switch)p Fq('\))c(is)i(used.)39
b(Also,)30 b(`)p Fl(-i)p Fq(')e(is)g(o)m(v)m(erridden)h(when)e(the)i(`)
p Fl(-r)p Fq(')630 1564 y(option)i(is)f(used.)150 1733
y(`)p Fl(-j)g Fm(jump-v)-5 b(alue)5 b Fq(')150 1843 y(`)p
Fl(--jump=)p Fm(jump-v)-5 b(alue)5 b Fq(')630 1953 y(A\013ects)41
b(the)f(\\jump)f(v)-5 b(alue",)44 b(i.e.,)g(ho)m(w)c(far)g(to)g(adv)-5
b(ance)41 b(the)f(asso)s(ciated)i(b)m(yte)e(v)-5 b(alue)630
2062 y(up)s(on)29 b(collisions.)43 b Fm(Jump-v)-5 b(alue)35
b Fq(is)30 b(rounded)f(up)h(to)h(an)f(o)s(dd)g(n)m(um)m(b)s(er,)f(the)i
(default)g(is)f(5.)630 2172 y(If)g(the)g Fm(jump-v)-5
b(alue)35 b Fq(is)c(0)f Fl(gperf)f Fq(jumps)g(b)m(y)h(random)g(amoun)m
(ts.)150 2341 y(`)p Fl(-n)p Fq(')150 2451 y(`)p Fl(--no-strlen)p
Fq(')630 2560 y(Instructs)c(the)i(generator)g(not)f(to)h(include)f(the)
h(length)f(of)g(a)h(k)m(eyw)m(ord)g(when)e(computing)630
2670 y(its)41 b(hash)f(v)-5 b(alue.)72 b(This)40 b(ma)m(y)h(sa)m(v)m(e)
h(a)f(few)f(assem)m(bly)h(instructions)g(in)f(the)h(generated)630
2780 y(lo)s(okup)30 b(table.)150 2949 y(`)p Fl(-r)p Fq(')150
3059 y(`)p Fl(--random)p Fq(')630 3168 y(Utilizes)40
b(randomness)e(to)h(initialize)h(the)f(asso)s(ciated)h(v)-5
b(alues)38 b(table.)66 b(This)38 b(frequen)m(tly)630
3278 y(generates)23 b(solutions)e(faster)h(than)f(using)g
(deterministic)h(initialization)i(\(whic)m(h)d(starts)h(all)630
3387 y(asso)s(ciated)28 b(v)-5 b(alues)28 b(at)f(0\).)40
b(F)-8 b(urthermore,)28 b(using)f(the)g(randomization)g(option)h
(generally)630 3497 y(increases)j(the)g(size)g(of)f(the)h(table.)150
3666 y(`)p Fl(-s)f Fm(size-m)m(ultiple)5 b Fq(')150 3776
y(`)p Fl(--size-multiple=)p Fm(size-m)m(ultiple)g Fq(')630
3885 y(A\013ects)40 b(the)e(size)h(of)g(the)f(generated)i(hash)d
(table.)66 b(The)38 b(n)m(umeric)g(argumen)m(t)h(for)f(this)630
3995 y(option)33 b(indicates)g(\\ho)m(w)g(man)m(y)g(times)g(larger)g
(or)f(smaller")i(the)e(maxim)m(um)g(asso)s(ciated)630
4105 y(v)-5 b(alue)38 b(range)g(should)e(b)s(e,)j(in)e(relationship)h
(to)g(the)f(n)m(um)m(b)s(er)g(of)g(k)m(eyw)m(ords.)62
b(It)38 b(can)g(b)s(e)630 4214 y(written)g(as)h(an)f(in)m(teger,)43
b(a)38 b(\015oating-p)s(oin)m(t)i(n)m(um)m(b)s(er)d(or)i(a)f(fraction.)
66 b(F)-8 b(or)39 b(example,)j(a)630 4324 y(v)-5 b(alue)40
b(of)f(3)h(means)f(\\allo)m(w)i(the)f(maxim)m(um)f(asso)s(ciated)h(v)-5
b(alue)40 b(to)g(b)s(e)f(ab)s(out)g(3)g(times)630 4433
y(larger)33 b(than)g(the)g(n)m(um)m(b)s(er)e(of)i(input)f(k)m(eyw)m
(ords".)49 b(Con)m(v)m(ersely)-8 b(,)35 b(a)e(v)-5 b(alue)33
b(of)g(1/3)h(means)630 4543 y(\\allo)m(w)43 b(the)e(maxim)m(um)f(asso)s
(ciated)j(v)-5 b(alue)41 b(to)h(b)s(e)e(ab)s(out)g(3)h(times)h(smaller)
f(than)g(the)630 4653 y(n)m(um)m(b)s(er)33 b(of)i(input)f(k)m(eyw)m
(ords".)55 b(V)-8 b(alues)35 b(smaller)h(than)e(1)h(are)g(useful)f(for)
h(limiting)h(the)630 4762 y(o)m(v)m(erall)31 b(size)e(of)g(the)f
(generated)i(hash)e(table,)i(though)e(the)g(option)h(`)p
Fl(-m)p Fq(')g(is)f(b)s(etter)h(at)g(this)630 4872 y(purp)s(ose.)630
5011 y(If)44 b(`generate)h(switc)m(h')g(option)g(`)p
Fl(-S)p Fq(')f(\(or,)k(equiv)-5 b(alen)m(tly)d(,)49 b(`)p
Fl(\045switch)p Fq('\))43 b(is)h Fj(not)54 b Fq(enabled,)630
5121 y(the)45 b(maxim)m(um)h(asso)s(ciated)g(v)-5 b(alue)46
b(in\015uences)f(the)g(static)i(arra)m(y)f(table)g(size,)k(and)45
b(a)630 5230 y(larger)27 b(table)g(should)e(decrease)i(the)f(time)h
(required)e(for)h(an)f(unsuccessful)g(searc)m(h,)j(at)f(the)630
5340 y(exp)s(ense)j(of)g(extra)i(table)f(space.)p eop
end
%%Page: 25 27
TeXDict begin 25 26 bop 150 -116 a Fq(Chapter)30 b(4:)41
b(In)m(v)m(oking)31 b Fl(gperf)2433 b Fq(25)630 299 y(The)35
b(default)g(v)-5 b(alue)36 b(is)f(1,)i(th)m(us)e(the)h(default)f(maxim)
m(um)g(asso)s(ciated)i(v)-5 b(alue)36 b(ab)s(out)f(the)630
408 y(same)h(size)g(as)f(the)h(n)m(um)m(b)s(er)e(of)h(k)m(eyw)m(ords)h
(\(for)g(e\016ciency)-8 b(,)38 b(the)d(maxim)m(um)g(asso)s(ciated)630
518 y(v)-5 b(alue)36 b(is)g(alw)m(a)m(ys)h(rounded)d(up)g(to)i(a)g(p)s
(o)m(w)m(er)g(of)f(2\).)57 b(The)35 b(actual)i(table)g(size)f(ma)m(y)g
(v)-5 b(ary)630 628 y(somewhat,)31 b(since)g(this)f(tec)m(hnique)h(is)g
(essen)m(tially)h(a)f(heuristic.)150 885 y Fp(4.6)68
b(Informativ)l(e)47 b(Output)150 1103 y Fq(`)p Fl(-h)p
Fq(')150 1212 y(`)p Fl(--help)p Fq(')142 b(Prin)m(ts)24
b(a)g(short)f(summary)g(on)h(the)g(meaning)g(of)g(eac)m(h)h(program)e
(option.)39 b(Ab)s(orts)23 b(further)630 1322 y(program)30
b(execution.)150 1481 y(`)p Fl(-v)p Fq(')150 1591 y(`)p
Fl(--version)p Fq(')630 1700 y(Prin)m(ts)g(out)h(the)f(curren)m(t)h(v)m
(ersion)f(n)m(um)m(b)s(er.)150 1860 y(`)p Fl(-d)p Fq(')150
1969 y(`)p Fl(--debug)p Fq(')94 b(Enables)28 b(the)h(debugging)f
(option.)40 b(This)28 b(pro)s(duces)f(v)m(erb)s(ose)i(diagnostics)g(to)
g(\\standard)630 2079 y(error")i(when)g Fl(gperf)f Fq(is)h(executing.)
45 b(It)32 b(is)f(useful)g(b)s(oth)g(for)g(main)m(taining)i(the)e
(program)630 2188 y(and)f(for)h(determining)g(whether)f(a)h(giv)m(en)h
(set)f(of)g(options)g(is)g(actually)i(sp)s(eeding)d(up)g(the)630
2298 y(searc)m(h)41 b(for)e(a)h(solution.)70 b(Some)40
b(useful)f(information)h(is)g(dump)s(ed)e(at)i(the)g(end)g(of)g(the)630
2408 y(program)30 b(when)g(the)g(`)p Fl(-d)p Fq(')g(option)h(is)g
(enabled.)p eop end
%%Page: 26 28
TeXDict begin 26 27 bop 150 -116 a Fq(Chapter)30 b(5:)41
b(Kno)m(wn)30 b(Bugs)g(and)g(Limitations)h(with)f Fl(gperf)1397
b Fq(26)150 299 y Fn(5)80 b(Kno)l(wn)53 b(Bugs)f(and)i(Limitations)f
(with)f Fk(gperf)275 533 y Fq(The)29 b(follo)m(wing)j(are)f(some)g
(limitations)h(with)e(the)g(curren)m(t)h(release)g(of)g
Fl(gperf)p Fq(:)225 667 y Fo(\017)60 b Fq(The)31 b Fl(gperf)g
Fq(utilit)m(y)i(is)f(tuned)f(to)h(execute)h(quic)m(kly)-8
b(,)34 b(and)d(w)m(orks)h(quic)m(kly)g(for)g(small)g(to)h(medium)330
777 y(size)i(data)g(sets)g(\(around)f(1000)i(k)m(eyw)m(ords\).)54
b(It)34 b(is)h(extremely)h(useful)d(for)h(main)m(taining)i(p)s(erfect)
330 887 y(hash)k(functions)h(for)f(compiler)i(k)m(eyw)m(ord)f(sets.)72
b(Sev)m(eral)42 b(recen)m(t)g(enhancemen)m(ts)g(no)m(w)e(enable)330
996 y Fl(gperf)31 b Fq(to)j(w)m(ork)e(e\016cien)m(tly)j(on)d(m)m(uc)m
(h)h(larger)g(k)m(eyw)m(ord)g(sets)g(\(o)m(v)m(er)i(15,000)g(k)m(eyw)m
(ords\).)48 b(When)330 1106 y(pro)s(cessing)30 b(large)i(k)m(eyw)m(ord)
e(sets)h(it)g(helps)f(greatly)i(to)f(ha)m(v)m(e)g(o)m(v)m(er)h(8)f
(megs)g(of)f(RAM.)225 1240 y Fo(\017)60 b Fq(The)43 b(size)i(of)f(the)g
(generate)h(static)h(k)m(eyw)m(ord)e(arra)m(y)g(can)g(get)h
Fj(extr)-5 b(emely)53 b Fq(large)45 b(if)f(the)g(input)330
1350 y(k)m(eyw)m(ord)d(\014le)f(is)g(large)i(or)e(if)g(the)h(k)m(eyw)m
(ords)f(are)h(quite)g(similar.)70 b(This)40 b(tends)g(to)h(slo)m(w)f
(do)m(wn)330 1460 y(the)35 b(compilation)h(of)f(the)f(generated)i(C)e
(co)s(de,)i(and)e Fj(gr)-5 b(e)g(atly)44 b Fq(in\015ates)35
b(the)g(ob)5 b(ject)35 b(co)s(de)g(size.)54 b(If)330
1569 y(this)40 b(situation)h(o)s(ccurs,)h(consider)e(using)f(the)h(`)p
Fl(-S)p Fq(')g(option)g(to)h(reduce)e(data)i(size,)i(p)s(oten)m(tially)
330 1679 y(increasing)h(k)m(eyw)m(ord)g(recognition)h(time)f(a)g
(negligible)i(amoun)m(t.)80 b(Since)44 b(man)m(y)f(C)h(compilers)330
1788 y(cannot)37 b(correctly)i(generate)f(co)s(de)f(for)g(large)h
(switc)m(h)f(statemen)m(ts)i(it)e(is)g(imp)s(ortan)m(t)g(to)h(qualify)
330 1898 y(the)i Fm(-S)46 b Fq(option)40 b(with)g(an)g(appropriate)g(n)
m(umerical)h(argumen)m(t)f(that)h(con)m(trols)h(the)e(n)m(um)m(b)s(er)f
(of)330 2007 y(switc)m(h)31 b(statemen)m(ts)h(generated.)225
2142 y Fo(\017)60 b Fq(The)35 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i
(selected)h(b)m(yte)f(p)s(ositions)f(has)g(an)h(arbitrary)f(limit)h(of)
g(255.)57 b(This)330 2252 y(restriction)29 b(should)e(b)s(e)g(remo)m(v)
m(ed,)j(and)d(if)h(an)m(y)m(one)h(considers)f(this)g(a)g(problem)f
(write)i(me)f(and)f(let)330 2361 y(me)j(kno)m(w)h(so)f(I)h(can)f(remo)m
(v)m(e)i(the)f(constrain)m(t.)p eop end
%%Page: 27 29
TeXDict begin 27 28 bop 150 -116 a Fq(Chapter)30 b(6:)41
b(Things)29 b(Still)i(Left)g(to)g(Do)2133 b(27)150 299
y Fn(6)80 b(Things)53 b(Still)g(Left)g(to)g(Do)275 533
y Fq(It)24 b(should)f(b)s(e)h(\\relativ)m(ely")k(easy)d(to)g(replace)g
(the)g(curren)m(t)f(p)s(erfect)g(hash)g(function)g(algorithm)h(with)150
643 y(a)35 b(more)f(exhaustiv)m(e)h(approac)m(h;)i(the)d(p)s(erfect)h
(hash)e(mo)s(dule)h(is)g(essen)m(tial)i(indep)s(enden)m(t)d(from)h
(other)150 752 y(program)c(mo)s(dules.)40 b(Additional)31
b(w)m(orth)m(while)g(impro)m(v)m(emen)m(ts)h(include:)225
887 y Fo(\017)60 b Fq(Another)34 b(useful)f(extension)h(in)m(v)m(olv)m
(es)i(mo)s(difying)d(the)h(program)f(to)i(generate)g(\\minimal")g(p)s
(er-)330 996 y(fect)42 b(hash)f(functions)f(\(under)h(certain)h
(circumstances,)j(the)c(curren)m(t)g(v)m(ersion)h(can)f(b)s(e)g(rather)
330 1106 y(extra)m(v)-5 b(agan)m(t)39 b(in)d(the)h(generated)g(table)g
(size\).)60 b(This)36 b(is)g(mostly)h(of)g(theoretical)h(in)m(terest,)i
(since)330 1215 y(a)f(sparse)f(table)h(often)g(pro)s(duces)e(faster)i
(lo)s(okups,)h(and)e(use)g(of)h(the)g(`)p Fl(-S)p Fq(')f
Fl(switch)f Fq(option)i(can)330 1325 y(minimize)g(the)g(data)g(size,)j
(at)d(the)g(exp)s(ense)f(of)h(sligh)m(tly)h(longer)f(lo)s(okups)f
(\(note)i(that)f(the)g(gcc)330 1435 y(compiler)e(generally)g(pro)s
(duces)e(go)s(o)s(d)h(co)s(de)g(for)g Fl(switch)f Fq(statemen)m(ts,)k
(reducing)d(the)g(need)g(for)330 1544 y(more)31 b(complex)g(sc)m
(hemes\).)225 1679 y Fo(\017)60 b Fq(In)38 b(addition)h(to)h(impro)m
(ving)f(the)h(algorithm,)i(it)d(w)m(ould)g(also)h(b)s(e)f(useful)f(to)h
(generate)i(an)e(Ada)330 1788 y(pac)m(k)-5 b(age)32 b(as)f(the)g(co)s
(de)f(output,)g(in)g(addition)h(to)g(the)g(curren)m(t)f(C)g(and)g(C)p
Fl(++)f Fq(routines.)p eop end
%%Page: 28 30
TeXDict begin 28 29 bop 150 -116 a Fq(Chapter)30 b(7:)41
b(Bibliograph)m(y)2536 b(28)150 299 y Fn(7)80 b(Bibliograph)l(y)275
533 y Fq([1])22 b(Chang,)h(C.C.:)36 b Fj(A)24 b(Scheme)h(for)g
(Constructing)h(Or)-5 b(der)g(e)g(d)26 b(Minimal)f(Perfe)-5
b(ct)24 b(Hashing)h(F)-7 b(unctions)150 643 y Fq(Information)30
b(Sciences)h(39\(1986\),)j(187-195.)275 777 y([2])26
b(Cic)m(helli,)i(Ric)m(hard)e(J.)f Fj(A)n(uthor's)k(R)-5
b(esp)g(onse)30 b(to)f(\\On)f(Cichel)5 b(li's)28 b(Minimal)h(Perfe)-5
b(ct)28 b(Hash)g(F)-7 b(unc-)150 887 y(tions)33 b(Metho)-5
b(d")38 b Fq(Comm)m(unications)31 b(of)g(the)f(A)m(CM,)h(23,)h
(12\(Decem)m(b)s(er)g(1980\),)h(729.)275 1021 y([3])f(Cic)m(helli,)i
(Ric)m(hard)d(J.)h Fj(Minimal)i(Perfe)-5 b(ct)33 b(Hash)i(F)-7
b(unctions)34 b(Made)g(Simple)39 b Fq(Comm)m(unications)150
1131 y(of)31 b(the)f(A)m(CM,)h(23,)h(1\(Jan)m(uary)f(1980\),)h(17-19.)
275 1265 y([4])22 b(Co)s(ok,)h(C.)e(R.)g(and)f(Oldeho)s(eft,)j(R.R.)f
Fj(A)h(L)-5 b(etter)25 b(Oriente)-5 b(d)25 b(Minimal)f(Perfe)-5
b(ct)24 b(Hashing)g(F)-7 b(unction)150 1375 y Fq(SIGPLAN)30
b(Notices,)i(17,)g(9\(Septem)m(b)s(er)f(1982\),)h(18-27.)275
1509 y([5])22 b(Cormac)m(k,)j(G.)d(V.)g(and)g(Horsp)s(o)s(ol,)h(R.)f
(N.)g(S.)g(and)f(Kaiserw)m(erth,)j(M.)f Fj(Pr)-5 b(actic)g(al)26
b(Perfe)-5 b(ct)25 b(Hashing)150 1619 y Fq(Computer)30
b(Journal,)g(28,)h(1\(Jan)m(uary)g(1985\),)i(54-58.)275
1753 y([6])28 b(Jaesc)m(hk)m(e,)j(G.)d Fj(R)-5 b(e)g(cipr)g(o)g(c)g(al)
34 b(Hashing:)41 b(A)30 b(Metho)-5 b(d)31 b(for)g(Gener)-5
b(ating)32 b(Minimal)e(Perfe)-5 b(ct)31 b(Hashing)150
1863 y(F)-7 b(unctions)39 b Fq(Comm)m(unications)31 b(of)f(the)h(A)m
(CM,)g(24,)g(12\(Decem)m(b)s(er)i(1981\),)g(829-833.)275
1998 y([7])22 b(Jaesc)m(hk)m(e,)i(G.)e(and)f(Osterburg,)h(G.)g
Fj(On)h(Cichel)5 b(li's)25 b(Minimal)f(Perfe)-5 b(ct)24
b(Hash)h(F)-7 b(unctions)25 b(Metho)-5 b(d)150 2107 y
Fq(Comm)m(unications)31 b(of)f(the)h(A)m(CM,)g(23,)h(12\(Decem)m(b)s
(er)g(1980\),)h(728-729.)275 2242 y([8])25 b(Sager,)h(Thomas)e(J.)h
Fj(A)h(Polynomial)j(Time)f(Gener)-5 b(ator)29 b(for)f(Minimal)f(Perfe)
-5 b(ct)27 b(Hash)h(F)-7 b(unctions)150 2351 y Fq(Comm)m(unications)31
b(of)f(the)h(A)m(CM,)g(28,)h(5\(Decem)m(b)s(er)g(1985\),)g(523-532)275
2486 y([9])f(Sc)m(hmidt,)f(Douglas)h(C.)f Fj(GPERF:)i(A)g(Perfe)-5
b(ct)32 b(Hash)h(F)-7 b(unction)33 b(Gener)-5 b(ator)42
b Fq(Second)30 b(USENIX)150 2595 y(C)p Fl(++)f Fq(Conference)i(Pro)s
(ceedings,)g(April)f(1990.)275 2730 y([10])42 b(Sc)m(hmidt,)i(Douglas)e
(C.)f Fj(GPERF:)i(A)e(Perfe)-5 b(ct)43 b(Hash)g(F)-7
b(unction)43 b(Gener)-5 b(ator)53 b Fq(C)p Fl(++)40 b
Fq(Rep)s(ort,)150 2839 y(SIGS)29 b(10)j(10)f(\(No)m(v)m(em)m(b)s
(er/Decem)m(b)s(er)i(1998\).)275 2974 y([11])24 b(Seb)s(esta,)h(R.W.)e
(and)g(T)-8 b(a)m(ylor,)26 b(M.A.)e Fj(Minimal)i(Perfe)-5
b(ct)26 b(Hash)g(F)-7 b(unctions)27 b(for)g(R)-5 b(eserve)g(d)27
b(Wor)-5 b(d)150 3083 y(Lists)38 b Fq(SIGPLAN)30 b(Notices,)j(20,)e
(12\(Septem)m(b)s(er)g(1985\),)i(47-53.)275 3218 y([12])43
b(Sprugnoli,)h(R.)e Fj(Perfe)-5 b(ct)43 b(Hashing)h(F)-7
b(unctions:)64 b(A)43 b(Single)g(Pr)-5 b(ob)g(e)44 b(R)-5
b(etrieving)44 b(Metho)-5 b(d)44 b(for)150 3328 y(Static)33
b(Sets)38 b Fq(Comm)m(unications)31 b(of)g(the)f(A)m(CM,)i(20)f(11\(No)
m(v)m(em)m(b)s(er)i(1977\),)f(841-850.)275 3462 y([13])27
b(Stallman,)h(Ric)m(hard)e(M.)h Fj(Using)h(and)i(Porting)f(GNU)g(CC)39
b Fq(F)-8 b(ree)28 b(Soft)m(w)m(are)f(F)-8 b(oundation,)28
b(1988.)275 3597 y([14])j(Stroustrup,)e(Bjarne)i Fj(The)h(C)p
Fl(++)g Fj(Pr)-5 b(o)g(gr)g(amming)36 b(L)-5 b(anguage.)40
b Fq(Addison-W)-8 b(esley)g(,)33 b(1986.)275 3731 y([15])e(Tiemann,)f
(Mic)m(hael)j(D.)e Fj(User's)h(Guide)h(to)g(GNU)f(C)p
Fl(++)e Fq(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31
b(1989.)p eop end
%%Page: 29 31
TeXDict begin 29 30 bop 150 -116 a Fq(Concept)31 b(Index)2927
b(29)150 299 y Fn(Concept)52 b(Index)275 658 y Fb(\(Index)24
b(is)i(nonexisten)n(t\))p eop end
%%Page: -1 32
TeXDict begin -1 31 bop 3725 -116 a Fq(i)150 299 y Fn(T)-13
b(able)53 b(of)h(Con)l(ten)l(ts)150 641 y Fp(GNU)45 b(GENERAL)g(PUBLIC)
g(LICENSE)31 b Fa(.)19 b(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)75
b Fp(1)449 778 y Fq(Pream)m(ble)16 b Fj(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)45 b Fq(1)449 888
y(TERMS)29 b(AND)j(CONDITIONS)d(F)m(OR)h(COPYING,)h(DISTRIBUTION)631
997 y(AND)g(MODIFICA)-8 b(TION)24 b Fj(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b Fq(2)449 1107
y(Ho)m(w)31 b(to)g(Apply)f(These)g(T)-8 b(erms)30 b(to)h(Y)-8
b(our)31 b(New)f(Programs)16 b Fj(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)46 b Fq(6)150 1349 y Fp(Con)l(tributors)g(to)f(GNU)g
Fi(gperf)e Fp(Utilit)l(y)16 b Fa(.)21 b(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)f(.)g(.)h(.)60 b Fp(8)150 1619 y(1)135 b(In)l(tro)t(duction)15
b Fa(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f
(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)60
b Fp(9)150 1889 y(2)135 b(Static)45 b(searc)l(h)h(structures)f(and)f
(GNU)h Fi(gperf)15 b Fa(.)i(.)j(.)f(.)60 b Fp(10)150
2159 y(3)135 b(High-Lev)l(el)46 b(Description)g(of)f(GNU)g
Fi(gperf)21 b Fa(.)c(.)i(.)h(.)f(.)h(.)65 b Fp(11)449
2296 y Fq(3.1)92 b(Input)29 b(F)-8 b(ormat)32 b(to)f
Fl(gperf)23 b Fj(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)54 b Fq(11)748 2405 y(3.1.1)93 b(Declarations)9
b Fj(.)17 b(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)39 b Fq(11)1047 2515 y(3.1.1.1)93 b(User-supplied)30
b Fl(struct)10 b Fj(.)j(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)39 b Fq(12)1047 2624 y(3.1.1.2)93
b(Gp)s(erf)30 b(Declarations)18 b Fj(.)f(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)47 b Fq(12)1047
2734 y(3.1.1.3)93 b(C)30 b(Co)s(de)g(Inclusion)f Fj(.)15
b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)59 b Fq(15)748 2844 y(3.1.2)93 b(F)-8 b(ormat)31
b(for)f(Keyw)m(ord)g(En)m(tries)17 b Fj(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 b Fq(16)748
2953 y(3.1.3)93 b(Including)29 b(Additional)i(C)f(F)-8
b(unctions)19 b Fj(.)d(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)49 b Fq(17)748 3063 y(3.1.4)93 b(Where)30 b(to)h(place)h
(directiv)m(es)f(for)g(GNU)g Fl(indent)p Fq(.)17 b Fj(.)c(.)i(.)g(.)g
(.)g(.)46 b Fq(17)449 3172 y(3.2)92 b(Output)29 b(F)-8
b(ormat)32 b(for)e(Generated)h(C)f(Co)s(de)g(with)g Fl(gperf)23
b Fj(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)52 b Fq(17)449
3282 y(3.3)92 b(Use)31 b(of)f(NUL)h(b)m(ytes)22 b Fj(.)16
b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
f(.)g(.)51 b Fq(18)150 3524 y Fp(4)135 b(In)l(v)l(oking)45
b Fi(gperf)16 b Fa(.)i(.)h(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)61
b Fp(19)449 3661 y Fq(4.1)92 b(Sp)s(ecifying)30 b(the)g(Lo)s(cation)i
(of)e(the)h(Output)e(File)19 b Fj(.)e(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)49 b Fq(19)449 3771 y(4.2)92 b(Options)30
b(that)h(a\013ect)h(In)m(terpretation)f(of)g(the)f(Input)f(File)g
Fj(.)15 b(.)g(.)g(.)g(.)g(.)g(.)57 b Fq(19)449 3880 y(4.3)92
b(Options)30 b(to)h(sp)s(ecify)f(the)h(Language)g(for)f(the)h(Output)e
(Co)s(de)14 b Fj(.)g(.)h(.)g(.)g(.)43 b Fq(19)449 3990
y(4.4)92 b(Options)30 b(for)g(\014ne)g(tuning)g(Details)i(in)e(the)h
(Output)e(Co)s(de)23 b Fj(.)15 b(.)g(.)g(.)g(.)g(.)g(.)53
b Fq(20)449 4100 y(4.5)92 b(Options)30 b(for)g(c)m(hanging)h(the)g
(Algorithms)g(emplo)m(y)m(ed)g(b)m(y)g Fl(gperf)21 b
Fj(.)14 b(.)50 b Fq(23)449 4209 y(4.6)92 b(Informativ)m(e)31
b(Output)c Fj(.)15 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)58 b Fq(25)150 4452 y Fp(5)135 b(Kno)l(wn)45
b(Bugs)f(and)h(Limitations)i(with)e Fi(gperf)32 b Fa(.)19
b(.)g(.)79 b Fp(26)150 4721 y(6)135 b(Things)44 b(Still)i(Left)g(to)f
(Do)23 b Fa(.)d(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h
(.)f(.)g(.)h(.)f(.)68 b Fp(27)150 4991 y(7)135 b(Bibliograph)l(y)38
b Fa(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)82
b Fp(28)150 5261 y(Concept)45 b(Index)21 b Fa(.)e(.)g(.)h(.)f(.)h(.)f
(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)
f(.)g(.)h(.)f(.)h(.)f(.)h(.)65 b Fp(29)p eop end
%%Trailer

userdict /end-hook known{end-hook}if
%%EOF