summaryrefslogtreecommitdiff
path: root/doc/pyOpenSSL.ps
blob: 29b19affe99a6ce972dad4318a745cbe4d9c94a0 (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
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
%%Title: pyOpenSSL.dvi
%%Pages: 14
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -N0 -o pyOpenSSL.ps pyOpenSSL
%DVIPSParameters: dpi=600, compressed
%DVIPSSource:  TeX output 2005.03.14:1158
%%BeginProcSet: texc.pro
%!
/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/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/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]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
forall N/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
TeXDict begin 39158280 55380996 1000 600 600 (pyOpenSSL.dvi)
@start
%DVIPSBitmapFont: Fa ectt0800 8 14
/Fa 14 122 df<90380FE0E090383FF9F0EBFFFD4813FF5A3807FC3F380FF00F381FC007
A2383F80031300481301127EA2007CEB00E000FC1400A25AA97EA2127C007E14E0EC01F0
127F7EEB8003EA1FC0EC07E0380FF00F3907FC1FC06CB512806C14006C5BEB3FF8EB0FE0
1C2B7DA923>67 D<B612F015F8A4380F8000A515701500A21438147CA3EBFFFCA5EB807C
A3143891C7FCA3151C153EA6B612FEA415FC1F297EA823>69 D<3803FFF0000F13FC487F
487FA2397F807F80387E001F007C130FA200FC14C0481307B3A46C130FA2007C1480A200
7E131F387F807F6CB51200A26C5B6C5B000313F01A2B7CA923>79
D<B512F014FE80158015C0390F801FE0EC07F01403140115F81400A5140115F014031407
EC1FE090B512C0158015005C14F00180C7FCABEAFFF87FA35B1D297EA823>I<007FB512
80B612C0A46C14801A067C7E23>95 D<3803FF80000F13E04813F8487F80EB80FFEC3F80
381F001FC7FC140F14FF137F0003B5FC120F5A387FF00F130012FCA25A141F7E6C133F38
7F81FF90B512FC6C14FE7E000713C73901FE01FC1F1D7D9C23>97
D<B47E7FA41207A7EBC1FCEBC7FF01DF13C090B512E015F09038FE0FF8EBF8039038F001
FCEBE000A249137EA2153EA5157E7F15FC7F14019038F803F89038FE0FF090B5FC15E001
DF138001CF1300380383F81F297FA823>I<EB3FF0EBFFFC000313FF5A5A381FE07FEA3F
80387F003E007E90C7FCA25AA25AA57EA2007E1307007FEB0F80141FEA3FC0391FF07F00
6CB5FC6C5B6C5BC613F0EB3FC0191D7B9C23>I<EB3FC0EBFFF800037F4813FF48148038
1FF07F393F801FC0EB000F007E130715E05AB6FCA415C000F8C8FC7EA2007EEB01C0007F
EB03E0383F800713E0391FF81FC06CB5FC6C14800001EBFE006C6C5AEB1FE01B1D7D9C23
>101 D<14E0EB03F8A5EB00E01400A63803FFF04813F8A37EC7FCB3AB13011238387C03
F012FEEB0FE0B5FC14C06C13006C5AEA0FF815397DA923>106 D<EA7FFEB5FCA37EEA00
1FB3AD007FB512C0B612E0A36C14C01B297CA823>108 D<137013F8A7007FB51280B612
C0A36C1480D800F8C7FCACEC01C0EC03E0A3EBFC07140F9038FE1FC0EB7FFF158090383F
FE00EB0FFCEB07F01B257EA423>116 D<39FFF03FFCA5390F8007C000071480A2EBC00F
00031400A26D5A0001131EA2EBF03E0000133CA2EBF87CEB7878A2EB7CF8EB3CF0A2133F
6D5AA36D5A6D5A1E1D7E9C23>118 D<39FFF03FFCA539078007C0158013C00003130F15
00EA01E05CEBF01E1200A26D5A1378A26D5AA3EB1E7014F0130EEB0FE0A213075CA35CA2
130F91C7FCA2EA3E1FEA7F1E133EEA7CFC127F5B6C5A6C5AEA0F801E2C7E9C23>121
D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fb ecti0800 8 6
/Fb 6 119 df<EB07C0EB1FF090387C39C0EBF81FEA01F03803E00FEA07C0120FD81F80
1380A2EA3F00141F481400127EA25C00FE133E5AA2EC7E18EC7C385AA214FCD878011378
397C03F870A2393C0F78E0381E1E3D390FF81FC03903E00F001D1F799D24>97
D<13F8121FA21201A25BA21203A25BA21207A25BA2120FEBC7C0EB9FF0EBF878381FF03C
EBE03EEBC01EEB801FEA3F00A2123EA2007E133FA2127CA2147F00FC137E5AA214FCA214
F8130114F0EB03E0EA780714C0383C0F80381E3E00EA0FF8EA03E0182F78AD21>I<EB03
F8EB0FFEEB3E0FEBF8073901F00380EA03E0EA07C0000F1307D81F8013005C383F001E5C
387F03F8EBFFE049C7FC007EC8FC12FE5AA4127CEC0180EC03C0EC07806CEB0F00141E6C
137C380F83F03803FFC0C648C7FC1A1F799D21>101 D<131FEA03FFA2EA003FA2133EA2
137EA2137CA213FCA25BA21201147E9038F3FF809038F787C03903FE03E013FC13F8A2EA
07F013E0A213C0000F130715C01380A2001F130F15801300141F481406150E003E133F14
3E007E141EEC7E1C007C137CEC3C3812FC157048EB1FE00070EB07801F2F7BAD24>104
D<EB0FC0EB7FF0EBF03C3801E01C3803C01EEA0780143EA2000F133C1418EBC00013F813
FF6C13C06C13E06C13F0EA007F130713031301EA780012FCA2130100F813E012E0EB03C0
38F0078038781F00EA1FFCEA07F0171F7A9D1D>115 D<3903C001C0390FF003E0391E78
07F0EA1C7C1238007813030070130113FCD8F0F813E012E000E1130038C1F001000114C0
120313E014030007148013C0A2EC0700120F1380140EA25C12076D5A00035B6D5AC6B45A
013FC7FC1C1F7A9D21>118 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fc ecrm1440 14.4 2
/Fc 2 94 df<B512C0A248C7FCB3B3B3B3B3B3A8B512C0A2127875D920>91
D<B512C0A2EA001FB3B3B3B3B3B3A8B5FCA212787ED920>93 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fd ecti1000 10 40
/Fd 40 123 df<04FFEB03F003039038E00FFC923A0FC0F01F1E923A3F00783E0F923A7E
01F87C3FDB7C03EBFC7F03FC14F8DA01F813F905F1137EDC01E1133C913B03F00003F000
A314074B130760A3140F4B130F60A3010FB812C0A3903C001F80001F8000A3023F143F92
C790C7FCA44A5C027E147EA402FE14FE4A5CA413014A13015FA313034A13035FA313074A
495AA44948495AA44948495AA3001CD9038090C8FC007E90380FC03F013E143E00FE011F
5B133C017C5C3AF8780F01E0D878F0EB07C0273FE003FFC9FC390F8000FC404C82BA33>
27 D<EE3FFC4BB51280923907E007C092391F8001E0DB3F0013F0037E13034B1307A24A
5A18E04A48EB038094C7FCA314075DA4140F5DA3010FB7FCA25F903A001F80007EA217FE
023F5C92C7FCA216015F5C147E16035FA214FE4A13075FA30101140F5F4AECC1C0A2161F
1783010316805CA2EF870013074A5CEE0F8EEE079EEE03FC010FEC00F04A91C7FCA35C13
1FA2001C90CAFC127E5BEAFE3E133C137CEAF878EA78F0EA3FE0EA0F80344C82BA2F>I<
EE7FE0923903FFFC7E92380FC03E92381F000F033EEB3FFE4B137F03FC14FC5D1401173D
4A48EB01F8A21703A24A4814F0A21707A2020F15E05D170FA218C0010FB7FCA3903B001F
80001F80A2173F143F92C71300A25FA24A147E147E17FEA25F14FE4A1301A25FA2010114
035CEFF070A21607010316F04AECE0E0A3EFE1C013074A14C3933803E380EE01E7933800
FF004948143C94C7FCA3495AA3001C90CAFC127E133E12FE133C137CEAF878EA78F0EA3F
E0EA0F80374C82BA31>I<14F0EB03FCA21307A3EB0FF8A314F0A3EB1FE0A314C0A3EB3F
80A31400A3137EA3137CA35BA35BA3485AA45B1203A2C8FCA8120EEA3F80127F12FFA390
C7FC127E123C163C77BB19>33 D<EA03C0EA07F0120F121F13F8A313F0EA07B0EA003013
701360A213E013C01201EA038013005A120E5A5A5A5A5A0D197A8819>44
D<120EEA3F80127F12FFA31300127E123C0909778819>46 D<EC03F8EC1FFEEC7C1F9138
F00F80903903E007C0903807C003D90F8013E014005B013E14F0A25B13FCA2485AA20003
1407A25B000715E0A249130F120FA34848EB1FC0A44848EB3F80A448C7EA7F00A3157E00
7E14FEA200FE5C14015D5A4A5AA25D1407007C5C4A5AA24AC7FC6C133E5C6C5B380F83E0
3807FF80C648C8FC243977B62A>48 D<01031438496C13F89138F007F091B512E0168049
14005D15F815C0D91E1CC7FC011CC8FCA3133C1338A313781370A2147F9038F1FFC09038
E783E09038FE01F09038F800F8485A497F49137C5BC8127EA315FEA414015D121E127F14
03485CA248495A12F800E05C140F4A5A5D6C49C7FC147E00785B387C01F8383E07F0381F
FFC06C90C8FCEA03F8253977B62A>53 D<EC03F8EC0FFE91383FFF809138FE0FC0903901
F807E0903803F003D907E013F090380FC001EB1F80EB3F004914F8137E13FEA2485A1503
A212035B16F0150712075B150FA216E0151F6C5A153F6DEB7FC0120115FF6C6C5A903978
03BF8090383C0F3FEB1FFC903907F07F0090C7FC157E15FE5D14015D4A5AA2003E495A00
7F495A5D141F00FE49C7FC48137E00705B387803F0387C0FE0383FFF806C48C8FCEA03F8
253978B62A>57 D<902603FFF891B512E0A281D90007923807F8006F6E5A61020F5E81DA
0E7F5DA2021E6D1307033F92C7FC141C82DA3C1F5C70130EEC380FA202786D131E030714
1C147082DAF003143C70133814E0150101016E1378030014705C8201036E13F0604A1480
163F010715C1041F5B91C7FC17E149EC0FE360010E15F31607011E15FF95C8FC011C80A2
013C805F1338160013785F01F8157CEA03FC267FFFE0143CB51538A243397CB83E>78
D<0103B612F017FEEFFF80903B0007F8003FC04BEB0FF01707020FEC03F8EF01FC5DA202
1F15FEA25DA2143FEF03FC5DA2027FEC07F818F092C7120F18E04AEC1FC0EF3F004A14FE
EE01F80101EC0FE091B6128004FCC7FC9138FC003F0103EC0F80834A6D7E8301071403A2
5C83010F14075F5CA2011F140FA25CA2133F161F4AECE007A2017F160F180E91C7FC4902
0F131C007F01FE153CB5913807F078040313F0CAEAFFE0EF3F80383B7CB83D>82
D<B5D8F80FB590381FFFF06102F018E0D807FEC7D87FE0903803FE00D803F8DA3F806D5A
F100F0A24F5A621903621907047F92C7FC190E16FF4B5DA2DB03BF5C7F0001DA073F5CA2
030E5D83DB1C1F495A180303385D4EC8FC157003F0140E15E0DA01C05CA2DA03805CA2DA
07005CA2020E5D17C14A5DEFC3805C027802C7C9FC14704A14CE13FE6C6C4814DCA24A14
F8A291C75B160F495D5F5B5F5B4992CAFCA249140E4C3B6FB853>87
D<49B5D8F007B5FCA3D9000790C713E0DA03FCEC7F00187C020115786F5C4D5A02005D6F
495A4DC7FC6F5BEE801E5F033F5BEEC0705F92381FC1C016E3EEE780DB0FEFC8FC16FE6F
5A5EA2150382A2150782150F151CED3CFF5D4B7EDA01E07FEDC03FDA03807FEC0700020E
131F021E805C4A130F0270805C49481307494880130749C71203011E81133E01FE81D807
FF1407B500E090387FFFFC93B5FC6040397CB83E>I<B812FC17FEA217FC2F047C7040>
95 D<14F8EB07FE90381F871C90383E03FE137CEBF801120148486C5A485A120FEBC001
001F5CA2EA3F801403007F5C1300A21407485C5AA2140F5D48ECC1C0A2141F1583168014
3F1587007C017F1300ECFF076C485B9038038F8E391F0F079E3907FE03FC3901F000F022
2677A42A>97 D<133FEA1FFFA3C67E137EA313FE5BA312015BA312035BA31207EBE0F8EB
E7FE9038EF0F80390FFC07C013F89038F003E013E0D81FC013F0A21380A2123F1300A214
075A127EA2140F12FE4814E0A2141F15C05AEC3F80A215005C147E5C387801F8007C5B38
3C03E0383E07C0381E1F80D80FFEC7FCEA01F01C3B77B926>I<147F903803FFC090380F
C1E090381F0070017E13784913383901F801F83803F003120713E0120FD81FC013F091C7
FC485AA2127F90C8FCA35A5AA45AA3153015381578007C14F0007EEB01E0003EEB03C0EC
0F806CEB3E00380F81F83803FFE0C690C7FC1D2677A426>I<ED01F815FFA3150316F0A2
1507A216E0A2150FA216C0A2151FA21680A2153FA202F81300EB07FE90381F877F90383E
03FF017C5BEBF80112013803F00048485B120FEBC001121F5DEA3F801403127F01005BA2
14075A485CA2140FA248ECC1C0A2141F15C3ED8380143F1587007C017F1300ECFF076C48
5B9038038F8E391F0F079E3907FE03FC3901F000F0253B77B92A>I<147F903803FFC090
380FC1E090383F00F0017E13785B485A485A485A120F4913F8001F14F0383F8001EC07E0
EC1F80397F81FF00EBFFF8148090C8FC5A5AA55AA21530007C14381578007E14F0003EEB
01E0EC03C06CEB0F806CEB3E00380781F83803FFE0C690C7FC1D2677A426>I<ED07C0ED
1FF0ED3E38ED7C3CEDF8FC15F9140115F1020313F8EDF0F0160014075DA4140F5DA4141F
5D010FB512C05B16809039003F800092C7FCA45C147EA414FE5CA413015CA413035CA413
075CA4130F5CA3131F5CA391C8FC5B121CEA7E3EA2EAFE3C137C1378EAF8F01278EA3FC0
EA0F80264C82BA19>I<EC07C0EC3FF09138FC38E0903901F01FF0EB03E0903807C00FEB
0F80011F1307D93F0013E05B017E130F13FE4914C01201151F1203491480A2153F120749
1400A25DA249137EA215FEA25D00031301140314076C6C485A0000131FEB787BEB3FF390
380FC3F0EB00031407A25DA2140F5D121C007E131F5D00FE49C7FC147E5C387801F8387C
07E0381FFF80D803FEC8FC24367CA426>I<EB03F0EA01FFA3EA00075CA3130F5CA3131F
5CA3133F91C8FCA35B90387E07F0EC1FFCEC783E9038FFE01F02C01380EC800F1400485A
16C05B49EB1F8012035BA2153F000715005BA25D000F147E5B15FE5D121FD98001131C15
F8163C003F01031338010013F0A216704814E0007E15F016E0EDE1C000FE903801E38048
903800FF000038143C263B7BB92A>I<EB01C0EB07E014F0130F14E01307EB038090C7FC
AB13F0EA03FCEA071EEA0E1F121CA212385B1270A25BEAF07E12E013FEC65AA212015B12
03A25B12075BA2000F13E013C013C1001F13C01381A2EB83801303EB0700A2130E6C5AEA
07F8EA01E0143879B619>I<150E153F157FA3157E151C1500ABEC1F80EC7FC0ECF1F0EB
01C090380380F813071401130F130E131EEB1C03133C013813F0A2EB0007A215E0A2140F
A215C0A2141FA21580A2143FA21500A25CA2147EA214FEA25CA21301A25CA213035C121C
387E07E0A238FE0FC05C49C7FCEAF83EEA787CEA3FF0EA0FC0204883B619>I<EB03F0EA
01FFA3EA00075CA3130F5CA3131F5CA3133F91C8FCA35B017EEB0F80ED3FE015F09039FE
01C1F09038FC0387EC0707140E0001011C13E0EBF83891383003800270C7FC00035BEBF1
C0EBF38001FFC8FCEA07FC7FEBFFC0EBE7F8380FE1FCEBC07E147F80001F809039801F81
C0A21583003F013F138001001303A21507481500007E133EEC1E0E151E00FE6D5A48EB07
F80038EB01E0243B7BB926>I<EB0FC0EA07FFA3EA001F1480A2133FA21400A25BA2137E
A213FEA25BA21201A25BA21203A25BA21207A25BA2120FA25BA2121FA25BA2123FA290C7
FCA25AA2EA7E0EA212FE131EEAFC1CA2133C133812F81378EA7870EA7CE0121FEA0F8012
3B79B915>I<D801E001FEEB07F03C07F803FF801FFC3C0E3C0F07C0783E3C1E3E3C03E1
E01F261C1F78D9F3C013803C383FF001F7800F02E01400007801C013FE007018C002805B
4A4848EB1F80EAF07FD8E07E5CA200000207143F01FE1700495CA2030F5C0001177E495C
18FE031F5C120349DA8001131C18F8033F153C00070403133849020013F0A24B1570000F
17E049017E15F019E003FEECE1C0001FEE01E34949903800FF000007C70038143C3E2679
A444>I<D801E013FE3A07F803FF803A0E3C0F07C03A1E3E3C03E0261C1F787F39383FF0
0114E0007813C000708114804A485AEAF07FEAE07EA20000140701FE5C5BA2150F00015D
5B151F5E12034990383F8380160316070007027F130049137EA2160E000F147C49141E16
1C5E001FEC3C7849EB1FE00007C7EA0780292679A42F>I<147F903803FFC090380FC1F0
90381F00F8017E137C5B4848137E4848133E0007143F5B120F485AA2485A157F127F90C7
FCA215FF5A4814FEA2140115FC5AEC03F8A2EC07F015E0140F007C14C0007EEB1F80003E
EB3F00147E6C13F8380F83F03803FFC0C648C7FC202677A42A>I<9039078007C090391F
E03FF090393CF0787C903938F8E03E9038787FC00170497EECFF00D9F0FE148013E05CEA
01E113C15CA2D80003143FA25CA20107147FA24A1400A2010F5C5E5C4B5A131F5EEC8003
5E013F495A6E485A5E6E48C7FC017F133EEC70FC90387E3FF0EC0F8001FEC9FCA25BA212
01A25BA21203A25B1207B512C0A3293580A42A>I<ECF803903807FE0790381F871F9038
3E03BF017C13FEEBF80112013803F000484813FC120F5B001F130115F8EA3F80A2007F13
03010013F0A34813074814E0A3140F4814C0A3141F1580143FA2007C137FECFF006C5AEB
03BF381F0F7F3807FE7EEA01F0C7FC14FE5CA313015CA313035C130748B512C0A3203577
A426>I<3903C003F0390FF01FFC391E783C0F381C7C703A3C3EE03F8038383FC0EB7F80
0078150000701300151CD8F07E90C7FCEAE0FE5BA2120012015BA312035BA312075BA312
0F5BA3121F5BA3123F90C9FC120E212679A423>I<14FE903807FF8090380F83C090383E
00E04913F00178137001F813F00001130313F0A215E00003EB01C06DC7FC7FEBFFC06C13
F814FE6C7F6D13807F010F13C01300143F141F140F123E127E00FE1480A348EB1F0012E0
6C133E00705B6C5B381E03E06CB45AD801FEC7FC1C267AA422>I<EB0380EB07C0130FA4
131F1480A3133F1400A35B137E007FB5FCA2B6FC3800FC00A312015BA312035BA312075B
A3120F5BA3121FEB801CA2143C003F1338EB0078147014F014E0EB01C0EA3E03381F0780
380F0F00EA07FCEA01F0183579B31C>I<13F8D803FEEB01C0D8078FEB03E0390E0F8007
121E121C0038140F131F007815C01270013F131F00F0130000E015805BD8007E133FA201
FE14005B5D120149137EA215FE120349EBFC0EA20201131E161C15F813E0163CD9F00313
3814070001ECF07091381EF8F03A00F83C78E090393FF03FC090390FC00F00272679A42D
>I<01F0130ED803FC133FD8071EEB7F80EA0E1F121C123C0038143F49131F0070140FA2
5BD8F07E140000E08013FEC6485B150E12015B151E0003141C5BA2153C000714385B5DA3
5DA24A5A140300035C6D48C7FC0001130E3800F83CEB7FF8EB0FC0212679A426>I<01F0
1507D803FC903903801F80D8071E903907C03FC0D80E1F130F121C123C0038021F131F49
EC800F00701607A249133FD8F07E168000E0ED000313FEC64849130718000001147E5B03
FE5B0003160E495BA2171E00070101141C01E05B173C1738A217781770020314F05F0003
010713016D486C485A000190391E7C07802800FC3C3E0FC7FC90393FF81FFE90390FE003
F0322679A437>I<903907E007C090391FF81FF89039787C383C9038F03E703A01E01EE0
FE3803C01F018013C0D8070014FC481480000E1570023F1300001E91C7FC121CA2C75AA2
147EA214FEA25CA21301A24A1370A2010314F016E0001C5B007E1401010714C000FEEC03
80010F1307010EEB0F0039781CF81E9038387C3C393FF03FF03907C00FC027267CA427>
I<13F0D803FCEB01C0D8071EEB03E0D80E1F1307121C123C0038140F4914C01270A24913
1FD8F07E148012E013FEC648133F160012015B5D0003147E5BA215FE00075C5BA214015D
A314035D14070003130FEBF01F3901F87FE038007FF7EB1FC7EB000F5DA2141F003F5C48
133F92C7FC147E147C007E13FC387001F8EB03E06C485A383C1F80D80FFEC8FCEA03F023
3679A428>I<903903C0038090380FF007D91FF81300496C5A017F130E9038FFFE1E9038
F83FFC3901F007F849C65A495B1401C7485A4A5A4AC7FC141E5C5C5C495A495A495A49C8
FC131E5B49131C5B4848133C48481338491378000714F8390FF801F0391FFF07E0383E1F
FFD83C0F5B00785CD8700790C7FC38F003FC38E000F021267BA422>I
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fe ectt1200 12 11
/Fe 11 122 df<387FFFF8B57E80A25C6C5BD801FCC9FCB3B3A3EE03E0EE07F0A9007FB7
FCB8FCA46C16E02C3D7DBC33>76 D<D907FE137890393FFFC07C90B5EAF0FC4814FC0007
14FF5AEBFC03391FF0007F4848133F0180131F007F140F90C712074814035AA21501A46C
EC00F86C15007F7F6C7E7FEA1FFE380FFFE06C13FF6C14F06C14FC6C6C13FF011F148001
0314C0D9003F13E0020313F09138003FF8ED0FFC1507ED03FE1501150016FFA2007C157F
12FEA56C15FF16FE7FED01FC6D130301F0EB07F801FC130F9039FF807FF091B512E016C0
00FC1580013FEBFE00D8F80F5BD8780013E0283F7BBD33>83 D<EB1FFC90B57E000314E0
48804814FC48809038F007FFEBE0016E7F153F6C48806C48131FC87F150FA5EC0FFF49B5
FC131F137F48B6FC0007140F4813C0381FFC00EA3FF0EA7FC05B48C7FC5AA56C141F7E6D
137FD83FE0497ED9F807EBFFF06CB712F87E6C14F36C14C1C69138003FF0D91FF090C7FC
2D2E7BAC33>97 D<ECFFF0010713FE011FEBFF804914C04914E048B612F048EBC01F9038
FE000F485A485A4848EB07E049EB03C0484890C7FC5BA2127F90C9FCA25A5AA97E7EA27F
003FEC01F06DEB03F86C7E6D13076C6C14F06C6C130F01FFEB1FE06CEBE07F6C90B512C0
6C1580013F14006D13FC01075B010013C0252E79AC33>99 D<ED7FF84B7E5CA280157F15
01ABEB01FF010713C1011F13F1017F13F990B6FC5A4813813907FE003FD80FF8131F4913
0F48481307491303123F491301127F90C7FCA25A5AA97E7E15037F123F6D1307A26C6C13
0F6D131F6C6C133F6C6C137F2603FF81B512F091B612F8C602FD13FC6D13F96D01E113F8
010F018013F0D901FEC8FC2E3E7DBC33>I<4AB4FC263FFC0713C0267FFE1F13F000FF01
7F7F91B5FC6CB67E6CEC07FEC6EBF801ECF0004A7F4A7F5CA291C7FCA35BB3A43B3FFFF8
0FFFFC486D4813FEB56C4813FFA26C496C13FE6C496C13FC302C7FAB33>110
D<EB01FE90380FFFC0013F13F0497F90B57E488048EB03FF2607FC0013804848EB7FC049
133F4848EB1FE049130F4848EB07F0A2007F15F890C71203A300FEEC01FCAA6C14036C15
F8A26D1307003F15F06D130FA26C6CEB1FE06D133F6C6CEB7FC06C6CEBFF802603FF0313
006CEBFFFE6C5C6D5B6D5B010F13C0D901FEC7FC262E7AAC33>I<EC01FE3A3FFC0FFFC0
486C4813F000FF017F7F91B512FE6CB7FC6CEBFE07C6D9F800138002E0EB7FC04AEB3FE0
4A131FEE0FF091C7FC16074915F81603A217FC1601A9160317F8A26D140717F06E130F17
E06E131FEE3FC06E137F9139F801FF80DAFE07130091B55A495C6E5B6E13E0020F1380DA
03FEC7FC91C9FCAF383FFFF8487FB57EA26C5B6C5B2E427FAB33>I<ED03FE3B7FFF801F
FF80B5D8C07F13E002C1B5FC02C314F014C76C9038CFFE0F39001FDFF09139FFC007E092
388003C092C8FC5C5C5CA25CA25CA35CB2007FB512FEB7FCA46C5C2C2C7DAB33>114
D<EB03C0497E130FAA003FB612FC4881B7FCA36C5D26000FE0C8FCB3A3161FEE3F80A516
7F6E140001075C6E5A9138FE07FE6DB55A6D5C6D5C6E5B021F1380DA07FCC7FC29387EB6
33>116 D<3B7FFF801FFFE0B56C4813F06E4813F8A24A6C13F06C496C13E0D803F8C7EA
FC00000114015E7F000014036D5C137EA2017F495A7FA26E485A131FA26D6C485AA214E0
010749C7FCA214F01303157EEB01F8A2157C010013FC14FC5D147C147DEC3FF0A36E5AA3
6E5AA2141F5DA2143F92C8FCA3147EA214FE003F5B1301387F81F81383EB87F0139FEBFF
E06C5B5C6C90C9FCEA0FFCEA03F02D427DAA33>121 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Ff ectt1440 14.4 6
/Ff 6 113 df<007FB5FCB67E81A35D6C91C9FCC648CAFCB3B3ABEF07C0EF0FE0AB007F
B8FCB9FCA56C17C033497BC83D>76 D<0103B512C0013F14FC90B7FC000316C04816E048
16F04816F891C7FC01F8141F4848EC0FFC01C01403A24848EC01FEA390C9FCA54816FF48
167FB3AE6C16FFA26C16FEA56D1401A36C6CEC03FC6D14076D140FD81FFCEC3FF89039FF
8001FF91B6FC6C16F06C16E06C16C0C61600013F14FC010314C0304B7AC93D>79
D<DAFFE013F0010701FC13F8011FEBFF81017F14E148B612F14815FB4815FF48EB803F90
38FC0007D81FF0130148487F49143F485A161F90C8120F5A481507A31603A37E6CED01F0
93C7FC7F6C7E7F6C7E13FC6CB4FC6C13F06C13FF6C14F86C6CEBFF806D14E0010F14F801
0114FED9001F7F02011480DA001F13C0030113E09238003FF0EE1FF81607EE03FCA2EE01
FE1600A217FF007C167F12FEA57E17FF17FE7F16016DEC03FC6D140701F8EC0FF86D141F
D9FF80EB7FF09139F801FFE091B612C0481680486C1500011F5C010714F848C614E00078
010F90C7FC304B7AC93D>83 D<EC1FF891B57E010314E0010F14F84980498049809026FF
F80F138048D9C00113C04890C7EA7FE0D807FC141F4848EC0FF05B4848EC07F81603485A
4915FC1601127F90C8FC17FE4815005AB8FCA617FC48CAFC7E7EA37F123F7F6C6C157C17
FE6C7E7F6C6C14016CB4EC03FC6E13076C01F0EB1FF86C01FEEBFFF06DB612E06D15C001
0F15806D1500010114FC6D6C13E0020790C7FC2F3679B43D>101
D<ED3FE03A7FFE01FFFCB500077F021F6D7E5C4A8091B67E6CECC07F3B007FFE001FF04A
130F4A13074A805C4A1303A25CA391C7FCB3A9007FB548B512F8B6008314FC1587A31583
6C020114F836347DB33D>110 D<ED1FF0D87FFEEBFFFCB5000313FF020F14C0023F804A
8091B67E6C9138C07FFCC66C9038000FFE02FC13074AEB01FF4A7F4A15804A147F4AEC3F
C0A2EF1FE091C8FC170FA218F0A21707A9170FA218E080171F18C06E143FA26EEC7F8017
FF6E4913006E5B6E495A6EEB1FFC9139FFC0FFF892B5FC6E14E06E5C020F5C6E49C7FC02
0113F89138003FE092C9FCB3007FB5FCB67EA56C91C9FC344F7DB33D>112
D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fg ecss1000 10 53
/Fg 53 122 df<BD12C0A55205809853>22 D<903901F807F0EB07FE130F131F133FEB7F
0EEB7E0201FEC8FC5BA21201AEB538FE07F0A53801FC00B3AE243D7FBC2C>28
D<B512FCA516057F941C>45 D<12FEA70707788617>I<EB03F8EB1FFF017F13C090B57E
48803903FE0FF83907F803FC48486C7EEBE0004848137F497F003F1580A290C7121F4815
C0A3007E140FA300FE15E0B3007FEC1FC0A56C6CEB3F80A36C6CEB7F00A26C6C13FEEBF0
016C6C485A3903FE0FF86CB55A6C5C6D5B011F90C7FCEB03F8233A7DB72A>48
D<14C013011307131F13FFB5FCA4131F1200B3B3A5007FB512F0A51C3879B72A>I<EB0F
F8EB7FFF48B512C0488048804880391FF01FFC9038C007FE393F0001FF003E7F007E1580
007C147F00FC143F5A007815C012380030141F1210C8FCA2153FA21680A2157F160015FE
A24A5A4A5A4A5A4A5A4A5A4A5A4AC7FC14FE495A495A495AEB0FC0495A49C8FC137E5B48
5A485A485A485A485A48C9FC48B612C0A622387DB72A>I<EB07F8EB3FFF90B512C04880
4880000F809038FC0FFC391FE003FE383FC0016CC7FC000E80A2000480C8FCA25DA25D14
015D14034A5A4A5AEC7FE090381FFFC05D4AC7FC6E7E15E09038000FF8EC03FCEC00FE15
7F1680153F16C0A2ED1FE0A70040143F006015C0127000F8EC7F807EB4ECFF00387FC003
393FF80FFE6CB55A6C5C00035C6C14C06C6C90C7FCEB07FC233A7DB72A>I<EC07F8140F
A2141B143BA2147B147314F31301A2EB03E3A2EB07C3130FA2EB1F83A2EB3F03137F137E
13FE13FCEA01F8120313F0120713E0120FEA1FC01380123F13005A12FEB712F8A5C73803
F800AE25367EB52A>I<001FB512FEA601C0C8FCADEBC1FCEBCFFF01DF13C090B57E8190
38FE07F89038F803FC496C7E496C7E5B497FC81380A2153F16C0A9ED7F8012101238EDFF
00007C5BB4495A6C6C485A393FF01FF86CB55A6C5C6C5C6C5CC649C7FCEB1FF022387DB5
2A>I<EC3FE0903801FFF8010713FE5B133F5B9038FFE01E48EB00064990C7FCEA03F848
5AA2485A485AA25B123FA2387F007F903803FFC0010F13F0013F7FD87E7F7F39FEFE07FE
38FFF8019038E000FF497FED3F805BED1FC090C7FCA2ED0FE05AA47E127E127FA46CEC1F
C07FA2001FEC3F807F6C6CEB7F005D3907F801FE9038FE07FC6CB55A6C5C6C5C013F5B6D
90C7FCEB03FC233A7DB72A>I<B712E0A6C81207ED0FC0ED1F80ED3F00157E15FE5D4A5A
14034A5AA24A5A4A5AA24A5AA24AC7FCA214FEA213015C13035C1307A25C130FA35C131F
A35C133FA55C137FA823377DB52A>I<EB03F8EB1FFF017F13C090B57E000314F8A23907
FC07FC390FF001FEEBE0004848137F497F003F158090C7121FA66C6CEB3F00A26C6C137E
A26C6C5B3903F803F8C6B512E06D5BD90FFEC7FC497E90B512E048EB1FF03907F803FC39
0FE000FE4848137F4848EB3F8090C7121F4815C0A200FEEC0FE0A8007FEC1FC0A26D133F
003F15806D137F3A1FF001FF00390FFC07FE6CB55A6C5C6C5C6C5C013F1380D907FCC7FC
233A7DB72A>I<EB03FCEB1FFF017F13C090B57E488048803907FC07FC380FF00148486C
7E49137E4848137F8148C71380A2151F00FE15C0A3150FA216E0A5151F127FA2153F6C7E
157F6C7E6D13FF380FF0039038FC0FEF6CB5EACFC06C149F6CEBFE1F38007FF8EB1FC090
C71380153FA2ED7F00A215FEA24A5A4A5A000613070007EB1FF0390FC07FE090B55A485C
6C91C7FC6C13FC00015B38003FC0233A7DB72A>I<EC07F8A24A7EA24A7EA2157EEC3F7F
143EA291387E3F80A2147C02FC7F151FA2D901F87F150F01038014F0A201076D7E14E0A2
010F6D7E14C0A2011F6D7E1480013F808191C7FC4981167F137E01FE6E7E90B7FCA24882
A3D803F8C7EA0FF05B00078216075B000F8216035B001F8216015B003F6F7EA248C91380
177F127E00FE17C0323A7EB937>65 D<B67E15F815FE6F7E82D9000113F09138003FF815
0F6F7E6F7E150115008282A45E5E15014B5A15074B5AED3FF0EDFFC090B65A4BC7FC15F8
15FF16C0D9000313F09138003FF8ED07FC6F7EED00FFEE7F80EE3FC0A2161F17E0160FA4
161F17C0163FA2EE7F80ED01FF4B1300ED0FFEED7FFC90B65A16E016804BC7FC15E02B3A
79B937>I<913803FF80021F13F891B6FC4915C013075B4948C61380D97FF0130FD9FFC0
13034A13014890C9FC485A485A5B120F5B485AA2485AA3485AA448CAFCAC6C7EA46C7EA3
6C7EA26C7E7F12077F6C7E6C6C15206C6D14E06E1301D97FF0130FD91FFE137F6DB6FC6D
15C0010115006D5C021F13F0020313802B3E7BBB35>I<B712F0A690C9FCB390B612C0A5
90C9FCB3A390B612FCA7263A78B932>69 D<913803FF80023F13F891B512FE0103ECFFC0
4915E05B90383FFE00D97FF0EB1FC0D9FFC013074A13014890C8124048481500485A5B12
0F5B485AA2485AA3485AA448CAFCA992383FFFF0A36C7EA2ED0007A26C7EA36C7EA26C7E
7F12077F6C7E6C7E6C7F80EB7FF0D93FFE137F010FB6FC7F6D15C001001500023F13F802
0313802C3E7BBB37>71 D<12FFB3B3B3A4083A79B917>73 D<00FEED1FF0EE3FE0EE7FC0
EEFF804B13004B5A4B5A4B5A4B5A4B5A5E4B5A4BC7FC4A5A4A5A4A5A140F4A5A4A5A4A5A
4A5A4990C8FC495A1307497EA2497F497FEB7F9F9038FF1FE06C486C7E140701FC7F496C
7EEBF00101E07F496C7E497F90C77F486E7E151F826F7E1507826F7E1501826F7E821780
EE3FC0161F17E0EE0FF0160717F8EE03FC2E3A78B93A>75 D<B4FCB3B3B090B612C0A622
3A79B92D>I<D8FFC0ED07FFA36D5DA26D5D00FE177FA26D153F0178153EA2017C157EA2
6D15FCA3013F14016D15F8A26E1303010F15F06E1307A2010715E06E130FA2010315C06E
131FA2010115806E133FA2010015006E5B027C137E027E13FEA2023E5BEC3F01A2021F5B
1583A2020F5B15C702075BA3913803EFC0A215FF6E5BA26E90C7FCA392C8FCA2383A78B9
49>I<D8FFE0EC1FC0A27FA27FA2487EA2137EA2137F7F80131FA26D7EA2801307801303
80130180130080A2147FA2EC3F80A2EC1FC0A2140F15E0140715F0140315F8140115FC14
00A2157EA2157F153F169F151FA2ED0FDFA2ED07FFA281A281A22A3A78B93B>I<EC07F8
91387FFF8049B512E04980010F14FC90391FFC0FFE90393FE001FF903A7F80007F8049C7
6C7E48486E7E48486E7E49140700078248486E7E491401001F82491400A2003F82498100
7F1780A390C9123FA24817C0AC6C6CED7F80A56C6CEDFF00A26D5C001F5EA26C6C4A5AA2
6C6C4A5A6C6C4A5A6D141F00015E6C6C4A5AD97FC0EBFF806D6C4890C7FC90391FFC0FFE
6DB55A6D5C010114E06D6C1380DA07F8C8FC323E7BBB3D>I<B612C015F815FF8216E090
C77FED1FF8ED07FC15036F7E150082821780A2163FA4167FA217005E5E15014B5A1507ED
1FF8EDFFF090B65A168093C7FC15F815C090CAFCB3A6293A79B935>I<B67E15F815FE6F
7E8290C77FED1FF06F7EED03FC150182150082A282A35EA25E15015E1503ED0FF84B5AED
FFE090B65A5E4BC7FC15F815E09038000FF01407811403811401816E7E8182153F826F7E
A26F7EA26F7E1503826F7EA26F7EA2EE7F80EE3FC0A2EE1FE02B3A78B936>82
D<EB03FF011F13F0017F13FE48B612804815C05A4848C6FCD81FF0EB1F80484813070180
1303007F140090C9FCA212FEA67E7E7F7FEA3FF013FC381FFFC06C13FC6CEBFF806C14E0
6C14F86C80013F7F01077FD9007F1380020713C0020013E0157FED1FF0150FA2ED07F8A2
1503A6ED07F0124012600078EC0FE0007C141FB4EC3FC001C0EBFF80EBFC036CB6120000
1F5C6C14F800015C6C6C13C0D907FEC7FC253E7CBB2E>I<00FEDB7FC0EC0FE0007F1AC0
04FF151F83A26C6C1980DB01FB153F8316F36C6CF07F00923803F1F8A26C6C187EDB07E1
15FE8316E06C6C60DB0FC0140183177E6C6C60DB1F801403177F6C6C6F5C1907DB3F0013
80171F6C6C60037E150F18C0017E030F5C137F4B151F18E06D03075C14804B153F028115
F0011F030391C7FCA2DAC1F05DD90FC3913801F87EA25D14E3010703005B02E715FC5DA2
0103EE7CF802F7157D5DD901FFED3FF0A292C8FCA26D705AA24B3A7FB94E>87
D<D83FE015FF6D4A5A001F15036C6C5D6C6C4A5A160F6C6C5D6C6C4A5A6C153F6E5C6D6C
495A6D6C49C7FC011F5B02F05B6D6C485A0107130702FC5B6D6C485A0101131FD900FF5B
EDBFC06EB45A806E90C8FC5D140F6E5A6E5A4A7E4A7E4A7EA24A7F91387FBFC0153F4A6C
7E49486C7E4A6C7E130349486C7E49486C7E8249487E49486D7E8349486D7E49C7121F48
82496E7E48486E7E1207496E7E48486E7E001F6F13805B4848ED7FC0007FEE3FE0484816
F0343A7FB937>I<EB1FF0EBFFFC000313FF000F14804814C09038E01FE09038000FF000
1C13070018EB03F81210C7FCEC01FCA7143FEB0FFF90B5FC1203120F381FFE01EA3FE0EA
7F80130012FEA414037E387F800FEBE03F6CB5FC7E6C13F96C13E1D801FEC7FC1E287DA6
28>97 D<12FEB3A4EB01FCEB0FFF013F13C090B57EB67E9038F03FF8EBC007496C7EEB00
01486D7EA2157FA3ED3F80AAED7F00A35D5D14016C5CEB80039038C00FF89038F03FF090
B55A485C6D5BD91FFEC7FC380007F8213D7ABB2B>I<EB03FE90381FFFC0017F13E090B5
12F84814FC3803FC033907F8007CD80FE01338484813081500485AA248C8FCA3127E12FE
A9127FA36C7EA26D1302001F14066C6C131E6C6C137E9038FC03FE6CB5FCC614FC6D13F0
011F13C0903807FC001F287DA625>I<ED3F80B3A4EB0FE0EB3FFC90B5FC4814BF4814FF
3807FE07380FF801381FE00049137F003F143F5B127F90C7FCA312FEAA127FA36C7E157F
6C7E6D13FF380FF0033807FE076CB512BF6C143F6C13FEEB7FF8D90FE0C7FC213D7DBB2B
>I<EB07F8EB1FFE90387FFF8048B512C04814E03907FC0FF0390FF003F8EBE001391FC0
00FC49137C003F147E90C7123E5A127E151F12FEB7FCA500FCC8FCA27EA2127EA2127F7E
7F6C7E6D13026C6C130E6C6C133E3903FE01FE6CB5FC6C14FC6D13F0011F13C0903803FE
0020287EA625>I<14FF010313C0130F5B5BEB7F819038FE004049130012015BA21203AD
B512FCA5D803F8C7FCB3AE1A3D7FBC19>I<903907E001F890383FFC1F90397FFEFFFC48
B6FC5A9039F81FF8003907F00FE048486C7EEBC003A248486C7EA76C6C485AA2EBE0076C
6C485A6C6C485A48B5FC5D4849C7FCEB3FFC381F07E090C9FCA37F7F6CB512C015F815FE
6CECFF8016C04815E05A3A3F80007FF048C7120F007EEC03F8481401A46C1403007E15F0
D87F80130F6C6CEB1FE03A1FFC01FFC06CB612806C1500000114FC6C6C13F0010790C7FC
26387EA52A>I<12FEB3A4EB01FC90380FFF804913C0017F13E090B512F039FFF81FF8EB
E007EBC003018013FC14011300A35AB3A71E3C7ABB2B>I<12FFA81200AC127FB3B30839
7BB814>I<EB0FF0A890C7FCACEB07F0B3B3AA38400FE0EA601F38FC7FC0B5FC14806C13
00EA1FFEEA03F8144A85B816>I<12FEB3B3B3A6073C7ABB14>108
D<D901FCEB03F83BFE0FFF801FFF496D481380017F6DB512C090B500F114E03CFFF81FFB
F03FF0D9E007EBC00F903AC003FF80070180020013F86E140301005BA3485CB3A735267A
A542>I<EB01FC39FE0FFF804913C0017F13E090B512F039FFF81FF8EBE007EBC0030180
13FC14011300A35AB3A71E267AA52B>I<EB03FE90380FFF80013F13E090B512F8488039
03FE03FE3907F800FF4848EB7F8049133F4848EB1FC04848EB0FE0A290C712074815F0A2
007E140300FE15F8A9007FEC07F0A36C6CEB0FE0A26C6CEB1FC06D133F6C6CEB7F806C6C
EBFF003903FE03FE6CB55A6C5C6D5B011F13C0D903FEC7FC25287EA62A>I<EB01FC38FE
0FFF013F13C090B57EB67E9038F03FF8EBC00F90388003FC1300486D7E14008181A21680
153FA9ED7F00A35D5D14016C495AEB80076D485A9038F03FF090B55A485C6D5BD91FFEC7
FCEB07F890C9FCAF21367AA52B>I<903907F03F80EB3FFCEBFFFE48EBFFBF4814FF3807
FE07380FF80148487E5B4848137F5B007F143F90C7FCA312FEA97E7EA27F123F6D137F6C
7E15FF380FF8013807FE0790B6FC6C143FC613FEEB7FF8EB1FE090C7FCAF21367DA52B>
I<14F0EAFC07130F133F137F13FF00FD130013FCEAFFF05B5BA25B90C7FCA35AB3A41426
7AA51C>I<EB7FE03801FFFC0007EBFF804814C05A383FC03F90380007801401007E90C7
FCA4127FA26C7E13F0EBFF806C13F06C13FC6C7F6C7FC61480131F010013C0143FEC0FE0
A21407A3124012600078EB0FC000FE131F39FFC07F8090B5FC6C1400001F5B000313F838
007FC01B287EA620>I<EA01FCAAB6FCA5D801FCC7FCB3A76D138014013900FF07C014FF
A26D1300EB3FFCEB1FE01A307FAE1E>I<00FEEB01FCB3AA1403A214076C131F387F807F
90B5FC6C13F914F1000F13C1D803FCC7FC1E267AA42B>I<00FED901FEEB01FC007F17F8
02031403A2018013DF003FEE07F01407ED9F80D81FC016E0020F140F158FD80FE002C013
C0030F131F141FED07E0D807F01680021E143F143E0003DA03F0130013F8023C5C000101
7C147EED01F813FC027814FE0000D9F8005BA24A13FC017C5D167D137E5C013EEC3DF001
3F143F5C011F5D161F36257FA439>119 D<D87F80EB0FE0003FEC1FC06C6C133F6DEB7F
806C6C1400000714FE6C6C485A3801FC0301FE5B6C6C485A6D485A90383F9FC0EB1FDF6D
B45A92C7FC6D5A6D5A1301A2497E1307497EECDF8090381F9FC090383F0FE0496C7EEBFE
0301FC7F00016D7E48486C7E4848137F120F49EB3F804848EB1FC0484814E0007FEC0FF0
48C7EA07F8252580A426>I<B4EC0FE06CEC1FC0A26C7EED3F807F001FEC7F00A26C7E15
FE7F00075C1401EA03F85DEBFC0312015D3800FE075D137E140F017F5B133FA290381F9F
80A292C7FC130FA2EB079E14DEA2EB03FCA26D5AA35C13035CA213075C130FA2495A1220
D8383FC8FCEA3FFEA25B5BEA0FE023367FA426>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fh ecrm0800 8 29
/Fh 29 122 df<14FF010713E090381F80F090383E003849137C4913FC485A1203491378
153092C7FCA7157CB612FCA23803E000157CB3A5486C13FE3A7FFF0FFFE0A2232F7FAE27
>28 D<123C127E12FFA7127EA9123CAA1218A41200A7123C127E12FFA4127E123C082F7A
AE14>33 D<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A5A5A12
6009157AAD14>39 D<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E
5A5A5A126009157A8714>44 D<4A7E4A7EA34A7EA24A7EA3EC1BF81419A2EC30FCA2EC70
FEEC607EA24A7EA349486C7EA2010380EC000FA201066D7EA3496D7EA2011FB57EA29038
180001496D7EA349147EA201E0147F4980A20001ED1F801203000716C0D80FF0EC3FE0D8
FFFC0103B5FCA2302F7EAE35>65 D<B512F0A23803FC006C5AB3B3A3487EB512F0A2142D
7EAC19>73 D<90383F80303901FFF0703807C07C390F000EF0001E130748130348130114
00127000F01470A315307EA26C1400127E127FEA3FE013FE381FFFE06C13FC6C13FF0001
1480D8003F13E013039038003FF0EC07F81401140015FC157C12C0153CA37EA215787E6C
14706C14F06CEB01E039F78003C039E3F00F0038E07FFE38C00FF01E2F7CAD27>83
D<13FF000713C0380F01F0381C00F8003F137C80A2143F001E7FC7FCA4EB07FF137F3801
FE1FEA07F0EA1FC0EA3F80EA7F00127E00FE14065AA3143F7E007E137F007FEBEF8C391F
83C7FC390FFF03F83901FC01E01F207D9E23>97 D<EA07C012FFA2120F1207AC14FE9038
C7FF809038CF03E09038DC01F09038F8007C49137E49133E497F1680A2150F16C0A9ED1F
80A216005D6D133E6D5B01B05B9038BC01F090380E07E0390607FF80260001FCC7FC222F
7EAD27>I<EB1FE0EB7FFC3801F01E3803E0073907C01F80EA0F80EA1F005A003EEB0F00
007E90C7FCA2127C12FCA9127EA215C07E6C130101801380380FC0033907E007003801F0
3E38007FF8EB1FC01A207E9E1F>I<15F8141FA214011400ACEB0FE0EB7FF83801F81E38
03E0073807C003380F8001EA1F00481300123E127EA25AA9127C127EA2003E13017EEB80
03000F13073903E00EFC3A01F03CFFC038007FF090391FC0F800222F7EAD27>I<EB1F80
EBFFF03803E0783807C03E380F801E381F001FEC0F80123E007E130715C0127C12FCA3B6
FCA200FCC8FCA5127EA2003E14C0123F6C1301390F80038001C013003803E00F3801F03C
38007FF8EB1FC01A207E9E1F>I<013F13F89038FFC3FE3903E1FF1E3807807C000F140C
391F003E00A2003E7FA76C133EA26C6C5A00071378380FE1F0380CFFC0D81C3FC7FC90C8
FCA3121E121F380FFFF814FF6C14C04814F0391E0007F848130048147C12F848143CA46C
147C007C14F86CEB01F06CEB03E03907E01F803901FFFE0038003FF01F2D7E9D23>103
D<EA07C012FFA2120F1207AC14FE9038C3FF809038C703E09038DE01F013F8496C7EA25B
A25BB2486C487E3AFFFE1FFFC0A2222E7EAD27>I<EA0780EA0FC0EA1FE0A4EA0FC0EA07
80C7FCA8EA07C012FFA2120F1207B3A5EA0FE0EAFFFCA20E2E7EAD14>I<130FEB1F80EB
3FC0A4EB1F80EB0F0090C7FCA8EB07C013FFA2130F1307B3AD1230127838FC0F80A21400
485AEA783EEA3FF8EA07E0123C83AD16>I<EA07C012FFA2120F1207ADEC1FFEA2EC0FF0
EC07C05D020EC7FC5C5C5C5CEBC3C013C7EBCFE0EBDFF013F9EBF0F8497EEBC07E143E80
816E7E14076E7E816E7E486C487E3AFFFE07FF80A2212E7EAD25>I<EA07C012FFA2120F
1207B3B3A3EA0FE0EAFFFEA20F2E7EAD14>I<2607C07FEB07F03BFFC3FFC03FFC903AC7
83F0783F3C0FCE01F8E01F803B07DC00F9C00F01F8D9FF8013C04990387F000749137EA2
49137CB2486C01FEEB0FE03CFFFE0FFFE0FFFEA2371E7E9D3C>I<3807C0FE39FFC3FF80
9038C703E0390FDE01F0EA07F8496C7EA25BA25BB2486C487E3AFFFE1FFFC0A2221E7E9D
27>I<EB1FE0EB7FF83801F03E3803C00F3907800780390F0003C04814E0003EEB01F0A2
48EB00F8A300FC14FCA9007C14F8A26CEB01F0A26CEB03E0A2390F8007C03907C00F8039
01F03E0038007FF8EB1FE01E207E9E23>I<90380FE01890387FF8383801F81C3903E00E
783807C007390F8003F8001F1301EA3F00A2007E1300A212FE5AA8127EA36C13017EEB80
03380FC0073803E00E3801F03C38007FF0EB1FC090C7FCA94A7E91381FFFC0A2222B7E9D
25>113 D<380781F038FF87FCEB9E7EEA0F98EA07B813B0EBF03CEBE000A35BB1487EB5
FCA2171E7E9D1B>I<3801FE183807FFB8381E01F8EA3C00481378481338A21418A27E7E
B41300EA7FF06CB4FC6C13C06C13F0000113F838001FFC130138C0007E143EA26C131EA2
7EA26C133CA26C137838FF01F038E3FFC000C0130017207E9E1C>I<1360A413E0A31201
1203A21207121FB512F0A23803E000AF1418A714383801F03014703800F860EB3FE0EB0F
80152A7FA81B>I<D807C013F800FF131FA2000F130100071300B21401A314033803E007
EC0EFC3A01F81CFFC038007FF890391FE0F800221F7E9D27>I<3AFFFC01FFC0A23A0FE0
007E000007147C15380003143015706C6C1360A26C6C5BA390387C0180A26D48C7FCA2EB
3F07EB1F06A2EB0F8CA214DCEB07D8A2EB03F0A36D5AA26D5A221E7F9C25>I<3BFFFC3F
FE07FFA23B0FE003F001F801C09038E000F00007010114E0812603E00314C0A2913807F8
012701F006781380A29039F80E7C030000D90C3C1300A290397C181E06A2151F6D486C5A
A2168C90391F600798A216D890390FC003F0A36D486C5AA36DC75A301E7F9C33>I<3AFF
FC01FFC0A23A0FE0007E000007147C1538000314306D137000011460A26C6C5BA2EBFC01
017C5BEB7E03013E90C7FCA2EB1F06A2148EEB0F8CA2EB07D8A2EB03F0A36D5AA26D5AA2
495AA2130391C8FC1278EAFC06A25B131CEA7838EA7070EA3FE0EA0F80222B7F9C25>
121 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fi ecrm0600 6 5
/Fi 5 54 df<13E01201120712FF12F91201B3A7487EB512C0A212217AA01E>49
D<EA01FC3807FF80381C0FC0383003E0386001F0EB00F812F86C13FCA2147C1278003013
FCC7FC14F8A2EB01F0EB03E014C0EB0780EB0F00131E13385B5B3801C00CEA0380380600
185A5A383FFFF85AB512F0A216217CA01E>I<13FF000313C0380F03E0381C00F014F800
3E13FC147CA2001E13FC120CC712F8A2EB01F0EB03E0EB0FC03801FF00A2380003E0EB00
F01478147C143E143F1230127812FCA2143E48137E0060137C003813F8381E03F0380FFF
C00001130018227DA01E>I<14E01301A213031307A2130D131D13391331136113E113C1
EA01811203EA07011206120C121C12181230127012E0B6FCA2380001E0A6EB03F0EB3FFF
A218227DA11E>I<00101330381E01F0381FFFE014C01480EBFE00EA1BF00018C7FCA513
FE381BFF80381F03C0381C01E0381800F014F8C71278A2147CA21230127812F8A2147848
13F8006013F0387001E01238381E07803807FF00EA01F816227CA01E>I
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fj ectt0900 9 26
/Fj 26 122 df<007FB51280B612C0A36C14801A057A9227>45 D<121EEA7F80A2EAFFC0
A4EA7F80A2EA1E000A0A728927>I<1538157CA215FC15F8140115F0140315E0140715C0
A2140F1580141F15005C143E147E147C14FC5C13015C13035C13075C130F5CA2131F91C7
FC5B133E137E137C13FC5B12015B12035B12075B120F5BA2121F90C8FC5A123E127E127C
12FC5AA212701E3A7CB327>I<EB3FE03801FFF84813FE000FEBFF804814C0393FE07FE0
EB800F397F0007F0007EEB03F800FE13015A6C14FC1400A3127CC8FCA2140115F8A21403
15F01407EC0FE0EC1FC0143FEC7F80ECFF00495A495A495A495A495A495A495A01FEC7FC
485AD807F81378484813FC485A485A48B5FCB6FCA36C14F81E2F7CAE27>50
D<EB1FF8EBFFFE0003EBFF80000F14C015E0391FF01FF0393FC007F8EB800115FC1400A2
6CC7FC1204C8FC140115F81403EC07F0140FEC3FE090381FFFC0491380A215E06D13F090
38001FF8EC03FC1401EC00FE157E157F153FA21238127C12FEA2157F48147E6C14FE007F
EB01FCEB8003393FF01FF86CB512F06C14E000031480C6EBFE00EB1FF820307DAE27>I<
007FB512E0B612F0A36C14E039001F8000B3B2007FB512E0B612F0A36C14E01C2E7BAD27
>73 D<387FFFC080B5FC7E5CD803F0C8FCB3AAED0780ED0FC0A7007FB6FCA2B7FC7E1680
222E7FAD27>76 D<127012F8A27E127C127E123E123F7E7F120FA27F12077F12037F1201
7F12007F137C137E133E133F7F80130FA280130780130380130180130080147C147E143E
143F801580140F15C01407A215E0140315F0140115F8140015FC157CA215381E3A7CB327
>92 D<007FB512F8B612FCA46C14F81E067C7E27>95 D<3801FFE0000713F84813FE486D
7E81EBC07FEC0FE0380F8007D802007FC71203A2EB07FF137F0003B5FC120F5A383FFC03
EA7FE0130012FE5AA46C1307007F130FEBC07F6CB612C06C15E07E000313F83A007FC03F
C023207D9F27>97 D<EA7FE0487EA3127F1203A9EC7F809038F1FFE001F713F890B57E81
ECC0FF9138007F8001FCEB1FC049130F16E0491307A216F01503A615076D14E0A2150F6D
EB1FC06D133F6DEB7F809138C1FF00ECFFFE5D01F75B01F313E02601E07FC7FC242E80AD
27>I<EB0FFF017F13C048B512E04814F05A380FF807EA1FE0393FC003E0903880008048
C8FC127EA212FE5AA67E127EA2007F14F0393F8001F813C0381FE003390FF80FF06CB5FC
6C14E06C14C06C6C1300EB0FF81D207B9F27>I<EC1FF84A7EA3141F1400A9EB0FF0EB7F
FC48B5FC5A5A380FF81F381FE007383FC003EB8001EA7F00007E1300A212FE5AA67E007E
1301A2007F13037EEB8007381FE00F380FF03F6CB612E06C15F06C5B38007FF890391FE0
7FE0242E7EAD27>I<EB0FF8EB3FFE90B51280000314C04814E0390FFC0FF0391FE003F8
EBC001D83F8013FC48C7FC127E157E12FEB612FEA415FC00FCC8FC7E127E127F6C143C6D
137E6C7E01F013FE390FFC07FC6CB5FC000114F86C14F0013F13C0903807FE001F207D9F
27>I<EA7FE0487EA3127F1203A9EC3FC09038F1FFF001F77F90B57E8114E0EC007F497F
5B5BA25BB03A7FFF83FFF8B500C713FCA36C018313F8262E80AD27>104
D<130F497E497EA46D5A6DC7FC90C8FCA7383FFF80487FA37EEA000FB3A4007FB512F0B6
FC15F815F07E1D2F7BAE27>I<387FFF80B57EA37EEA000FB3B2007FB512F8B612FCA36C
14F81E2E7CAD27>108 D<397FE03FC039FFF1FFF001F77F90B57E6C80000313E0EC007F
497F5B5BA25BB03A7FFF83FFF8B500C713FCA36C018313F82620809F27>110
D<EB1FE0EB7FF83801FFFE487F481480390FF03FC0391FC00FE0393F8007F0EB00034814
F8007E1301A248EB00FCA76C1301007E14F8A2007F1303393F8007F0A2391FE01FE0390F
F03FC06CB512806C14006C5B38007FF8EB1FE01E207C9F27>I<397FE07F8039FFF1FFE0
01F713F890B57E6C800003EBC0FF9138007F8001FCEB1FC049130F16E0491307A216F015
03A615076D14E0A2150F6DEB1FC06D133F6DEB7F809138C1FF00ECFFFE5D01F75B01F313
E0D9F07FC7FC91C8FCAC387FFF80B57EA36C5B2431809F27>I<397FFC03FC39FFFE0FFF
023F13804A13C0007F90B5FC39007FFE1F14F89138F00F809138E002004AC7FC5CA291C8
FCA2137EAD007FB57EB67EA36C5C22207E9F27>114 D<9038FFF3800007EBFFC0121F5A
5AEB803F38FC000F5AA2EC07806C90C7FCEA7F8013FC383FFFF06C13FC000713FF000114
80D8000F13C09038003FE014070078EB03F000FC1301A27E14036CEB07E0EBE01F90B512
C01580150000FB13FC38707FF01C207B9F27>I<133C137EA8007FB512F0B612F8A36C14
F0D8007EC7FCAE1518157EA415FE6D13FC1483ECFFF86D13F06D13E0010313C001001300
1F297EA827>I<397FE007FE486C487EA3007F7F0003EB003FB25DA24A5AEBFC076CB612
F86C15FCA2013F13BF90390FFC1FF82620809F27>I<393FFC1FFF486C5A168016006C48
7E3901F807E06C6C485A4A5A017E90C7FC6D5AEB1F7E5C6D5A13076D5A5C80497E130F49
7E143EEB3E3FEB7E1F90387C0F8001F87F00016D7E3803F0033A7FFE1FFF80A2B54813C0
6C486C1380A222207E9F27>120 D<3A7FFC0FFF80486C4813C0A36C486C13803A07E000
F800000313015D13F00001130301F85B1200A26D485A137CA290387E0F80133EA2011F90
C7FC5CA2130F149E14BE130714FC1303A25C1301A25CA213035CA213075C1208EA3E0F00
7F5B131FD87E7FC8FCEA7FFE6C5A5B6C5AEA07C022317E9F27>I
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fk ecss1200 12 41
/Fk 41 122 df<BF1280A66106809D62>22 D<027FEB3FC0903801FFC05B130FA25BEB3F
C1EC804049C9FCA213FEA31201B1B638C03FC0A6D801FEC7FCB3B3A22A4A7EC934>28
D<B612C0A61A067F9821>45 D<12FFA8080877871B>I<1418147814F81303130F137FB5
FCA413F71387EA0007B3B3AD007FB61280A6214378C231>49 D<EB03FE90381FFFE0017F
13F890B57E4814FF4815802607FC0713C0380FF000D81FC0EB3FE049EB1FF0003F140F90
C713F8481407007EEC03FCA212FE48EC01FE127C123C123812181208C8FCA4ED03FCA3ED
07F8A2ED0FF016E0151FED3FC01680ED7F005D4A5A4A5A4A5A4A5A4A5A4A5A4AC7FC14FE
495A495A495A495A495A5C49C8FC137E5B485A485A485A485A485A48C9FC48B612FEA627
437CC231>I<49B4FC010F13E0013F13F890B512FE48800007158048010113C03A1FF800
7FE0D83FE0131F4914F048C7120F123EED07F8121C12181208C8FCA3ED0FF0A3ED1FE0A2
ED3FC0157FEDFF8002031300EC1FFE90380FFFFC5D15E08115FC15FFD900011380913800
7FC0ED1FE0ED0FF016F8ED07FCA2ED03FEA3ED01FFA80040EC03FE1260A200F0EC07FC7E
00FEEC0FF8127FD83FC0EB1FF0D81FF0EB7FE0390FFE01FF6CB612806C15006C5C6C6C13
F8011F13E0010190C7FC28457CC231>I<EDFF805C5CA2EC077FA2140FA2141E143EA214
7E147C14FCA2EB01F8130314F01307A2EB0FE0A2EB1FC0133F1480137F14005B5B12015B
1203485AA2485A5B121F5B123F485AA248C7FC90B712C0A6C8387F8000B12A417DC031>
I<EDFF804A7FA34A7FA3913807F7F0A215E7020F7F15E3A291381FC3FC15C1023F7F1581
A291387F80FF5DA24A6D7E5CA201016E7E5CA201036E7E5CA201076E7E5CA2010F6E7E5C
011F8116035C013F8116015C017F818291B7FC90B87EA34883A201FCC8123F0003707EA2
484882170F5B000F8317075B001F8317035B003F8317015B007F707EA290CAFC48EF7F80
A239457DC440>65 D<B612F8EDFF8016E016F816FE8290C7003F13C003077F03007F163F
707E160F707E1603831601A516035F16075F160F4C5AEE7FE04C5A03075B033F90C7FC90
B612FC16F016C08216FC16FF90C7003F13C003037F9238007FF0EE1FF8707E707E707E82
701380177F18C0A2173FA4177FA2188017FF5E4C13004C5A160FEE3FFCEEFFF8030F5B90
B75A178094C7FC16FC16E04BC8FC324577C441>I<ED3FFE0203B512F0020F14FE023FEC
FF8091B7FC5B49D9E0071300010F90C7FCD91FFC141F49481407D97FE0804A91C7FC495A
4890CAFC5A5B485AA2485AA2485AA2485AA3485AA5485AAD6C7EA56C7EA36C7EA26C7EA2
6C7EA26C7E7F7E6C6D15806D6C14016E1403D93FF8140F6D6CEC1FC06DB4147F01039038
E003FF6D90B612806DEDFE00023F5C020F14F0020314C09126003FFCC7FC32497AC63E>
I<B812E0A690CAFCB3A690B7FCA690CAFCB3A890B712F0A72C4577C43A>69
D<ED3FFC4AB512E0020F14F8023F14FF91B712C04916E049EBE0074990C7127FD91FFCEC
1FC0494814074A1403D97FC01401494814004817004890CAFC5B485AA2485AA2485AA248
5AA3485AA5485AAA4BB512F0A36C7EA392C7120FA26C7EA36C7EA26C7EA26C7EA26C7E7F
6C7F7E6D7EEB3FF0806D7ED907FF143F6D9038E007FF6D90B6FC6D16E0023F1500020F14
FC020114E09126003FFCC7FC34497AC641>71 D<B4FCB3B3B3A990B612FEA6274577C435
>76 D<D8FFE0933803FFC06D5EA36D5EA3017CEE1FBFA2017E163FA2013E173F013F167F
A26D167E6E15FEA26E1401010F16FCA26E1403010716F8A26E1407010316F0A26E140F01
0116E06E141FA2010016C06E143FA2027E1580027F147FA26E15006F5B021F5CEDC001A2
020F5CEDE003A202075CEDF007A202035CEDF80F02015CA2EDFC1F02005CA2EDFE3F037E
5BA2ED7F7F033F90C7FCA2ED1FFEA36F5AA36F5A92C9FCA2424577C455>I<ED3FE09138
03FFFE021FEBFFC04A8091B612F8010315FE499038C01FFF49D900077FD91FFC01017FD9
3FF06D6C7E49486E7E49486E7E4A140F4890C86C7E48486F7E49150100078348486F1380
A249167F001F18C049163F003F18E0A249161F007F18F0A449160F00FF18F8AC6D161F00
7F18F0A46D163F003F18E0A36C6CEE7FC0A26D16FF000F18806D5D000718006D5D6C6C4B
5A6C5F6E140F6C6D4A5A6D6C4A5AD93FF8ECFFE06D6C495B6DB401075B6DD9E03F90C7FC
6D90B55A010015F86E5C021F14C0020349C8FC9138007FF03D497BC648>79
D<EC3FF80103B57E010F14E0013F14F84914FE90B7FC48EBC00F3903FE0001D807F8EB00
7E4848143E49141E48481406123F4991C7FCA248CAFCA67FA27F123F7F7FEA1FFC6CB4FC
14E06C13FC6CEBFFC06C14FC6C14FF6D14C06D80010F14F8010380D9003F7F1403913800
7FFF03071380030113C081167FEE3FE0161FA2EE0FF0A21607A7EE0FE0126012700078ED
1FC0007C153F007E1680B46CECFF0001E05B01FCEB07FE3A7FFF801FFC001F90B55A0007
5D000115C06C6C5C010F01FCC7FC010013E02C497CC636>83 D<B4ED01FEB3B3AF6C6CEC
03FCA46C6CEC07F8A26C6CEC0FF0A26C6CEC1FE06D143F6C6CEC7FC06C6CECFF802701FF
800313006C9038F01FFE6DB55A6D5C010F14E06D5C010191C7FC9038001FF02F4777C442
>85 D<B46C912601FFC0ED7F80007FF3FF00A25E6C6C705D1B01A2EE07F76C6C705D05E7
1503160F6DEDE3F8000F505AA2EE1FC36C6C705D05C1150FA2EE3F816C6C705D0580151F
A2EE7F006C6C704A5A845E6C6C4A6E5C1B7F183F1501D97F80496E91C7FC061F5CA24B5A
D93FC0705B060F1301A2011F49485E02E016F006071303A2010F49485E02F016F8060313
07A2010749485E02F8ED01FC1A0F01034A5E153FF000FE02FC171F010191C85CA24B157E
02FE167F0100017E4C5A193FA2DA7E7C94C8FC03FC16BF191F027F17FF6E485EA2190FA2
6E485E190759457FC45C>87 D<EB07FE90387FFFC00003B57E000F14F84880819038F803
FFEB8001001EC713800018147F0010EC3FC0C8FC16E0151FA8EC7FFF010FB5FC133F48B6
FC5A000FEBE01F381FFE00EA3FF0EA7FC05B48C7FC5AA4153F7E6C6C137F9038C001FFEB
F00F6CB6FC7E15DF6C141F000313F8C60180C7FC232F7CAD2F>97
D<B4FCB3AAEC3FC0903803FFF0010F7F013F13FE497F90B6FCD9FE071380D9F00013C049
137F49EB1FE04914F090C7120F150716F81503A316FC1501AAED03F8A3150716F0150FA2
6DEB1FE06D133F6DEB7FC09039F001FF80EBFC0790B612006D5B6D5B6D13F0010713C0C7
90C7FC264A79C832>I<ECFFC0010713FC011F13FF4914C090B612E05A48EB003F01FCEB
07C04848130148481300484814005B123F5BA248C9FCA412FEAA127FA37F123FA26C6C14
206D14606C6CEB01E06D13036C6C130F6CB4137F6C90B5FC6C15C06D1400011F5B010713
F001001380232F7CAD2B>I<ED03FCB3AAEB07F890381FFF83017F13E390B512F34814FF
5A481380390FFE003F01F8130F484813075B48481303A2485AA290C7FCA25A5AAA7E7EA3
7F123F6D13076C7E150FD80FF8131F6D137F3907FF81FF6C90B5FC6C14FB6C14E36D13C3
011F1303D907F8C7FC264A7CC832>I<EB01FE903807FFC0011F13F0017F7F90B57E4880
48EB03FF3907FC007F4848EB3F8049131F4848EB0FC05B4848EB07E0A248C71203A2127E
ED01F0B7FCA600FCC9FCA27EA3127EA2127F7E7FA26C7E6D14106C6C14706C6CEB01F0D8
03FE13079038FF803F6C90B5FC6C15E0013F14806DEBFE00010713F8010013C0242F7DAD
2B>I<EC1FF0EC7FFEEB01FF5B5B5B90381FF01E90383FC002EC800049C7FCA213FEA312
01B0B61280A6D801FEC7FCB3B3A21F4A7EC91E>I<D903FCEB0FE0D90FFF13FF013F13C7
4990B512F090B7FC5A2603FE07EB80002707F801FEC7FCEBF0004848137F497FA248486D
7EA86C6C49C7FCA26D5B6C6C13FEEBF8013903FE07FC48B55A5D485C01BF5BD81F8F90C8
FCEB83FC90CAFC7FA37F7F90B512F86CECFF8016E06C15F86C814881001F81A2273FC000
0F13804848130090C8127F48ED3FC048151FA5007FED3F806D147F6C6CECFF0001F81307
6CB4EB3FFE6C90B55A6C5D000115E06C6C1480011F49C7FC010113E02C427DAC31>I<B4
FCB3AAEC7FC0903801FFF801077F011F7F497F491480EBFE03D9F80013C049137F49133F
4914E0151F5BA390C7FCB3AC234979C832>I<EAFF80A9C7FCB0EA7F80B3B3A809457AC4
17>I<B4FCB3ABED7FE0EDFFC04A13804A13004A5A4A5A4A5A5D4A5A4A5A4A5A4990C7FC
495A1307495A495A495A137F13FF8080A2EBFDFEEBF9FF13F0496C7E01C07F143F01807F
496C7E140F8114076E7E8114016E7E1680157FED3FC016E0151FED0FF016F8254979C82F
>107 D<12FFB3B3B3B3084979C817>I<DA7FC0EB0FF827FF01FFF8EB3FFF01076D90B512
80011FD9FE0314C0496D4814E049028F14F0D9FE0390389FC07FD9F8009039FF001FF849
6D48130F496D481307494A14FC031F1403495CA390C75BB3AC3E2D79AC4D>I<EC7FC039
FF01FFF801077F011F7F497F491480EBFE03D9F80013C049137F49133F4914E0151F5BA3
90C7FCB3AC232D79AC32>I<EC7F80903803FFF0010F13FC013F13FF498090B67E489038
807FE03A03FE001FF0D807F8EB07F848486D7E49130148486D7EA24848147FA248C8EA3F
80A3007E151F00FE16C0A96C153F6C1680A36D147F003F16006D5C001F5D6D13016C6C49
5A6C6C495A01FE131F3A03FF807FF06C90B55A6C5D013F91C7FC6D5B010313F09038007F
802A2F7DAD31>I<EC3FC039FF03FFF0010F7F013F13FE497F90B6FCD9FE071380D9F000
13C049137F49EB3FE049EB1FF090C7120FA2ED07F8A21503A216FC1501AAED03F8A31507
16F0150F151F6D14E06D133F6DEBFFC06D481380EBFC0F90B612006D5B6D5B6D13F00107
13C0010090C7FC91C8FCB2264079AC32>I<141F00FE13FF13035B131F5B5BEBFFF01480
38FFFE005B5B5B5B5BA25BA390C7FCB3A8182D79AC21>114 D<EB3FF848B5FC4814C000
0F14F04814F85AEBE00F397F8001F090C7127000FE14301500A57E7FEA7FE013FC383FFF
E06C13FC14FF000714806C14E06C14F06C7E010713F89038003FFC14071403EC01FEA214
00A412400070EB01FC1278007E130339FFE01FF890B512F0A26C14E0001F14800003EBFE
0038003FF01F2F7DAD25>I<EA01FEADB612F0A6D801FEC7FCB3AB7F150815386CEB81F8
ECFFFC7FA26D13F06D138090380FF8001E3A7EB823>I<B4EC1FE0B3AE153FA2157FA26D
13FF1403387FE00F90B6FC6C14DF151F6C13FC000713F0000190C8FC232D79AB32>I<B4
6CD91FE0EB01FE007F6FEB03FCA2153F6C6C6EEB07F8153D157D6C6C17F0DB7CFC130FA2
15FC6C6C6EEB1FE015F81401D807F8027E14C0047F133F15F01403D803FC6E1480EF807F
15E000010107160001FE141F715A15C00000010F5D01FF140F17E1017F01805CA2021F13
07D93F9FECF3F815001603A2D91F9E5D14BE1601010F5E02FC14FF82A26D485DA23F2C7F
AB42>119 D<D87FC0EC7FC06C6CECFF80001F16006D5B6C6C495A6C6C495A6C6C5C0001
4A5A6C6C131F6E485AD97FC05B6D6C485A011F49C7FCEB0FF1903807FBFEECFFFC6D5B6D
5B7F6E5A5D6E5A4A7E4A7E81497F903803FBFCEB07F990380FF0FE4A7E011F6D7E49486C
7E49486C7EEBFF006F7E48486D7E48488000076E7E48481301496D7E48481580003FED7F
C04848EC3FE04848EC1FF02C2C80AB2D>I<B415FFA27F007FEC01FE7F123FED03FC7F00
1FEC07F87F120FED0FF07F12076DEB1FE0120316C06C6C133FA216806C6C137FA26D1400
6E5A5D133F14C1011F5BA2ECE1F8EB0FE3A201075B14F3A2903803F7E0A201015BA2EB00
FF5DA2147F92C7FCA2147E14FEA25C1301A25C13035C13075CEA400F38781FC0EA7FFF5C
91C8FC5B5BEA0FF028407EAB2D>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fl ecrm0700 7 5
/Fl 5 54 df<13381378EA01F8121F12FE12E01200B3AB487EB512F8A215267BA521>49
D<13FF000313E0380E03F0381800F848137C48137E00787F12FC6CEB1F80A4127CC7FC15
005C143E147E147C5C495A495A5C495A010EC7FC5B5B903870018013E0EA018039030003
0012065A001FB5FC5A485BB5FCA219267DA521>I<13FF000313E0380F01F8381C007C00
30137E003C133E007E133FA4123CC7123E147E147C5C495AEB07E03801FF8091C7FC3800
01E06D7E147C80143F801580A21238127C12FEA21500485B0078133E00705B6C5B381F01
F03807FFC0C690C7FC19277DA521>I<1438A2147814F81301A2130313071306130C131C
131813301370136013C012011380EA03005A120E120C121C5A12305A12E0B612E0A2C7EA
F800A7497E90383FFFE0A21B277EA621>I<0018130C001F137CEBFFF85C5C1480D819FC
C7FC0018C8FCA7137F3819FFE0381F81F0381E0078001C7F0018133EC7FC80A21580A212
30127C12FCA3150012F00060133E127000305B001C5B380F03E03803FFC0C648C7FC1927
7DA521>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fm ectt1000 10 68
/Fm 68 123 df<143814FC13011303EB07F8EB0FF0EB1FC0EB3F80EB7F0013FE485A485A
5B12075B120F5B485AA2123F90C7FCA25A127EA312FE5AAC7E127EA3127F7EA27F121FA2
6C7E7F12077F12037F6C7E6C7E137FEB3F80EB1FC0EB0FF0EB07F8EB03FC130113001438
164272B92C>40 D<127012FC7E7E6C7E6C7EEA0FE06C7E6C7E6C7E6C7E137F7F1480131F
14C0130FEB07E0A214F01303A214F81301A314FC1300AC130114F8A3130314F0A2130714
E0A2EB0FC0131F1480133F14005B13FE485A485A485A485AEA3FC0485A48C7FC5A5A1270
164279B92C>I<EB0380497EA60020140800F8143E00FE14FE00FF13C1EBC7C7EBE7CF00
3FB512F8000F14E0000314806C140038007FFCA248B5FC481480000F14E0003F14F839FF
E7CFFEEBC7C7EB07C100FE13C000F8143E0020140800001400A66D5A1F247AAA2C>I<EA
0F80EA1FE0EA3FF0EA7FF8A213FCA3123F121F120F120013F8A21201EA03F01207EA1FE0
EA7FC0EAFF80130012FC12700E17718A2C>44 D<007FB512F0B612F8A36C14F01D057994
2C>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B708A2C>I<1507ED0F80A2
151F16005D153E157E157CA215FC5D14015D14035D14075D140F5D141F92C7FC5C143EA2
147E147C14FC5C13015C13035C13075C130F5C131F91C8FC5B133EA2137E137C13FC5B12
015B12035B12075B120F5B121F90C9FCA25A123E127E127C12FC5AA2127021417BB92C>
I<EB03F8EB0FFE90383FFF80497F90B57E3901FE0FF03903F803F848486C7EEBE0004848
137EA248487FA248C7EA1F80A2003E140F007E15C0A3007C140700FC15E0AC6C140F007E
15C0A46CEC1F80A36C6CEB3F00A26C6C137E6D13FE00075CEBF0016C6C485A3901FE0FF0
6CB55A6D5B6D5BD90FFEC7FCEB03F823357CB32C>I<1307497EA2131FA2133F137F13FF
5A1207127FB5FC13DF139FEA7C1F1200B3AE007FB512E0B612F0A36C14E01C3477B32C>
I<EB0FF890387FFF8048B512E00007804814FC391FF80FFE393FE001FF903880007F48C7
EA3F80007E141F00FE15C0150F6C15E01507A3127E123CC8FCA2150F16C0151F1680153F
16005D15FE4A5A14034A5A4A5A4A5A4A5AECFF804948C7FC495A495A495AEB3FE0EB7F80
49C8FC485A4848EB03C04848EB07E0EA1FE0485A48B6FCB7FCA36C15C023347CB32C>I<
EB0FFC90387FFF8048B512E0000714F84880391FF807FEEBC0004848137F6D7F1680151F
A26C5A6CC7FCC8FC153F16005D15FE14014A5AEC1FF890381FFFF0495BA215F86D7F9038
0007FEEC00FF81ED3F80ED1FC0150FA216E01507A2123C127EB4FC150F16C0A248141F00
7FEC3F806DEB7F006C6C5B391FF807FE6CB55A6C5C6C14E0C66C1380D90FFCC7FC23357C
B32C>I<EC07F04A7E141F143FA2147EA214FCEB01F8A2EB03F0EB07E0A2EB0FC0EB1F80
A2EB3F00137EA25B485AA2485A5B1207485AA2485A48C7FCA2127E5AB712FC16FEA36C15
FCC8EAF800AA91387FFFF091B512F8A36E13F027347EB32C>I<000FB512FE4880A35D01
80C8FCADEB83FE90389FFF8090B512E015F8819038FE03FE9038F000FF01C07F49EB3F80
90C7121F6C15C0C8120FA2ED07E0A4123C127EB4FC150F16C0A248141F007EEC3F80007F
EC7F006C6C5B6D485A391FF80FFC6CB55A6C5C000114C06C6C90C7FCEB0FF823347CB22C
>I<EC3FC0903801FFF801077F011F7F497F90387FE07F9039FF003F804848137FEA03F8
485A5B000FEC3F004848131E4990C7FC123F90C9FCA25A127EEB03FE90381FFF80D8FC7F
13E000FDB57EB67E9038FE07FC9038F001FE9038C0007F49EB3F8090C7121F16C048140F
16E01507A3127EA47E150F6D14C0001F141F6D1480000F143F6DEB7F003907F801FE3903
FE07FC6CB55A6C5C6D5B011F1380D907FCC7FC23357CB32C>I<1278B712C016E0A316C0
00FCC7EA3F80ED7F0015FE00785CC712014A5A4A5A5D140F5D4A5A143F92C7FC5C147E14
FE5C13015CA2495AA213075CA3495AA4495AA5133F91C8FCAA131E23357CB32C>I<EB07
FCEB3FFF90B512C0488048803907FC07F8390FF001FC48486C7ED83F80137E157F48C77E
007EEC1F8012FE5AED0FC0A416E0A37E127E007F141F7E6D133F6C6C137F390FF001FF38
07FC0F6CB6FC6C14F76C14C7013F130FD90FF813C090C7FCA2151F1680153F1600000F5C
486C137E486C13FE4A5A4A5A14079038801FF0391FE07FE090B55A6C91C7FC6C5B000113
F838007FC023357CB32C>57 D<14FE497EA4497FA214EFA2130781A214C7A2010F7FA314
C390381F83F0A590383F01F8A490387E00FCA549137E90B512FEA34880A29038F8003FA3
4848EB1F80A4000715C049130FD87FFEEBFFFC6D5AB514FE6C15FC497E27347EB32C>65
D<007FB512E015F8B612FE6C8016C03903F0003FED0FE0ED07F01503A2ED01F8A6ED03F0
A21507ED0FE0ED1FC0EDFF8090B612005D5D15FF16C09039F0001FE0ED07F0ED03F81501
ED00FCA216FE167EA616FE16FC1501ED03F8150FED3FF0007FB612E016C0B712806CECFE
0015F027337FB22C>I<02FF13700107EBE0F84913F9013F13FD4913FFEBFF813901FE00
7F4848131FD807F0130F1507485A491303485A150148C7FCA25A007EEC00F01600A212FE
5AAB7E127EA3007F15F06CEC01F8A26C7EA26C6C13036D14F06C6C130716E0D803FC131F
6C6CEB3FC03A00FF81FF806DB512006D5B010F5B6D13F00100138025357DB32C>I<007F
B5FCB612C015F0816C803907E003FEEC00FFED7F80153FED1FC0ED0FE0A2150716F01503
16F81501A4ED00FCACED01F8A3150316F0A2150716E0150FED1FC0153FED7F80EDFF00EC
03FE007FB55AB65A5D15C06C91C7FC26337EB22C>I<007FB612F0B712F8A37E3903F000
01A7ED00F01600A4EC01E04A7EA490B5FCA5EBF003A46E5A91C8FCA5163C167EA8007FB6
12FEB7FCA36C15FC27337EB22C>I<007FB612F8B712FCA37ED803F0C7FCA716781600A5
15F04A7EA490B5FCA5EBF001A46E5A92C7FCAD387FFFE0B5FC805C7E26337EB22C>I<90
3901FC038090390FFF87C04913EF017F13FF90B6FC4813073803FC01497E4848137F4848
133F49131F121F5B003F140F90C7FCA2127EED078092C7FCA212FE5AA8913803FFF84A13
FCA27E007E6D13F89138000FC0A36C141FA27F121F6D133F120F6D137F6C7E6C6C13FF6D
5A3801FF076C90B5FC6D13EF011F13CF6DEB0780D901FCC7FC26357DB32C>I<D87FFEEB
FFFCB54813FEA36C486C13FCD807E0EB0FC0B190B6FCA59038E0000FB3D87FFEEBFFFCB5
4813FEA36C486C13FC27337EB22C>I<007FB512F8B612FCA36C14F839000FC000B3B3A5
007FB512F8B612FCA36C14F81E3379B22C>I<D87FFCEB7FF8486CEBFFFCA36C48EB7FF8
D807C0EB1F80153FED7F00157E5D4A5A14034A5A5D4A5A4A5A143F4AC7FC147E5CEBC1F8
13C3EBC7FCA2EBCFFEEBDFBEEBFFBF141F01FE7F496C7E13F86E7EEBF00301E07FEBC001
816E7EA2157E153E153F811680ED0FC0A2ED07E0D87FFCEB1FFC486CEB3FFEA36C48EB1F
FC27337EB22C>75 D<387FFFE0B57EA36C5BD803F0C8FCB3AE16F0ED01F8A8007FB6FCB7
FCA36C15F025337DB22C>I<D87FE0EB0FFC486CEB1FFEA26D133F007F15FC000F15E001
BC137BA4019E13F3A3EB9F01A2018F13E3A21483A2018713C314C7A201831383A214EFA2
01811303A214FFEB80FEA3147C14381400ACD87FF0EB1FFC486CEB3FFEA36C48EB1FFC27
337EB22C>I<D87FF0EB7FFC486CEBFFFEA27F007FEC7FFCD807FEEB07C013DEA213DF13
CFA2148013C714C0A213C314E0A213C114F0A213C014F8A2147CA3143EA2141E141FA214
0F1587A2140715C7A2140315E71401A215F71400A215FFD87FFC137F487E153FA26C48EB
1F8027337EB22C>I<EB7FFF0003B512E0000F14F848804880EBE003EB800048C7127FA2
007E80A300FE158048141FB3A86C143FA2007E1500A3007F5CA26C6C13FEEBF00790B5FC
6C5C6C5C000314E0C66C90C7FC21357BB32C>I<007FB512C0B612F88115FF6C15802603
F00013C0153FED0FE0ED07F0A2150316F81501A6150316F01507A2ED0FE0ED3FC015FF90
B61280160015FC5D15C001F0C8FCB0387FFF80B57EA36C5B25337EB22C>I<387FFFFCB6
7E15E015F86C803907E007FE1401EC007F6F7E151FA26F7EA64B5AA2153F4BC7FCEC01FE
140790B55A5D15E081819038E007FCEC01FE1400157F81A8160FEE1F80A5D87FFEEB1FBF
B5ECFF00815E6C486D5AC8EA01F029347EB22C>82 D<90381FF80790B5EA0F804814CF00
0714FF5A381FF01F383FC003497E48C7FC007E147F00FE143F5A151FA46CEC0F00007E91
C7FC127F7FEA3FE0EA1FFCEBFFC06C13FC0003EBFFC06C14F06C6C7F01077F9038007FFE
EC07FF02001380153FED1FC0A2ED0FE0A20078140712FCA56CEC0FC0A26CEC1F806D133F
01E0EB7F009038FE01FF90B55A5D00F914F0D8F83F13C0D8700790C7FC23357CB32C>I<
007FB612FCB712FEA43AFC007E007EA70078153CC71400B3AF90383FFFFCA2497F6D5BA2
27337EB22C>I<3B7FFF803FFFC0B56C4813E0A36C496C13C03B03F00001F800B3AF6D13
0300015DA26D130700005D6D130F017F495A6D6C485AECE0FF6DB5C7FC6D5B010313F86D
5B9038003F802B3480B22C>I<D87FFCEB7FFC486CEBFFFEA36C48EB7FFCD80FC0EB07E0
6D130F000715C0A36D131F00031580A36D133F00011500A36D5B0000147EA4017E5BA46D
485AA490381F83F0A4010F5B14C7A301075BA214EFA201035BA214FFA26D90C7FCA46D5A
27347EB22C>I<D87FF0EB07FF486C491380A36C486D1300001FC8127CA46C6C5CA76C6C
495AA4143E147FA33A03E0FF83E0A214F7A201E113C3A3000101E35BA201F113C701F313
E7A314C1A200005DA201F713F71480A301FF13FF017F91C7FC4A7EA4013E133E29347FB2
2C>I<3A3FFF03FFE0484913F0148714076C6D13E03A01F800FE007F0000495A13FE017E
5BEB7F03013F5B1487011F5B14CF010F5B14FF6D5BA26D90C7FCA26D5AA26D5AA2497EA2
497EA2497F81EB0FCF81EB1FC7EC87F0EB3F83EC03F8EB7F01017E7FEBFE00497F000114
7E49137F000380491480151FD87FFEEBFFFC6D5AB514FE6C15FC497E27337EB22C>I<D8
7FFCEB7FFC486CEBFFFEA36C48EB7FFCD807F0EB0FC0151F000315806D133F12016DEB7F
0012006D137E017E13FE017F5BEB3F01EC81F8131FEC83F0EB0FC314C7903807E7E0A201
035B14EF6DB45AA292C7FC7F5C147EB0903807FFE0497FA36D5B27337EB22C>I<003FB6
12C04815E0A4007EC7EA1FC0ED3F80A2ED7F00157E15FE4A5A003C5CC712034A5AA24A5A
4A5AA24A5A4AC7FCA214FE495AA2495A495AA2495A495AA2495A49C8FCA213FE485AA248
48EB03C049EB07E01207485A5B121F485AA248C7FCB7FCA46C15C023337CB22C>I<1270
12F8A27E127C127E123E123F7EA27F120F7F12077F12037F12017F12007F137C137E133E
A2133F7F80130F80130780130380130180130080147C147E143EA2143F8081140F811407
81140381140181140081157CA2157E153E153F811680150FA2ED070021417BB92C>92
D<007FB6FCB71280A46C150021067B7D2C>95 D<3801FFF0000713FE001F6D7E15E04880
9038C01FF81407EC01FC381F80000006C77EC8127EA3ECFFFE131F90B5FC1203120F48EB
807E383FF800EA7FC090C7FC12FE5AA47E007F14FEEB8003383FE01F6CB612FC6C15FE6C
14BF0001EBFE1F3A003FF007FC27247CA32C>97 D<EA7FF0487EA3127F1201AAEC1FE0EC
FFF801FB13FE90B6FC16809138F07FC09138801FE091380007F049EB03F85BED01FC4913
00A216FE167EA816FE6D14FCA2ED01F86D13036DEB07F0150F9138801FE09138E07FC091
B51280160001FB5B01F813F83900F03FC027337FB22C>I<903803FFE0011F13F8017F13
FE48B5FC48804848C6FCEA0FF0485A49137E4848131890C9FC5A127EA25AA8127EA2127F
6C140F6DEB1F806C7E6D133F6C6CEB7F003907FE03FF6CB55A6C5C6C6C5B011F13E00103
90C7FC21247AA32C>I<EC0FFE4A7EA380EC003FAAEB07F8EB3FFE90B512BF4814FF5A38
07FC0F380FF00348487E497E48487F90C7FC007E80A212FE5AA87E007E5CA2007F5C6C7E
5C6C6C5A380FF0073807FC1F6CB612FC6CECBFFE6C143FEB3FFC90390FF01FFC27337DB2
2C>I<EB03FE90381FFFC0017F13F048B57E48803907FE03FE390FF800FFD81FE0EB3F80
5B4848EB1FC090C7120F5A007E15E015075AB7FCA416C000FCC9FC7E127EA2127F6CEC03
C06DEB07E06C7ED80FF0130F6C6CEB3FC001FF13FF000190B512806C1500013F13FC010F
13F00101138023247CA32C>I<EC0FF8EC3FFE91B5FC4914805B903807FC7F14F090390F
E03F0014C092C7FCA6007FB512FEB7FCA36C5C26000FC0C7FCB3A8003FB512F04880A36C
5C21337DB22C>I<ED03F8903907F80FFC90391FFE3FFE017FB6FC48B7FC48ECFE7F9038
FC0FF82607F003133E3A0FE001FC1CD9C0001300001F8049137EA66D13FE000F5CEBE001
6C6C485A3903FC0FF048B5FC5D481480D99FFEC7FCEB87F80180C8FCA37F6C7E90B512F0
6C14FE48ECFF804815E04815F03A3FC0001FF848C7EA03FC007E1400007C157C00FC157E
48153EA46C157E007E15FCD87F801303D83FE0EB0FF8D81FFCEB7FF06CB612E000031580
6C1500D8003F13F8010713C028387EA42C>I<EA7FF0487EA3127F1201AAEC1FE0EC7FFC
9038F9FFFE01FB7F90B6FC9138F03F80ECC01F02807FEC000F5B5BA25BB3267FFFE0B5FC
B500F11480A36C01E0140029337FB22C>I<1307EB1FC0A2497EA36D5AA20107C7FC90C8
FCA7387FFFC080B5FC7EA2EA0007B3A8007FB512FCB612FEA36C14FC1F3479B32C>I<14
0EEC3F80A2EC7FC0A3EC3F80A2EC0E0091C7FCA748B512804814C0A37EC7120FB3B3A214
1F003C1480007E133FB414005CEB01FEEBFFFC6C5B5C001F5B000790C7FC1A467CB32C>
I<EA7FE0487EA3127F1201AA91381FFFF04A13F8A36E13F0913800FE004A5A4A5A4A5A4A
5A4A5A4A5A4AC7FC14FEEBF1FC13F3EBF7FE90B5FCA2EC9F80EC0FC001FE7FEBFC07496C
7E496C7E811400157E811680151F3A7FFFC0FFFCB500E113FEA36C01C013FC27337EB22C
>I<387FFFE0B57EA37EEA0003B3B3A5007FB61280B712C0A36C158022337BB22C>I<3A7F
83F007E09039CFFC1FF83AFFDFFE3FFCD87FFF13FF91B57E3A07FE1FFC3E01FCEBF83F49
6C487E01F013E001E013C0A301C01380B33B7FFC3FF87FF0027F13FFD8FFFE6D13F8D87F
FC4913F0023F137F2D2481A32C>I<397FF01FE039FFF87FFC9038F9FFFE01FB7F6CB6FC
00019038F03F80ECC01F02807FEC000F5B5BA25BB3267FFFE0B5FCB500F11480A36C01E0
140029247FA32C>I<EB07FCEB1FFF017F13C048B512F048803907FC07FC390FF001FE48
486C7E0180133F003F158090C7121F007EEC0FC0A348EC07E0A76C140F007E15C0A2007F
141F6C15806D133F6C6CEB7F006D5B6C6C485A3907FC07FC6CB55A6C5C6C6C13C0011F90
C7FCEB07FC23247CA32C>I<397FF01FE039FFF8FFF801FB13FE90B6FC6C158000019038
F07FC09138801FE091380007F049EB03F85BED01FC491300A216FE167EA816FE6D14FCA2
ED01F86D13036DEB07F0150F9138801FE09138E07FC091B51280160001FB5B01F813F8EC
3FC091C8FCAD387FFFE0B57EA36C5B27367FA32C>I<903903FC078090391FFF0FC0017F
13CF48B512EF4814FF3807FE07380FF00148487E49137F4848133F90C7FC48141F127E15
0F5AA87E007E141FA26C143F7F6C6C137F6D13FF380FF0033807FC0F6CB6FC6C14EF6C6C
138F6D130FEB07F890C7FCAD0203B5FC4A1480A36E140029367DA32C>I<D87FFEEB3FC0
B53801FFF0020713F8021F13FC6C5B39003F7FE1ECFF019138FC00F84A13704A13005CA2
5C5CA391C8FCAF007FB512E0B67EA36C5C26247EA32C>I<90387FF8700003B512F8120F
5A5A387FC00F387E00034813015AA36CEB00F0007F140013F0383FFFC06C13FE6CEBFF80
000314E0C66C13F8010113FCEB0007EC00FE0078147F00FC143F151F7EA26C143F6D133E
6D13FE9038F007FC90B5FC15F815E000F8148039701FFC0020247AA32C>I<131E133FA9
007FB6FCB71280A36C1500D8003FC8FCB1ED03C0ED07E0A5EC800F011FEB1FC0ECE07F6D
B51280160001035B6D13F89038003FE0232E7EAD2C>I<3A7FF003FF80486C487FA3007F
7F0001EB000FB3A3151FA2153F6D137F3900FE03FF90B7FC6D15807F6D13CF902603FE07
130029247FA32C>I<3A7FFF01FFFCB514FE148314016C15FC3A03E0000F80A26D131F00
011500A26D5B0000143EA26D137E017C137CA2017E13FC013E5BA2EB3F01011F5BA21483
010F5BA214C701075BA214EF01035BA214FF6D90C7FCA26D5A147C27247EA32C>I<D87F
FFEB7FFF6EB5FCB515806C16004A7ED807C0EB01F0A66C6C495AA3143E147FA2D801F049
5AECFF87A214F7A201F113C700005D9038F9E3CFA201FB13EFA3D97BC190C7FC017F13FF
A21480A2013F5B90381F007C29247FA32C>I<3A3FFF03FFF048018713F8A36C010313F0
3A00FC007E005D90387E01F8013F5BEB1F83EC87E090380FCFC0903807EF80EB03FF6D90
C7FC5C6D5A147C14FE130180903803EF80903807CFC0EB0FC7EC83E090381F01F0013F7F
EB7E00017C137C49137E0001803A7FFF01FFFC1483B514FE6C15FC140127247EA32C>I<
3A7FFF01FFFCB5008113FE148314816C010113FC3A03E0000F806C7E151F6D140012005D
6D133E137C017E137E013E137CA2013F13FC6D5BA2EB0F815DA2EB07C1ECC3E0A2EB03E3
ECE7C0130114F75DEB00FFA292C7FC80A2143EA2147E147CA214FC5CA2EA0C01003F5BEA
7F83EB87E0EA7E0F495A387FFF806C90C8FC6C5A6C5AEA07E027367EA32C>I<003FB612
E04815F0A4007EC7EA1FE0ED3FC0ED7F80EDFF004A5A003C495AC7485A4A5A4A5A4A5A4A
5A4AC7FCEB01FC495AEB0FF0495A495A495A49C8FC4848EB01E04848EB03F0485A485A48
5A485A485AB7FCA46C15E024247DA32C>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fn ecbx1000 10 29
/Fn 29 122 df<BE12FCA35E0380975F>22 D<141E143E14FE1307137FB5FCA3138FEA00
0FB3B3A5007FB61280A4213679B530>49 D<EB0FFE90387FFFC048B512F0000714FC390F
E03FFF261F800F1380263F000313C0D87F8014E0EBE00100FF6D13F07FA2ED7FF8A46C5A
6C5A0006C7FCC8FCEDFFF0A216E05C16C04A138016004A5A4A5AEC1FF05D4A5A4AC7FC14
FE495AD903F01378495A495A495A49C712F8017C14F05B49130148B6FC5A5A5A5A5A4815
E0B7FCA425367BB530>I<EB03FF011F13F0017F13FC3901FC07FF2603F003138048486C
13C0496C13E0EA0FF86D14F0487EA66C4814E06C5A6C485AC714C04A138016004A5A4A5A
EC3FF090380FFFC05D15F090380007FE913801FF806E13C016E0ED7FF016F8ED3FFCA216
FEEA1FC0487E487E487EA416FCA249137F007F15F801C0EBFFF06C5A6C6C4813E0260FFC
0713806CB61200000114FC6C6C13F0010790C7FC27377CB530>I<ED07C0150FA2151F15
3F157F15FF5CA25C5C5C5C143E143C5C5C1301495A5C495A495A5B133E5B13785B485A12
03485A5B48C7FC121E5A127C5AB81280A4C70001EBC000AA0103B61280A429367DB530>
I<B812C017FC17FF18C028007FF000037F04007F717E717E171F84A2717EA74D5AA26017
3F4D5A4D5A4C13C0040F5B91B600FCC7FCA2EFFF8002F0C713F0EF3FF8717E717E717E19
807113C0A319E0A719C0A25F4D138019005FEF7FFE4C485AB912F018C095C7FC17F03B39
7DB844>66 D<B612FCA439007FF800B3B3ADB612FCA41E397DB824>73
D<B7FCA426007FF8C9FCB3ACEF0780A5170F1800A35FA25FA25F5F5E5EEE0FFE167FB8FC
A431397DB839>76 D<EDFFF8020FEBFF80027F14F0903A01FFC01FFC010790380007FFD9
1FFC010113C0D93FF06D6C7E49486E7E49486E7E48496E7E48834890C86C7EA248486F13
80A248486F13C0A2003F18E0A348486F13F0A400FF18F8AC007F18F06D5DA3003F18E0A2
6D5D001F18C0A26C6C4B13806C18006E5C6C6D4A5A6C5F6C6D4A5A6D6C4A5AD93FFC4948
5A6DB401075B0107D9C01F90C7FC010190B512FC6D6C14F0020F1480020001F8C8FC3D3B
7BB948>79 D<B8FC17F017FEEFFF8028007FF8000F13C0040113E07013F0EF7FF8EF3FFC
A2EF1FFEA218FFA818FEA2EF3FFCA2EF7FF8EFFFF04C13E0040F13C091B7120017FC17E0
02F8C9FCB3A4B612FCA438397DB841>I<D907FF130E013FEBE01E90B5EAF83E0003ECFE
7E3A07FC01FFFE390FF0001F4848130F48481303491301007F140090C8FC167E5A163EA2
7F161E7F7F6D91C7FC13FC387FFFE014FEECFFF06C14FE6F7E6C816C15F06C816C81C681
133F010F801301D9000F1480EC007F030F13C01503818100F0157FA3163FA27E17807E16
7F6C16007E6D14FE01E0495A01F813039039FF801FF800FC90B512E0D8F83F5CD8F00749
C7FC39E0007FF02A3B7BB935>83 D<EB3FFE0003B512E0000F14F8391FF00FFE003FEB03
FF6D6C7F6E7FA26F7EA26C5A6C5AEA0380C8FCA2EC3FFF010FB5FC137F3901FFF87F0007
1380380FFE00EA3FF85B485A12FF5BA415FF6D5A127F263FF00713F83B1FFC1FBFFFC039
0FFFFE1F0003EBF80F39003FE0032A257DA42E>97 D<903801FFC0010F13FC017F13FFD9
FF8013802603FE0013C048485AEA0FF8121F13F0123F6E13804848EB7F00151C92C7FC12
FFA9127FA27F123FED01E06C7E15036C6CEB07C06C6C14806C6C131FC69038C07E006DB4
5A010F13F00101138023257DA42A>99 D<EE7F80ED7FFFA4150381AF903801FF81010F13
F1013F13FD9038FFC07F0003EB001FD807FC1307000F8048487F5B123FA2485AA312FFAA
127FA27F123FA26C6C5B000F5C6C6C5B6C6C4913C02701FF80FD13FE39007FFFF9011F13
E1010113012F3A7DB935>I<903803FF80011F13F0017F13FC3901FF83FE3A03FE007F80
4848133F484814C0001FEC1FE05B003FEC0FF0A2485A16F8150712FFA290B6FCA301E0C8
FCA4127FA36C7E1678121F6C6C14F86D14F000071403D801FFEB0FE06C9038C07FC06DB5
1200010F13FC010113E025257DA42C>I<EC1FF0903801FFFC010713FF90391FF87F8090
383FE0FFD9FFC113C0A2481381A24813016E1380A2ED3E0092C7FCA8B6FCA4000390C8FC
B3ABB512FEA4223A7DB91D>I<161FD907FEEBFFC090387FFFE348B6EAEFE02607FE0713
8F260FF801131F48486C138F003F15CF4990387FC7C0EEC000007F81A6003F5DA26D13FF
001F5D6C6C4890C7FC3907FE07FE48B512F86D13E0261E07FEC8FC90CAFCA2123E123F7F
6C7E90B512F8EDFF8016E06C15F86C816C815A001F81393FC0000F48C8138048157F5A16
3FA36C157F6C16006D5C6C6C495AD81FF0EB07FCD807FEEB3FF00001B612C06C6C91C7FC
010713F02B377DA530>I<13FFB5FCA412077EAFED7FC0913803FFF8020F13FE91381F03
FFDA3C01138014784A7E4A14C05CA25CA291C7FCB3A3B5D8FC3F13FFA4303A7DB935>I<
EA01F0EA07FC487EA2487EA56C5AA26C5AEA01F0C8FCA913FF127FA412077EB3A9B512F8
A4153B7DBA1B>I<13FFB5FCA412077EB3B3ACB512FCA4163A7DB91B>108
D<01FEEB7FC000FF903803FFF8020F13FE91381F03FFDA3C011380000713780003497E6D
4814C05CA25CA291C7FCB3A3B5D8FC3F13FFA430257DA435>110
D<903801FFC0010F13F8017F13FFD9FF807F3A03FE003FE048486D7E48486D7E48486D7E
A2003F81491303007F81A300FF1680A9007F1600A3003F5D6D1307001F5DA26C6C495A6C
6C495A6C6C495A6C6C6CB45A6C6CB5C7FC011F13FC010113C029257DA430>I<9039FF01
FF80B5000F13F0023F13FC9138FE07FFDAF00113800003496C13C00280EB7FE091C713F0
EE3FF8A2EE1FFCA3EE0FFEAA17FC161FA217F8163F17F06E137F6E14E06EEBFFC0DAF003
13809139FC07FE0091383FFFF8020F13E0020390C7FC91C9FCACB512FCA42F357EA435>
I<9038FE03F000FFEB0FFEEC3FFF91387C7F809138F8FFC000075B6C6C5A5CA29138807F
80ED3F00150C92C7FC91C8FCB3A2B512FEA422257EA427>114 D<90383FF0383903FFFE
F8000F13FF381FC00F383F0003007E1301007C130012FC15787E7E6D130013FCEBFFE06C
13FCECFF806C14C06C14F06C14F81203C614FC131F9038007FFE140700F0130114007E15
7E7E157C6C14FC6C14F8EB80019038F007F090B512C000F8140038E01FF81F257DA426>
I<130FA55BA45BA25B5BA25A1207001FEBFFE0B6FCA3000390C7FCB21578A815F86CEB80
F014816CEBC3E090383FFFC06D1380903803FE001D357EB425>I<01FFEC3FC0B5EB3FFF
A4000714016C80B3A35DA25DA26C5C6E4813E06CD9C03E13FF90387FFFFC011F13F00103
138030257DA435>I<B539F01FFFF0A4000390398003F8006C01C013E06C1407D97FE05B
6D6C485A6E48C7FC90381FFC3E010F5B903807FEFC6D6C5A5D6D5B6D5B6E7E6E7E814A7E
A24A7E903801F3FFD903E37FD907C17FEB0FC049486C7E4A6C7E013E80496D7E49130F00
016E7EB590383FFFF8A42D257EA432>120 D<B539F001FFF8A4000390C7EA1F00161E6E
133E6C153C6E137C6C15786E13F8017F5CECF001013F5C14F8011F495AA2ECFC07010F5C
ECFE0F010791C7FC6E5A6D131E15BE6D13BC15FC6D5BA36E5AA26E5AA26E5AA26E5AA292
C8FCA25C141E003F133E387F803C38FFC07C147814F8EBC1F0EBC3E06C485A387D1F80D8
3FFFC9FCEA1FFCEA07F02D357EA432>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fo ecrm0900 9 30
/Fo 30 122 df<14C01301EB0380EB0F00130E5B133C5B5BA2485A485AA212075B120F90
C7FC5AA2121E123EA3123C127CA55AB0127CA5123C123EA3121E121FA27E7F12077F1203
A26C7E6C7EA213787F131C7F130FEB0380EB01C01300124A79B71E>40
D<12C07E1270123C121C7E120F6C7E6C7EA26C7E6C7EA27F1378137C133C133EA2131E13
1FA37F1480A5EB07C0B0EB0F80A514005BA3131E133EA2133C137C137813F85BA2485A48
5AA2485A48C7FC120E5A123C12705A5A124A7CB71E>I<123C127E12FFA4127E123C0808
7A8715>46 D<B512FEA3000113006C5AB3B3A7487EB512FEA317337EB21C>73
D<B512FEA3D803FEC9FC6C5AB3A9EE0180A416031700A45EA25E5E5E5E16FE00031407B7
FCA329337DB230>76 D<EC07FC91387FFFC0903901FC07F0903907E000FCD90F80133E01
3FC76C7E017E6E7E496E7E48486E7E48486E7EA248486E7E000F8249157E001F167FA248
48ED3F80A2007F17C0A290C9121FA24817E0AB6C17C06D153FA3003F17806D157FA2001F
17006D5D000F5E6C6C4A5AA26C6C4A5A00015E6C6C4A5A017E4A5A6D4A5AD91FC0017FC7
FCD907E013FC903901FC07F09039007FFFC0DA07FCC8FC33377CB43C>79
D<90381FE00390387FFC0748B5FC3907F01FCF390F8003FF48C7FC003E80814880A20078
8000F880A46C80A27E92C7FC127F13C0EA3FF013FF6C13F06C13FF6C14C06C14F0C68001
3F7F01037F9038003FFF140302001380157F153FED1FC0150F12C0A21507A37EA26CEC0F
80A26C15006C5C6C143E6C147E01C05B39F1FC03F800E0B512E0011F138026C003FEC7FC
22377CB42B>83 D<007FB712FEA390398007F001D87C00EC003E0078161E0070160EA200
60160600E01607A3481603A6C71500B3AB4A7E011FB512FCA330337DB237>I<B5D8F007
B539800FFFF0A3000390C7273FF000011300D801FC6E48EB007C1A386D140F0000193083
6D020715706D1860A26E496C14E0013F60A26ED919FC1301011F60A26ED930FE1303010F
95C7FCA26ED9607F5B01071706A26E9039C03F800E0103170CA2913BFC01801FC01C0101
1718A2913BFE03000FE03801001730A2DAFF06EB07F0027F5EA2038CEB03F8023F5EA203
D8EB01FC021FEDFD80A203F0EB00FF020F93C8FCA24B800207157EA24B143E0203153CA2
4B141C020115184C357FB24F>87 D<EB7F803803FFF0380F80FC381C003E003F133F6D6C
7E6E7EA26E7EEA1F00C7FCA4EB01FF131FEBFF873803FC07EA0FF0EA1FC0EA3F80127F13
004815C05AA3140FA26C131F6C133B3A3F8071F180391FC1E1FF2607FFC013003900FE00
3C22237DA126>97 D<EA03F012FFA312071203AEEC3F80ECFFE09038F3C0F89038F7007E
01FE7F49EB1F8049EB0FC05BED07E016F0A2150316F8AA16F0150716E0A2ED0FC07F6DEB
1F8001ECEB3F0001CF137C90388381F8903801FFE0C76CC7FC25357EB32B>I<EB07F8EB
3FFF9038FC07C03901F000E03903E003F03807C007120FEA1F80123F90380003E04890C7
FCA2127E12FEAA127FA26C14187F001F14386D1330000F14706C6C13E03903F001C03900
FC0F8090383FFE00EB07F01D237EA122>I<153FEC0FFFA3EC007F81AEEB07F0EB3FFCEB
FC0F3901F003BF3907E001FF48487E48487F8148C7FCA25A127E12FEAA127E127FA27E6C
6C5BA26C6C5B6C6C4813803A03F007BFFC3900F81E3FEB3FFCD90FE0130026357DB32B>
I<EB0FE0EB7FFCEBF83F3903F00F80D807E013C0390FC007E0381F800315F0EA3F001401
4814F8127EA212FEA2B6FCA248C8FCA5127E127FA26C1418A26C6C1338000F14306D1370
6C6C13E03901F003C03900FC0F00EB3FFEEB07F01D237EA122>I<EB01FCEB07FF90381F
078090383E0FC0EB7C1F13FCEA01F8A20003EB070049C7FCACB512F0A3D803F0C7FCB3A7
487E387FFFE0A31A357FB417>I<151F90391FC07F809039FFF8E3C03901F07FC73907E0
3F033A0FC01F83809039800F8000001F80EB00074880A66C5CEB800F000F5CEBC01F6C6C
48C7FCEBF07C380EFFF8380C1FC0001CC9FCA3121EA2121F380FFFFEECFFC06C14F06C14
FC4880381F0001003EEB007F4880ED1F8048140FA56C141F007C15006C143E6C5C390FC0
01F83903F007E0C6B51280D91FFCC7FC22337EA126>I<EA03F012FFA312071203AEEC1F
C0EC7FF09038F1E0FC9038F3807C9038F7007E13FE497FA25BA25BB3486CEB7F80B538C7
FFFCA326347EB32B>I<EA0780EA0FC0EA1FE0A4EA0FC0EA0780C7FCAAEA07E012FFA312
0F1207B3A6EA0FF0B5FCA310337EB215>I<EB03C0EB07E0EB0FF0A4EB07E0EB03C090C7
FCAAEB03F013FFA313071303B3B01238127C00FE13E0130714C0130F007C138038381F00
EA1FFCEA07F0144384B217>I<EA07E012FFA3120F1207B3B3A7EA0FF0B5FCA310347EB3
15>108 D<2703F01FE013FF00FF90267FF80313C0903BF1E07C0F03E0903BF3803E1C01
F02807F7003F387FD803FE1470496D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE
3FFFF0A33C217EA041>I<3903F01FC000FFEB7FF09038F1E0FC9038F3807C3907F7007E
EA03FE497FA25BA25BB3486CEB7F80B538C7FFFCA326217EA02B>I<EB07F0EB3FFE9038
FC1F803901F007C03903C001E000078048486C7E48C7127CA248147E003E143E007E143F
A300FE1580A8007E1500A36C147EA26C147C6D13FC6C6C485A00075C3903F007E03900FC
1F80D93FFEC7FCEB07F021237EA126>I<3903F03F8000FFEBFFE09038F3C0F89038F700
7ED807FE7F6C48EB1F804914C049130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16
C06D131F6DEB3F80160001FF13FC9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB5
12C0A325307EA02B>I<3803E07C38FFE1FF9038E38F809038E71FC0EA07EEEA03ECA290
38FC0F8049C7FCA35BB2487EB512E0A31A217FA01E>114 D<EBFF06000713CE381F00FE
003C133E48131E140E5A1406A27EA200FE90C7FC6C7EEA7FFC383FFFC014F0000F7F6C7F
C67FEB0FFF1300EC3F8000C0131F140F6C1307A37E15006C5B6C130E6C5B38F7807838E1
FFE038C07F8019237EA11E>I<1330A51370A313F0A21201A212031207381FFFFEB5FCA2
3803F000AF1403A814073801F806A23800FC0EEB7E1CEB1FF8EB07E0182F7FAD1E>I<D8
03F0133F00FFEB0FFFA30007EB007F000380B35DA35D12016D4813800000903803BFFC90
387E073FEB1FFED907F8130026227EA02B>I<B53A1FFF81FFF0A33C07F801FC003F8001
F049EB1E0000030100141C816C6C017C1318A26D017E1338000002FE1330A290267E01FF
5B159F168090263F030F5BA216C0903A1F8607C180A202C613E390260FCC0390C7FCA2D9
07FC13F6ECF80116FE6D486C5AA36D481378A36D48133034217F9F37>119
D<3A7FFF807FF8A33A07F8001FC00003EC0F800001EC070015066C6C5BA26D131C017E13
18A26D5BA2EC8070011F1360ECC0E0010F5BA2903807E180A214F3010390C7FC14FBEB01
FEA26D5AA31478A21430A25CA214E05CA2495A1278D8FC03C8FCA21306130EEA701CEA78
38EA1FF0EA0FC025307F9F29>121 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fp ecbx0900 9 7
/Fp 7 117 df<ED1F80A24B7EA24B7EA34B7EA24A7FA34A7FA24A7F15CFA2020F7F1587
021F801503023F80EC3E01A2027E80EC7C0002FC804A137FA20101814A133F0103814A13
1FA249B67EA24981A290271F8000077F91C77EA24982013E80017E82017C80A201FC8249
157FB500F0013FB512F0A43C347DB343>65 D<EB7FFE0003B512E04814F8390FF00FFC39
1FF803FF806E138016C0157F6C5A6C5AEA0180C8FCEC7FFF010FB5FC90B6FC0003EBF07F
000F1300EA1FF8485A485A485A5BA315FF7F007F5B6D4813E03A3FF80FBFFF000FB5121F
0003EBFC0F39007FE00728217EA02B>97 D<EA01FC12FFA4120F1207ADEC0FF8EC7FFF01
FDB512C09039FFF01FF09138800FF84A6C7E496D7E496D7EA2178081A217C0A91780A25D
1700A26D495A6D495A6E485A9039F7E03FF001E1B512C0D9C07F90C7FC9038801FF02A34
7DB331>I<903807FF80013F13F090B512FC3903FE01FE4848487EEA0FF8EA1FF0EA3FE0
A2007F6D5A496C5A153000FF91C7FCA9127F7FA2003FEC07807F6C6C130F000FEC1F00D8
07FE133E3903FF80FCC6EBFFF8013F13E0010790C7FC21217DA027>I<3901F81F8000FF
EB7FF0ECFFF89038F9E3FC9038FBC7FE380FFF876C1307A213FEEC03FCEC01F8EC006049
1300B1B512F0A41F217EA024>114 D<9038FFE1C0000713FF5A383F803F387E000F1407
5A14037EA26C6CC7FC13FCEBFFE06C13FC806CEBFF80000F14C06C14E0C6FC010F13F0EB
007F140F00F0130714037EA26C14E06C13076CEB0FC09038C01F8090B5120000F913FC38
E03FE01C217DA023>I<133CA5137CA313FCA21201A212031207001FB51280B6FCA3D807
FCC7FCB0EC03C0A79038FE078012033901FF0F006C13FEEB3FFCEB0FF01A2F7EAE22>I
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fq ecss0900 9 26
/Fq 26 122 df<12FEA70707798615>46 D<157015F8A2140115F0A2140315E0A2140715
C0A2140F1580A2141F1500A25C143EA2147E147CA214FC5CA213015CA213035CA213075C
A2130F5C131F91C7FCA25B133EA2137E137CA213FC5BA212015BA212035BA212075BA212
0F5BA2121F90C8FCA25A123EA2127E127CA212FC5AA212701D4B7CB726>I<13035B131F
137FEA07FFB5FCA313BFEAF83F1200B3B2007FB51280A519337AB226>49
D<EB3FE0EBFFF8000313FE487F481480391FC07FC09038801FE0393F000FF0003E130748
EB03F8A248130115FC1278123014001210C8FC1401A215F8A2140315F0140715E0EC0FC0
141F1580EC3F00147E5C495A495A495AEB0F8049C7FC133E5B5B485A485A485A485A48C8
FC123E007FB512FCA51E337DB226>I<12FEA71200B312FEA7072179A015>58
D<EC07F8EC7FFF49B512C0010780498090391FF80FF890397FC003FC9038FF80004848C7
7E49147E4848EB7E7F3A07F001FFBF260FE00713FF49481480001F5B9038803FC3003F49
C6FCD9007E137F4AEB3FC0127E4948131FA212FE484848130FAA6C6C6CEB1F80127EA26D
6CEB3F007E027E137ED9807F13FE001F90383FC3FC6D6CB45A000F6D5B6D6C5B2607F001
13802703F8007EC7FC6C6C90C8FC7F6C6C6CEB0FC06D6CEB3F80903A1FF803FF006DB55A
6D14F801015C6D6C1380DA07FCC7FC2A387CB633>64 D<EB3FC03803FFF0000F13FC487F
809038C07F80381E001F001814C00010130FC713E01407A6EB03FF133F48B5FC1207001F
13C7383FF007EA7F80EA7E005AA3140F7E007F133FEBC0FF90B5FC7E6C13E76C1387D803
FCC7FC1B247DA225>97 D<EB0FF8EB3FFF90B512E04814F05A3807F807390FE001E0391F
C0006049130048C8FCA2127EA35AA9127EA36C14106D1330001F14F0380FE001EBF80F6C
B5FC6C14E0C6148090387FFE00EB0FF01C247DA222>99 D<15FCB3A2EB3F80EBFFF00003
13FC4813FE4813FFEBF81F381FE007383FC001138048C7FC127EA35AA9127EA3007F1301
EA3F801403381FE007380FF81F90B5FC6C13FC6C13F8C613E090383F80001E377DB528>
I<EB1FC0EB7FF848487E487F487F390FF07F80381FC01F90388007C0EA3F00EC03E0007E
1301A2127C00FCEB00F0B6FCA500F8C8FCA27EA2127C127EA27E6D13106C6C1370390FE0
01F0EBF80F6CB5FC6C14E0C6148090387FFE00EB0FF01C247DA222>I<EB01FCEB07FF13
1F5B5BEBFE07EBFC013801F8005BA21203ACB512F0A53803F000B3AA18377FB617>I<90
391FC00F8090387FF0FF90B612C05A5A2607F07FC7FC390FC01F80EB800FA248486C7EA7
6C6C485AA2EBC01F2607F07FC7FCEBFFFE485B5C486C5AEB1FC090C9FCA37F380FFFFEEC
FFE06C804814FC48805A397F8003FF007EC77E00FEEC3F8048141FA46C143F007FEC7F00
6D5B393FF007FE6CB55A6C5C000314E0C61480D91FFCC7FC22337EA126>I<12FCB3A2EB
07F0EB3FFE497E90B51280B6FC9038E07FC0EB801F9038000FE0A2481307A35AB3A41B36
7AB528>I<12FEA71200AC127EB3AF07347BB313>I<12FCB3A3EC0FF0EC1FE0EC3FC0EC7F
80ECFF00495A495A495A495A495A495A495A49C7FC12FDB57EA280EBE7E013C7EB83F0EB
01F800FE7FEAFC00147E801580141FEC0FC0EC07E0A2EC03F0EC01F815FC1E367AB526>
107 D<12FCB3B3B206367AB513>I<D907F0EB3F803BFC3FFE01FFF0496C4813F890B500
8713FCB6129F903AE07FDF03FE9039801FFC00496C48137FA2486D48133FA3485CB3A430
227AA13D>I<EB07F038FC3FFE497E90B51280B6FC9038E07FC0EB801F9038000FE0A248
1307A35AB3A41B227AA128>I<EB07F0EB3FFE90B57E488048803907F80FF0390FE003F8
48486C7EEB800048C7127EA2007E80A2007C8000FC1580A86C143F007E1500A2007F5C6C
147E6D13FE6C6C485A6C6C485AEBF80F6CB55A000114C06C5CD93FFEC7FCEB07F021247E
A226>I<EB03F838FC1FFEEB7FFF00FDB51280B612C09038E07FE0EB801F9038000FF048
130748EB03F8A2140115FC1400A8140115F8A2140315F06C13076CEB0FE0EB801F9038E0
7FC090B5128000FD140000FC5BEB3FFCEB07E090C8FCAE1E317AA128>I<EB03C0EAF81F
133F13FF12F912FBEBFC00EAFFF013C05B90C7FCA25AA35AB312227AA11A>114
D<EBFF80000713F04813FC487F5AEA7F00007E131C48130C91C7FCA47EEA7F8013F86CB4
7E6C13E06C13F800037FC67FEB0FFF1300EC3F80A2141FA312400060133F00781400B413
FFEBFFFE5C6C5B000F5B0001138019247EA21D>I<EA03F0AAB512FEA53803F000B3A37F
14023801FC1E90B5FCA27EEB7FFCEB3FC0182C7FAA1C>I<00FCEB07E0B3A7140F141F6C
133F6C13FF6CB5FC14F76C13E76C1307D807F8C7FC1B227AA028>I<00FCD907F0EB1F80
7E007E010FEC3F008115786C011F143E177EEC1E7C261F803E147C033C13FC153E000F01
3C5CD9C07C1301151E151F2607E0785C02F81303ED0F8300035EEBF0F001F11487000191
3807C7C014E0A201FBEB03CF00005E02C013EF1501017B92C7FCD97F8013FFA2013F6D5A
91C7FC31217FA034>119 D<00FE143F007E147EA27E15FC7F001FEB01F813C0120FEC03
F0EA07E015E0EBF007120315C03801F80F15801200EBFC1F1500137CEB7E3E133EA2EB1F
3C147CEB0F78A36D5AA26D5AA35C13075CA2130F91C7FC5B131EEA203EEA387CEA3FFC5B
A25BEA0FC020317FA023>121 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fr ecrm1000 10 83
/Fr 83 184 df<486C1360000314E039070001C0000EEB038048EB070000181306003813
0E0030130C0070131C00601318A200E01338481330A400CEEB338039FF803FE001C013F0
A3007F131FA2393F800FE0390E0003801C1981B91C>16 D<001C1307007FEB1FC039FF80
3FE0A201C013F0A3007F131F001CEB073000001300A400011470491360A2000314E090C7
12C048130100061480000E130348EB070048130E485B006013181C1980B91C>I<BD12C0
A25202809653>22 D<DA0FF813FC91397FFF07FF903B01F807DF83C0903A07E001FF0F90
3B1F8007FE1FE090393F000FFC137E16F85B9338F007804848010790C7FC1503ACB812F8
A32801F80003F0C7FCB3AB486C497E267FFFE0B512F0A3333B7FBA30>27
D<EC0FF8EC7FFE903901F80780903907E001C090391F8000E090383F0007017E497EA25B
A2485A6F5AED018092C8FCA9ED03F0B7FCA33901F8000F1503B3AA486C497E267FFFE0B5
12C0A32A3B7FBA2E>I<EC0FFC91387FFF70903901F803F0903807E00790381F800FEB3F
00137EA25B150748481303ADB7FCA33901F80003B3AB486C497E267FFFE0B512C0A32A3B
7FBA2E>I<DA0FF0EB1FF0DA7FFEEBFFFC903B01F80F83F00F903C07E001CFC00380903C
1F8000FF0001C090273F0007FE130F017E4948497EA2495CA248485C03076E5A03030203
C7FC95C8FCA9F007E0BAFCA33C01F80003F0001F1807B3AA486C496C497E267FFFE0B500
C1B51280A3413B7FBA45>I<121C127FEAFF80A8EA7F00AB123EAB121CABC7FCA8121C12
7FEAFF80A5EA7F00121C093C79BB17>33 D<007C137C00FE13FEEAFF01A3EAFE00A7007E
13FC007C137CA8003C137800381338A700181330171E77BA2A>I<121C127FEAFF80A213
C0A3127F121C1200A412011380A2120313005A1206120E5A5A5A12600A1979B917>39
D<146014E0EB01C0EB0380EB0700130E131E5B5BA25B485AA2485AA212075B120F90C7FC
A25A121EA2123EA35AA65AB2127CA67EA3121EA2121F7EA27F12077F1203A26C7EA26C7E
1378A27F7F130E7FEB0380EB01C0EB00E01460135278BD20>I<12C07E12707E7E7E120F
6C7E6C7EA26C7E6C7EA21378A2137C133C133E131EA2131F7FA21480A3EB07C0A6EB03E0
B2EB07C0A6EB0F80A31400A25B131EA2133E133C137C1378A25BA2485A485AA2485A48C7
FC120E5A5A5A5A5A13527CBD20>I<121C127FEAFF80A213C0A3127F121C1200A4120113
80A2120313005A1206120E5A5A5A12600A19798817>44 D<B512FCA516057F941C>I<12
1C127FEAFF80A5EA7F00121C0909798817>I<1506A2150E150CA2151C151815381530A2
15701560A215E015C0A214011580A2140315005C1406A2140E140CA2141C1418A2143814
30A21470146014E05CA213015CA2130391C7FCA25B1306A2130E130C131C1318A2133813
30A213701360A213E05BA212015B120390C8FCA25A1206A2120E120CA2121C1218A21238
123012701260A212E05AA21F537BBD2A>I<EB03F8EB1FFF90387E0FC09038F803E03901
E000F0484813780007147C48487FA248C77EA2481580A3007EEC0FC0A500FE15E0B3007E
15C0A4007F141F6C1580A36C1500A26C6C133EA26C6C5B6C6C5BEBF0013900F803E09038
7E0FC0D91FFFC7FCEB03F823397DB62A>I<EB01C013031307131F13FFB5FCA2131F1200
B3B3A7497E007FB512F0A31C3779B62A>I<EB0FF0EB7FFE48B57E3903E03FE0390F000F
F0001E6D7E001C6D7E486D7E5A6E7E126012FE6CEC7F807FA56CC7FC121CC8FCEDFF00A2
5D14015D14035D4A5A4A5A5D4A5A4AC7FC147E5C495A14E0495A495A49C8FC011EEB0180
5B5B49130348481400485A485A90C75A48B6FC5A5A485CB6FCA321377CB62A>I<EB07F8
EB3FFF90B512C03901F80FF03903C007F848486C7E390E0001FEEA0F80391FE000FF7FA5
6C5A6C5AC7485AA25D14035D4A5A5DEC0F80027FC7FCEB1FFCECFF809038000FE06E7EEC
01FC816E7EED7F80A216C0A2153F16E0A2121EEA7F80A2487EA316C0157F491480007EC7
FC0070ECFF006C495A121E390F8003F83907F00FF00001B512C06C6C90C7FCEB0FF82339
7DB62A>I<1538A2157815F8A2140114031407A2140F141F141B14331473146314C31301
1483EB030313071306130C131C131813301370136013C01201EA038013005A120E120C5A
123812305A12E0B712F8A3C73803F800AA4A7E0103B512F8A325387EB72A>I<0006140C
D80780133C9038F003F890B5FC5D5D158092C7FC14FC38067FE090C9FCAAEB07F8EB1FFE
9038780F809038E007E03907C003F0496C7E130000066D7E81C8FC8181A21680A4121C12
7F5A7FA390C713005D12FC00605C12704A5A6C5C6C1303001E495A6C6C485A3907E03F80
0001B5C7FC38007FFCEB1FE021397CB62A>I<EC3FC0903801FFF0010713FC90380FE03E
90383F800790387E001F49EB3F804848137F485A12075B000FEC3F0049131E001F91C7FC
5B123FA3127F90C9FCEB01FC903807FF8039FF1E07E090383801F0496C7E01607F01E013
7E497F16805BED1FC0A390C713E0A57EA47F123F16C0A2001FEC3F807F000F15006D5B00
0714FE6C6C5B6C6C485A3900FE07F090387FFFC0011F90C7FCEB03FC23397DB62A>I<12
301238123E003FB612E0A316C05A168016000070C712060060140E5D5D00E01430481470
5D5DC712014A5A4AC7FC1406140E5CA25C1478147014F05C1301A213035C1307A2130FA3
131F5CA2133FA5137FA96DC8FC131E233A7BB72A>I<EB03F8EB1FFF017F13C09038FC07
F03901E001F83903C0007C4848133C90C7123E48141E000E141F001E80A3121FA26D5B6D
131E7FD80FF85B6D137C01FF13786C6D5A6CEBE3E0ECF780C601FFC7FC6D5A6D6C7E010F
13E0013F7F01F97F3901E07FFE48486C7E380F800F48486C1380001E010113C0487F007C
143F0078EC1FE0150F00F81407481403A21501A36C15C0A200781403007C15806C14076C
EC0F006C6C131ED807E0137C3903F803F0C6B55A013F1380D907FCC7FC23397DB62A>I<
EB03F8EB1FFF017F13C03901FC07E048486C7E3907E001F8000F6D7E4848137E5B003F80
A248C71380A25AED1FC0A516E0A56C143FA36C7E157F121F6C6C13FF6C6C13DF00031301
3901F0039F3900FC0F1FD93FFC13C0EB07F090C7FCA2153F1680A216005D120F486C137E
486C5BA24A5A4A5A49485A381F000F001CEB1F80260F807FC7FC3807FFFE000113F83800
3FC023397DB62A>I<121C127FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A5EA7F00
121C092479A317>I<121C127FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A213C0A3
127F121C1200A412011380A2120313005A1206120E5A5A5A12600A3479A317>I<EB3FE0
3801FFFE3907C03F80390E000FC0003CEB07F000301303007014F8007C130100FE14FC7E
A4127E003CEB03F8C7FCEC07F0A2EC0FE0EC1F80EC3F00147E147C5C495A5C495A5CA249
C7FCA31306AA90C8FCA8130EEB3F80497EA56D5A010EC7FC1E3B7CBA27>63
D<EC03FF021F13E09138FC00FCD901E0131ED90780EB0780011EC7EA01E00138EC007049
81498148488148488190C97E48D901FC1480000ED907FFEB01C0000C90391F03C000001C
90267E00E013E000184901701360263801F86D13700030496D13300103EC0FE0267007E0
0107133800601718495AA200E0171C484848150CAA6C6C7E1260A26D6C151C0070171826
3003F0130F0101141F00386D013F1338261800FC01771330001C017E9038E3F070000C90
261F03C113E0000E903A07FF00FFC06CD901FCEB3F006C90CAFC7F6C7E6C7E13706D167C
011EED03FCD90780EC1FF0D901E0ECFF80D900FC90383FFC00021FB51280020301E0C7FC
363C7BBA41>I<1538A3157CA315FEA34A7EA34A6C7EA202077FEC063FA2020E7FEC0C1F
A2021C7FEC180FA202387FEC3007A202707FEC6003A202C07F1501A2D901807F81A249C7
7F167FA20106810107B6FCA24981010CC7121FA2496E7EA3496E7EA3496E7EA213E0707E
1201486C81D80FFC02071380B56C90B512FEA3373C7DBB3E>I<B712E016FC16FF000190
3980007FC06C90C7EA1FE0707E707E707EA2707EA283A75F16035F4C5A4C5A4C5A4C5AEE
FF8091B500FCC7FCA291C7EA7F80EE1FE0EE07F0707E707E83707EA21880177F18C0A718
8017FFA24C13005F16034C5AEE1FF8486DEB7FF0B812C094C7FC16F832397DB83B>I<91
3A01FF800180020FEBE003027F13F8903A01FF807E07903A03FC000F0FD90FF0EB039F49
48EB01DFD93F80EB00FF49C8127F01FE153F12014848151F4848150FA248481507A2485A
1703123F5B007F1601A35B00FF93C7FCAD127F6DED0180A3123F7F001F160318006C7E5F
6C7E17066C6C150E6C6C5D00001618017F15386D6C5CD91FE05C6D6CEB03C0D903FCEB0F
80902701FF803FC7FC9039007FFFFC020F13F002011380313D7BBA3C>I<B712C016F816
FE000190398001FF806C90C7EA3FE0EE0FF0EE03F8707E707E177FA2EF3F8018C0171F18
E0170F18F0A3EF07F8A418FCAC18F8A4EF0FF0A218E0A2171F18C0EF3F80A2EF7F0017FE
4C5A4C5AEE0FF0EE3FE0486DEBFF80B8C7FC16F816C036397DB83F>I<B812FEA3000190
388000076C90C8FC173F838383A383A31880170116C0A394C7FCA31501A21503150F91B5
FCA3EC000F15031501A21500A21860A318E093C712C0A41701A3EF0380A21707A2170F17
3F177F486D903807FF00B9FCA333397EB838>I<B812F8A30001903880001F6C90C71201
EE00FC177C173C171CA2170CA4170E1706A2ED0180A21700A41503A21507151F91B5FCA3
EC001F15071503A21501A692C8FCAD4813C0B612C0A32F397DB836>I<DBFF8013C0020F
EBF001023F13FC9139FF803F03903A03FC000787D90FF0EB03CF4948EB00EF4948147F49
48143F49C8121F485A4848150F48481507A248481503A2485A1701123F5B007F1600A448
481600AB93B6FCA26C7E9338007FE0EF3FC0A2123F7F121FA26C7EA26C7EA26C7E6C7E6C
6C157F6D7E6D6C14FF6D6C14EFD90FF8EB03C7D903FEEB0783903A00FFC03F0191393FFF
FC00020F01F0130002001380383D7CBA41>I<B648B512FEA30001902680000313006C90
C76C5AB3A491B6FCA391C71201B3A6486D497EB648B512FEA337397DB83E>I<B612C0A3
C6EBC0006D5AB3B3AD497EB612C0A31A397EB81E>I<B649B5FCA3000101809038007FF0
6C90C8EA3F80053EC7FC173C17385F5F4C5A4C5A4CC8FC160E5E5E5E5E4B5AED0780030E
C9FC5D153E157E15FF5C4A7F4A6C7E140E4A6C7E4A6C7E14704A6C7E4A6C7E14804A6C7E
6F7EA26F7F707EA2707E707EA2707EA2707E707EA2707E707F8484486D497FB6011FEBFF
80A339397DB841>75 D<B612E0A3000101C0C8FC6C90C9FCB3AD1718A517381730A31770
A317F0A216011603160FEE1FE0486D13FFB8FCA32D397DB834>I<B5933807FFF86E5DA2
0001F0FC002600DFC0ED1BF8A2D9CFE01533A3D9C7F01563A3D9C3F815C3A2D9C1FCEC01
83A3D9C0FEEC0303A2027F1406A36E6C130CA36E6C1318A26E6C1330A36E6C1360A26E6C
13C0A3913901FC0180A3913900FE0300A2ED7F06A3ED3F8CA2ED1FD8A3ED0FF0A3486C6D
5A487ED80FFC6D48497EB500C00203B512F8A2ED018045397DB84C>I<B5913807FFFE80
80C69238007FE06EEC1F80D9DFF0EC0F001706EBCFF8EBC7FCA2EBC3FEEBC1FFA201C07F
6E7EA26E7E6E7E81140F6E7E8114036E7E168080ED7FC016E0153FED1FF0ED0FF8A2ED07
FCED03FEA2ED01FF6F1386A2EE7FC6EE3FE6A2EE1FF6EE0FFEA216071603A216011600A2
177E486C153E487ED80FFC151EB500C0140EA2170637397DB83E>I<EC03FF021F13E091
38FE01FC903901F8007ED907E0EB1F8049486D7ED93F80EB07F049C76C7E01FE6E7E4848
6E7E49157E0003167F4848ED3F80A24848ED1FC0A2001F17E049150F003F17F0A3007F17
F8491507A300FF17FCAC007F17F86D150FA3003F17F0A26C6CED1FE0A36C6CED3FC00007
17806D157F000317006C6C15FEA26C6C4A5A017F4A5A6D6C495A6D6C495AD907E0EB1F80
D903F8017FC7FC903900FE01FC91381FFFE0020390C8FC363D7BBA41>I<B712C016FC16
FF0001D9800013C06C90C7EA1FE0707EEE03F883707EA2707EA21880A71800A24C5AA24C
5A5FEE0FF04C5AEEFF8091B548C7FC16F091CAFCB3A5487FB6FCA331397EB838>I<EC03
FF021F13E09138FE01FC903901F8007ED907E0EB1F8049486D7ED93F80EB07F049C76C7E
01FE6E7E48486E7EA24848157F0007178049153F000F17C049151F001F17E0A24848ED0F
F0A3007F17F8A2491507A200FF17FCAC007F17F8A26D150FA2003F17F0A26C6CED1FE0A3
6C6CED3FC00007027C14804AB4FC3C03F80383807F003B01FC0701C0FEEC0E002600FE0C
EBE1FC017FEC63F8D93F8CEB77F0D91FCCEB3FE0D907EE14806DB449C7FC0100D981FC13
0CEC1FFF0203131C91C7001E131C161F183CEF807CEFC0F8EE0FFFA318F08218E07013C0
7013809338007E00364B7BBA41>I<B612FEEDFFE016F8000190388007FE6C90C76C7EEE
3FC0707E707E707EA2707EA283A65FA24C5AA24C5A4C5AEE3F8004FFC8FCED07FC91B512
E05E9138000FF0ED03F8ED00FE82707E707EA2161F83A583A6F00180A217F8160F180348
6D01071400B66D6C5A04011306933800FE0ECAEA3FFCEF07F0393B7DB83D>I<D90FF813
C090383FFE0190B512813903F807E33907E000F74848137F4848133F48C7121F003E140F
007E1407A2007C140312FC1501A36C1400A37E6D14006C7E7F13F86CB47E6C13F8ECFF80
6C14E06C14F86C14FEC680013F1480010714C0EB007F020713E0EC007FED3FF0151F150F
ED07F8A200C01403A21501A37EA216F07E15036C15E06C14076C15C06C140F6DEB1F80D8
FBF0EB3F00D8F0FE13FE39E03FFFF8010F13E0D8C00190C7FC253D7CBA2E>I<003FB812
E0A3D9C003EB001F273E0001FE130348EE01F00078160000701770A300601730A400E017
38481718A4C71600B3B0913807FF80011FB612E0A335397DB83C>I<B6903807FFFEA300
0101809038007FE06C90C8EA1F80EF0F001706B3B2170E6D150C80171C133F17186D6C14
385F6D6C14F06D6C5C6D6C495A6D6CEB07806D6C49C7FC91387F807E91381FFFF8020713
E09138007F80373B7DB83E>I<B500FC91387FFF80A30003018091380FFC006C90C8EA07
E0715A6C705A6E1403017F93C7FCA280013F1506A26E140E011F150C80010F5DA2800107
5DA26E147001031560A26D6C5CA2806D4A5AA2ED8003027F91C8FCA291383FC006A215E0
021F5BA2EDF01C020F1318A26E6C5AA215FC02035BA2EDFEE002015BA26E6C5AA36FC9FC
A3153EA2151CA3393B7EB83E>I<B5D8FC07B5D8F001B5FCA30007902780001FFEC7EA1F
F86C48C7D80FF8EC07E000010307ED03C01B807F6C6F6C1500A26E5F017F6E6C1406A280
013F4A6C5CA280011F4A6D5BEE067FA26D6C010E6D5BEE0C3FA26D6C011C6D5BEE181FA2
6D6C6F5BEE300FA26D6C6F485AEE6007A26D6C4CC7FC9338C003FCA203805D913B7F8180
01FE06A203C1150EDA3FC3C7EAFF0CA203E3151CDA1FE6EC7F98A215F6DA0FFCEC3FF0A3
02075E4B141FA202035E4B140FA202015E4B1407A2020093C8FC4B80503B7EB855>I<00
7FB590383FFFFCA3C601F801071380D97FE0D903FCC7FC013FEC01F06D6C5C5F6D6C5C6D
6C13034CC8FC6D6C1306160E6D6C5B6DEB8018163891387FC0306E6C5A16E06E6C5A9138
0FF18015FB6EB4C9FC5D14036E7EA26E7F6F7EA24B7E15DF9138019FF09138038FF8150F
91380607FC91380E03FE140C4A6C7EEC38000230804A6D7E14E04A6D7E49486D7E130391
C76C7E01066E7E130E010C6E7E011C1401013C8101FE822607FF80010713E0B500E0013F
EBFF80A339397EB83E>I<B500FE91383FFFE0A3000301E0913807FE00C649EC03F0017F
6F5A606D6C5D6D6C140395C7FC6D6C1406A26D6C5C6D6C141C17186D6C143817306D6D5B
6E6C13E05F91383FE0015F91381FF003DA0FF890C8FC1606913807FC0E160C913803FE1C
913801FF185E6E13B016E0157F6F5AB3A24B7E023FB512C0A33B397FB83E>I<007FB812
80B912C0A26C17803204797041>95 D<EA01801203EA0700120E5A121812381230127012
60A212E05AA412CEEAFF8013C0A3127FA2EA3F80EA0E000A197AB917>I<EB1FE0EBFFFC
3803E03F3907000F80390F8007E0486C6C7E13E06E7EA26E7E6C5A6C5AC8FCA4147FEB07
FFEB3FE0EBFE00EA03F8EA0FF0EA1FC0123F485A90C7FC160C12FEA31401A26C13036CEB
077C903980063E18383FC01E3A0FE0781FF03A03FFF00FE03A007F8007C026277DA52A>
I<EA03F012FFA3120F1203B0EC1FE0EC7FF89038F1E03E9039F3801F809039F7000FC001
FEEB07E049EB03F049EB01F85BED00FCA216FEA2167E167FAA167E16FEA216FC15016D14
F8ED03F07F01EEEB07E001C6EB0FC09039C7801F00903881E07E903800FFF8C7EA1FC028
3B7EB92E>I<EB03FC90381FFF8090387E03E03901F80070484813F83907E001FC380FC0
03A2EA1F80123F90380001F848EB00F01500A2127E12FEAA127E127FA26C14067F001F14
0E6D130C000F141C6C6C13386C6C13706C6C13E039007C07C090381FFF00EB07F81F277D
A525>I<ED0FC0EC03FFA3EC003F150FB0EB03F8EB1FFF90387E078F9038F801EF3903F0
007F4848133F4848131FA24848130F123F90C7FC5AA2127E12FEAA127E127FA27EA26C6C
131FA26C6C133F6C6C137F6C6CEBEFF03A01F801CFFF39007C078F90381FFE0FD907F813
C0283B7DB92E>I<EB07F8EB1FFF90387C0FC03901F803E03903F001F0D807E013F8380F
C0004848137CA248C7127E153E5A153F127E12FEA3B7FCA248C8FCA5127EA2127FA26C14
037F001F14076C6C13060007140E6D131CD801F013386C6C137090387E03E090381FFF80
903803FC0020277EA525>I<147E903803FF8090380FC1E0EB1F8790383F0FF0137EA213
FCA23901F803C091C7FCADB512FCA3D801F8C7FCB3AB487E387FFFF8A31C3B7FBA19>I<
ED03F090390FF00FF890393FFC3C3C9039F81F707C3901F00FE03903E007C03A07C003E0
10000FECF000A248486C7EA86C6C485AA200075C6C6C485A6D485A6D48C7FC38073FFC38
060FF0000EC9FCA4120FA213C06CB512C015F86C14FE6CECFF804815C03A0F80007FE048
C7EA0FF0003E140348140116F8481400A56C1401007C15F06CEC03E0003F1407D80F80EB
0F80D807E0EB3F003901FC01FC39007FFFF0010790C7FC26387EA52A>I<EA03F012FFA3
120F1203B0EC0FF0EC3FFCECF03F9039F1C01F809039F3800FC0EBF70013FE496D7EA25B
A35BB3A3486C497EB500C1B51280A3293A7EB92E>I<EA0380EA0FE0487EA56C5AEA0380
C8FCAAEA03F012FFA312071203B3AA487EB512C0A312387EB717>I<EB01C0EB07F0EB0F
F8A5EB07F0EB01C090C7FCAAEB01F813FFA313071301B3B3A2123C127E00FF13F01303A2
14E038FE07C0127C383C0F00EA0FFEEA03F8154984B719>I<EA03F012FFA3120F1203B1
913801FFFCA39138007FC01600157C15705D4A5A4A5A4AC7FC141E1438147814FC13F1EB
F3FEEBF73F01FE7FEBF81F496C7E8114076E7E6E7E811400157E157F811680ED1FC0486C
EB3FF0B500C0B5FCA3283A7EB92C>I<EA03F012FFA3120F1203B3B3AD487EB512C0A312
3A7EB917>I<2703F00FF0EB1FE000FFD93FFCEB7FF8913AF03F01E07E903BF1C01F8380
3F3D0FF3800FC7001F802603F70013CE01FE14DC49D907F8EB0FC0A2495CA3495CB3A348
6C496CEB1FE0B500C1B50083B5FCA340257EA445>I<3903F00FF000FFEB3FFCECF03F90
39F1C01F803A0FF3800FC03803F70013FE496D7EA25BA35BB3A3486C497EB500C1B51280
A329257EA42E>I<EB03FE90380FFF8090383E03E09038F800F84848137C48487F48487F
4848EB0F80001F15C090C712074815E0A2007EEC03F0A400FE15F8A9007E15F0A2007F14
076C15E0A26C6CEB0FC0000F15806D131F6C6CEB3F006C6C137EC66C13F890387E03F090
381FFFC0D903FEC7FC25277EA52A>I<3903F01FE000FFEB7FF89038F1E07E9039F3801F
803A07F7000FC0D803FEEB07E049EB03F04914F849130116FC150016FEA3167FAA16FEA3
ED01FCA26DEB03F816F06D13076DEB0FE001F614C09039F7803F009038F1E07E9038F0FF
F8EC1FC091C8FCAB487EB512C0A328357EA42E>I<D903F813C090381FFE0190387E0781
9038FC01C33903F000E3000714774848133749133F001F141F485A150F48C7FCA312FEAA
127FA37E6D131F121F6D133F120F6C6C137F6C6C13EF3901F801CF39007E078F90381FFE
0FEB07F890C7FCABED1FE00203B5FCA328357DA42C>I<3807E01F00FFEB7FC09038E1E3
E09038E387F0380FE707EA03E613EE9038EC03E09038FC0080491300A45BB3A2487EB512
F0A31C257EA421>I<EBFF03000313E7380F80FF381E003F487F487F00707F12F0A2807E
A27EB490C7FCEA7FE013FF6C13E06C13F86C7F00037FC67F01071380EB007F141F00C0EB
0FC01407A26C1303A37E15806C13077EEC0F00B4131E38F3C07C38E1FFF038C03F801A27
7DA521>I<1318A51338A31378A313F8120112031207001FB5FCB6FCA2D801F8C7FCB215
C0A93800FC011580EB7C03017E13006D5AEB0FFEEB01F81A347FB220>I<D803F0EB07E0
00FFEB01FFA3000FEB001F00031407B3A4150FA3151F12016D133F0000EC77F86D9038E7
FF8090383F03C790381FFF87903A03FC07E00029267EA42E>I<B538803FFEA33A0FF800
0FF06C48EB07E00003EC03C06D148000011500A26C6C1306A26D130E017E130CA26D5BA2
EC8038011F1330A26D6C5AA214E001075BA2903803F180A3D901FBC7FCA214FF6D5AA214
7CA31438A227257EA32C>I<B53A1FFFE03FFEA3260FF8009038000FF86C48017EEB03E0
18C00003023EEB0180A26C6C013FEB0300A36C6CEC8006156FA2017E9038EFC00C15C717
1CD93F01EBE01815830281EBF038D91F831430150102C3EBF87090260FC6001360A2D907
E66D5A02EC137CA2D903FCEB7F804A133FA2010192C7FC4A7FA20100141E4A130E026013
0C37257EA33C>I<B538807FFFA33A03FE003FF00001EC1F80000092C7FC017E131C6D13
186D6C5AECC070010F5B6D6C5AECF180EB03FB6DB4C8FC6D5AA2147F804A7E8114CF9038
01C7E090380383F090380703F8EB0601496C7E011C137E49137F01787F496D7E486C8000
0FEC3FF0D8FFFE90B51280A329247FA32C>I<B538803FFEA33A0FF8000FF06C48EB07C0
0003EC03806C7E16007F00001406A2017E5BA2137F6D5BA26D6C5AA2ECC070010F1360A2
6D6C5AA214F101035BA2D901FBC7FCA214FF6D5AA2147CA31438A21430A214701460A25C
A2EA7C0100FE5B130391C8FC1306EAFC0EEA701C6C5AEA1FF0EA0FC027357EA32C>I<00
3FB512FCA2EB8003D83E0013F8003CEB07F00038EB0FE012300070EB1FC0EC3F80006013
7F150014FE495AA2C6485A495AA2495A495A495AA290387F000613FEA2485A485A000714
0E5B4848130C4848131CA24848133C48C7127C48EB03FC90B5FCA21F247EA325>I<143E
ECFF8090380180C0903803006001067FA56D5B6D6C5A6DB45A023EC8FC91C9FCA5D803F0
EB07E000FFEB01FFA3000FEB001F00031407B3A4150FA3151F12016D133F0000EC77F86D
9038E7FF8090383F03C790381FFF87903A03FC07E00029387EB62E>183
D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fs ecss1440 14.4 32
/Fs 32 247 df<C11280A6710680A272>22 D<1406140E143E147EEB01FE1307133FEA07
FFB5FCA313F913C1EAF8011200B3B3B3A6007FB612F8A6255076CF39>49
D<EC7FE0903807FFFC011F13FF4914C04914F090B67E48814801007FD807F8EB1FFF4848
130701C001011380001F6E13C049147F48C8EA3FE0A2007EED1FF0160F127C12FC48ED07
F81278A21230A21210C9FCA417F0160FA3EE1FE0A217C0163F1780167FEEFF005E15014B
5A4B5A5E4B5A4B5A4B5A157F4BC7FC4A5A4A5AEC07F04A5A4A5A4A5A4AC8FC14FE495A49
5A495A495A495A495A91C9FC137E5B485A485A485A485A485A48CAFC48B712F8A72D507B
CF39>I<EC3FF0903801FFFE010F6D7E013F14E0498090B67E000381489038C01FFE3A0F
FE0007FF01F80101138048487FD83FC0EC7FC049143F48C8FC003E16E0161F121C121812
08C9FCA3163F17C0A2167F178016FF17005D4B5A4B5A4B5AED7FF091380FFFE00103B55A
5E4BC7FCA2EDFFC016F090C7EA3FF8ED07FCED01FE6F7EEE7F80EE3FC017E0161F17F016
0F17F8A2160717FCA812400060ED0FF8A2127000F8ED1FF0A26C153F007F16E06D147F6C
6CECFFC0D81FF0491380D80FFE010713003A07FFC03FFE6C90B5FC6C15F86C5D013F5C01
0F1480010349C7FC9038003FF02E527BCF39>I<ED07FC150FA2151FA2153D157DA215F9
A2EC01F11403A2EC07E1A2EC0FC1A2EC1F81143F1501147F147E14FEEB01FCA2EB03F8A2
EB07F0A2EB0FE0131F14C0EB3F80A2EB7F005B5B12015B12035B485A120F5B121F5B485A
127F90C7FC5A90B812C0A6C8D801FCC7FCB3A4324E7DCD39>I<B77E16F816FF17C017F0
17FC90268000037F9238003FFF040713C01601707FEF3FF0717E170F717EA21703841701
A64D5AA2170760170F4D5A4D5AEFFFC04C5B040790C7FCEE1FFE923801FFF890B75A17C0
4CC8FCA2EEFFC017F8902680000F13FE9238003FFF040713C004017F706C7EEF1FF8717E
717E1703717EA2711380187FA219C0A2183FA4187FA2198018FFA24D13005F4D5A4D5A17
3F4D5A4C485A040F5B93B55A90B8C7FC5F17F817E094C8FC16F03A5275D14C>66
D<923803FFF0031FEBFF8092B612F0020315FE020FEDFF80143F5C9127FFFE001F130049
01F013014901C0EB003F4990C8120F49481503D91FF892C7FC495A495A495AA2485B4890
CBFC5B12075B120F5B121F5BA2123F5BA3485AA5485AAE6C7EA56C7EA37F121FA27F120F
7F12077F12037F6C7F6C7FA26D7E6D6C16806D6C1503D90FFE15076D6C151F6D01C0EC3F
C06D01F0EB01FF6D01FE131F6EB712806EEDFE00020F5D020315F0020015C0031F91C7FC
030313F03A5678D349>I<EAFF80B3B3B3B3AA095275D120>73 D<B47EB3B3B3B3A390B7
12F8A72D5275D13E>76 D<D8FFE0F0FFE0A36D5FA26D5FA200FE19EF6D1707A2017EEF0F
CFA36DEF1F8FA36D6CEE3F0FA26E167F010F177EA26E16FE010717FCA26E1501010317F8
6E1503A2010117F06E1507A2010017E06E150F027E16C0027F151FA26E16806F143FA202
1F16006F5CA26E6C14FEA202075D6F1301A202035D6F1303A26E6C495AA202005D6F130F
A2037E5C037F131FA26F5CEE803F031F91C7FCA2705A030F137EEEE0FEA203075B16F103
035BA3923801FBF0A26FB45AA3705AA3705A93C9FCA24B5274D164>I<923803FF80033F
13F892B512FE02036E7E020F15E0023F15F84A48C67FDAFFF0EB1FFE010301C0903807FF
804990C700017FD90FFC6E6C7E49486F7E4A151F49486F7E49486F7E49486F7E91C91201
4884484870138049177F000719C049173F000F19E049171F001F19F0A249170F003F19F8
A2491707A2007F19FCA3491703A200FF19FEAD6D1707007F19FCA56D170F003F19F8A26D
171F001F19F0A26D173F000F19E06D177F000719C06D17FF000319806D5E6C19006E5D6C
6D4B5A6D6C4B5A6D6C4B5A6E153F6D6C4B5A6D6C4B5A6D6C4A5B6D01C001075B6D01F001
1F90C7FC9026007FFEEBFFFC6EB65A020F15E06E5D02004AC8FC033F13F8030313804756
7AD354>79 D<B712C016FC16FF17C017F083902680000113FE9238001FFF040713800401
13C07013E0173FEF1FF0A2EF0FF8170718FC1703A218FEA21701A51703A218FCA2170718
F8170FEF1FF0A2EF3FE017FF4C13C004071380041F13004BB45A90B712F85F17C094C7FC
16FC16C00180CAFCB3B1375275D149>I<913807FF80027F13F849B6FC010715C0011F15
F04915FC49819038FFF8004801C0130F4890C7EA03FC48481400D80FF8153C171C484815
0C4992C7FC485AA3485AA77FA2123F7F7F6C7E7F6C7E7F6C13C06C13FC6CEBFF8015F86C
6CEBFF806D14F06D14FC010714FF6D81D9007F80020F80020080030F7F03017F9238003F
FE160F707E7013808282EF7FC0A2173F18E0A2171FA8EF3FC0A30060EE7F80007016FF00
781700007E5DD87F804A5A486C4A5A01F8141F01FFEC7FF86C9039F003FFF0001F90B65A
00075E6C93C7FCC66C5C011F14F8010114E09026001FFEC8FC33567BD33F>83
D<903803FF80011F13E090B512F8000380000F14FF481580D9FC0013C001E0137F0180EB
3FE0001EC7EA1FF00018140F1210C8EA07F8A3ED03FCAAEC03FF91B5FC1307133F90B6FC
4814830007EBE003380FFE00EA1FF8EA3FE05B485A90C7FC12FEA515076C140F6C7E6D13
3F6D137F393FFC03FF90B6FC6C14FB6C14E36C14836CEBFC03C601C0C7FC26377AB537>
97 D<EC1FFC91B512C0010314F0010F14FC4914FF49158090387FF0039039FF80007F48
48C7EA1F00484814074848804991C7FC485A121F5B123F5BA248CAFCA412FEAB7E7EA37F
123FA26C7E7F000F16406D15C06C6C14036C6C14076D141F6C6C6C13FF6CEBE0076DB612
80011FECFE006D5C010314F001001480DA1FF8C7FC2A377BB533>99
D<EE1FE0B3AEEC7F80903803FFF0010F13FC4913FF017F149F90B612DF489038F00FFF48
EB80034A7ED807FC7F4848147F49143F4848141FA2485A5BA2127F90C8FCA312FEAC127F
A46C7EA27F001F153F7F6C6C147F6D14FF6C6C5B6D5B6C6C6C5A6C9038E03FDF6C90B512
9F6D141F6D13FE010F13F86D13E0010090C8FC2B567BD43B>I<EC7FC0903801FFF80107
13FE011F7F498049809039FFC07FE0489038000FF0D803FC6D7E48481303496D7E484813
00001F157E5B49143E003F153F90C87E5AA2127EEE0F80A2B8FCA600FCCAFCA37EA2127E
A3127F7E7FA26C7EA26C7E6D15806C6C14036C6C14076D141F6C6C6C13FF6CEBF00F6DB6
12006D14FC010F5C010314E0010091C7FCEC1FF029377BB533>I<913801FFC0020F13F8
5C147F91B5FC5B491300D907FC130802F01300495A495AA2495AA4137FB2B612FCA62600
7F80C7FCB3B3AA25567ED523>I<DA3FC0EB1FC09139FFF001FF0103EBFC0F010FD9FF7F
13E04991B5FC5B90267FE07FEBF0009126000FF8C7FC01FE6D5A48486D7E491301000381
491300A200078149147EA86D14FE00035DA26D130100015D6D13036C6C495A017F495A90
38FFE07F4890B55A5E4892C8FC01E313FC01E013F00007EB3FC091CAFCA57F120313FC90
B612C06C15FE6C6F7E17E04816F80007824882D81FF8C7127F01E0EC07FF484802011380
4848EC007F90C9123F18C000FE161FA6007FEE3F806D157F6D15FF6C6C4A1300D81FF8EC
07FED80FFEEC1FFC3B07FFE001FFF86C90B65AC616C06D5D011F4AC7FC010314F0902600
1FFEC8FC334E7DB439>I<B4FCB3AEEC0FF8EC7FFF49B512C0010714E04914F04914F890
383F807F90397E001FFC49130749EB03FE5B49130116FF497FA25BA490C8FCB3B0285577
D43B>I<EAFF80A9C7FCB2EA7F80B3B3B0094F78CE1B>I<EC3FE0A991C7FCB2EC1FE0B3B3
B3AAEC3FC0A20040137F0070EBFF80EA7801D8FF8F1300EBFFFEA26C5B001F5B000713E0
38007F801B6787CE1E>I<12FFB3B3B3B3AD085577D41B>108 D<EC0FF8B4EB7FFF49B512
C0010714E04914F04914F890383F807F90397E001FFC49130749EB03FE5B49130116FF49
7FA25BA490C8FCB3B0283577B43B>110 D<EC0FF091B5FC010314C0010F14F049804980
90397FF00FFE9039FF8001FF4890C71380D803FCEC3FC04848EC1FE049140F4848EC07F0
A24848EC03F8491401003F16FCA248C912FEA3007E167E00FE167FAB6C16FF6C16FEA36D
1401003F16FC6D1403001F16F86D14076C6CEC0FF0A26C6CEC1FE06C6CEC3FC001FF14FF
6CD9C00313806CD9F00F13006DB55A011F14F86D5C010314C0010091C7FCEC1FF830377C
B539>I<EC1FF0B4EBFFFC010313FF010F804980017F8049C67F01FCEB3FF801F0EB0FFC
491307496D7E496D7E8190C8FCEE7F80A2EE3FC0A2161FA317E0160FAA161F17C0A3163F
1780167FA2EEFF006D5B5E6D13036DEB0FFC6D495A6DEB7FF09039FE01FFE0017FB55A6D
5C6D91C7FC01075B010113F89038003FC091C9FCB3A42B4C76B43B>I<EC03E000FE131F
147FEB01FF5B130F5B90383FFC0014E0EB7F8049C7FC6C5A5B5B5B5BA25BA25BA490C8FC
B3AC1B3577B427>114 D<903807FF80013F13F890B6FC4815C0000715E05AEBFC00D81F
E0EB0FC048481303491300160048C9FCA67FA26C7E13F0EA1FFCEBFFC06C13FE6CEBFFC0
6C14F06C14FC6C6C7F6D7F01071480D9007F13C0020313E0EC007FED1FF0150FED07F8A2
1503A60040EC07F012700078140F007E15E0D8FFC0133F9039FC01FFC090B612806C1500
001F5C00035CC66C13F0010790C7FC25377DB52C>I<EB7F80AFB71280A626007F80C7FC
B3B36E1340ED01C090383FE0039138F01FE091B5FC7F6D1480EDFE00010313F06D90C7FC
23447EC229>I<B415FFB3B3A25DA25DA25D6D5B007F5C6D137F9038F803FE6CB55A5D6C
14E06C14800003495AC601E01300283577B33B>I<00FE16FE7E6CED01FCA27F003FED03
F87F001F150717F06C7EEE0FE07F12076DEC1FC01203EE3F807F12016DEC7F00120016FE
137FA26E485A133F5E90381FC003A2010F5CECE0075EEB07F0150F01035C14F84B5A1301
14FC010049C7FCA2147E157EA2EC3E7C143F141F5D140F5DA214075DA25D140FA25D141F
92C8FC5CA2143E147E147C14FCA2495AA2383003F0EA3E07383FFFE05CA25C91C9FCEA07
FC2F4C7EB334>121 D<90397FC003FEA990CAFCACEC0FF091B5FC010314C0010F14F049
80498090397FF00FFE9039FF8001FF4890C71380D803FCEC3FC04848EC1FE049140F4848
EC07F0A24848EC03F8491401003F16FCA248C912FEA3007E167E00FE167FAB6C16FF6C16
FEA36D1401003F16FC6D1403001F16F86D14076C6CEC0FF0A26C6CEC1FE06C6CEC3FC001
FF14FF6CD9C00313806CD9F00F13006DB55A011F14F86D5C010314C0010091C7FCEC1FF8
304C7CCA39>246 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Ft ecsi1200 12 8
/Ft 8 116 df<EA3FC0EA7F80A5EAFF00A20A0877871B>46 D<ED7F80913803FFF0020F
13FC023F7F4A7F91B6128001031381903A07FC007FC04A133FD90FE0EB1FE04948130F49
5AA249C7EA07F0137E13FE5B12015B1203A2485AA3485A17E0A249140F121FA44848EC1F
C0A448C8EA3F80A5EE7F0012FEA216FEA34B5AA34B5AA24B5AA24B5AA26C4A5A6C4A5A15
7F6D49C7FC6C6C485A9038E007FC9038F81FF86CB55A6C5C6C5C6C91C8FCC613FCEB1FE0
2C4577C231>48 D<ED03FE92381FFFC0037F13F04AB512E014075C91383FFC0391397FE0
0060DAFF8013004990C8FCEB03FC495A495A5C131F495A495A91C9FC5B5B120149130800
03903803FF80D9F81F13E00007017F7F49B57EEA0FF301F7809038EFE00F3A1FFF8003FE
EC0001498048487F5B5B5B007FED7F805BA24915005EA348C8FCA34B5AA35E1503A24B5A
A24B5A7E4B5A6D495A4B5A003F14FF6D4890C7FC6C6C485A9038F81FFC6CB512F06C5C6C
5C6C91C8FC6C13FCEB1FE02C4577C231>54 D<49B612F04915FEEFFFC018F084498202F8
C76C7EEF0FFF0503138017004948ED7FC0A2F03FE0A34948151FA3183F19C0495A187F19
8018FF49484A13004D5A17074D5AEF3FF849C8B45A040F13C091B75A4DC7FC17F84816E0
94C8FC16FC9038FE0001484880A215008282484881A2163F83A24848141F83A2707EA248
5A707EA21603484881A2160183A248486E7EA3717EA248C9FC717E3B4577C43F>82
D<EC0FFC91B51280010314C0011F14F04914F8A290397FE00FFC91380003FE1378016013
0190C7FC16FF81A3ED01FEA5ED03FCEC0FFF49B5FC130F133F90B612F80003EBFC074813
80380FFC00EA1FF0D83FC0EB0FF05B48C7FCA200FEEC1FE0A2153F7E15FFD9800313C038
7FF01F90B6FCA26C143F6C9038FC7F806C13E0D803FEC8FC282F7AAD2F>97
D<EC07F8EC3FFE91B51280010314C04914E04914F090383FF81F90397FC007F89038FF80
039038FE0001485A4848EB00FC485AA2485A49147C121F5B48B612FC16F8A25AA3007EC9
FC12FEA8127FA36D14406C6CEB01C06D13076C6CEB3F80390FFC01FF90B6FC6C15006C14
FCC614F0013F1380D90FFCC7FC262F79AD2B>101 D<EB01FEA5EB03FCA4EB07F8A5EB0F
F0A5EB1FE0A5EB3FC0A4EB7F80A5EBFF00A5485AA4485AA5485AA5485AA5485AA4485AA5
485AA548C7FCA2174979C817>108 D<EC1FF891B5FC010314C0010F14F04914F84914F0
90387FC01F9038FF000349EB00E0484814601600485AA47FA27FEBFFE06C13FEECFFC06C
14F06D7F6D7F6D7F01077F1300020713801401EC007FA2153FA3ED7F00A21220003014FE
007C1301007F495A9038E01FF8B65A5D6C5C001F5C000749C7FC38007FE0252F7CAD25>
115 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fu ecss2488 24.88 15
/Fu 15 122 df[<EAFFE0B3B3B3B3B3B3B3A490BB1280AA>73 140
108 267 102 76 D[<D8FFFE9A381FFFC06D65A36E64A36E99B5FCA26E63A201DF656E1B
0301CF65A26E1B07A2D9C7FC515AA3D9C3FE515AA3D9C1FF515AA301C06D505AA26F1AFF
027F64A26F61023F64A26F61021F636F1907020F63A26F190F020763A26F191F0203636F
193FA26E6370187FA26E637018FF037F62A2705F033F97C7FC705FA2031F61701707A203
0F6170170FA26F6C4D5AA203036170173FA26F6171167FA26F617116FF047F60715DA204
3F95C8FC715DA2041F5F711507A2040F5F71150F04075F71151FA204035F71153FA2705F
72147FA2705F7214FF057F5E725BA2053F93C9FC725BA2051F5D721307050F5DA272130F
05075DA272131F05035D72133F715DA2F1807F715DA2F1C0FF067F5CA219E1063F91CAFC
A295381FF3FEA3060F5B19FFA2725BA2725BA3725BA3725B96CCFCA3>122
140 107 267 165 I[<95380FFFC04DB512FE050FECFFC0057F15F84CB712FE0407707E
041F17E0047F17F84BB912FE4B9126F8007F7F4B0280010780031F01FCC814E04B01E003
1F7F4B018003077F4B48C900017F4A49707F4A01F0EF3FFF4A49717F4A49717F4A90CB00
037F4A48727F4A48727F4A48737E4B193F4949737E49884B854949737F4990CD6C7FA249
48747F4948747FA24948757EA24948757E4A1B1F488AA24A1B0F488A4A87481F8091CF7E
A2481FC04988A2001F1FE0A24988A2003F1FF0A2491D7FA3007F1FF8A4491D3FA300FF1F
FCB06D1D7FA3007F1FF8A56D1DFFA2003F1FF0A36D64001F1FE0A26D64A26C1FC0A26E63
6C1F806E63A26C1F006E63A26C6D515AA26C6D515AA26D6C515AA26D6C505BA26D6C505B
6D6D4F5BA26D6D4F5B6F616D6D4F90C7FC6D6D4F5A6D646F19FF6E6C4E5B6E6C4E5B6E6D
4D5B6E01E0051F5B6E6D4D5B6E6D4D90C8FC6E01FE4C485A6E6D4C5B6F01C0030F5B6F01
F0033F5B6F01FC92B55A0307D9FF80010714806F02F8017F91C9FC6F91B75A6F6C17F804
1F17E00407178004014CCAFC706C15F8050F15C005014ACBFCDD000F13C0>118
146 118 270 139 79 D[<B912E018FF19E019FC19FF1AC01AF01AFC8601E0C96E7E0607
80060080073F7F070F7F07037F07007F747E86080F13807413C07413E0A27413F0861CF8
1B7FF33FFCA21B1F1CFEA21B0FA31CFFA287A763A21CFEA31B1FA21CFC1B3FA2F37FF81B
FF1CF0625013E0A25013C0501380083F130062505A07035B070F5B073F5B96B55A06075C
95B65A90BA48C7FC621AF01AC097C8FC19FC19E096C9FC18E001E0CEFCB3B3B3A7>88
140 107 267 120 I[<933807FFF893B612E0030715FE033FEDFFC092B812F0020317FC
020F17FF4A18C0027F18F091BA12FC499126FC0007804902C0EB003F4949C812034901F0
03005B4949161F49018016074948CA12034A17004948183C484918184A95C7FC485BA248
5B91CEFC5A5BA2485AA4485AA97FA2121FA27FA26C7EA2806C7FA26C7F806C7F14FE6C7F
6D7F6D13E015F86D13FE6DEBFFE06D14FC6DECFFC06D15FC6D6CECFF806E15F86EEDFF80
020716F0020116FC6E6C15FF031F16C0030382DB007F15F8040781DC007F8005076E7E05
0081060F80060180F0003F070F7F737F07017F737F86081F1380A27413C0867413E0861C
F086A2F37FF8A31B3FA21CFC1B1FABF33FF8A4F37FF0A21BFF1CE062A200304F13C01278
007C4F1380007F6101C04E13006D4E5A01F8187FD8FFFE4E5A6D6C04035B02F04C5B6C01
FE041F5B001FD9FFC0037F5B6C02FC0203B55A0003DAFFF0013F91C7FCC692B75A6D6001
1F18F001036001001880023F4CC8FC020716F8DA007F15E003074AC9FCDB001F13E0>86
146 120 270 105 83 D<ED7FFE021FB512E091B612F8010715FE013F8190B812C00003
83000F834883DB00037F02E09038007FFE91C86C7ED80FF8030F138001E08101806F13C0
000EC9FC00087013E0CBFC19F0187FA2F03FF8A4F01FFCAFEF3FFF043FB5FC030FB6FC15
7F0207B7FC141F91B8FC1303010F9138FC001F4991C7FC4913F090B512804801FCC8FC48
13F04813C04890C9FC5B485A485A5B485A5BA212FF5BA4183FA36D167F18FF6C7E5F6D5D
6D150FD83FFE5D6D6C147F6C01E00103B5FC02FE013F13DF6C90B7129F6CEEFE1F17FC6C
16F06C16C06CEDFE00013F14F06D91C7FC010301C091C7FC3E5A75D85B>97
D<923803FF80033F13F892B512FE02036E7E020F15E0023F15F84A8191B77E49824949C6
804901E0011F7F49018001037F4990C77ED93FFC6E6C7E49486F7E4A151F49486F7E4849
15074A6F7E4890C9FC4916010007717E5B000F84491880121F49173FA2484818C0191FA2
5B127FA249EF0FE0A290BAFCBBFCA790CDFCA57FA3127FA37FA3123F7FA26C7EA36C7E7F
12077F12037F6C6D17206E17606C6DEE01E06D6C16036E160F6D6CEE1FF06D6C167F6D6C
6CEC01FF6D01E0140F03F8027F13E001019026FF800FB512C06D91B712006E5E6E16F802
0F16E06E5E02014BC7FC6E6C14F8030F1480030001F0C8FC445A77D854>101
D[<EAFFE0B3B3B3A4EEFFF0030F13FF037F14E04AB612F84A81020F15FF4A16804A16C0
91B812E001E1EBF00301E3902680003F13F04AC7000713F8D9E7F880D9EFF01400D9FFE0
ED7FFC5C4AED3FFE181F91C9FC49160FA24917FFA2845BA35BA45BB3B3B3A3>64
146 112 273 97 104 D[<EAFFE0B3B3B3B3B3B3B3B3A2>11 146
112 273 44 108 D<EEFFF0D8FFE0010F13FF037F14E04AB612F84A81020F15FF4A1680
4A16C091B812E001E1EBF00301E3902680003F13F04AC7000713F8D9E7F880D9EFF01400
D9FFE0ED7FFC5C4AED3FFE181F91C9FC49160FA24917FFA2845BA35BA45BB3B3B3A34058
70D761>110 D<EE7FF00307B5FC033F14E092B612F8020315FE020F6F7E4A82027F16F0
91B87E49DA800F7F499026FC00017F4901E09038003FFF490180020F7F4948C800037F49
486F7F4A814948707E4948707E4A161F4849707E4890CA6C7E4917030007854983000F1A
804983A24848F07FC0A24848F03FE0A349181F007F1AF0A449180F00FF1AF8AD6D181FA2
007F1AF0A36D183FA2003F1AE0A26D187FA26C6CF0FFC0A26C6C4D1380A26D5F00071A00
6D5F6C6D4C5A6C616E161F6C6D4C5A6D6C4C5A6E16FF6D6C4B5B6DB403075B6D01C0021F
5B6D6D4A90C7FC6D01FC49B45A6D9026FF800F5B6D91B65A6E5E6E5E020F168002034BC8
FC020015F8033F14E0030791C9FC9238007FF04D5A78D85E>I<EE3FF8D8FFE00107B5FC
033F14C092B612F0020381020F81023F15FF4A8291B87E01E3EBF00301E7902680007F7F
D9EFFEC7000F7FD9FFF86E7F02E002017F4A804A6F7E91C9121F49834982497013808449
18C084497013E0A2197F1AF0193FA3F11FF8A3190FA31AFCA21907AD190F1AF8A4191FA2
1AF0193FA2197F1AE019FF1AC06D5EA26D4C1380606D4C1300A26D4C5A6D163F6E4B5A6E
4A485A6E4A5B6E140FD9EFFC023F5BD9E7FF91B55A01E3D9E00F5C01E190B7C7FC01E05E
023F5D6E5D020715E06E1580020092C8FC031F13F8030113C092CBFCB3B3A3468070D761
>I<EC7FF0B3A7BAFCA9C7D87FF0C9FCB3B3B3A681A3023F16806F1401F007C06F141F18
7F913A1FFF8001FFDCC01F13E06E90B6FCA26E1680F0FE006E15F86E15E06E92C7FC033F
13F0DB0FFEC8FC3B717DEF44>116 D<D8FFE0EE07FFB3B3B3A860A360A260A2606D93B5
FC5F007F5E6D5D5F6DED3FF76CB4EDFFE702C0010313C76C01F8013F138791B712076C16
FE6C16F817E06C1680C6EDFE006D14F0011F1480010101F0C9FC405870D661>I<D8FFC0
F003FF7F007FF107FE7F003F190F6D19FCA2001FF11FF87F000F193F6D19F012076DF07F
E0A26C19FF6E18C07E6E4C13807E6E5E1B00137F6E4C5A133F6E160F011F60804F5A130F
6E163F010760806D4D5A81A26D4D5A816D4C5B81147F4E90C7FC81023F5D6F5D141F6F4A
5A140FA26F4A5A14076F4A5A80A26E6D495AA2705C6E15FFA26F6C485BA2DB3FF091C8FC
5F151F04F85B1707DB0FFC5BA20307130F04FE5B15034D5A16FF814D5A6F13BF60EE7FFF
A2608295C9FC82A2705AA25F1607A24C5AA25F161FA24C5AA25F167FA24C5AA294CAFC5D
A24B5AA25E1507A24B5AA24B5AA24B5AA24B5AA24B5A001C5B261FE00790CBFC90B6FC5D
5D5D7E15E05D00035C26000FFCCCFC50807DD657>121 D E
%EndDVIPSBitmapFont
end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%PaperSize: A4
 end
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 0 83 3901 9 v 1890 351 a Fu(Python)64
b(Op)5 b(enSSL)64 b(Manual)3443 520 y Ft(Release)33 b(0.6)3189
874 y Fs(Ma)m(rtin)k(Sj\366gren)3286 1229 y Fr(14th)28
b(Marc)n(h)e(2005)3301 1375 y Fq(ma)n(rtin@strakt.com)1781
1597 y Fp(Abstract)208 1741 y Fo(This)32 b(mo)r(dule)f(is)h(a)g(rather)
g(thin)f(wrapp)r(er)h(around)g(\(a)g(subset)f(of)6 b(\))32
b(the)g(Op)r(enSSL)e(library)-6 b(.)52 b(With)32 b(thin)f(wrapp)r(er)
208 1833 y(I)d(mean)h(that)f(a)i(lot)f(of)h(the)f(ob)t(ject)h(metho)r
(ds)e(do)h(nothing)g(more)g(than)g(calling)h(a)g(corresp)r(onding)g
(function)f(in)g(the)208 1924 y(Op)r(enSSL)24 b(library)-6
b(.)0 2198 y Fs(Contents)0 2381 y Fn(1)77 b(In)m(tro)s(duction)3201
b(2)0 2564 y(2)77 b(Building)30 b(and)i(Installing)2765
b(2)125 2663 y Fr(2.1)83 b(Building)28 b(the)g(Mo)r(dule)g(on)f(a)g
(Unix)h(System)87 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
134 b(2)125 2763 y(2.2)83 b(Building)28 b(the)g(Mo)r(dule)g(on)f(a)g
(Windo)n(ws)g(System)59 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
b(3)0 2946 y Fn(3)77 b Fm(OpenSSL)28 b Fn(\026)33 b(Python)f(in)m
(terface)h(to)e(Op)s(enSSL)2030 b(3)125 3045 y Fr(3.1)83
b Fm(crypto)26 b Fr(\026)h(Generic)g(cryptographic)f(mo)r(dule)79
b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(3)315
3145 y(X509)27 b(ob)5 b(jects)73 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h
(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
(.)h(.)134 b(5)315 3244 y(X509Name)27 b(ob)5 b(jects)57
b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(6)315 3344 y(X509Req)27
b(ob)5 b(jects)60 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
b(6)315 3444 y(X509Store)26 b(ob)5 b(jects)78 b(.)41
b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
f(.)h(.)f(.)h(.)f(.)h(.)134 b(6)315 3543 y(PKey)28 b(ob)5
b(jects)58 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
b(7)315 3643 y(PK)n(CS7)27 b(ob)5 b(jects)59 b(.)41 b(.)h(.)f(.)h(.)g
(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
(.)h(.)f(.)h(.)134 b(7)315 3743 y(PK)n(CS12)27 b(ob)5
b(jects)81 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(7)315
3842 y(X509Extension)27 b(ob)5 b(jects)102 b(.)41 b(.)h(.)f(.)h(.)f(.)h
(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
b(7)315 3942 y(Netscap)r(eSPKI)28 b(ob)5 b(jects)58 b(.)42
b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
f(.)h(.)f(.)h(.)134 b(7)125 4041 y(3.2)83 b Fm(rand)26
b Fr(\026)i(An)g(in)n(terface)f(to)g(the)h(Op)r(enSSL)g(pseudo)f
(random)g(n)n(um)n(b)r(er)g(generator)50 b(.)41 b(.)h(.)f(.)h(.)g(.)f
(.)h(.)f(.)h(.)f(.)h(.)134 b(8)125 4141 y(3.3)83 b Fm(SSL)27
b Fr(\026)g(An)i(in)n(terface)d(to)i(the)g(SSL-sp)r(eci\034c)f(parts)g
(of)h(Op)r(enSSL)64 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(8)315 4241 y(Con)n(text)28
b(ob)5 b(jects)98 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93
b(10)315 4340 y(Connection)27 b(ob)5 b(jects)108 b(.)42
b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g
(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
h(.)f(.)h(.)f(.)h(.)93 b(11)0 4523 y Fn(4)77 b(In)m(ternals)3310
b(13)125 4623 y Fr(4.1)83 b(Exceptions)i(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g
(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
(.)h(.)f(.)h(.)93 b(13)125 4722 y(4.2)83 b(Callbac)n(ks)68
b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93
b(13)125 4822 y(4.3)83 b(A)n(cessing)27 b(So)r(c)n(k)n(et)g(Metho)r(ds)
82 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
f(.)h(.)f(.)h(.)93 b(14)p 0 4969 V eop end
%%Page: 2 2
TeXDict begin 2 1 bop 0 85 a Fs(1)114 b(Intro)s(duction)0
314 y Fr(The)41 b(reason)f(this)i(mo)r(dule)g(exists)f(at)g(all)g(is)g
(that)h(the)g(SSL)f(supp)r(ort)g(in)h(the)g(so)r(c)n(k)n(et)e(mo)r
(dule)i(in)f(the)h(Python)g(2.1)0 414 y(distribution)28
b(\(whic)n(h)f(is)h(what)f(w)n(e)h(used,)f(of)h(course)e(I)i(cannot)f
(sp)r(eak)g(for)g(later)g(v)n(ersions\))f(is)h(sev)n(erely)f(limited.)0
561 y(When)g(asking)e(ab)r(out)i(SSL)f(on)g(the)h(comp.lang.p)n(ython)e
(newsgroup)g(\(or)h(on)g(p)n(ython-list@p)n(ython.org\))e(p)r(eople)j
(usually)0 660 y(p)r(oin)n(ted)37 b(y)n(ou)f(to)g(the)h(M2Crypto)f(pac)
n(k)-5 b(age.)62 b(The)37 b(M2Crypto.SSL)e(mo)r(dule)i(do)r(es)g
(implemen)n(t)g(a)f(lot)h(of)f(Op)r(enSSL's)0 760 y(functionalit)n(y)c
(but)g(unfortunately)f(its)h(error)d(handling)j(system)f(do)r(es)g(not)
h(seem)f(to)h(b)r(e)g(\034nished,)h(esp)r(ecially)e(for)g(non-)0
860 y(blo)r(c)n(king)f(I/O.)g(I)g(think)i(that)f(m)n(uc)n(h)f(of)h(the)
g(reason)e(for)h(this)h(is)g(that)g(M2Crypto)2659 830
y Fl(1)2725 860 y Fr(is)g(dev)n(elop)r(ed)f(using)h(SWIG)3647
830 y Fl(2)3684 860 y Fr(.)g(This)0 959 y(mak)n(es)22
b(it)i(a)n(wkw)n(ard)d(to)j(create)e(functions)i(that)f(e.g.)35
b(can)23 b(return)g(b)r(oth)h(an)f(in)n(teger)g(and)g(NULL)g(since)h
(\(as)f(far)f(as)h(I)h(kno)n(w\))0 1059 y(y)n(ou)30 b(basically)g
(write)g(C)h(functions)g(and)g(SWIG)g(mak)n(es)f(wrapp)r(er)f
(functions)i(that)h(parses)d(the)i(Python)g(argumen)n(t)f(list)0
1159 y(and)d(calls)g(y)n(our)g(C)g(function,)h(and)g(\034nally)f
(transforms)f(y)n(our)g(return)i(v)-5 b(alue)27 b(to)g(a)h(Python)g(ob)
5 b(ject.)0 1480 y Fs(2)114 b(Building)38 b(and)f(Installing)0
1709 y Fr(These)27 b(instructions)g(can)g(also)g(b)r(e)h(found)g(in)g
(the)g(\034le)f Fm(INSTALL)p Fr(.)0 1856 y(I)j(ha)n(v)n(e)f(tested)h
(this)h(on)f(Debian)g(Lin)n(ux)g(systems)f(\(w)n(o)r(o)r(dy)h(and)g
(sid\),)h(Solaris)e(2.6)g(and)h(2.7.)43 b(Others)30 b(ha)n(v)n(e)f
(successfully)0 1956 y(compiled)e(it)h(on)g(Windo)n(ws)f(and)g(NT.)0
2235 y Fk(2.1)97 b(Building)32 b(the)h(Mo)s(dule)f(on)g(a)h(Unix)f
(System)0 2436 y Fr(p)n(yOp)r(enSSL)27 b(uses)h(distutils,)g(so)f
(there)g(really)f(shouldn't)i(b)r(e)g(an)n(y)f(problems.)36
b(T)-7 b(o)27 b(build)h(the)g(library:)236 2674 y Fj(python)41
b(setup.py)g(build)0 2962 y Fr(If)30 b(y)n(our)f(Op)r(enSSL)h(header)f
(\034les)h(aren't)f(in)h Fm(/usr/include)p Fr(,)c(y)n(ou)j(ma)n(y)g
(need)h(to)g(supply)g(the)g Fm(-I)f Fr(\035ag)h(to)f(let)i(the)f(setup)
0 3061 y(script)25 b(kno)n(w)g(where)f(to)i(lo)r(ok.)35
b(The)25 b(same)g(go)r(es)g(for)f(the)i(libraries)e(of)h(course,)g(use)
g(the)h Fm(-L)f Fr(\035ag.)35 b(Note)25 b(that)h Fm(build)d
Fr(w)n(on't)0 3161 y(accept)k(these)h(\035ags,)e(so)h(y)n(ou)g(ha)n(v)n
(e)f(to)i(run)f(\034rst)h Fm(build_ext)23 b Fr(and)28
b(then)g Fm(build)p Fr(!)35 b(Example:)236 3399 y Fj(python)41
b(setup.py)g(build_ext)g(-I/usr/local/ssl/include)j
(-L/usr/local/ssl/lib)236 3490 y(python)d(setup.py)g(build)0
3777 y Fr(No)n(w)27 b(y)n(ou)f(should)h(ha)n(v)n(e)f(a)h(directory)f
(called)h Fm(OpenSSL)d Fr(that)k(con)n(tains)e(e.g.)36
b Fm(SSL.so)25 b Fr(and)i Fm(__init__.py)c Fr(somewhere)j(in)0
3877 y(the)i(build)g(dicrectory)-7 b(,)26 b(so)h(just:)236
4115 y Fj(python)41 b(setup.py)g(install)0 4402 y Fr(If)32
b(y)n(ou,)f(for)g(some)f(arcane)g(reason,)g(don't)i(w)n(an)n(t)e(the)i
(mo)r(dule)f(to)g(app)r(ear)f(in)i(the)f Fm(site-packages)26
b Fr(directory)-7 b(,)31 b(use)g(the)0 4502 y Fm(--prefix)24
b Fr(option.)0 4649 y(Y)-7 b(ou)28 b(can,)f(of)g(course,)g(do)236
4887 y Fj(python)41 b(setup.py)g(--help)0 5174 y Fr(to)27
b(\034nd)h(out)g(more)f(ab)r(out)g(ho)n(w)g(to)h(use)f(the)h(script.)p
0 5243 1560 4 v 92 5297 a Fi(1)127 5321 y Fh(See)c Fq(http://www.p)r
(ost1.com/home/ngps/m2/)92 5377 y Fi(2)127 5400 y Fh(See)g
Fq(http://swig.sourcefo)n(rge.net/)p 0 5549 3901 4 v
0 5649 a Fg(2)2928 b(2)83 b(Building)27 b(and)g(Installing)p
eop end
%%Page: 3 3
TeXDict begin 3 2 bop 0 83 a Fk(2.2)97 b(Building)32
b(the)h(Mo)s(dule)f(on)g(a)h(Windo)m(ws)f(System)0 283
y Fr(Big)26 b(thanks)g(to)h(Itamar)e(Sh)n(tull-T)-7 b(rauring)25
b(and)i(Oleg)e(Orlo)n(v)g(for)h(their)g(help)h(with)g(Windo)n(ws)f
(build)h(instructions.)36 b(Same)0 383 y(as)27 b(for)g(Unix)h(systems,)
f(w)n(e)g(ha)n(v)n(e)f(to)i(separate)e(the)i Fm(build_ext)c
Fr(and)j(the)h Fm(build)p Fr(.)0 530 y(Building)f(the)h(library:)236
768 y Fj(setup.py)41 b(build_ext)g(-I)f(...\\openssl\\inc32)j(-L)d
(...\\openssl\\out32dll)236 860 y(setup.py)h(build)0
1147 y Fr(Where)27 b Fm(...\\openssl)c Fr(is)28 b(of)f(course)g(the)h
(lo)r(cation)e(of)i(y)n(our)e(Op)r(enSSL)i(installation.)0
1294 y(Installation)f(is)g(the)h(same)f(as)g(for)g(Unix)h(systems:)236
1532 y Fj(setup.py)41 b(install)0 1819 y Fr(And)28 b(similarily)-7
b(,)27 b(y)n(ou)g(can)g(do)236 2057 y Fj(setup.py)41
b(--help)0 2344 y Fr(to)27 b(get)h(more)f(information.)0
2666 y Fs(3)114 b Ff(OpenSSL)36 b Fs(\026)h(Python)h(interface)f(to)h
(Op)s(enSSL)0 2895 y Fr(This)25 b(pac)n(k)-5 b(age)24
b(pro)n(vides)g(a)h(high-lev)n(el)g(in)n(terface)f(to)i(the)g
(functions)f(in)h(the)g(Op)r(enSSL)f(library)-7 b(.)35
b(The)26 b(follo)n(wing)e(mo)r(dules)0 2995 y(are)j(de\034ned:)0
3142 y Fm(crypto)208 3241 y Fr(Generic)g(cryptographic)e(mo)r(dule.)37
b(Note)28 b(that)g(if)g(an)n(ything)f(is)g(incomplete,)h(this)g(mo)r
(dule)f(is!)0 3388 y Fm(rand)208 3488 y Fr(An)h(in)n(terface)e(to)i
(the)g(Op)r(enSSL)g(pseudo)f(random)f(n)n(um)n(b)r(er)i(generator.)0
3635 y Fm(SSL)208 3734 y Fr(An)g(in)n(terface)e(to)i(the)g(SSL-sp)r
(eci\034c)f(parts)g(of)h(Op)r(enSSL.)0 4014 y Fk(3.1)97
b Fe(crypto)34 b Fk(\026)e(Generic)i(cryptographic)e(mo)s(dule)0
4214 y Fm(X509Type)208 4314 y Fr(A)27 b(Python)h(t)n(yp)r(e)g(ob)5
b(ject)28 b(represen)n(ting)d(the)j(X509)f(ob)5 b(ject)27
b(t)n(yp)r(e.)0 4461 y Fm(X509\(\))208 4561 y Fr(F)-7
b(actory)26 b(function)i(that)g(creates)e(an)i(X509)e(ob)5
b(ject.)0 4707 y Fm(X509NameType)208 4807 y Fr(A)27 b(Python)h(t)n(yp)r
(e)g(ob)5 b(ject)28 b(represen)n(ting)d(the)j(X509Name)f(ob)5
b(ject)27 b(t)n(yp)r(e.)0 4954 y Fm(X509Name\()p Fd(x509name)6
b Fm(\))208 5054 y Fr(F)-7 b(actory)26 b(function)i(that)g(creates)e(a)
h(cop)n(y)g(of)34 b Fd(x509name)6 b Fr(.)0 5200 y Fm(X509ReqType)208
5300 y Fr(A)27 b(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28
b(represen)n(ting)d(the)j(X509Req)f(ob)5 b(ject)27 b(t)n(yp)r(e.)p
0 5549 3901 4 v 0 5649 a Fg(2.2)82 b(Building)27 b(the)g(Mo)r(dule)g
(on)g(a)g(Windo)n(ws)g(System)2164 b(3)p eop end
%%Page: 4 4
TeXDict begin 4 3 bop 0 83 a Fm(X509Req\(\))208 183 y
Fr(F)-7 b(actory)26 b(function)i(that)g(creates)e(an)i(X509Req)e(ob)5
b(ject.)0 330 y Fm(X509StoreType)208 429 y Fr(A)27 b(Python)h(t)n(yp)r
(e)g(ob)5 b(ject)28 b(represen)n(ting)d(the)j(X509Store)e(ob)5
b(ject)27 b(t)n(yp)r(e.)0 576 y Fm(PKeyType)208 676 y
Fr(A)g(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28 b(represen)n(ting)d(the)j
(PKey)g(ob)5 b(ject)27 b(t)n(yp)r(e.)0 823 y Fm(PKey\(\))208
922 y Fr(F)-7 b(actory)26 b(function)i(that)g(creates)e(a)h(PKey)h(ob)5
b(ject.)0 1069 y Fm(PKCS7Type)208 1169 y Fr(A)27 b(Python)h(t)n(yp)r(e)
g(ob)5 b(ject)28 b(represen)n(ting)d(the)j(PK)n(CS7)f(ob)5
b(ject)28 b(t)n(yp)r(e.)0 1316 y Fm(PKCS12Type)208 1415
y Fr(A)f(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28 b(represen)n(ting)d(the)j
(PK)n(CS12)f(ob)5 b(ject)27 b(t)n(yp)r(e.)0 1562 y Fm(X509ExtensionTyp)
o(e)208 1662 y Fr(A)g(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28
b(represen)n(ting)d(the)j(X509Extension)f(ob)5 b(ject)27
b(t)n(yp)r(e.)0 1808 y Fm(X509Extension\()p Fd(typ)l(ename,)e(critic)l
(al,)31 b(value)6 b Fm(\))208 1908 y Fr(F)-7 b(actory)26
b(function)i(that)g(creates)e(a)h(X509Extension)g(ob)5
b(ject.)0 2055 y Fm(NetscapeSPKIType)208 2155 y Fr(A)27
b(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28 b(represen)n(ting)d(the)j
(Netscap)r(eSPKI)g(ob)5 b(ject)27 b(t)n(yp)r(e.)0 2316
y Fm(NetscapeSPKI\()p Fc([)p Fd(enc)11 b Fc(])p Fm(\))208
2415 y Fr(F)-7 b(actory)29 b(function)i(that)g(creates)e(a)h(Netscap)r
(eSPKI)g(ob)5 b(ject.)45 b(If)31 b(the)g Fd(enc)k Fr(argumen)n(t)30
b(is)g(presen)n(t,)h(it)f(should)h(b)r(e)f(a)208 2515
y(base64-enco)r(ded)25 b(string)i(represen)n(ting)f(a)h(Netscap)r
(eSPKI)h(ob)5 b(ject,)27 b(as)g(returned)g(b)n(y)g(the)h
Fm(b64_encode)c Fr(metho)r(d.)0 2662 y Fm(FILETYPE_PEM)0
2762 y(FILETYPE_ASN1)208 2861 y Fr(File)j(t)n(yp)r(e)h(constan)n(ts.)0
3008 y Fm(TYPE_RSA)0 3108 y(TYPE_DSA)208 3207 y Fr(Key)e(t)n(yp)r(e)i
(constan)n(ts.)0 3354 y Fn(exception)k Fm(Error)208 3454
y Fr(Generic)27 b(exception)g(used)g(in)h(the)g Fm(crypto)d
Fr(mo)r(dule.)0 3601 y Fm(dump_certificate)o(\()p Fd(t)o(yp)l(e,)g(c)l
(ert)8 b Fm(\))208 3700 y Fr(Dump)28 b(the)g(certi\034cate)f
Fd(c)l(ert)35 b Fr(in)n(to)27 b(a)h(bu\033er)f(string)g(enco)r(ded)h
(with)g(the)g(t)n(yp)r(e)f Fd(typ)l(e)6 b Fr(.)0 3847
y Fm(dump_certificate)o(_r)o(equ)o(es)o(t\()o Fd(typ)l(e,)25
b(r)l(e)l(q)7 b Fm(\))208 3947 y Fr(Dump)28 b(the)g(certi\034cate)f
(request)g Fd(r)l(e)l(q)35 b Fr(in)n(to)27 b(a)g(bu\033er)h(string)f
(enco)r(ded)g(with)h(the)g(t)n(yp)r(e)g Fd(typ)l(e)6
b Fr(.)0 4108 y Fm(dump_privatekey\()o Fd(typ)l(e,)25
b(pkey)7 b Fc([)p Fd(,)31 b(cipher,)h(p)l(assphr)l(ase)19
b Fc(])p Fm(\))208 4208 y Fr(Dump)39 b(the)f(priv)-5
b(ate)38 b(k)n(ey)h Fd(pkey)46 b Fr(in)n(to)38 b(a)g(bu\033er)g(string)
g(enco)r(ded)g(with)g(the)h(t)n(yp)r(e)f Fd(typ)l(e)6
b Fr(,)42 b(optionally)37 b(\(if)45 b Fd(typ)l(e)g Fr(is)208
4307 y Fm(FILETYPE_PEM)p Fr(\))22 b(encrypting)27 b(it)h(using)h
Fd(cipher)38 b Fr(and)27 b Fd(p)l(assphr)l(ase)6 b Fr(.)208
4440 y Fd(p)l(assphr)l(ase)35 b Fr(m)n(ust)28 b(b)r(e)g(either)f(a)g
(string)g(or)g(a)g(callbac)n(k)f(for)h(pro)n(viding)f(the)i(pass)f
(phrase.)0 4587 y Fm(load_certificate)o(\()p Fd(t)o(yp)l(e,)e(bu\033er)
9 b Fm(\))208 4687 y Fr(Load)26 b(a)h(certi\034cate)g(\(X509\))g(from)h
(the)f(string)h Fd(bu\033er)37 b Fr(enco)r(ded)27 b(with)h(the)g(t)n
(yp)r(e)g Fd(typ)l(e)6 b Fr(.)0 4834 y Fm(load_certificate)o(_r)o(equ)o
(es)o(t\()o Fd(typ)l(e,)25 b(bu\033er)9 b Fm(\))208 4933
y Fr(Load)26 b(a)h(certi\034cate)g(request)g(\(X509Req\))g(from)g(the)h
(string)g Fd(bu\033er)37 b Fr(enco)r(ded)27 b(with)h(the)g(t)n(yp)r(e)g
Fd(typ)l(e)6 b Fr(.)0 5099 y Fm(load_privatekey\()o Fd(typ)l(e,)25
b(bu\033er)9 b Fc([)p Fd(,)29 b(p)l(assphr)l(ase)20 b
Fc(])p Fm(\))208 5199 y Fr(Load)43 b(a)h(priv)-5 b(ate)44
b(k)n(ey)f(\(PKey\))i(from)f(the)h(string)g Fd(bu\033er)53
b Fr(enco)r(ded)44 b(with)h(the)f(t)n(yp)r(e)h Fd(typ)l(e)51
b Fr(\(m)n(ust)45 b(b)r(e)f(one)g(of)208 5298 y Fm(FILETYPE_PEM)22
b Fr(and)28 b Fm(FILETYPE_ASN1)p Fr(\).)p 0 5549 3901
4 v 0 5649 a Fg(4)2239 b(3)83 b Fm(OpenSSL)24 b Fg(\026)k(Python)f
(interface)h(to)f(Op)r(enSSL)p eop end
%%Page: 5 5
TeXDict begin 5 4 bop 208 83 a Fd(p)l(assphr)l(ase)35
b Fr(m)n(ust)28 b(b)r(e)g(either)f(a)g(string)g(or)g(a)g(callbac)n(k)f
(for)h(pro)n(viding)f(the)i(pass)f(phrase.)0 230 y Fm
(load_pkcs7_data\()o Fd(typ)l(e,)e(bu\033er)9 b Fm(\))208
330 y Fr(Load)26 b(pk)n(cs7)h(data)g(from)g(the)h(string)g
Fd(bu\033er)36 b Fr(enco)r(ded)28 b(with)g(the)g(t)n(yp)r(e)g
Fd(typ)l(e)6 b Fr(.)0 491 y Fm(load_pkcs12\()p Fd(bu\033er)j
Fc([)p Fd(,)24 b(p)l(assphr)l(ase)c Fc(])p Fm(\))208
590 y Fr(Load)30 b(pk)n(cs12)f(data)h(from)h(the)g(string)g
Fd(bu\033er)9 b Fr(.)47 b(If)31 b(the)h(pk)n(cs12)d(structure)h(is)h
(encrypted,)g(a)g Fd(p)l(assphr)l(ase)39 b Fr(m)n(ust)31
b(b)r(e)208 690 y(included.)0 953 y Fg(X509)c(objects)0
1154 y Fr(X509)f(ob)5 b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e
(metho)r(ds:)0 1300 y Fm(get_issuer\(\))208 1400 y Fr(Return)f(a)g
Fd(b)l(orr)l(owe)l(d)j(r)l(efer)l(enc)l(e)g(to)f(a)h(X509Name)h(obje)l
(ct)f(r)l(epr)l(esenting)f(the)h(issuer)f(of)i(the)e(c)l(erti\034c)l
(ate.)38 b(When)28 b(the)208 1500 y(c)l(orr)l(esp)l(onding)i(X509)h(or)
f(X509R)l(e)l(q)g(obje)l(ct)h(is)f(destr)l(oye)l(d,)h(this)f(obje)l(ct)
h(wil)t(l)f(b)l(e)g(invalid!)0 1646 y Fm(get_pubkey\(\))208
1746 y Fr(Return)d(a)g(PKey)h(ob)5 b(ject)27 b(represen)n(ting)f(the)i
(public)g(k)n(ey)f(of)g(the)h(certi\034cate.)0 1893 y
Fm(get_serial_numbe)o(r\()o(\))208 1993 y Fr(Return)f(the)h
(certi\034cate)f(serial)g(n)n(um)n(b)r(er.)0 2139 y Fm(get_subject\(\))
208 2239 y Fr(Return)32 b(a)g Fd(b)l(orr)l(owe)l(d)k(r)l(efer)l(enc)l
(e)e(to)h(a)f(X509Name)i(obje)l(ct)f(r)l(epr)l(esenting)f(the)h(subje)l
(ct)f(of)h(the)f(c)l(erti\034c)l(ate.)53 b(When)208 2339
y(the)29 b(c)l(orr)l(esp)l(onding)i(X509)g(or)f(X509R)l(e)l(q)g(obje)l
(ct)h(is)f(destr)l(oye)l(d,)h(this)f(obje)l(ct)g(wil)t(l)h(b)l(e)f
(invalid!)0 2486 y Fm(get_version\(\))208 2585 y Fr(Return)d(the)h
(certi\034cate)f(v)n(ersion.)0 2732 y Fm(gmtime_adj_notBe)o(fo)o(re\()o
Fd(time)6 b Fm(\))208 2832 y Fr(A)n(djust)28 b(the)g(timestamp)g(\(in)g
(GMT\))g(when)g(the)f(certi\034cate)g(starts)g(b)r(eing)h(v)-5
b(alid.)0 2979 y Fm(gmtime_adj_notAf)o(te)o(r\()p Fd(t)o(ime)6
b Fm(\))208 3078 y Fr(A)n(djust)28 b(the)g(timestamp)g(\(in)g(GMT\))g
(when)g(the)f(certi\034cate)g(stops)g(b)r(eing)h(v)-5
b(alid.)0 3225 y Fm(has_expired\(\))208 3325 y Fr(Chec)n(ks)32
b(the)h(certi\034cate's)f(time)i(stamp)f(against)f(curren)n(t)g(time.)
54 b(Returns)33 b(true)g(if)g(the)h(certi\034cate)e(has)h(expired)208
3424 y(and)27 b(false)g(otherwise.)0 3571 y Fm(set_issuer\()p
Fd(issuer)9 b Fm(\))208 3671 y Fr(Set)28 b(the)f(issuer)g(of)h(the)g
(certi\034cate)f(to)g Fd(issuer)9 b Fr(.)0 3818 y Fm(set_pubkey\()p
Fd(pkey)e Fm(\))208 3917 y Fr(Set)28 b(the)f(public)h(k)n(ey)f(of)h
(the)g(certi\034cate)f(to)g Fd(pkey)7 b Fr(.)0 4064 y
Fm(set_serial_numbe)o(r\()o Fd(serialno)e Fm(\))208 4164
y Fr(Set)28 b(the)f(serial)g(n)n(um)n(b)r(er)g(of)h(the)g
(certi\034cate)f(to)g Fd(serialno)5 b Fr(.)0 4311 y Fm(set_subject\()p
Fd(subje)l(ct)j Fm(\))208 4410 y Fr(Set)28 b(the)f(sub)5
b(ject)28 b(of)g(the)g(certi\034cate)f(to)g Fd(subje)l(ct)8
b Fr(.)0 4557 y Fm(set_version\()p Fd(version)e Fm(\))208
4657 y Fr(Set)28 b(the)f(certi\034cate)g(v)n(ersion)f(to)i
Fd(version)6 b Fr(.)0 4804 y Fm(sign\()p Fd(pkey,)29
b(digest)8 b Fm(\))208 4903 y Fr(Sign)22 b(the)h(certi\034cate,)f
(using)g(the)h(k)n(ey)g Fd(pkey)31 b Fr(and)22 b(the)h(message)e
(digest)h(algorithm)f(iden)n(ti\034ed)i(b)n(y)f(the)h(string)f
Fd(digest)8 b Fr(.)0 5050 y Fm(subject_name_has)o(h\()o(\))208
5150 y Fr(Return)27 b(the)h(hash)f(of)h(the)g(certi\034cate)f(sub)5
b(ject.)0 5297 y Fm(digest\()p Fd(digest_name)h Fm(\))208
5396 y Fr(Return)27 b(a)g(digest)h(of)f(the)h(certi\034cate,)f(using)g
(the)h Fd(digest_name)35 b Fr(metho)r(d.)p 0 5549 3901
4 v 0 5649 a Fg(3.1)82 b Fm(crypto)25 b Fg(\026)j(Generic)g
(cryptographic)e(mo)r(dule)2234 b(5)p eop end
%%Page: 6 6
TeXDict begin 6 5 bop 0 83 a Fm(add_extensions\()p Fd(ex)o(tensions)7
b Fm(\))208 183 y Fr(A)n(dd)27 b(the)h(extensions)f(in)h(the)g
(sequence)f Fd(extensions)34 b Fr(to)27 b(the)h(certi\034cate.)0
446 y Fg(X509Name)e(objects)0 646 y Fr(X509Name)g(ob)5
b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e(mem)n(b)r(ers:)0
793 y Fm(countryName)208 893 y Fr(The)h(coun)n(try)g(of)g(the)h(en)n
(tit)n(y)-7 b(.)37 b Fm(C)27 b Fr(ma)n(y)g(b)r(e)h(used)g(as)f(an)g
(alias)f(for)h Fm(countryName)p Fr(.)0 1040 y Fm(stateOrProvinceN)o(am)
o(e)208 1139 y Fr(The)g(state)h(or)e(pro)n(vince)g(of)i(the)g(en)n(tit)
n(y)-7 b(.)37 b Fm(ST)27 b Fr(ma)n(y)f(b)r(e)i(used)g(as)f(an)g(alias)g
(for)g Fm(stateOrProvince)o(Na)o(me)p Fr(\267)0 1286
y Fm(localityName)208 1386 y Fr(The)g(lo)r(calit)n(y)g(of)h(the)f(en)n
(tit)n(y)-7 b(.)37 b Fm(L)28 b Fr(ma)n(y)e(b)r(e)i(used)g(as)f(an)g
(alias)g(for)g Fm(localityName)p Fr(.)0 1532 y Fm(organizationName)208
1632 y Fr(The)g(organization)e(name)j(of)f(the)h(en)n(tit)n(y)-7
b(.)37 b Fm(O)27 b Fr(ma)n(y)g(b)r(e)h(used)g(as)e(an)i(alias)e(for)h
Fm(organizationName)p Fr(.)0 1779 y Fm(organizationalUn)o(it)o(Nam)o(e)
208 1879 y Fr(The)g(organizational)e(unit)j(of)g(the)g(en)n(tit)n(y)-7
b(.)36 b Fm(OU)27 b Fr(ma)n(y)g(b)r(e)h(used)g(as)f(an)g(alias)f(for)h
Fm(organizationalUni)o(tN)o(am)o(e)p Fr(.)0 2025 y Fm(commonName)208
2125 y Fr(The)g(common)g(name)h(of)f(the)h(en)n(tit)n(y)-7
b(.)37 b Fm(CN)27 b Fr(ma)n(y)f(b)r(e)i(used)g(as)f(an)g(alias)g(for)g
Fm(commonName)p Fr(.)0 2272 y Fm(emailAddress)208 2372
y Fr(The)g(e-mail)g(address)f(of)i(the)g(en)n(tit)n(y)-7
b(.)0 2635 y Fg(X509Req)26 b(objects)0 2835 y Fr(X509Req)g(ob)5
b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e(metho)r(ds:)0
2982 y Fm(get_pubkey\(\))208 3082 y Fr(Return)h(a)g(PKey)h(ob)5
b(ject)27 b(represen)n(ting)f(the)i(public)g(k)n(ey)f(of)g(the)h
(certi\034cate)f(request.)0 3228 y Fm(get_subject\(\))208
3328 y Fr(Return)32 b(a)g Fd(b)l(orr)l(owe)l(d)k(r)l(efer)l(enc)l(e)e
(to)h(a)f(X509Name)i(obje)l(ct)f(r)l(epr)l(esenting)f(the)h(subje)l(ct)
f(of)h(the)f(c)l(erti\034c)l(ate.)53 b(When)208 3428
y(the)29 b(c)l(orr)l(esp)l(onding)i(X509)g(or)f(X509R)l(e)l(q)g(obje)l
(ct)h(is)f(destr)l(oye)l(d,)h(this)f(obje)l(ct)g(wil)t(l)h(b)l(e)f
(invalid!)0 3575 y Fm(set_pubkey\()p Fd(pkey)7 b Fm(\))208
3674 y Fr(Set)28 b(the)f(public)h(k)n(ey)f(of)h(the)g(certi\034cate)f
(request)g(to)g Fd(pkey)7 b Fr(.)0 3821 y Fm(sign\()p
Fd(pkey,)29 b(digest)8 b Fm(\))208 3921 y Fr(Sign)36
b(the)g(certi\034cate)g(request,)h(using)f(the)g(k)n(ey)h
Fd(pkey)45 b Fr(and)36 b(the)g(message)f(digest)g(algorithm)g(iden)n
(ti\034ed)i(b)n(y)f(the)208 4020 y(string)28 b Fd(digest)8
b Fr(.)0 4167 y Fm(verify\()p Fd(pkey)f Fm(\))208 4267
y Fr(V)-7 b(erify)27 b(a)g(certi\034cate)g(request)g(using)g(the)h
(public)g(k)n(ey)g Fd(pkey)7 b Fr(.)0 4530 y Fg(X509Sto)n(re)26
b(objects)0 4730 y Fr(The)i(X509Store)d(ob)5 b(ject)28
b(has)f(curren)n(tly)f(just)i(one)g(metho)r(d:)0 4877
y Fm(add_cert\()p Fd(c)l(ert)8 b Fm(\))208 4977 y Fr(A)n(dd)27
b(the)h(certi\034cate)f Fd(c)l(ert)36 b Fr(to)27 b(the)h(certi\034cate)
f(store.)p 0 5549 3901 4 v 0 5649 a Fg(6)2239 b(3)83
b Fm(OpenSSL)24 b Fg(\026)k(Python)f(interface)h(to)f(Op)r(enSSL)p
eop end
%%Page: 7 7
TeXDict begin 7 6 bop 0 83 a Fg(PKey)27 b(objects)0 283
y Fr(The)h(PKey)f(ob)5 b(ject)27 b(has)g(the)h(follo)n(wing)f(metho)r
(ds:)0 430 y Fm(bits\(\))208 530 y Fr(Return)g(the)h(n)n(um)n(b)r(er)f
(of)h(bits)g(of)f(the)h(k)n(ey)-7 b(.)0 677 y Fm(generate_key\()p
Fd(typ)l(e,)25 b(bits)7 b Fm(\))208 776 y Fr(Generate)22
b(a)h(public/priv)-5 b(ate)23 b(k)n(ey)f(pair)h(of)g(the)h(t)n(yp)r(e)f
Fd(typ)l(e)30 b Fr(\(one)23 b(of)30 b Fm(TYPE_RSA)19
b Fr(and)24 b Fm(TYPE_DSA)p Fr(\))c(with)j(the)h(size)f
Fd(bits)7 b Fr(.)0 923 y Fm(type\(\))208 1023 y Fr(Return)27
b(the)h(t)n(yp)r(e)g(of)f(the)h(k)n(ey)-7 b(.)0 1286
y Fg(PK)n(CS7)27 b(objects)0 1486 y Fr(PK)n(CS7)g(ob)5
b(jects)27 b(ha)n(v)n(e)f(the)i(follo)n(wing)f(metho)r(ds:)0
1633 y Fm(type_is_signed\(\))208 1733 y Fr(FIXME)0 1880
y Fm(type_is_envelope)o(d\()o(\))208 1979 y Fr(FIXME)0
2126 y Fm(type_is_signedAn)o(dE)o(nve)o(lo)o(pe)o(d\(\))208
2226 y Fr(FIXME)0 2373 y Fm(type_is_data\(\))208 2472
y Fr(FIXME)0 2619 y Fm(get_type_name\(\))208 2719 y Fr(Get)h(the)f(t)n
(yp)r(e)h(name)g(of)f(the)h(PK)n(CS7.)0 2982 y Fg(PK)n(CS12)e(objects)0
3182 y Fr(PK)n(CS12)g(ob)5 b(jects)28 b(ha)n(v)n(e)e(the)i(follo)n
(wing)e(metho)r(ds:)0 3329 y Fm(get_certificate\()o(\))208
3429 y Fr(Return)h(certi\034cate)g(p)r(ortion)g(of)h(the)g(PK)n(CS12)e
(structure.)0 3576 y Fm(get_privatekey\(\))208 3675 y
Fr(Return)h(priv)-5 b(ate)27 b(k)n(ey)g(p)r(ortion)g(of)h(the)g(PK)n
(CS12)e(structure)0 3822 y Fm(get_ca_certifica)o(te)o(s\(\))208
3922 y Fr(Return)k(CA)g(certi\034cates)f(within)i(the)f(PK)n(CS12)f(ob)
5 b(ject)30 b(as)f(a)g(tuple.)45 b(Returns)30 b(None)g(if)g(no)g(CA)g
(certi\034cates)f(are)208 4022 y(presen)n(t.)0 4285 y
Fg(X509Extension)c(objects)0 4485 y Fr(X509Extension)h(ob)5
b(jects)27 b(curren)n(tly)g(only)g(ha)n(v)n(e)f(one)i(metho)r(d:)0
4632 y Fm(get_critical\(\))208 4732 y Fr(Return)f(the)h(critical)f
(\034eld)h(of)f(the)h(extension)f(ob)5 b(ject.)0 4995
y Fg(Netscap)r(eSPKI)27 b(objects)0 5195 y Fr(Netscap)r(eSPKI)h(ob)5
b(jects)27 b(ha)n(v)n(e)f(the)i(follo)n(wing)e(metho)r(ds:)p
0 5549 3901 4 v 0 5649 a Fg(3.1)82 b Fm(crypto)25 b Fg(\026)j(Generic)g
(cryptographic)e(mo)r(dule)2234 b(7)p eop end
%%Page: 8 8
TeXDict begin 8 7 bop 0 83 a Fm(b64_encode\(\))208 183
y Fr(Return)27 b(a)g(base64-enco)r(ded)f(string)h(represen)n(tation)e
(of)j(the)g(ob)5 b(ject.)0 330 y Fm(get_pubkey\(\))208
429 y Fr(Return)27 b(the)h(public)g(k)n(ey)f(of)h(ob)5
b(ject.)0 576 y Fm(set_pubkey\()p Fd(key)i Fm(\))208
676 y Fr(Set)28 b(the)f(public)h(k)n(ey)f(of)h(the)g(ob)5
b(ject)27 b(to)h Fd(key)7 b Fr(.)0 823 y Fm(sign\()p
Fd(key,)29 b(digest_name)6 b Fm(\))208 922 y Fr(Sign)27
b(the)h(Netscap)r(eSPKI)g(ob)5 b(ject)27 b(using)g(the)h(giv)n(en)f
Fd(key)35 b Fr(and)28 b Fd(digest_name)6 b Fr(.)0 1069
y Fm(verify\()p Fd(key)h Fm(\))208 1169 y Fr(V)-7 b(erify)27
b(the)h(Netscap)r(eSPKI)g(ob)5 b(ject)27 b(using)g(the)h(giv)n(en)f
Fd(key)7 b Fr(.)0 1448 y Fk(3.2)97 b Fe(rand)34 b Fk(\026)e(An)h
(interface)g(to)g(the)g(Op)s(enSSL)f(pseudo)h(random)g(numb)s(er)g
(generato)m(r)0 1649 y Fr(This)28 b(mo)r(dule)f(handles)h(the)f(Op)r
(enSSL)h(pseudo)f(random)g(n)n(um)n(b)r(er)g(generator)f(\(PRNG\))j
(and)e(declares)f(the)i(follo)n(wing:)0 1796 y Fm(add\()p
Fd(string,)g(entr)l(opy)7 b Fm(\))208 1895 y Fr(Mix)22
b(b)n(ytes)g(from)g Fd(string)30 b Fr(in)n(to)22 b(the)h(PRNG)h(state.)
35 b(The)22 b Fd(entr)l(opy)30 b Fr(argumen)n(t)22 b(is)g(\(the)h(lo)n
(w)n(er)e(b)r(ound)i(of)6 b(\))23 b(an)f(estimate)208
1995 y(of)f(ho)n(w)g(m)n(uc)n(h)h(randomness)e(is)h(con)n(tained)g(in)h
Fd(string)7 b Fr(,)23 b(measured)e(in)h(b)n(ytes.)34
b(F)-7 b(or)21 b(more)g(information,)h(see)g(e.g.)34
b(RF)n(C)208 2094 y(1750.)0 2241 y Fm(egd\()p Fd(p)l(ath)6
b Fc([)p Fd(,)29 b(bytes)19 b Fc(])p Fm(\))208 2341 y
Fr(Query)29 b(the)j(En)n(trop)n(y)e(Gathering)g(Daemon)1629
2311 y Fl(3)1697 2341 y Fr(on)h(so)r(c)n(k)n(et)f Fd(p)l(ath)38
b Fr(for)30 b Fd(bytes)38 b Fr(b)n(ytes)31 b(of)g(random)f(data)g(and)h
(and)g(uses)208 2441 y Fm(add)26 b Fr(to)h(seed)h(the)g(PRNG.)g(The)g
(default)g(v)-5 b(alue)27 b(of)34 b Fd(bytes)h Fr(is)27
b(255.)0 2602 y Fm(load_file\()p Fd(p)l(ath)6 b Fc([)p
Fd(,)26 b(bytes)19 b Fc(])p Fm(\))208 2701 y Fr(Read)29
b Fd(bytes)38 b Fr(b)n(ytes)30 b(\(or)f(all)h(of)g(it,)i(if)37
b Fd(bytes)g Fr(is)31 b(negativ)n(e\))e(of)h(data)g(from)g(the)g
(\034le)h Fd(p)l(ath)37 b Fr(to)30 b(seed)g(the)h(PRNG.)g(The)208
2801 y(default)d(v)-5 b(alue)27 b(of)34 b Fd(bytes)h
Fr(is)27 b(-1.)0 2948 y Fm(screen\(\))208 3048 y Fr(A)n(dd)g(the)h
(curren)n(t)f(con)n(ten)n(ts)g(of)g(the)h(screen)f(to)g(the)h(PRNG)h
(state.)37 b(A)-9 b(v)k(ailabilit)n(y:)36 b(Windo)n(ws.)0
3194 y Fm(seed\()p Fd(string)7 b Fm(\))208 3294 y Fr(This)27
b(is)h(equiv)-5 b(alen)n(t)27 b(to)g(calling)h Fm(add)f
Fr(with)h Fd(entr)l(opy)35 b Fr(as)27 b(the)h(length)f(of)h(the)g
(string.)0 3441 y Fm(status\(\))208 3541 y Fr(Returns)f(true)g(if)i
(the)e(PRNG)i(has)e(b)r(een)h(seeded)f(with)h(enough)f(data,)g(and)h
(false)f(otherwise.)0 3687 y Fm(write_file\()p Fd(p)l(ath)6
b Fm(\))208 3787 y Fr(W)-7 b(rite)34 b(a)g(n)n(um)n(b)r(er)g(of)h
(random)e(b)n(ytes)h(\(curren)n(tly)g(1024\))f(to)h(the)h(\034le)f
Fd(p)l(ath)6 b Fr(.)59 b(This)34 b(\034le)h(can)f(then)g(b)r(e)h(used)g
(with)208 3887 y Fm(load_file)23 b Fr(to)28 b(seed)f(the)h(PRNG)h
(again.)0 4166 y Fk(3.3)97 b Fe(SSL)33 b Fk(\026)f(An)h(interface)h(to)
e(the)h(SSL-sp)s(eci\034c)h(pa)m(rts)f(of)f(Op)s(enSSL)0
4367 y Fr(This)c(mo)r(dule)f(handles)h(things)f(sp)r(eci\034c)h(to)f
(SSL.)h(There)f(are)f(t)n(w)n(o)h(ob)5 b(jects)27 b(de\034ned:)38
b(Con)n(text,)27 b(Connection.)0 4514 y Fm(SSLv2_METHOD)0
4613 y(SSLv3_METHOD)0 4713 y(SSLv23_METHOD)0 4813 y(TLSv1_METHOD)208
4912 y Fr(These)g(constan)n(ts)f(represen)n(t)h(the)h(di\033eren)n(t)f
(SSL)h(metho)r(ds)g(to)f(use)h(when)f(creating)g(a)g(con)n(text)g(ob)5
b(ject.)0 5059 y Fm(VERIFY_NONE)0 5159 y(VERIFY_PEER)p
0 5220 1560 4 v 92 5274 a Fi(3)127 5297 y Fh(See)24 b
Fq(http://www.lotha)n(r.com/tech/crypto/)p 0 5549 3901
4 v 0 5649 a Fg(8)2239 b(3)83 b Fm(OpenSSL)24 b Fg(\026)k(Python)f
(interface)h(to)f(Op)r(enSSL)p eop end
%%Page: 9 9
TeXDict begin 9 8 bop 0 83 a Fm(VERIFY_FAIL_IF_N)o(O_)o(PEE)o(R_)o(CE)o
(RT)208 183 y Fr(These)27 b(constan)n(ts)f(represen)n(t)h(the)h(v)n
(eri\034cation)e(mo)r(de)h(used)h(b)n(y)f(the)h(Con)n(text)f(ob)5
b(ject's)27 b Fm(set_verify)d Fr(metho)r(d.)0 330 y Fm(FILETYPE_PEM)0
429 y(FILETYPE_ASN1)208 529 y Fr(File)41 b(t)n(yp)r(e)g(constan)n(ts)f
(used)h(with)g(the)h Fm(use_certificate)o(_f)o(ile)34
b Fr(and)41 b Fm(use_privatekey_f)o(il)o(e)35 b Fr(metho)r(ds)41
b(of)208 628 y(Con)n(text)27 b(ob)5 b(jects.)0 775 y
Fm(OP_SINGLE_DH_USE)0 875 y(OP_EPHEMERAL_RSA)0 975 y(OP_NO_SSLv2)0
1074 y(OP_NO_SSLv3)0 1174 y(OP_NO_TLSv1)208 1273 y Fr(Constan)n(ts)30
b(used)i(with)g Fm(set_options)26 b Fr(of)32 b(Con)n(text)f(ob)5
b(jects.)48 b Fm(OP_SINGLE_DH_USE)25 b Fr(means)31 b(to)g(alw)n(a)n(ys)
f(create)g(a)208 1373 y(new)19 b(k)n(ey)f(when)h(using)g(ephemeral)f
(Di\036e-Hellman.)34 b Fm(OP_EPHEMERAL_RSA)13 b Fr(means)18
b(to)h(alw)n(a)n(ys)e(use)i(ephemeral)g(RSA)208 1473
y(k)n(eys)f(when)h(doing)f(RSA)i(op)r(erations.)33 b
Fm(OP_NO_SSLv2)p Fr(,)16 b Fm(OP_NO_SSLv3)f Fr(and)k
Fm(OP_NO_TLSv1)14 b Fr(means)19 b(to)g(disable)f(those)208
1572 y(sp)r(eci\034c)29 b(proto)r(cols.)39 b(This)29
b(is)g(in)n(teresting)g(if)g(y)n(ou're)f(using)g(e.g.)41
b Fm(SSLv23_METHOD)24 b Fr(to)29 b(get)g(an)f(SSLv2-compatible)208
1672 y(handshak)n(e,)e(but)i(don't)g(w)n(an)n(t)f(to)g(use)h(SSLv2.)0
1819 y Fm(ContextType)208 1918 y Fr(A)f(Python)h(t)n(yp)r(e)g(ob)5
b(ject)28 b(represen)n(ting)d(the)j(Con)n(text)g(ob)5
b(ject)27 b(t)n(yp)r(e.)0 2065 y Fm(Context\()p Fd(metho)l(d)9
b Fm(\))208 2165 y Fr(F)-7 b(actory)34 b(function)i(that)g(creates)f(a)
g(new)h(Con)n(text)f(ob)5 b(ject)36 b(giv)n(en)e(an)i(SSL)g(metho)r(d.)
61 b(The)36 b(metho)r(d)g(should)g(b)r(e)208 2265 y Fm(SSLv2_METHOD)p
Fr(,)22 b Fm(SSLv3_METHOD)p Fr(,)h Fm(SSLv23_METHOD)f
Fr(or)27 b Fm(TLSv1_METHOD)p Fr(.)0 2411 y Fm(ConnectionType)208
2511 y Fr(A)g(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28 b(represen)n(ting)d
(the)j(Connection)f(ob)5 b(ject)28 b(t)n(yp)r(e.)0 2658
y Fm(Connection\()p Fd(c)l(ontext,)c(so)l(cket)8 b Fm(\))208
2758 y Fr(F)-7 b(actory)26 b(fucnction)i(that)g(creates)e(a)h(new)h
(Connection)f(ob)5 b(ject)27 b(giv)n(en)g(an)g(SSL)h(con)n(text)f(and)h
(a)f(so)r(c)n(k)n(et)3538 2727 y Fl(4)3603 2758 y Fr(ob)5
b(ject.)0 2904 y Fn(exception)32 b Fm(Error)208 3004
y Fr(This)i(exception)g(is)h(used)f(as)g(a)h(base)e(class)h(for)g(the)h
(other)f(SSL-related)g(exceptions,)i(but)f(ma)n(y)f(also)f(b)r(e)i
(raised)208 3104 y(directly)-7 b(.)208 3236 y(Whenev)n(er)36
b(this)h(exception)g(is)g(raised)f(directly)-7 b(,)40
b(it)d(has)g(a)f(list)i(of)f(error)e(messages)h(from)g(the)i(Op)r
(enSSL)f(error)208 3336 y(queue,)k(where)d(eac)n(h)f(item)i(is)g(a)f
(tuple)h Fm(\()p Fd(lib)5 b Fm(,)44 b Fd(function)6 b
Fm(,)43 b Fd(r)l(e)l(ason)6 b Fm(\))p Fr(.)70 b(Here)38
b Fd(lib)5 b Fr(,)43 b Fd(function)h Fr(and)39 b Fd(r)l(e)l(ason)45
b Fr(are)37 b(all)208 3436 y(strings,)26 b(describing)h(where)g(and)g
(what)h(the)g(problem)f(is.)36 b(See)28 b Fd(err)p Fr(\(3\))g(for)f
(more)g(information.)0 3583 y Fn(exception)32 b Fm(ZeroReturnError)208
3682 y Fr(This)g(exception)g(matc)n(hes)g(the)h(error)d(return)i(co)r
(de)h Fm(SSL_ERROR_ZERO_)o(RE)o(TUR)o(N)p Fr(,)26 b(and)33
b(is)f(raised)f(when)i(the)g(SSL)208 3782 y(Connection)c(has)g(b)r(een)
h(closed.)43 b(In)29 b(SSL)h(3.0)f(and)h(TLS)g(1.0,)f(this)h(only)f(o)r
(ccurs)g(if)h(a)g(closure)e(alert)h(has)g(o)r(ccurred)208
3881 y(in)g(the)g(proto)r(col,)f(i.e.)41 b(the)29 b(connection)f(has)g
(b)r(een)i(closed)e(cleanly)-7 b(.)40 b(Note)29 b(that)g(this)g(do)r
(es)f(not)h(necessarily)e(mean)208 3981 y(that)g(the)h(transp)r(ort)f
(la)n(y)n(er)f(\(e.g.)36 b(a)28 b(so)r(c)n(k)n(et\))e(has)h(b)r(een)h
(closed.)208 4114 y(It)k(ma)n(y)f(seem)h(a)f(little)i(strange)e(that)h
(this)g(is)g(an)g(exception,)g(but)h(it)f(do)r(es)g(matc)n(h)g(an)f
Fm(SSL_ERROR)e Fr(co)r(de,)j(and)g(is)208 4214 y(v)n(ery)26
b(con)n(v)n(enien)n(t.)0 4360 y Fn(exception)32 b Fm(WantReadError)208
4460 y Fr(The)i(op)r(eration)e(did)j(not)f(complete;)j(the)d(same)g
(I/O)f(metho)r(d)h(should)g(b)r(e)g(called)g(again)f(later,)i(with)f
(the)h(same)208 4560 y(argumen)n(ts.)g(An)n(y)28 b(I/O)e(metho)r(d)i
(can)f(lead)h(to)f(this)h(since)f(new)h(handshak)n(es)e(can)h(o)r(ccur)
g(at)g(an)n(y)g(time.)0 4707 y Fn(exception)32 b Fm(WantWriteError)208
4806 y Fr(See)27 b Fm(WantReadError)p Fr(.)0 4953 y Fn(exception)32
b Fm(WantX509LookupE)o(rr)o(or)208 5053 y Fr(The)24 b(op)r(eration)g
(did)h(not)g(complete)f(b)r(ecause)g(an)h(application)f(callbac)n(k)f
(has)h(ask)n(ed)g(to)g(b)r(e)h(called)g(again.)34 b(The)25
b(I/O)208 5152 y(metho)r(d)f(should)h(b)r(e)f(called)g(again)g(later,)g
(with)h(the)g(same)e(argumen)n(ts.)35 b(Note:)g(This)24
b(w)n(on't)h(o)r(ccur)e(in)i(this)g(v)n(ersion,)p 0 5222
1560 4 v 92 5275 a Fi(4)127 5299 y Fh(A)n(ctually)-6
b(,)25 b(all)e(that)j(is)d(required)j(is)e(an)g(ob)t(ject)h(that)h
Fb(b)l(ehaves)e Fh(lik)n(e)g(a)h(so)r(c)n(k)n(et,)g(y)n(ou)g(could)g
(ev)n(en)g(use)f(\034les,)g(ev)n(en)i(though)f(it'd)f(b)r(e)h(tric)n
(ky)g(to)0 5377 y(get)g(the)f(handshak)n(es)h(righ)n(t!)p
0 5549 3901 4 v 0 5649 a Fg(3.3)82 b Fm(SSL)26 b Fg(\026)i(An)g
(interface)g(to)f(the)g(SSL-sp)r(eci\034c)h(pa)n(rts)f(of)h(Op)r(enSSL)
1652 b(9)p eop end
%%Page: 10 10
TeXDict begin 10 9 bop 208 83 a Fr(as)26 b(there)i(are)e(no)i(suc)n(h)f
(callbac)n(ks)f(in)i(this)f(v)n(ersion.)0 230 y Fn(exception)32
b Fm(SysCallError)208 330 y Fr(The)25 b Fm(SysCallError)20
b Fr(o)r(ccurs)k(when)i(there's)e(an)h(I/O)g(error)e(and)i(Op)r
(enSSL's)g(error)e(queue)i(do)r(es)g(not)g(con)n(tain)g(an)n(y)208
429 y(information.)59 b(This)36 b(can)f(mean)g(t)n(w)n(o)g(things:)52
b(An)36 b(error)d(in)j(the)g(transp)r(ort)e(proto)r(col,)i(or)f(an)g
(end)h(of)f(\034le)h(that)208 529 y(violates)26 b(the)i(proto)r(col.)36
b(The)27 b(parameter)f(to)i(the)g(exception)f(is)g(alw)n(a)n(ys)f(a)h
(pair)g Fm(\()p Fd(errnum)6 b Fm(,)42 b Fd(errstr)9 b
Fm(\))p Fr(.)0 792 y Fg(Context)27 b(objects)0 992 y
Fr(Con)n(text)g(ob)5 b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e
(metho)r(ds:)0 1139 y Fm(check_privatekey)o(\(\))208
1255 y Fr(Chec)n(k)k(if)i(the)g(priv)-5 b(ate)31 b(k)n(ey)f(\(loaded)h
(with)h Fm(use_privatekey)p Fc([)p Fm(_)o(fi)o(le)11
b Fc(])p Fr(\))26 b(matc)n(hes)k(the)i(certi\034cate)f(\(loaded)g(with)
208 1383 y Fm(use_certificate)o Fc([)p Fm(_)o(fil)o(e)11
b Fc(])p Fr(\).)31 b(Returns)d(true)f(if)h(they)g(matc)n(h,)f(false)h
(otherwise.)0 1530 y Fm(get_app_data\(\))208 1630 y Fr(Retriev)n(e)e
(application)h(data)g(as)g(set)h(b)n(y)g Fm(set_app_data)p
Fr(.)0 1776 y Fm(get_cert_store\(\))208 1876 y Fr(Retriev)n(e)34
b(the)i(certi\034cate)f(store)f(\(a)h(X509Store)f(ob)5
b(ject\))35 b(that)h(the)f(con)n(text)g(uses.)60 b(This)35
b(can)g(b)r(e)h(used)f(to)g(add)208 1976 y("trusted")26
b(certi\034cates)h(without)h(using)f(the.)37 b Fm(load_verify_loca)o
(tio)o(ns)o(\(\))21 b Fr(metho)r(d.)0 2123 y Fm(get_timeout\(\))208
2222 y Fr(Retriev)n(e)26 b(session)h(timeout,)h(as)f(set)g(b)n(y)i
Fm(set_timeout)p Fr(.)j(The)c(default)g(is)f(300)f(seconds.)0
2369 y Fm(get_verify_depth)o(\(\))208 2469 y Fr(Retriev)n(e)g(the)i
(Con)n(text)f(ob)5 b(ject's)28 b(v)n(erify)e(depth,)j(as)d(set)i(b)n(y)
g Fm(set_verify_depth)p Fr(.)0 2616 y Fm(get_verify_mode\()o(\))208
2715 y Fr(Retriev)n(e)e(the)i(Con)n(text)f(ob)5 b(ject's)28
b(v)n(erify)e(mo)r(de,)i(as)f(set)h(b)n(y)g Fm(set_verify_mode)p
Fr(.)0 2862 y Fm(load_client_ca\()p Fd(p)l(em\034le)6
b Fm(\))208 2962 y Fr(Read)33 b(a)g(\034le)h(with)g(PEM-formatted)g
(certi\034cates)f(that)h(will)g(b)r(e)g(sen)n(t)f(to)h(the)g(clien)n(t)
f(when)h(requesting)f(a)g(clien)n(t)208 3061 y(certi\034cate.)0
3208 y Fm(load_verify_loca)o(ti)o(ons)o(\()p Fd(p)l(em\034le)6
b Fm(\))208 3308 y Fr(Sp)r(ecify)24 b(where)f(CA)g(certi\034cates)g
(for)g(v)n(eri\034cation)f(purp)r(oses)h(are)f(lo)r(cated.)35
b(These)23 b(are)g(trusted)g(certi\034cates.)35 b(Note)208
3407 y(that)27 b(the)h(certi\034cates)f(ha)n(v)n(e)f(to)i(b)r(e)g(in)g
(PEM)g(format.)0 3554 y Fm(load_tmp_dh\()p Fd(dh\034le)6
b Fm(\))208 3654 y Fr(Load)26 b(parameters)g(for)h(Ephemeral)g
(Di\036e-Hellman)h(from)g Fd(dh\034le)6 b Fr(.)0 3801
y Fm(set_app_data\()p Fd(data)g Fm(\))208 3900 y Fr(Asso)r(ciate)25
b Fd(data)33 b Fr(with)27 b(this)f(Con)n(text)f(ob)5
b(ject.)36 b Fd(data)e Fr(can)25 b(b)r(e)i(retriev)n(ed)d(later)i
(using)f(the)i Fm(get_app_data)21 b Fr(metho)r(d.)0 4047
y Fm(set_cipher_list\()o Fd(ciphers)7 b Fm(\))208 4147
y Fr(Set)28 b(the)g(list)h(of)f(ciphers)f(to)h(b)r(e)g(used)g(in)g
(this)h(con)n(text.)37 b(See)28 b(the)h(Op)r(enSSL)f(man)n(ual)f(for)h
(more)f(information)g(\(e.g.)208 4247 y(ciphers\(1\)\))0
4393 y Fm(set_info_callbac)o(k\()o Fd(c)l(al)t(lb)l(ack)9
b Fm(\))208 4493 y Fr(Set)33 b(the)f(information)g(callbac)n(k)f(to)i
Fd(c)l(al)t(lb)l(ack)9 b Fr(.)54 b(This)32 b(function)h(will)g(b)r(e)g
(called)f(from)g(time)h(to)g(time)g(during)f(SSL)208
4593 y(handshak)n(es.)208 4726 y Fd(c)l(al)t(lb)l(ack)j
Fr(should)24 b(tak)n(e)g(three)g(argumen)n(ts:)34 b(a)25
b(Connection)f(ob)5 b(ject)24 b(and)g(t)n(w)n(o)g(in)n(tegers.)35
b(The)24 b(\034rst)h(in)n(teger)e(sp)r(eci\034es)208
4825 y(where)29 b(in)i(the)g(SSL)g(handshak)n(e)e(the)i(function)g(w)n
(as)e(called,)i(and)f(the)h(other)f(the)h(return)f(co)r(de)g(from)g(a)g
(\(p)r(ossibly)208 4925 y(failed\))d(in)n(ternal)g(function)h(call.)0
5072 y Fm(set_options\()p Fd(options)7 b Fm(\))208 5171
y Fr(A)n(dd)27 b(SSL)h(options.)36 b(Options)27 b(y)n(ou)g(ha)n(v)n(e)g
(set)g(b)r(efore)g(are)g(not)h(cleared!)208 5304 y(This)f(metho)r(d)h
(should)f(b)r(e)h(used)g(with)g(the)g Fm(OP_*)e Fr(constan)n(ts.)p
0 5549 3901 4 v 0 5649 a Fg(10)2197 b(3)83 b Fm(OpenSSL)24
b Fg(\026)k(Python)f(interface)h(to)f(Op)r(enSSL)p eop
end
%%Page: 11 11
TeXDict begin 11 10 bop 0 90 a Fm(set_passwd_cb\()p Fd(c)l(al)t(lb)l
(ack)9 b Fc([)p Fd(,)25 b(user)l(data)19 b Fc(])p Fm(\))208
189 y Fr(Set)42 b(the)g(passphrase)f(callbac)n(k)f(to)i
Fd(c)l(al)t(lb)l(ack)9 b Fr(.)82 b(This)42 b(function)h(will)f(b)r(e)g
(called)g(when)g(a)g(priv)-5 b(ate)42 b(k)n(ey)f(with)h(a)208
289 y(passphrase)25 b(is)j(loaded.)208 422 y Fd(c)l(al)t(lb)l(ack)54
b Fr(should)43 b(tak)n(e)f(a)h(b)r(o)r(olean)g(argumen)n(t)f
Fd(r)l(ep)l(e)l(at)51 b Fr(and)43 b(an)g(arbitrary)e(argumen)n(t)h
Fd(data)51 b Fr(and)43 b(return)g(the)208 521 y(passphrase)33
b(en)n(tered)i(b)n(y)f(the)i(user.)59 b(If)42 b Fd(r)l(ep)l(e)l(at)h
Fr(is)36 b(true)f(then)g Fd(c)l(al)t(lb)l(ack)46 b Fr(should)35
b(ask)g(for)f(the)i(passphrase)d(t)n(wice)208 621 y(and)d(mak)n(e)g
(sure)g(that)h(the)g(t)n(w)n(o)f(en)n(tries)g(are)g(equal.)46
b(The)31 b Fd(data)38 b Fr(argumen)n(t)29 b(is)i(the)g
Fd(user)l(data)38 b Fr(v)-5 b(ariable)29 b(passed)h(to)208
721 y(the)j Fm(set_passwd_cb)27 b Fr(metho)r(d.)54 b(If)33
b(an)g(error)e(o)r(ccurs,)j Fd(c)l(al)t(lb)l(ack)43 b
Fr(should)33 b(return)f(a)h(false)g(v)-5 b(alue)32 b(\(e.g.)53
b(an)33 b(empt)n(y)208 820 y(string\).)0 967 y Fm(set_session_id\()p
Fd(n)o(ame)6 b Fm(\))208 1067 y Fr(Set)33 b(the)h(con)n(text)f
Fd(name)39 b Fr(within)34 b(whic)n(h)f(a)g(session)f(can)h(b)r(e)h
(reused)e(for)h(this)g(Con)n(text)g(ob)5 b(ject.)54 b(This)33
b(is)g(needed)208 1166 y(when)e(doing)g(session)g(resumption,)h(b)r
(ecause)g(there)f(is)h(no)f(w)n(a)n(y)g(for)g(a)g(stored)g(session)f
(to)i(kno)n(w)f(whic)n(h)g(Con)n(text)208 1266 y(ob)5
b(ject)27 b(it)h(is)f(asso)r(ciated)g(with.)37 b Fd(name)d
Fr(ma)n(y)27 b(b)r(e)h(an)n(y)e(binary)h(data.)0 1413
y Fm(set_timeout\()p Fd(time)l(out)8 b Fm(\))208 1512
y Fr(Set)29 b(the)g(timeout)h(for)e(newly)h(created)f(sessions)g(for)h
(this)g(Con)n(text)g(ob)5 b(ject)28 b(to)h Fd(time)l(out)8
b Fr(.)41 b Fd(time)l(out)36 b Fr(m)n(ust)29 b(b)r(e)h(giv)n(en)208
1612 y(in)f(\(whole\))f(seconds.)40 b(The)29 b(default)g(v)-5
b(alue)28 b(is)h(300)e(seconds.)40 b(See)29 b(the)g(Op)r(enSSL)g(man)n
(ual)f(for)g(more)g(information)208 1712 y(\(e.g.)36
b(SSL_CTX_set_timeout\(3\)\).)0 1859 y Fm(set_verify\()p
Fd(mo)l(de,)26 b(c)l(al)t(lb)l(ack)9 b Fm(\))208 1958
y Fr(Set)28 b(the)h(v)n(eri\034cation)e(\035ags)g(for)h(this)h(Con)n
(text)f(ob)5 b(ject)28 b(to)g Fd(mo)l(de)36 b Fr(and)28
b(sp)r(ecify)h(that)f Fd(c)l(al)t(lb)l(ack)39 b Fr(should)28
b(b)r(e)h(used)g(for)208 2058 y(v)n(eri\034cation)23
b(callbac)n(ks.)34 b Fd(mo)l(de)e Fr(should)25 b(b)r(e)g(one)g(of)31
b Fm(VERIFY_NONE)20 b Fr(and)25 b Fm(VERIFY_PEER)p Fr(.)20
b(If)32 b Fm(VERIFY_PEER)20 b Fr(is)25 b(used,)208 2157
y Fd(mo)l(de)k Fr(can)22 b(b)r(e)h(OR:ed)f(with)h Fm(VERIFY_FAIL_IF_)o
(NO_)o(PE)o(ER)o(_CE)o(RT)16 b Fr(and)22 b Fm(VERIFY_CLIENT_ON)o(CE)16
b Fr(to)22 b(further)g(con)n(trol)208 2257 y(the)28 b(b)r(eha)n(viour.)
208 2390 y Fd(c)l(al)t(lb)l(ack)34 b Fr(should)24 b(tak)n(e)g(\034v)n
(e)f(argumen)n(ts:)34 b(A)24 b(Connection)g(ob)5 b(ject,)24
b(an)g(X509)f(ob)5 b(ject,)25 b(and)e(three)h(in)n(teger)f(v)-5
b(ariables,)208 2489 y(whic)n(h)28 b(are)g(in)h(turn)g(p)r(oten)n(tial)
g(error)e(n)n(um)n(b)r(er,)i(error)e(depth)i(and)g(return)g(co)r(de.)40
b Fd(c)l(al)t(lb)l(ack)g Fr(should)28 b(return)h(true)g(if)208
2589 y(v)n(eri\034cation)d(passes)g(and)h(false)h(otherwise.)0
2736 y Fm(set_verify_depth)o(\()p Fd(depth)6 b Fm(\))208
2836 y Fr(Set)36 b(the)g(maxim)n(um)f(depth)h(for)g(the)g
(certi\034cate)f(c)n(hain)g(v)n(eri\034cation)f(that)i(shall)f(b)r(e)h
(allo)n(w)n(ed)e(for)i(this)f(Con)n(text)208 2935 y(ob)5
b(ject.)0 3082 y Fm(use_certificate\()o Fd(c)l(ert)j
Fm(\))208 3182 y Fr(Use)27 b(the)h(certi\034cate)f Fd(c)l(ert)35
b Fr(whic)n(h)28 b(has)f(to)g(b)r(e)h(a)f(X509)g(ob)5
b(ject.)0 3329 y Fm(use_certificate_)o(ch)o(ain)o(_f)o(il)o(e\()p
Fd(\034)o(le)h Fm(\))208 3428 y Fr(Load)26 b(a)h(certi\034cate)g(c)n
(hain)g(from)h Fd(\034le)34 b Fr(whic)n(h)27 b(m)n(ust)h(b)r(e)g(PEM)g
(enco)r(ded.)0 3575 y Fm(use_privatekey\()p Fd(pkey)7
b Fm(\))208 3675 y Fr(Use)27 b(the)h(priv)-5 b(ate)27
b(k)n(ey)h Fd(pkey)36 b Fr(whic)n(h)28 b(has)f(to)g(b)r(e)h(a)f(PKey)h
(ob)5 b(ject.)0 3836 y Fm(use_certificate_)o(fi)o(le\()o
Fd(\034le)h Fc([)p Fd(,)24 b(format)d Fc(])p Fm(\))208
3936 y Fr(Load)i(the)h(\034rst)g(certi\034cate)f(found)h(in)h
Fd(\034le)6 b Fr(.)36 b(The)24 b(certi\034cate)f(m)n(ust)h(b)r(e)h(in)f
(the)g(format)g(sp)r(eci\034ed)g(b)n(y)h Fd(format)8
b Fr(,)25 b(whic)n(h)208 4035 y(is)i(either)g Fm(FILETYPE_PEM)c
Fr(or)k Fm(FILETYPE_ASN1)p Fr(.)k(The)d(default)g(is)f
Fm(FILETYPE_PEM)p Fr(.)0 4182 y Fm(use_privatekey_f)o(il)o(e\()p
Fd(\034)o(le)6 b Fc([)p Fd(,)25 b(format)20 b Fc(])p
Fm(\))208 4282 y Fr(Load)31 b(the)h(\034rst)g(priv)-5
b(ate)31 b(k)n(ey)g(found)i(in)f Fd(\034le)6 b Fr(.)50
b(The)32 b(priv)-5 b(ate)32 b(k)n(ey)f(m)n(ust)h(b)r(e)g(in)h(the)f
(format)f(sp)r(eci\034ed)i(b)n(y)f Fd(format)8 b Fr(,)208
4381 y(whic)n(h)27 b(is)g(either)h Fm(FILETYPE_PEM)22
b Fr(or)27 b Fm(FILETYPE_ASN1)p Fr(.)32 b(The)27 b(default)h(is)g
Fm(FILETYPE_PEM)p Fr(.)0 4644 y Fg(Connection)e(objects)0
4845 y Fr(Connection)h(ob)5 b(jects)27 b(ha)n(v)n(e)f(the)i(follo)n
(wing)f(metho)r(ds:)0 4992 y Fm(accept\(\))208 5091 y
Fr(Call)33 b(the)g Fm(accept)e Fr(metho)r(d)j(of)f(the)h(underlying)f
(so)r(c)n(k)n(et)f(and)h(set)h(up)g(SSL)f(on)g(the)h(returned)f(so)r(c)
n(k)n(et,)h(using)f(the)208 5191 y(Con)n(text)22 b(ob)5
b(ject)22 b(supplied)h(to)f(this)h(Connection)f(ob)5
b(ject)22 b(at)h(creation.)34 b(Returns)22 b(a)g(pair)g
Fm(\()p Fd(c)l(onn)6 b Fm(,)43 b Fd(addr)l(ess)7 b Fm(\))p
Fr(.)36 b(where)208 5291 y Fd(c)l(onn)d Fr(is)28 b(the)g(new)f
(Connection)g(ob)5 b(ject)28 b(created,)e(and)i Fd(addr)l(ess)35
b Fr(is)28 b(as)f(returned)g(b)n(y)g(the)h(so)r(c)n(k)n(et's)e
Fm(accept)p Fr(.)p 0 5549 3901 4 v 0 5649 a Fg(3.3)82
b Fm(SSL)26 b Fg(\026)i(An)g(interface)g(to)f(the)g(SSL-sp)r(eci\034c)h
(pa)n(rts)f(of)h(Op)r(enSSL)1611 b(11)p eop end
%%Page: 12 12
TeXDict begin 12 11 bop 0 83 a Fm(bind\()p Fd(addr)l(ess)7
b Fm(\))208 183 y Fr(Call)27 b(the)h Fm(bind)e Fr(metho)r(d)i(of)f(the)
h(underlying)f(so)r(c)n(k)n(et.)0 330 y Fm(close\(\))208
429 y Fr(Call)i(the)h Fm(close)e Fr(metho)r(d)i(of)g(the)g(underlying)f
(so)r(c)n(k)n(et.)43 b(Note:)e(If)31 b(y)n(ou)e(w)n(an)n(t)g(correct)f
(SSL)i(closure,)f(y)n(ou)g(need)h(to)208 529 y(call)d(the)h
Fm(shutdown)c Fr(metho)r(d)k(\034rst.)0 676 y Fm(connect\()p
Fd(addr)l(ess)7 b Fm(\))208 775 y Fr(Call)31 b(the)h
Fm(connect)e Fr(metho)r(d)i(of)g(the)g(underlying)g(so)r(c)n(k)n(et)e
(and)i(set)g(up)g(SSL)h(on)e(the)i(so)r(c)n(k)n(et,)f(using)f(the)h
(Con)n(text)208 875 y(ob)5 b(ject)27 b(supplied)h(to)f(this)h
(Connection)f(ob)5 b(ject)27 b(at)h(creation.)0 1022
y Fm(connect_ex\()p Fd(addr)l(ess)7 b Fm(\))208 1121
y Fr(Call)24 b(the)g Fm(connect_ex)c Fr(metho)r(d)25
b(of)f(the)h(underlying)f(so)r(c)n(k)n(et)f(and)h(set)g(up)h(SSL)f(on)g
(the)h(so)r(c)n(k)n(et,)f(using)g(the)g(Con)n(text)208
1221 y(ob)5 b(ject)35 b(supplied)g(to)h(this)f(Connection)g(ob)5
b(ject)36 b(at)f(creation.)59 b(Note)36 b(that)f(if)h(the)g
Fm(connect_ex)31 b Fr(metho)r(d)36 b(of)g(the)208 1321
y(so)r(c)n(k)n(et)26 b(do)r(esn't)i(return)f(0,)g(SSL)h(w)n(on't)f(b)r
(e)h(initialized.)0 1468 y Fm(do_handshake\(\))208 1567
y Fr(P)n(erform)49 b(an)h(SSL)g(handshak)n(e)f(\(usually)h(called)g
(after)f Fm(renegotiate)d Fr(or)j(one)h(of)57 b Fm(set_accept_stat)o(e)
44 b Fr(or)208 1667 y Fm(set_accept_stat)o(e)p Fr(\).)31
b(This)d(can)f(raise)f(the)i(same)f(exceptions)g(as)g
Fm(send)f Fr(and)h Fm(recv)p Fr(.)0 1814 y Fm(fileno\(\))208
1913 y Fr(Retriev)n(e)f(the)i(\034le)g(descriptor)e(n)n(um)n(b)r(er)i
(for)f(the)h(underlying)e(so)r(c)n(k)n(et.)0 2060 y Fm(listen\()p
Fd(b)l(acklo)l(g)7 b Fm(\))208 2160 y Fr(Call)27 b(the)h
Fm(listen)d Fr(metho)r(d)j(of)f(the)h(underlying)f(so)r(c)n(k)n(et.)0
2307 y Fm(get_app_data\(\))208 2406 y Fr(Retriev)n(e)f(application)h
(data)g(as)g(set)h(b)n(y)g Fm(set_app_data)p Fr(.)0 2553
y Fm(get_cipher_list\()o(\))208 2653 y Fr(Retriev)n(e)23
b(the)h(list)g(of)g(ciphers)g(used)g(b)n(y)f(the)i(Connection)e(ob)5
b(ject.)36 b(W)-9 b(ARNING:)25 b(This)f(API)h(has)e(c)n(hanged.)35
b(It)24 b(used)208 2752 y(to)j(tak)n(e)g(an)g(optional)g(parameter)f
(and)h(just)h(return)g(a)f(string,)g(but)h(not)f(it)h(returns)f(the)h
(en)n(tire)f(list)h(in)g(one)f(go.)0 2899 y Fm(get_context\(\))208
2999 y Fr(Retriev)n(e)f(the)i(Con)n(text)f(ob)5 b(ject)28
b(asso)r(ciated)e(with)i(this)g(Connection.)0 3146 y
Fm(get_peer_certifi)o(ca)o(te\()o(\))208 3245 y Fr(Retriev)n(e)e(the)i
(other)f(side's)g(certi\034cate)g(\(if)i(an)n(y\))0 3392
y Fm(getpeername\(\))208 3492 y Fr(Call)e(the)h Fm(getpeername)23
b Fr(metho)r(d)28 b(of)f(the)h(underlying)f(so)r(c)n(k)n(et.)0
3639 y Fm(getsockname\(\))208 3738 y Fr(Call)g(the)h
Fm(getsockname)23 b Fr(metho)r(d)28 b(of)f(the)h(underlying)f(so)r(c)n
(k)n(et.)0 3902 y Fm(getsockopt\()p Fd(level,)f(optname)6
b Fc([)p Fd(,)31 b(bu\035en)18 b Fc(])p Fm(\))208 4002
y Fr(Call)27 b(the)h Fm(getsockopt)23 b Fr(metho)r(d)28
b(of)g(the)g(underlying)f(so)r(c)n(k)n(et.)0 4148 y Fm(pending\(\))208
4248 y Fr(Retriev)n(e)f(the)i(n)n(um)n(b)r(er)g(of)f(b)n(ytes)g(that)h
(can)f(b)r(e)h(safely)f(read)g(from)g(the)h(SSL)g(bu\033er.)0
4395 y Fm(recv\()p Fd(bufsize)6 b Fm(\))208 4495 y Fr(Receiv)n(e)30
b(data)h(from)g(the)h(Connection.)47 b(The)31 b(return)g(v)-5
b(alue)31 b(is)h(a)e(string)h(represen)n(ting)f(the)h(data)g(receiv)n
(ed.)47 b(The)208 4594 y(maxim)n(um)27 b(amoun)n(t)g(of)g(data)h(to)f
(b)r(e)h(receiv)n(ed)e(at)i(once,)f(is)g(sp)r(eci\034ed)h(b)n(y)h
Fd(bufsize)6 b Fr(.)0 4741 y Fm(renegotiate\(\))208 4841
y Fr(Renegotiate)26 b(the)i(SSL)g(session.)36 b(Call)27
b(this)h(if)g(y)n(ou)f(wish)g(to)h(c)n(hange)e(cipher)h(suites)h(or)e
(an)n(ything)h(lik)n(e)g(that.)0 4988 y Fm(send\()p Fd(string)7
b Fm(\))208 5087 y Fr(Send)27 b(the)h Fd(string)35 b
Fr(data)27 b(to)h(the)g(Connection.)0 5234 y Fm(sendall\()p
Fd(string)7 b Fm(\))208 5334 y Fr(Send)30 b(all)f(of)h(the)g
Fd(string)37 b Fr(data)29 b(to)g(the)h(Connection.)43
b(This)30 b(calls)f Fm(send)f Fr(rep)r(eatedly)h(un)n(til)h(all)f(data)
h(is)f(sen)n(t.)43 b(If)30 b(an)p 0 5549 3901 4 v 0 5649
a Fg(12)2197 b(3)83 b Fm(OpenSSL)24 b Fg(\026)k(Python)f(interface)h
(to)f(Op)r(enSSL)p eop end
%%Page: 13 13
TeXDict begin 13 12 bop 208 83 a Fr(error)25 b(o)r(ccurs,)i(it's)h(imp)
r(ossible)f(to)g(tell)h(ho)n(w)f(m)n(uc)n(h)h(data)f(has)g(b)r(een)h
(sen)n(t.)0 230 y Fm(set_accept_state)o(\(\))208 330
y Fr(Set)20 b(the)g(connection)f(to)h(w)n(ork)e(in)i(serv)n(er)e(mo)r
(de.)34 b(The)20 b(handshak)n(e)f(will)h(b)r(e)g(handled)g
(automatically)e(b)n(y)i(read/write.)0 476 y Fm(set_app_data\()p
Fd(data)6 b Fm(\))208 576 y Fr(Asso)r(ciate)39 b Fd(data)47
b Fr(with)40 b(this)g(Connection)g(ob)5 b(ject.)73 b
Fd(data)47 b Fr(can)39 b(b)r(e)i(retriev)n(ed)d(later)h(using)h(the)g
Fm(get_app_data)208 676 y Fr(metho)r(d.)0 823 y Fm(set_connect_stat)o
(e\()o(\))208 922 y Fr(Set)21 b(the)g(connection)g(to)g(w)n(ork)e(in)i
(clien)n(t)g(mo)r(de.)35 b(The)21 b(handshak)n(e)f(will)h(b)r(e)g
(handled)g(automatically)f(b)n(y)h(read/write.)0 1069
y Fm(setblocking\()p Fd(\035ag)7 b Fm(\))208 1169 y Fr(Call)27
b(the)h Fm(setblocking)23 b Fr(metho)r(d)28 b(of)f(the)h(underlying)f
(so)r(c)n(k)n(et.)0 1316 y Fm(setsockopt\()p Fd(level,)f(optname,)31
b(value)6 b Fm(\))208 1415 y Fr(Call)27 b(the)h Fm(setsockopt)23
b Fr(metho)r(d)28 b(of)g(the)g(underlying)f(so)r(c)n(k)n(et.)0
1562 y Fm(shutdown\(\))208 1662 y Fr(Send)35 b(the)h(sh)n(utdo)n(wn)f
(message)f(to)h(the)h(Connection.)60 b(Returns)35 b(true)g(if)h(the)g
(sh)n(utdo)n(wn)e(message)g(exc)n(hange)g(is)208 1761
y(completed)25 b(and)g(false)h(otherwise)e(\(in)i(whic)n(h)g(case)e(y)n
(ou)h(call)g Fm(recv\(\))e Fr(or)i Fm(send\(\))e Fr(when)j(the)g
(connection)f(b)r(ecomes)208 1861 y(readable/writeable.)0
2008 y Fm(sock_shutdown\()p Fd(how)9 b Fm(\))208 2107
y Fr(Call)27 b(the)h Fm(shutdown)c Fr(metho)r(d)k(of)g(the)g
(underlying)e(so)r(c)n(k)n(et.)0 2254 y Fm(state_string\(\))208
2354 y Fr(Retriev)n(e)g(a)i(v)n(erb)r(ose)e(string)g(detailing)i(the)g
(state)f(of)h(the)f(Connection.)0 2501 y Fm(want_read\(\))208
2600 y Fr(Chec)n(ks)f(if)i(more)f(data)g(has)g(to)h(b)r(e)g(read)e
(from)i(the)f(transp)r(ort)g(la)n(y)n(er)f(to)h(complete)h(an)f(op)r
(eration.)0 2747 y Fm(want_write\(\))208 2847 y Fr(Chec)n(ks)f(if)i
(there)g(is)f(data)g(to)h(write)f(to)g(the)h(transp)r(ort)f(la)n(y)n
(er)f(to)h(complete)h(an)f(op)r(eration.)0 3169 y Fs(4)114
b(Internals)0 3398 y Fr(W)-7 b(e)25 b(ran)g(in)n(to)f(three)h(main)g
(problems)f(dev)n(eloping)g(this:)36 b(Exceptions,)25
b(callbac)n(ks)f(and)h(accessing)e(so)r(c)n(k)n(et)h(metho)r(ds.)36
b(This)0 3497 y(is)27 b(what)h(this)g(c)n(hapter)e(is)i(ab)r(out.)0
3777 y Fk(4.1)97 b(Exceptions)0 3977 y Fr(W)-7 b(e)52
b(realized)f(early)g(that)h(most)g(of)g(the)g(exceptions)f(w)n(ould)h
(b)r(e)g(raised)f(b)n(y)h(the)g(I/O)f(functions)h(of)g(Op)r(enSSL,)0
4077 y(so)d(it)i(felt)f(natural)f(to)h(mimic)g(Op)r(enSSL's)g(error)e
(co)r(de)i(system,)55 b(translating)48 b(them)j(in)n(to)e(Python)i
(exceptions.)0 4177 y(This)30 b(naturally)e(giv)n(es)h(us)h(the)g
(exceptions)f Fm(SSL.ZeroReturnEr)o(ro)o(r)p Fr(,)24
b Fm(SSL.WantReadError)o Fr(,)h Fm(SSL.WantWriteEr)o(ro)o(r)p
Fr(,)0 4276 y Fm(SSL.WantX509Look)o(up)o(Err)o(or)c Fr(and)27
b Fm(SSL.SysCallError)p Fr(.)0 4423 y(F)-7 b(or)27 b(more)g
(information)g(ab)r(out)g(this,)h(see)f(section)g(3.3.)0
4703 y Fk(4.2)97 b(Callbacks)0 4903 y Fr(There)34 b(are)f(a)h(n)n(um)n
(b)r(er)g(of)h(problems)e(with)i(callbac)n(ks.)56 b(First)34
b(of)g(all,)i(Op)r(enSSL)f(is)f(written)h(as)e(a)h(C)h(library)-7
b(,)34 b(it's)h(not)0 5003 y(mean)n(t)26 b(to)g(ha)n(v)n(e)e(Python)j
(callbac)n(ks,)d(so)i(a)f(w)n(a)n(y)g(around)g(that)h(is)g(needed.)36
b(Another)26 b(problem)f(is)h(thread)g(supp)r(ort.)36
b(A)26 b(lot)0 5103 y(of)h(the)g(Op)r(enSSL)g(I/O)e(functions)i(can)g
(blo)r(c)n(k)f(if)h(the)g(so)r(c)n(k)n(et)f(is)g(in)h(blo)r(c)n(king)f
(mo)r(de,)h(and)g(then)g(y)n(ou)f(w)n(an)n(t)g(other)g(Python)0
5202 y(threads)c(to)g(b)r(e)h(able)f(to)g(do)g(other)g(things.)35
b(The)22 b(real)g(trouble)g(is)g(if)h(y)n(ou'v)n(e)e(released)g(the)h
(thread)g(lo)r(c)n(k)g(to)g(do)g(a)g(p)r(oten)n(tially)p
0 5549 3901 4 v 3817 5649 a Fg(13)p eop end
%%Page: 14 14
TeXDict begin 14 13 bop 0 83 a Fr(blo)r(c)n(king)27 b(op)r(eration,)f
(and)i(the)g(op)r(eration)e(calls)h(a)g(callbac)n(k.)35
b(Then)28 b(w)n(e)f(m)n(ust)h(tak)n(e)f(the)h(thread)f(lo)r(c)n(k)g
(bac)n(k)3475 53 y Fl(5)3511 83 y Fr(.)0 230 y(There)d(are)f(t)n(w)n(o)
g(solutions)h(to)g(the)h(\034rst)f(problem,)g(b)r(oth)h(of)f(whic)n(h)g
(are)f(necessary)-7 b(.)34 b(The)25 b(\034rst)f(solution)f(to)h(use)h
(is)f(if)g(the)h(C)0 330 y(callbac)n(k)i(allo)n(ws)f(\021userdata\021)
33 b(to)28 b(b)r(e)h(passed)e(to)h(it)g(\(an)g(arbitrary)e(p)r(oin)n
(ter)i(normally\).)37 b(This)28 b(is)g(great!)37 b(W)-7
b(e)28 b(can)g(set)g(our)0 429 y(Python)i(function)g(ob)5
b(ject)29 b(as)f(the)i(real)f(userdata)f(and)h(em)n(ulate)g(userdata)f
(for)h(the)h(Python)f(function)h(in)g(another)e(w)n(a)n(y)-7
b(.)0 529 y(The)24 b(other)g(solution)g(can)g(b)r(e)h(used)g(if)g(an)f
(ob)5 b(ject)24 b(with)h(an)f(\021app_data\021)29 b(system)c(alw)n(a)n
(ys)d(is)j(passed)e(to)h(the)h(callbac)n(k.)35 b(F)-7
b(or)0 628 y(example,)26 b(the)h(SSL)f(ob)5 b(ject)26
b(in)h(Op)r(enSSL)f(has)g(app_data)f(functions)i(and)f(in)h(e.g.)36
b(the)26 b(v)n(eri\034cation)f(callbac)n(ks,)g(y)n(ou)g(can)0
728 y(retriev)n(e)i(the)i(related)f(SSL)h(ob)5 b(ject.)39
b(What)29 b(w)n(e)g(do)f(is)g(to)h(set)f(our)g(wrapp)r(er)g
Fm(Connection)c Fr(ob)5 b(ject)28 b(as)g(app_data)g(for)g(the)0
828 y(SSL)g(ob)5 b(ject,)27 b(and)h(w)n(e)f(can)g(easily)g(\034nd)h
(the)g(Python)g(callbac)n(k.)0 975 y(The)42 b(other)g(problem)g(is)g
(also)f(partially)h(solv)n(ed)f(b)n(y)h(app_data.)80
b(Since)43 b(w)n(e're)e(asso)r(ciating)g(our)g(wrapp)r(er)h(ob)5
b(jects)0 1074 y(with)44 b(the)f(\021real\021)49 b(ob)5
b(jects,)46 b(w)n(e)d(can)g(easily)f(access)g(data)g(from)h(the)h
Fm(Connection)39 b Fr(ob)5 b(ject.)83 b(The)43 b(solution)g(then)g(is)0
1174 y(to)35 b(simply)h(include)g(a)f Fm(PyThreadState)c
Fr(v)-5 b(ariable)34 b(in)i(the)g Fm(Connection)31 b
Fr(declaration,)37 b(and)e(write)g(macros)f(similar)h(to)0
1273 y Fm(Py_BEGIN_ALLOW_T)o(HR)o(EAD)o(S)26 b Fr(and)33
b Fm(Py_END_ALLOW_TH)o(REA)o(DS)26 b Fr(that)33 b(allo)n(ws)e(sp)r
(ecifying)h(of)h(the)g Fm(PyThreadState)27 b Fr(v)-5
b(ari-)0 1373 y(able)23 b(to)g(use.)35 b(No)n(w)23 b(w)n(e)g(can)g
(simply)g(\021b)r(egin)g(allo)n(w)f(threads\021)29 b(b)r(efore)23
b(a)g(p)r(oten)n(tially)g(blo)r(c)n(king)f(op)r(eration,)h(and)g
(\021end)g(allo)n(w)0 1473 y(threads\021)33 b(b)r(efore)28
b(calling)e(a)i(callbac)n(k.)0 1752 y Fk(4.3)97 b(A)m(cessing)35
b(So)s(ck)m(et)e(Metho)s(ds)0 1953 y Fr(W)-7 b(e)27 b(quic)n(kly)e(sa)n
(w)h(the)g(b)r(ene\034t)h(of)g(wrapping)e(so)r(c)n(k)n(et)g(metho)r(ds)
h(in)h(the)g Fm(SSL.Connection)20 b Fr(class,)26 b(for)g(an)g(easy)f
(transition)0 2052 y(in)n(to)e(using)f(SSL.)h(The)g(problem)f(here)h
(is)f(that)h(the)h Fm(socket)c Fr(mo)r(dule)j(lac)n(ks)f(a)g(C)h(API,)h
(and)e(all)h(the)g(metho)r(ds)g(are)f(declared)0 2152
y(static.)36 b(One)27 b(approac)n(h)d(w)n(ould)i(b)r(e)h(to)f(ha)n(v)n
(e)g Fm(OpenSSL)d Fr(as)j(a)g(submo)r(dule)h(to)f(the)h
Fm(socket)d Fr(mo)r(dule,)j(placing)f(all)g(the)h(co)r(de)0
2252 y(in)j(`)p Fq(so)r(ck)n(etmo)r(dule.c)p Fr(',)h(but)f(this)g(is)g
(ob)n(viously)e(not)i(a)f(go)r(o)r(d)g(solution,)h(since)g(y)n(ou)f
(migh)n(t)g(not)h(w)n(an)n(t)f(to)h(imp)r(ort)g(tonnes)f(of)0
2351 y(extra)f(stu\033)h(y)n(ou're)e(not)i(going)e(to)i(use)f(when)h
(imp)r(orting)f(the)i Fm(socket)c Fr(mo)r(dule.)40 b(The)29
b(other)f(approac)n(h)e(is)j(to)f(someho)n(w)0 2451 y(get)33
b(a)g(p)r(oin)n(ter)g(to)h(the)f(metho)r(d)h(to)g(b)r(e)f(called,)i
(either)e(the)h(C)g(function,)h(or)e(a)g(callable)f(Python)i(ob)5
b(ject.)54 b(This)34 b(is)f(not)0 2551 y(really)26 b(a)i(go)r(o)r(d)f
(solution)g(either,)g(since)g(there's)h(a)f(lot)g(of)h(lo)r(okups)f(in)
n(v)n(olv)n(ed.)0 2697 y(The)h(w)n(a)n(y)f(it)h(w)n(orks)e(is)i(that)h
(y)n(ou)e(ha)n(v)n(e)g(to)g(supply)h(a)g(\020)7 b Fm(socket)p
Fr(-lik)n(e\021)31 b(transp)r(ort)c(ob)5 b(ject)28 b(to)f(the)i
Fm(SSL.Connection)p Fr(.)j(The)0 2797 y(only)24 b(requiremen)n(t)f(of)i
(this)f(ob)5 b(ject)24 b(is)h(that)f(it)h(has)f(a)g Fm(fileno\(\))d
Fr(metho)r(d)k(that)f(returns)g(a)g(\034le)g(descriptor)f(that's)i(v)-5
b(alid)24 b(at)0 2897 y(the)g(C)g(lev)n(el)f(\(i.e.)36
b(y)n(ou)23 b(can)h(use)f(the)i(system)e(calls)g(read)g(and)h(write\).)
35 b(If)25 b(y)n(ou)e(w)n(an)n(t)g(to)h(use)f(the)h Fm(connect\(\))c
Fr(or)j Fm(accept\(\))0 2996 y Fr(metho)r(ds)29 b(of)h(the)f
Fm(SSL.Connection)24 b Fr(ob)5 b(ject,)29 b(the)h(transp)r(ort)e(ob)5
b(ject)29 b(has)f(to)h(supply)h(suc)n(h)f(metho)r(ds)g(to)r(o.)41
b(Apart)29 b(from)0 3096 y(them,)c(an)n(y)e(metho)r(d)h(lo)r(okups)f
(in)h(the)f Fm(SSL.Connection)18 b Fr(ob)5 b(ject)24
b(that)f(fail)h(are)f(passed)f(on)i(to)f(the)h(underlying)f(transp)r
(ort)0 3196 y(ob)5 b(ject.)0 3342 y(F)-7 b(uture)25 b(c)n(hanges)f
(migh)n(t)h(b)r(e)g(to)g(allo)n(w)f(Python-lev)n(el)g(transp)r(ort)g
(ob)5 b(jects,)25 b(that)g(instead)g(of)g(ha)n(ving)g
Fm(fileno\(\))d Fr(metho)r(ds,)0 3442 y(ha)n(v)n(e)h
Fm(read\(\))g Fr(and)h Fm(write\(\))e Fr(metho)r(ds,)k(so)e(more)f(adv)
-5 b(anced)24 b(features)h(of)f(Python)h(can)g(b)r(e)g(used.)35
b(This)25 b(w)n(ould)f(probably)0 3542 y(en)n(tail)36
b(some)g(sort)g(of)g(Op)r(enSSL)h(\020BIOs\021,)g(but)g(con)n(v)n
(erting)e(Python)i(strings)e(bac)n(k)h(and)g(forth)g(is)h(exp)r(ensiv)n
(e,)h(so)e(this)0 3641 y(shouldn't)f(b)r(e)h(used)f(unless)g(necessary)
-7 b(.)57 b(Other)35 b(nice)g(things)g(w)n(ould)g(b)r(e)g(to)g(b)r(e)h
(able)e(to)h(pass)g(in)g(di\033eren)n(t)g(transp)r(ort)0
3741 y(ob)5 b(jects)41 b(for)g(reading)f(and)h(writing,)j(but)e(then)g
(the)g Fm(fileno\(\))c Fr(metho)r(d)k(of)47 b Fm(SSL.Connection)36
b Fr(b)r(ecomes)41 b(virtually)0 3841 y(useless.)36 b(Also,)27
b(should)h(the)g(metho)r(d)g(resolution)e(b)r(e)i(used)g(on)f(the)h
(read-transp)r(ort)d(or)i(the)h(write-transp)r(ort?)p
0 5323 1560 4 v 92 5376 a Fi(5)127 5400 y Fh(I'm)22 b(not)j(sure)f(wh)n
(y)g(this)g(is)f(necessary)-6 b(,)25 b(but)f(otherwise)h(I)f(get)h(a)e
(segmen)n(tation)i(violation)f(on)g Fa(PyEval_CallObject)p
0 5549 3901 4 v 0 5649 a Fg(14)3368 b(4)83 b(Internals)p
eop end
%%Trailer

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