SWFFont now also stores the character widths
[swftools.git] / pdf2swf / xpdf / FontInfo.h
1 //========================================================================
2 //
3 // FontInfo.h
4 //
5 // This file was automatically generated by makeFontInfo.
6 //
7 // Copyright 1996 Derek B. Noonburg
8 //
9 //========================================================================
10
11 #ifndef FONTINFO_H
12 #define FONTINFO_H
13
14 //------------------------------------------------------------------------
15 // Character encodings.
16 //------------------------------------------------------------------------
17
18 #define standardEncodingSize 335
19 char *standardEncodingNames[standardEncodingSize] = {
20   NULL,
21   NULL,
22   NULL,
23   NULL,
24   NULL,
25   NULL,
26   NULL,
27   NULL,
28   NULL,
29   NULL,
30   NULL,
31   NULL,
32   NULL,
33   NULL,
34   NULL,
35   NULL,
36   NULL,
37   NULL,
38   NULL,
39   NULL,
40   NULL,
41   NULL,
42   NULL,
43   NULL,
44   NULL,
45   NULL,
46   NULL,
47   NULL,
48   NULL,
49   NULL,
50   NULL,
51   NULL,
52   "space",
53   "exclam",
54   "quotedbl",
55   "numbersign",
56   "dollar",
57   "percent",
58   "ampersand",
59   "quoteright",
60   "parenleft",
61   "parenright",
62   "asterisk",
63   "plus",
64   "comma",
65   "hyphen",
66   "period",
67   "slash",
68   "zero",
69   "one",
70   "two",
71   "three",
72   "four",
73   "five",
74   "six",
75   "seven",
76   "eight",
77   "nine",
78   "colon",
79   "semicolon",
80   "less",
81   "equal",
82   "greater",
83   "question",
84   "at",
85   "A",
86   "B",
87   "C",
88   "D",
89   "E",
90   "F",
91   "G",
92   "H",
93   "I",
94   "J",
95   "K",
96   "L",
97   "M",
98   "N",
99   "O",
100   "P",
101   "Q",
102   "R",
103   "S",
104   "T",
105   "U",
106   "V",
107   "W",
108   "X",
109   "Y",
110   "Z",
111   "bracketleft",
112   "backslash",
113   "bracketright",
114   "asciicircum",
115   "underscore",
116   "quoteleft",
117   "a",
118   "b",
119   "c",
120   "d",
121   "e",
122   "f",
123   "g",
124   "h",
125   "i",
126   "j",
127   "k",
128   "l",
129   "m",
130   "n",
131   "o",
132   "p",
133   "q",
134   "r",
135   "s",
136   "t",
137   "u",
138   "v",
139   "w",
140   "x",
141   "y",
142   "z",
143   "braceleft",
144   "bar",
145   "braceright",
146   "asciitilde",
147   NULL,
148   NULL,
149   NULL,
150   NULL,
151   NULL,
152   NULL,
153   NULL,
154   NULL,
155   NULL,
156   NULL,
157   NULL,
158   NULL,
159   NULL,
160   NULL,
161   NULL,
162   NULL,
163   NULL,
164   NULL,
165   NULL,
166   NULL,
167   NULL,
168   NULL,
169   NULL,
170   NULL,
171   NULL,
172   NULL,
173   NULL,
174   NULL,
175   NULL,
176   NULL,
177   NULL,
178   NULL,
179   NULL,
180   NULL,
181   "exclamdown",
182   "cent",
183   "sterling",
184   "fraction",
185   "yen",
186   "florin",
187   "section",
188   "currency",
189   "quotesingle",
190   "quotedblleft",
191   "guillemotleft",
192   "guilsinglleft",
193   "guilsinglright",
194   "fi",
195   "fl",
196   NULL,
197   "endash",
198   "dagger",
199   "daggerdbl",
200   "periodcentered",
201   NULL,
202   "paragraph",
203   "bullet",
204   "quotesinglbase",
205   "quotedblbase",
206   "quotedblright",
207   "guillemotright",
208   "ellipsis",
209   "perthousand",
210   NULL,
211   "questiondown",
212   NULL,
213   "grave",
214   "acute",
215   "circumflex",
216   "tilde",
217   "macron",
218   "breve",
219   "dotaccent",
220   "dieresis",
221   NULL,
222   "ring",
223   "cedilla",
224   NULL,
225   "hungarumlaut",
226   "ogonek",
227   "caron",
228   "emdash",
229   NULL,
230   NULL,
231   NULL,
232   NULL,
233   NULL,
234   NULL,
235   NULL,
236   NULL,
237   NULL,
238   NULL,
239   NULL,
240   NULL,
241   NULL,
242   NULL,
243   NULL,
244   NULL,
245   "AE",
246   NULL,
247   "ordfeminine",
248   NULL,
249   NULL,
250   NULL,
251   NULL,
252   "Lslash",
253   "Oslash",
254   "OE",
255   "ordmasculine",
256   NULL,
257   NULL,
258   NULL,
259   NULL,
260   NULL,
261   "ae",
262   NULL,
263   NULL,
264   NULL,
265   "dotlessi",
266   NULL,
267   NULL,
268   "lslash",
269   "oslash",
270   "oe",
271   "germandbls",
272   NULL,
273   NULL,
274   NULL,
275   NULL,
276   "Aacute",
277   "Acircumflex",
278   "Adieresis",
279   "Agrave",
280   "Aring",
281   "Atilde",
282   "Ccedilla",
283   "Eacute",
284   "Ecircumflex",
285   "Edieresis",
286   "Egrave",
287   "Eth",
288   "Iacute",
289   "Icircumflex",
290   "Idieresis",
291   "Igrave",
292   "Ntilde",
293   "Oacute",
294   "Ocircumflex",
295   "Odieresis",
296   "Ograve",
297   "Otilde",
298   "Scaron",
299   "Thorn",
300   "Uacute",
301   "Ucircumflex",
302   "Udieresis",
303   "Ugrave",
304   "Yacute",
305   "Ydieresis",
306   "Zcaron",
307   "aacute",
308   "acircumflex",
309   "adieresis",
310   "agrave",
311   "aring",
312   "atilde",
313   "brokenbar",
314   "ccedilla",
315   "copyright",
316   "degree",
317   "divide",
318   "eacute",
319   "ecircumflex",
320   "edieresis",
321   "egrave",
322   "eth",
323   "iacute",
324   "icircumflex",
325   "idieresis",
326   "igrave",
327   "logicalnot",
328   "minus",
329   "mu",
330   "multiply",
331   "ntilde",
332   "oacute",
333   "ocircumflex",
334   "odieresis",
335   "ograve",
336   "onehalf",
337   "onequarter",
338   "onesuperior",
339   "otilde",
340   "plusminus",
341   "registered",
342   "scaron",
343   "thorn",
344   "threequarters",
345   "threesuperior",
346   "trademark",
347   "twosuperior",
348   "uacute",
349   "ucircumflex",
350   "udieresis",
351   "ugrave",
352   "yacute",
353   "ydieresis",
354   "zcaron"
355 };
356 static FontEncoding standardEncoding(standardEncodingNames,
357                                      standardEncodingSize);
358
359 #define symbolEncodingSize 257
360 char *symbolEncodingNames[symbolEncodingSize] = {
361   NULL,
362   NULL,
363   NULL,
364   NULL,
365   NULL,
366   NULL,
367   NULL,
368   NULL,
369   NULL,
370   NULL,
371   NULL,
372   NULL,
373   NULL,
374   NULL,
375   NULL,
376   NULL,
377   NULL,
378   NULL,
379   NULL,
380   NULL,
381   NULL,
382   NULL,
383   NULL,
384   NULL,
385   NULL,
386   NULL,
387   NULL,
388   NULL,
389   NULL,
390   NULL,
391   NULL,
392   NULL,
393   "space",
394   "exclam",
395   "universal",
396   "numbersign",
397   "existential",
398   "percent",
399   "ampersand",
400   "suchthat",
401   "parenleft",
402   "parenright",
403   "asteriskmath",
404   "plus",
405   "comma",
406   "minus",
407   "period",
408   "slash",
409   "zero",
410   "one",
411   "two",
412   "three",
413   "four",
414   "five",
415   "six",
416   "seven",
417   "eight",
418   "nine",
419   "colon",
420   "semicolon",
421   "less",
422   "equal",
423   "greater",
424   "question",
425   "congruent",
426   "Alpha",
427   "Beta",
428   "Chi",
429   "Delta",
430   "Epsilon",
431   "Phi",
432   "Gamma",
433   "Eta",
434   "Iota",
435   "theta1",
436   "Kappa",
437   "Lambda",
438   "Mu",
439   "Nu",
440   "Omicron",
441   "Pi",
442   "Theta",
443   "Rho",
444   "Sigma",
445   "Tau",
446   "Upsilon",
447   "sigma1",
448   "Omega",
449   "Xi",
450   "Psi",
451   "Zeta",
452   "bracketleft",
453   "therefore",
454   "bracketright",
455   "perpendicular",
456   "underscore",
457   "radicalex",
458   "alpha",
459   "beta",
460   "chi",
461   "delta",
462   "epsilon",
463   "phi",
464   "gamma",
465   "eta",
466   "iota",
467   "phi1",
468   "kappa",
469   "lambda",
470   "mu",
471   "nu",
472   "omicron",
473   "pi",
474   "theta",
475   "rho",
476   "sigma",
477   "tau",
478   "upsilon",
479   "omega1",
480   "omega",
481   "xi",
482   "psi",
483   "zeta",
484   "braceleft",
485   "bar",
486   "braceright",
487   "similar",
488   NULL,
489   NULL,
490   NULL,
491   NULL,
492   NULL,
493   NULL,
494   NULL,
495   NULL,
496   NULL,
497   NULL,
498   NULL,
499   NULL,
500   NULL,
501   NULL,
502   NULL,
503   NULL,
504   NULL,
505   NULL,
506   NULL,
507   NULL,
508   NULL,
509   NULL,
510   NULL,
511   NULL,
512   NULL,
513   NULL,
514   NULL,
515   NULL,
516   NULL,
517   NULL,
518   NULL,
519   NULL,
520   NULL,
521   NULL,
522   "Upsilon1",
523   "minute",
524   "lessequal",
525   "fraction",
526   "infinity",
527   "florin",
528   "club",
529   "diamond",
530   "heart",
531   "spade",
532   "arrowboth",
533   "arrowleft",
534   "arrowup",
535   "arrowright",
536   "arrowdown",
537   "degree",
538   "plusminus",
539   "second",
540   "greaterequal",
541   "multiply",
542   "proportional",
543   "partialdiff",
544   "bullet",
545   "divide",
546   "notequal",
547   "equivalence",
548   "approxequal",
549   "ellipsis",
550   "arrowvertex",
551   "arrowhorizex",
552   "carriagereturn",
553   "aleph",
554   "Ifraktur",
555   "Rfraktur",
556   "weierstrass",
557   "circlemultiply",
558   "circleplus",
559   "emptyset",
560   "intersection",
561   "union",
562   "propersuperset",
563   "reflexsuperset",
564   "notsubset",
565   "propersubset",
566   "reflexsubset",
567   "element",
568   "notelement",
569   "angle",
570   "gradient",
571   "registerserif",
572   "copyrightserif",
573   "trademarkserif",
574   "product",
575   "radical",
576   "dotmath",
577   "logicalnot",
578   "logicaland",
579   "logicalor",
580   "arrowdblboth",
581   "arrowdblleft",
582   "arrowdblup",
583   "arrowdblright",
584   "arrowdbldown",
585   "lozenge",
586   "angleleft",
587   "registersans",
588   "copyrightsans",
589   "trademarksans",
590   "summation",
591   "parenlefttp",
592   "parenleftex",
593   "parenleftbt",
594   "bracketlefttp",
595   "bracketleftex",
596   "bracketleftbt",
597   "bracelefttp",
598   "braceleftmid",
599   "braceleftbt",
600   "braceex",
601   NULL,
602   "angleright",
603   "integral",
604   "integraltp",
605   "integralex",
606   "integralbt",
607   "parenrighttp",
608   "parenrightex",
609   "parenrightbt",
610   "bracketrighttp",
611   "bracketrightex",
612   "bracketrightbt",
613   "bracerighttp",
614   "bracerightmid",
615   "bracerightbt",
616   NULL,
617   "apple"
618 };
619 static FontEncoding symbolEncoding(symbolEncodingNames,
620                                    symbolEncodingSize);
621
622 #define zapfDingbatsEncodingSize 270
623 char *zapfDingbatsEncodingNames[zapfDingbatsEncodingSize] = {
624   NULL,
625   NULL,
626   NULL,
627   NULL,
628   NULL,
629   NULL,
630   NULL,
631   NULL,
632   NULL,
633   NULL,
634   NULL,
635   NULL,
636   NULL,
637   NULL,
638   NULL,
639   NULL,
640   NULL,
641   NULL,
642   NULL,
643   NULL,
644   NULL,
645   NULL,
646   NULL,
647   NULL,
648   NULL,
649   NULL,
650   NULL,
651   NULL,
652   NULL,
653   NULL,
654   NULL,
655   NULL,
656   "space",
657   "a1",
658   "a2",
659   "a202",
660   "a3",
661   "a4",
662   "a5",
663   "a119",
664   "a118",
665   "a117",
666   "a11",
667   "a12",
668   "a13",
669   "a14",
670   "a15",
671   "a16",
672   "a105",
673   "a17",
674   "a18",
675   "a19",
676   "a20",
677   "a21",
678   "a22",
679   "a23",
680   "a24",
681   "a25",
682   "a26",
683   "a27",
684   "a28",
685   "a6",
686   "a7",
687   "a8",
688   "a9",
689   "a10",
690   "a29",
691   "a30",
692   "a31",
693   "a32",
694   "a33",
695   "a34",
696   "a35",
697   "a36",
698   "a37",
699   "a38",
700   "a39",
701   "a40",
702   "a41",
703   "a42",
704   "a43",
705   "a44",
706   "a45",
707   "a46",
708   "a47",
709   "a48",
710   "a49",
711   "a50",
712   "a51",
713   "a52",
714   "a53",
715   "a54",
716   "a55",
717   "a56",
718   "a57",
719   "a58",
720   "a59",
721   "a60",
722   "a61",
723   "a62",
724   "a63",
725   "a64",
726   "a65",
727   "a66",
728   "a67",
729   "a68",
730   "a69",
731   "a70",
732   "a71",
733   "a72",
734   "a73",
735   "a74",
736   "a203",
737   "a75",
738   "a204",
739   "a76",
740   "a77",
741   "a78",
742   "a79",
743   "a81",
744   "a82",
745   "a83",
746   "a84",
747   "a97",
748   "a98",
749   "a99",
750   "a100",
751   NULL,
752   NULL,
753   NULL,
754   NULL,
755   NULL,
756   NULL,
757   NULL,
758   NULL,
759   NULL,
760   NULL,
761   NULL,
762   NULL,
763   NULL,
764   NULL,
765   NULL,
766   NULL,
767   NULL,
768   NULL,
769   NULL,
770   NULL,
771   NULL,
772   NULL,
773   NULL,
774   NULL,
775   NULL,
776   NULL,
777   NULL,
778   NULL,
779   NULL,
780   NULL,
781   NULL,
782   NULL,
783   NULL,
784   NULL,
785   "a101",
786   "a102",
787   "a103",
788   "a104",
789   "a106",
790   "a107",
791   "a108",
792   "a112",
793   "a111",
794   "a110",
795   "a109",
796   "a120",
797   "a121",
798   "a122",
799   "a123",
800   "a124",
801   "a125",
802   "a126",
803   "a127",
804   "a128",
805   "a129",
806   "a130",
807   "a131",
808   "a132",
809   "a133",
810   "a134",
811   "a135",
812   "a136",
813   "a137",
814   "a138",
815   "a139",
816   "a140",
817   "a141",
818   "a142",
819   "a143",
820   "a144",
821   "a145",
822   "a146",
823   "a147",
824   "a148",
825   "a149",
826   "a150",
827   "a151",
828   "a152",
829   "a153",
830   "a154",
831   "a155",
832   "a156",
833   "a157",
834   "a158",
835   "a159",
836   "a160",
837   "a161",
838   "a163",
839   "a164",
840   "a196",
841   "a165",
842   "a192",
843   "a166",
844   "a167",
845   "a168",
846   "a169",
847   "a170",
848   "a171",
849   "a172",
850   "a173",
851   "a162",
852   "a174",
853   "a175",
854   "a176",
855   "a177",
856   "a178",
857   "a179",
858   "a193",
859   "a180",
860   "a199",
861   "a181",
862   "a200",
863   "a182",
864   NULL,
865   "a201",
866   "a183",
867   "a184",
868   "a197",
869   "a185",
870   "a194",
871   "a198",
872   "a186",
873   "a195",
874   "a187",
875   "a188",
876   "a189",
877   "a190",
878   "a191",
879   NULL,
880   "a205",
881   "a206",
882   "a85",
883   "a86",
884   "a87",
885   "a88",
886   "a89",
887   "a90",
888   "a91",
889   "a92",
890   "a93",
891   "a94",
892   "a95",
893   "a96"
894 };
895 static FontEncoding zapfDingbatsEncoding(zapfDingbatsEncodingNames,
896                                          zapfDingbatsEncodingSize);
897
898 #define macRomanEncodingSize 256
899 static char *macRomanEncodingNames[macRomanEncodingSize] = {
900   NULL,
901   NULL,
902   NULL,
903   NULL,
904   NULL,
905   NULL,
906   NULL,
907   NULL,
908   NULL,
909   NULL,
910   NULL,
911   NULL,
912   NULL,
913   NULL,
914   NULL,
915   NULL,
916   NULL,
917   NULL,
918   NULL,
919   NULL,
920   NULL,
921   NULL,
922   NULL,
923   NULL,
924   NULL,
925   NULL,
926   NULL,
927   NULL,
928   NULL,
929   NULL,
930   NULL,
931   NULL,
932   "space",
933   "exclam",
934   "quotedbl",
935   "numbersign",
936   "dollar",
937   "percent",
938   "ampersand",
939   "quotesingle",
940   "parenleft",
941   "parenright",
942   "asterisk",
943   "plus",
944   "comma",
945   "hyphen",
946   "period",
947   "slash",
948   "zero",
949   "one",
950   "two",
951   "three",
952   "four",
953   "five",
954   "six",
955   "seven",
956   "eight",
957   "nine",
958   "colon",
959   "semicolon",
960   "less",
961   "equal",
962   "greater",
963   "question",
964   "at",
965   "A",
966   "B",
967   "C",
968   "D",
969   "E",
970   "F",
971   "G",
972   "H",
973   "I",
974   "J",
975   "K",
976   "L",
977   "M",
978   "N",
979   "O",
980   "P",
981   "Q",
982   "R",
983   "S",
984   "T",
985   "U",
986   "V",
987   "W",
988   "X",
989   "Y",
990   "Z",
991   "bracketleft",
992   "backslash",
993   "bracketright",
994   "asciicircum",
995   "underscore",
996   "grave",
997   "a",
998   "b",
999   "c",
1000   "d",
1001   "e",
1002   "f",
1003   "g",
1004   "h",
1005   "i",
1006   "j",
1007   "k",
1008   "l",
1009   "m",
1010   "n",
1011   "o",
1012   "p",
1013   "q",
1014   "r",
1015   "s",
1016   "t",
1017   "u",
1018   "v",
1019   "w",
1020   "x",
1021   "y",
1022   "z",
1023   "braceleft",
1024   "bar",
1025   "braceright",
1026   "asciitilde",
1027   NULL,
1028   "Adieresis",
1029   "Aring",
1030   "Ccedilla",
1031   "Eacute",
1032   "Ntilde",
1033   "Odieresis",
1034   "Udieresis",
1035   "aacute",
1036   "agrave",
1037   "acircumflex",
1038   "adieresis",
1039   "atilde",
1040   "aring",
1041   "ccedilla",
1042   "eacute",
1043   "egrave",
1044   "ecircumflex",
1045   "edieresis",
1046   "iacute",
1047   "igrave",
1048   "icircumflex",
1049   "idieresis",
1050   "ntilde",
1051   "oacute",
1052   "ograve",
1053   "ocircumflex",
1054   "odieresis",
1055   "otilde",
1056   "uacute",
1057   "ugrave",
1058   "ucircumflex",
1059   "udieresis",
1060   "dagger",
1061   "degree",
1062   "cent",
1063   "sterling",
1064   "section",
1065   "bullet",
1066   "paragraph",
1067   "germandbls",
1068   "registered",
1069   "copyright",
1070   "trademark",
1071   "acute",
1072   "dieresis",
1073   NULL,
1074   "AE",
1075   "Oslash",
1076   NULL,
1077   "plusminus",
1078   NULL,
1079   NULL,
1080   "yen",
1081   "mu",
1082   NULL,
1083   NULL,
1084   NULL,
1085   NULL,
1086   NULL,
1087   "ordfeminine",
1088   "ordmasculine",
1089   NULL,
1090   "ae",
1091   "oslash",
1092   "questiondown",
1093   "exclamdown",
1094   "logicalnot",
1095   NULL,
1096   "florin",
1097   NULL,
1098   NULL,
1099   "guillemotleft",
1100   "guillemotright",
1101   "ellipsis",
1102   "space",
1103   "Agrave",
1104   "Atilde",
1105   "Otilde",
1106   "OE",
1107   "oe",
1108   "endash",
1109   "emdash",
1110   "quotedblleft",
1111   "quotedblright",
1112   "quoteleft",
1113   "quoteright",
1114   "divide",
1115   NULL,
1116   "ydieresis",
1117   "Ydieresis",
1118   "fraction",
1119   "currency",
1120   "guilsinglleft",
1121   "guilsinglright",
1122   "fi",
1123   "fl",
1124   "daggerdbl",
1125   "periodcentered",
1126   "quotesinglbase",
1127   "quotedblbase",
1128   "perthousand",
1129   "Acircumflex",
1130   "Ecircumflex",
1131   "Aacute",
1132   "Edieresis",
1133   "Egrave",
1134   "Iacute",
1135   "Icircumflex",
1136   "Idieresis",
1137   "Igrave",
1138   "Oacute",
1139   "Ocircumflex",
1140   NULL,
1141   "Ograve",
1142   "Uacute",
1143   "Ucircumflex",
1144   "Ugrave",
1145   "dotlessi",
1146   "circumflex",
1147   "tilde",
1148   "macron",
1149   "breve",
1150   "dotaccent",
1151   "ring",
1152   "cedilla",
1153   "hungarumlaut",
1154   "ogonek",
1155   "caron"
1156 };
1157 static FontEncoding macRomanEncoding(macRomanEncodingNames,
1158                                      macRomanEncodingSize);
1159
1160 #define winAnsiEncodingSize 256
1161 static char *winAnsiEncodingNames[winAnsiEncodingSize] = {
1162   NULL,
1163   NULL,
1164   NULL,
1165   NULL,
1166   NULL,
1167   NULL,
1168   NULL,
1169   NULL,
1170   NULL,
1171   NULL,
1172   NULL,
1173   NULL,
1174   NULL,
1175   NULL,
1176   NULL,
1177   NULL,
1178   NULL,
1179   NULL,
1180   NULL,
1181   NULL,
1182   NULL,
1183   NULL,
1184   NULL,
1185   NULL,
1186   NULL,
1187   NULL,
1188   NULL,
1189   NULL,
1190   NULL,
1191   NULL,
1192   NULL,
1193   NULL,
1194   "space",
1195   "exclam",
1196   "quotedbl",
1197   "numbersign",
1198   "dollar",
1199   "percent",
1200   "ampersand",
1201   "quotesingle",
1202   "parenleft",
1203   "parenright",
1204   "asterisk",
1205   "plus",
1206   "comma",
1207   "hyphen",
1208   "period",
1209   "slash",
1210   "zero",
1211   "one",
1212   "two",
1213   "three",
1214   "four",
1215   "five",
1216   "six",
1217   "seven",
1218   "eight",
1219   "nine",
1220   "colon",
1221   "semicolon",
1222   "less",
1223   "equal",
1224   "greater",
1225   "question",
1226   "at",
1227   "A",
1228   "B",
1229   "C",
1230   "D",
1231   "E",
1232   "F",
1233   "G",
1234   "H",
1235   "I",
1236   "J",
1237   "K",
1238   "L",
1239   "M",
1240   "N",
1241   "O",
1242   "P",
1243   "Q",
1244   "R",
1245   "S",
1246   "T",
1247   "U",
1248   "V",
1249   "W",
1250   "X",
1251   "Y",
1252   "Z",
1253   "bracketleft",
1254   "backslash",
1255   "bracketright",
1256   "asciicircum",
1257   "underscore",
1258   "grave",
1259   "a",
1260   "b",
1261   "c",
1262   "d",
1263   "e",
1264   "f",
1265   "g",
1266   "h",
1267   "i",
1268   "j",
1269   "k",
1270   "l",
1271   "m",
1272   "n",
1273   "o",
1274   "p",
1275   "q",
1276   "r",
1277   "s",
1278   "t",
1279   "u",
1280   "v",
1281   "w",
1282   "x",
1283   "y",
1284   "z",
1285   "braceleft",
1286   "bar",
1287   "braceright",
1288   "asciitilde",
1289   "bullet",
1290   "bullet",
1291   "bullet",
1292   "quotesinglbase",
1293   "florin",
1294   "quotedblbase",
1295   "ellipsis",
1296   "dagger",
1297   "daggerdbl",
1298   "circumflex",
1299   "perthousand",
1300   "Scaron",
1301   "guilsinglleft",
1302   "OE",
1303   "bullet",
1304   "bullet",
1305   "bullet",
1306   "bullet",
1307   "quoteleft",
1308   "quoteright",
1309   "quotedblleft",
1310   "quotedblright",
1311   "bullet",
1312   "endash",
1313   "emdash",
1314   "tilde",
1315   "trademark",
1316   "scaron",
1317   "guilsinglright",
1318   "oe",
1319   "bullet",
1320   "bullet",
1321   "Ydieresis",
1322   "space",
1323   "exclamdown",
1324   "cent",
1325   "sterling",
1326   "currency",
1327   "yen",
1328   "brokenbar",
1329   "section",
1330   "dieresis",
1331   "copyright",
1332   "ordfeminine",
1333   "guillemotleft",
1334   "logicalnot",
1335   "hyphen",
1336   "registered",
1337   "macron",
1338   "degree",
1339   "plusminus",
1340   "twosuperior",
1341   "threesuperior",
1342   "acute",
1343   "mu",
1344   "paragraph",
1345   "periodcentered",
1346   "cedilla",
1347   "onesuperior",
1348   "ordmasculine",
1349   "guillemotright",
1350   "onequarter",
1351   "onehalf",
1352   "threequarters",
1353   "questiondown",
1354   "Agrave",
1355   "Aacute",
1356   "Acircumflex",
1357   "Atilde",
1358   "Adieresis",
1359   "Aring",
1360   "AE",
1361   "Ccedilla",
1362   "Egrave",
1363   "Eacute",
1364   "Ecircumflex",
1365   "Edieresis",
1366   "Igrave",
1367   "Iacute",
1368   "Icircumflex",
1369   "Idieresis",
1370   "Eth",
1371   "Ntilde",
1372   "Ograve",
1373   "Oacute",
1374   "Ocircumflex",
1375   "Otilde",
1376   "Odieresis",
1377   "multiply",
1378   "Oslash",
1379   "Ugrave",
1380   "Uacute",
1381   "Ucircumflex",
1382   "Udieresis",
1383   "Yacute",
1384   "Thorn",
1385   "germandbls",
1386   "agrave",
1387   "aacute",
1388   "acircumflex",
1389   "atilde",
1390   "adieresis",
1391   "aring",
1392   "ae",
1393   "ccedilla",
1394   "egrave",
1395   "eacute",
1396   "ecircumflex",
1397   "edieresis",
1398   "igrave",
1399   "iacute",
1400   "icircumflex",
1401   "idieresis",
1402   "eth",
1403   "ntilde",
1404   "ograve",
1405   "oacute",
1406   "ocircumflex",
1407   "otilde",
1408   "odieresis",
1409   "divide",
1410   "oslash",
1411   "ugrave",
1412   "uacute",
1413   "ucircumflex",
1414   "udieresis",
1415   "yacute",
1416   "thorn",
1417   "ydieresis"
1418 };
1419 static FontEncoding winAnsiEncoding(winAnsiEncodingNames,
1420                                     winAnsiEncodingSize);
1421
1422 //------------------------------------------------------------------------
1423 // Character widths for built-in fonts.
1424 //------------------------------------------------------------------------
1425
1426 static Gushort courierWidths[335] = {
1427      0,    0,    0,    0,    0,    0,    0,    0,
1428      0,    0,    0,    0,    0,    0,    0,    0,
1429      0,    0,    0,    0,    0,    0,    0,    0,
1430      0,    0,    0,    0,    0,    0,    0,    0,
1431    600,  600,  600,  600,  600,  600,  600,  600,
1432    600,  600,  600,  600,  600,  600,  600,  600,
1433    600,  600,  600,  600,  600,  600,  600,  600,
1434    600,  600,  600,  600,  600,  600,  600,  600,
1435    600,  600,  600,  600,  600,  600,  600,  600,
1436    600,  600,  600,  600,  600,  600,  600,  600,
1437    600,  600,  600,  600,  600,  600,  600,  600,
1438    600,  600,  600,  600,  600,  600,  600,  600,
1439    600,  600,  600,  600,  600,  600,  600,  600,
1440    600,  600,  600,  600,  600,  600,  600,  600,
1441    600,  600,  600,  600,  600,  600,  600,  600,
1442    600,  600,  600,  600,  600,  600,  600,    0,
1443      0,    0,    0,    0,    0,    0,    0,    0,
1444      0,    0,    0,    0,    0,    0,    0,    0,
1445      0,    0,    0,    0,    0,    0,    0,    0,
1446      0,    0,    0,    0,    0,    0,    0,    0,
1447      0,  600,  600,  600,  600,  600,  600,  600,
1448    600,  600,  600,  600,  600,  600,  600,  600,
1449      0,  600,  600,  600,  600,    0,  600,  600,
1450    600,  600,  600,  600,  600,  600,    0,  600,
1451      0,  600,  600,  600,  600,  600,  600,  600,
1452    600,    0,  600,  600,    0,  600,  600,  600,
1453    600,    0,    0,    0,    0,    0,    0,    0,
1454      0,    0,    0,    0,    0,    0,    0,    0,
1455      0,  600,    0,  600,    0,    0,    0,    0,
1456    600,  600,  600,  600,    0,    0,    0,    0,
1457      0,  600,    0,    0,    0,  600,    0,    0,
1458    600,  600,  600,  600,    0,    0,    0,    0,
1459    600,  600,  600,  600,  600,  600,  600,  600,
1460    600,  600,  600,  600,  600,  600,  600,  600,
1461    600,  600,  600,  600,  600,  600,  600,  600,
1462    600,  600,  600,  600,  600,  600,  600,  600,
1463    600,  600,  600,  600,  600,  600,  600,  600,
1464    600,  600,  600,  600,  600,  600,  600,  600,
1465    600,  600,  600,  600,  600,  600,  600,  600,
1466    600,  600,  600,  600,  600,  600,  600,  600,
1467    600,  600,  600,  600,  600,  600,  600,  600,
1468    600,  600,  600,  600,  600,  600,  600
1469 };
1470
1471 static Gushort courierBoldWidths[335] = {
1472      0,    0,    0,    0,    0,    0,    0,    0,
1473      0,    0,    0,    0,    0,    0,    0,    0,
1474      0,    0,    0,    0,    0,    0,    0,    0,
1475      0,    0,    0,    0,    0,    0,    0,    0,
1476    600,  600,  600,  600,  600,  600,  600,  600,
1477    600,  600,  600,  600,  600,  600,  600,  600,
1478    600,  600,  600,  600,  600,  600,  600,  600,
1479    600,  600,  600,  600,  600,  600,  600,  600,
1480    600,  600,  600,  600,  600,  600,  600,  600,
1481    600,  600,  600,  600,  600,  600,  600,  600,
1482    600,  600,  600,  600,  600,  600,  600,  600,
1483    600,  600,  600,  600,  600,  600,  600,  600,
1484    600,  600,  600,  600,  600,  600,  600,  600,
1485    600,  600,  600,  600,  600,  600,  600,  600,
1486    600,  600,  600,  600,  600,  600,  600,  600,
1487    600,  600,  600,  600,  600,  600,  600,    0,
1488      0,    0,    0,    0,    0,    0,    0,    0,
1489      0,    0,    0,    0,    0,    0,    0,    0,
1490      0,    0,    0,    0,    0,    0,    0,    0,
1491      0,    0,    0,    0,    0,    0,    0,    0,
1492      0,  600,  600,  600,  600,  600,  600,  600,
1493    600,  600,  600,  600,  600,  600,  600,  600,
1494      0,  600,  600,  600,  600,    0,  600,  600,
1495    600,  600,  600,  600,  600,  600,    0,  600,
1496      0,  600,  600,  600,  600,  600,  600,  600,
1497    600,    0,  600,  600,    0,  600,  600,  600,
1498    600,    0,    0,    0,    0,    0,    0,    0,
1499      0,    0,    0,    0,    0,    0,    0,    0,
1500      0,  600,    0,  600,    0,    0,    0,    0,
1501    600,  600,  600,  600,    0,    0,    0,    0,
1502      0,  600,    0,    0,    0,  600,    0,    0,
1503    600,  600,  600,  600,    0,    0,    0,    0,
1504    600,  600,  600,  600,  600,  600,  600,  600,
1505    600,  600,  600,  600,  600,  600,  600,  600,
1506    600,  600,  600,  600,  600,  600,  600,  600,
1507    600,  600,  600,  600,  600,  600,  600,  600,
1508    600,  600,  600,  600,  600,  600,  600,  600,
1509    600,  600,  600,  600,  600,  600,  600,  600,
1510    600,  600,  600,  600,  600,  600,  600,  600,
1511    600,  600,  600,  600,  600,  600,  600,  600,
1512    600,  600,  600,  600,  600,  600,  600,  600,
1513    600,  600,  600,  600,  600,  600,  600
1514 };
1515
1516 static Gushort courierBoldObliqueWidths[335] = {
1517      0,    0,    0,    0,    0,    0,    0,    0,
1518      0,    0,    0,    0,    0,    0,    0,    0,
1519      0,    0,    0,    0,    0,    0,    0,    0,
1520      0,    0,    0,    0,    0,    0,    0,    0,
1521    600,  600,  600,  600,  600,  600,  600,  600,
1522    600,  600,  600,  600,  600,  600,  600,  600,
1523    600,  600,  600,  600,  600,  600,  600,  600,
1524    600,  600,  600,  600,  600,  600,  600,  600,
1525    600,  600,  600,  600,  600,  600,  600,  600,
1526    600,  600,  600,  600,  600,  600,  600,  600,
1527    600,  600,  600,  600,  600,  600,  600,  600,
1528    600,  600,  600,  600,  600,  600,  600,  600,
1529    600,  600,  600,  600,  600,  600,  600,  600,
1530    600,  600,  600,  600,  600,  600,  600,  600,
1531    600,  600,  600,  600,  600,  600,  600,  600,
1532    600,  600,  600,  600,  600,  600,  600,    0,
1533      0,    0,    0,    0,    0,    0,    0,    0,
1534      0,    0,    0,    0,    0,    0,    0,    0,
1535      0,    0,    0,    0,    0,    0,    0,    0,
1536      0,    0,    0,    0,    0,    0,    0,    0,
1537      0,  600,  600,  600,  600,  600,  600,  600,
1538    600,  600,  600,  600,  600,  600,  600,  600,
1539      0,  600,  600,  600,  600,    0,  600,  600,
1540    600,  600,  600,  600,  600,  600,    0,  600,
1541      0,  600,  600,  600,  600,  600,  600,  600,
1542    600,    0,  600,  600,    0,  600,  600,  600,
1543    600,    0,    0,    0,    0,    0,    0,    0,
1544      0,    0,    0,    0,    0,    0,    0,    0,
1545      0,  600,    0,  600,    0,    0,    0,    0,
1546    600,  600,  600,  600,    0,    0,    0,    0,
1547      0,  600,    0,    0,    0,  600,    0,    0,
1548    600,  600,  600,  600,    0,    0,    0,    0,
1549    600,  600,  600,  600,  600,  600,  600,  600,
1550    600,  600,  600,  600,  600,  600,  600,  600,
1551    600,  600,  600,  600,  600,  600,  600,  600,
1552    600,  600,  600,  600,  600,  600,  600,  600,
1553    600,  600,  600,  600,  600,  600,  600,  600,
1554    600,  600,  600,  600,  600,  600,  600,  600,
1555    600,  600,  600,  600,  600,  600,  600,  600,
1556    600,  600,  600,  600,  600,  600,  600,  600,
1557    600,  600,  600,  600,  600,  600,  600,  600,
1558    600,  600,  600,  600,  600,  600,  600
1559 };
1560
1561 static Gushort courierObliqueWidths[335] = {
1562      0,    0,    0,    0,    0,    0,    0,    0,
1563      0,    0,    0,    0,    0,    0,    0,    0,
1564      0,    0,    0,    0,    0,    0,    0,    0,
1565      0,    0,    0,    0,    0,    0,    0,    0,
1566    600,  600,  600,  600,  600,  600,  600,  600,
1567    600,  600,  600,  600,  600,  600,  600,  600,
1568    600,  600,  600,  600,  600,  600,  600,  600,
1569    600,  600,  600,  600,  600,  600,  600,  600,
1570    600,  600,  600,  600,  600,  600,  600,  600,
1571    600,  600,  600,  600,  600,  600,  600,  600,
1572    600,  600,  600,  600,  600,  600,  600,  600,
1573    600,  600,  600,  600,  600,  600,  600,  600,
1574    600,  600,  600,  600,  600,  600,  600,  600,
1575    600,  600,  600,  600,  600,  600,  600,  600,
1576    600,  600,  600,  600,  600,  600,  600,  600,
1577    600,  600,  600,  600,  600,  600,  600,    0,
1578      0,    0,    0,    0,    0,    0,    0,    0,
1579      0,    0,    0,    0,    0,    0,    0,    0,
1580      0,    0,    0,    0,    0,    0,    0,    0,
1581      0,    0,    0,    0,    0,    0,    0,    0,
1582      0,  600,  600,  600,  600,  600,  600,  600,
1583    600,  600,  600,  600,  600,  600,  600,  600,
1584      0,  600,  600,  600,  600,    0,  600,  600,
1585    600,  600,  600,  600,  600,  600,    0,  600,
1586      0,  600,  600,  600,  600,  600,  600,  600,
1587    600,    0,  600,  600,    0,  600,  600,  600,
1588    600,    0,    0,    0,    0,    0,    0,    0,
1589      0,    0,    0,    0,    0,    0,    0,    0,
1590      0,  600,    0,  600,    0,    0,    0,    0,
1591    600,  600,  600,  600,    0,    0,    0,    0,
1592      0,  600,    0,    0,    0,  600,    0,    0,
1593    600,  600,  600,  600,    0,    0,    0,    0,
1594    600,  600,  600,  600,  600,  600,  600,  600,
1595    600,  600,  600,  600,  600,  600,  600,  600,
1596    600,  600,  600,  600,  600,  600,  600,  600,
1597    600,  600,  600,  600,  600,  600,  600,  600,
1598    600,  600,  600,  600,  600,  600,  600,  600,
1599    600,  600,  600,  600,  600,  600,  600,  600,
1600    600,  600,  600,  600,  600,  600,  600,  600,
1601    600,  600,  600,  600,  600,  600,  600,  600,
1602    600,  600,  600,  600,  600,  600,  600,  600,
1603    600,  600,  600,  600,  600,  600,  600
1604 };
1605
1606 static Gushort helveticaWidths[335] = {
1607      0,    0,    0,    0,    0,    0,    0,    0,
1608      0,    0,    0,    0,    0,    0,    0,    0,
1609      0,    0,    0,    0,    0,    0,    0,    0,
1610      0,    0,    0,    0,    0,    0,    0,    0,
1611    278,  278,  355,  556,  556,  889,  667,  222,
1612    333,  333,  389,  584,  278,  333,  278,  278,
1613    556,  556,  556,  556,  556,  556,  556,  556,
1614    556,  556,  278,  278,  584,  584,  584,  556,
1615   1015,  667,  667,  722,  722,  667,  611,  778,
1616    722,  278,  500,  667,  556,  833,  722,  778,
1617    667,  778,  722,  667,  611,  722,  667,  944,
1618    667,  667,  611,  278,  278,  278,  469,  556,
1619    222,  556,  556,  500,  556,  556,  278,  556,
1620    556,  222,  222,  500,  222,  833,  556,  556,
1621    556,  556,  333,  500,  278,  556,  500,  722,
1622    500,  500,  500,  334,  260,  334,  584,    0,
1623      0,    0,    0,    0,    0,    0,    0,    0,
1624      0,    0,    0,    0,    0,    0,    0,    0,
1625      0,    0,    0,    0,    0,    0,    0,    0,
1626      0,    0,    0,    0,    0,    0,    0,    0,
1627      0,  333,  556,  556,  167,  556,  556,  556,
1628    556,  191,  333,  556,  333,  333,  500,  500,
1629      0,  556,  556,  556,  278,    0,  537,  350,
1630    222,  333,  333,  556, 1000, 1000,    0,  611,
1631      0,  333,  333,  333,  333,  333,  333,  333,
1632    333,    0,  333,  333,    0,  333,  333,  333,
1633   1000,    0,    0,    0,    0,    0,    0,    0,
1634      0,    0,    0,    0,    0,    0,    0,    0,
1635      0, 1000,    0,  370,    0,    0,    0,    0,
1636    556,  778, 1000,  365,    0,    0,    0,    0,
1637      0,  889,    0,    0,    0,  278,    0,    0,
1638    222,  611,  944,  611,    0,    0,    0,    0,
1639    667,  667,  667,  667,  667,  667,  722,  667,
1640    667,  667,  667,  722,  278,  278,  278,  278,
1641    722,  778,  778,  778,  778,  778,  667,  667,
1642    722,  722,  722,  722,  667,  667,  611,  556,
1643    556,  556,  556,  556,  556,  260,  500,  737,
1644    400,  584,  556,  556,  556,  556,  556,  278,
1645    278,  278,  278,  584,  584,  556,  584,  556,
1646    556,  556,  556,  556,  834,  834,  333,  556,
1647    584,  737,  500,  556,  834,  333, 1000,  333,
1648    556,  556,  556,  556,  500,  500,  500
1649 };
1650
1651 static Gushort helveticaBoldWidths[335] = {
1652      0,    0,    0,    0,    0,    0,    0,    0,
1653      0,    0,    0,    0,    0,    0,    0,    0,
1654      0,    0,    0,    0,    0,    0,    0,    0,
1655      0,    0,    0,    0,    0,    0,    0,    0,
1656    278,  333,  474,  556,  556,  889,  722,  278,
1657    333,  333,  389,  584,  278,  333,  278,  278,
1658    556,  556,  556,  556,  556,  556,  556,  556,
1659    556,  556,  333,  333,  584,  584,  584,  611,
1660    975,  722,  722,  722,  722,  667,  611,  778,
1661    722,  278,  556,  722,  611,  833,  722,  778,
1662    667,  778,  722,  667,  611,  722,  667,  944,
1663    667,  667,  611,  333,  278,  333,  584,  556,
1664    278,  556,  611,  556,  611,  556,  333,  611,
1665    611,  278,  278,  556,  278,  889,  611,  611,
1666    611,  611,  389,  556,  333,  611,  556,  778,
1667    556,  556,  500,  389,  280,  389,  584,    0,
1668      0,    0,    0,    0,    0,    0,    0,    0,
1669      0,    0,    0,    0,    0,    0,    0,    0,
1670      0,    0,    0,    0,    0,    0,    0,    0,
1671      0,    0,    0,    0,    0,    0,    0,    0,
1672      0,  333,  556,  556,  167,  556,  556,  556,
1673    556,  238,  500,  556,  333,  333,  611,  611,
1674      0,  556,  556,  556,  278,    0,  556,  350,
1675    278,  500,  500,  556, 1000, 1000,    0,  611,
1676      0,  333,  333,  333,  333,  333,  333,  333,
1677    333,    0,  333,  333,    0,  333,  333,  333,
1678   1000,    0,    0,    0,    0,    0,    0,    0,
1679      0,    0,    0,    0,    0,    0,    0,    0,
1680      0, 1000,    0,  370,    0,    0,    0,    0,
1681    611,  778, 1000,  365,    0,    0,    0,    0,
1682      0,  889,    0,    0,    0,  278,    0,    0,
1683    278,  611,  944,  611,    0,    0,    0,    0,
1684    722,  722,  722,  722,  722,  722,  722,  667,
1685    667,  667,  667,  722,  278,  278,  278,  278,
1686    722,  778,  778,  778,  778,  778,  667,  667,
1687    722,  722,  722,  722,  667,  667,  611,  556,
1688    556,  556,  556,  556,  556,  280,  556,  737,
1689    400,  584,  556,  556,  556,  556,  611,  278,
1690    278,  278,  278,  584,  584,  611,  584,  611,
1691    611,  611,  611,  611,  834,  834,  333,  611,
1692    584,  737,  556,  611,  834,  333, 1000,  333,
1693    611,  611,  611,  611,  556,  556,  500
1694 };
1695
1696 static Gushort helveticaBoldObliqueWidths[335] = {
1697      0,    0,    0,    0,    0,    0,    0,    0,
1698      0,    0,    0,    0,    0,    0,    0,    0,
1699      0,    0,    0,    0,    0,    0,    0,    0,
1700      0,    0,    0,    0,    0,    0,    0,    0,
1701    278,  333,  474,  556,  556,  889,  722,  278,
1702    333,  333,  389,  584,  278,  333,  278,  278,
1703    556,  556,  556,  556,  556,  556,  556,  556,
1704    556,  556,  333,  333,  584,  584,  584,  611,
1705    975,  722,  722,  722,  722,  667,  611,  778,
1706    722,  278,  556,  722,  611,  833,  722,  778,
1707    667,  778,  722,  667,  611,  722,  667,  944,
1708    667,  667,  611,  333,  278,  333,  584,  556,
1709    278,  556,  611,  556,  611,  556,  333,  611,
1710    611,  278,  278,  556,  278,  889,  611,  611,
1711    611,  611,  389,  556,  333,  611,  556,  778,
1712    556,  556,  500,  389,  280,  389,  584,    0,
1713      0,    0,    0,    0,    0,    0,    0,    0,
1714      0,    0,    0,    0,    0,    0,    0,    0,
1715      0,    0,    0,    0,    0,    0,    0,    0,
1716      0,    0,    0,    0,    0,    0,    0,    0,
1717      0,  333,  556,  556,  167,  556,  556,  556,
1718    556,  238,  500,  556,  333,  333,  611,  611,
1719      0,  556,  556,  556,  278,    0,  556,  350,
1720    278,  500,  500,  556, 1000, 1000,    0,  611,
1721      0,  333,  333,  333,  333,  333,  333,  333,
1722    333,    0,  333,  333,    0,  333,  333,  333,
1723   1000,    0,    0,    0,    0,    0,    0,    0,
1724      0,    0,    0,    0,    0,    0,    0,    0,
1725      0, 1000,    0,  370,    0,    0,    0,    0,
1726    611,  778, 1000,  365,    0,    0,    0,    0,
1727      0,  889,    0,    0,    0,  278,    0,    0,
1728    278,  611,  944,  611,    0,    0,    0,    0,
1729    722,  722,  722,  722,  722,  722,  722,  667,
1730    667,  667,  667,  722,  278,  278,  278,  278,
1731    722,  778,  778,  778,  778,  778,  667,  667,
1732    722,  722,  722,  722,  667,  667,  611,  556,
1733    556,  556,  556,  556,  556,  280,  556,  737,
1734    400,  584,  556,  556,  556,  556,  611,  278,
1735    278,  278,  278,  584,  584,  611,  584,  611,
1736    611,  611,  611,  611,  834,  834,  333,  611,
1737    584,  737,  556,  611,  834,  333, 1000,  333,
1738    611,  611,  611,  611,  556,  556,  500
1739 };
1740
1741 static Gushort helveticaObliqueWidths[335] = {
1742      0,    0,    0,    0,    0,    0,    0,    0,
1743      0,    0,    0,    0,    0,    0,    0,    0,
1744      0,    0,    0,    0,    0,    0,    0,    0,
1745      0,    0,    0,    0,    0,    0,    0,    0,
1746    278,  278,  355,  556,  556,  889,  667,  222,
1747    333,  333,  389,  584,  278,  333,  278,  278,
1748    556,  556,  556,  556,  556,  556,  556,  556,
1749    556,  556,  278,  278,  584,  584,  584,  556,
1750   1015,  667,  667,  722,  722,  667,  611,  778,
1751    722,  278,  500,  667,  556,  833,  722,  778,
1752    667,  778,  722,  667,  611,  722,  667,  944,
1753    667,  667,  611,  278,  278,  278,  469,  556,
1754    222,  556,  556,  500,  556,  556,  278,  556,
1755    556,  222,  222,  500,  222,  833,  556,  556,
1756    556,  556,  333,  500,  278,  556,  500,  722,
1757    500,  500,  500,  334,  260,  334,  584,    0,
1758      0,    0,    0,    0,    0,    0,    0,    0,
1759      0,    0,    0,    0,    0,    0,    0,    0,
1760      0,    0,    0,    0,    0,    0,    0,    0,
1761      0,    0,    0,    0,    0,    0,    0,    0,
1762      0,  333,  556,  556,  167,  556,  556,  556,
1763    556,  191,  333,  556,  333,  333,  500,  500,
1764      0,  556,  556,  556,  278,    0,  537,  350,
1765    222,  333,  333,  556, 1000, 1000,    0,  611,
1766      0,  333,  333,  333,  333,  333,  333,  333,
1767    333,    0,  333,  333,    0,  333,  333,  333,
1768   1000,    0,    0,    0,    0,    0,    0,    0,
1769      0,    0,    0,    0,    0,    0,    0,    0,
1770      0, 1000,    0,  370,    0,    0,    0,    0,
1771    556,  778, 1000,  365,    0,    0,    0,    0,
1772      0,  889,    0,    0,    0,  278,    0,    0,
1773    222,  611,  944,  611,    0,    0,    0,    0,
1774    667,  667,  667,  667,  667,  667,  722,  667,
1775    667,  667,  667,  722,  278,  278,  278,  278,
1776    722,  778,  778,  778,  778,  778,  667,  667,
1777    722,  722,  722,  722,  667,  667,  611,  556,
1778    556,  556,  556,  556,  556,  260,  500,  737,
1779    400,  584,  556,  556,  556,  556,  556,  278,
1780    278,  278,  278,  584,  584,  556,  584,  556,
1781    556,  556,  556,  556,  834,  834,  333,  556,
1782    584,  737,  500,  556,  834,  333, 1000,  333,
1783    556,  556,  556,  556,  500,  500,  500
1784 };
1785
1786 static Gushort symbolWidths[257] = {
1787      0,    0,    0,    0,    0,    0,    0,    0,
1788      0,    0,    0,    0,    0,    0,    0,    0,
1789      0,    0,    0,    0,    0,    0,    0,    0,
1790      0,    0,    0,    0,    0,    0,    0,    0,
1791    250,  333,  713,  500,  549,  833,  778,  439,
1792    333,  333,  500,  549,  250,  549,  250,  278,
1793    500,  500,  500,  500,  500,  500,  500,  500,
1794    500,  500,  278,  278,  549,  549,  549,  444,
1795    549,  722,  667,  722,  612,  611,  763,  603,
1796    722,  333,  631,  722,  686,  889,  722,  722,
1797    768,  741,  556,  592,  611,  690,  439,  768,
1798    645,  795,  611,  333,  863,  333,  658,  500,
1799    500,  631,  549,  549,  494,  439,  521,  411,
1800    603,  329,  603,  549,  549,  576,  521,  549,
1801    549,  521,  549,  603,  439,  576,  713,  686,
1802    493,  686,  494,  480,  200,  480,  549,    0,
1803      0,    0,    0,    0,    0,    0,    0,    0,
1804      0,    0,    0,    0,    0,    0,    0,    0,
1805      0,    0,    0,    0,    0,    0,    0,    0,
1806      0,    0,    0,    0,    0,    0,    0,    0,
1807      0,  620,  247,  549,  167,  713,  500,  753,
1808    753,  753,  753, 1042,  987,  603,  987,  603,
1809    400,  549,  411,  549,  549,  713,  494,  460,
1810    549,  549,  549,  549, 1000,  603, 1000,  658,
1811    823,  686,  795,  987,  768,  768,  823,  768,
1812    768,  713,  713,  713,  713,  713,  713,  713,
1813    768,  713,  790,  790,  890,  823,  549,  250,
1814    713,  603,  603, 1042,  987,  603,  987,  603,
1815    494,  329,  790,  790,  786,  713,  384,  384,
1816    384,  384,  384,  384,  494,  494,  494,  494,
1817      0,  329,  274,  686,  686,  686,  384,  384,
1818    384,  384,  384,  384,  494,  494,  494,    0,
1819    790
1820 };
1821
1822 static Gushort timesBoldWidths[335] = {
1823      0,    0,    0,    0,    0,    0,    0,    0,
1824      0,    0,    0,    0,    0,    0,    0,    0,
1825      0,    0,    0,    0,    0,    0,    0,    0,
1826      0,    0,    0,    0,    0,    0,    0,    0,
1827    250,  333,  555,  500,  500, 1000,  833,  333,
1828    333,  333,  500,  570,  250,  333,  250,  278,
1829    500,  500,  500,  500,  500,  500,  500,  500,
1830    500,  500,  333,  333,  570,  570,  570,  500,
1831    930,  722,  667,  722,  722,  667,  611,  778,
1832    778,  389,  500,  778,  667,  944,  722,  778,
1833    611,  778,  722,  556,  667,  722,  722, 1000,
1834    722,  722,  667,  333,  278,  333,  581,  500,
1835    333,  500,  556,  444,  556,  444,  333,  500,
1836    556,  278,  333,  556,  278,  833,  556,  500,
1837    556,  556,  444,  389,  333,  556,  500,  722,
1838    500,  500,  444,  394,  220,  394,  520,    0,
1839      0,    0,    0,    0,    0,    0,    0,    0,
1840      0,    0,    0,    0,    0,    0,    0,    0,
1841      0,    0,    0,    0,    0,    0,    0,    0,
1842      0,    0,    0,    0,    0,    0,    0,    0,
1843      0,  333,  500,  500,  167,  500,  500,  500,
1844    500,  278,  500,  500,  333,  333,  556,  556,
1845      0,  500,  500,  500,  250,    0,  540,  350,
1846    333,  500,  500,  500, 1000, 1000,    0,  500,
1847      0,  333,  333,  333,  333,  333,  333,  333,
1848    333,    0,  333,  333,    0,  333,  333,  333,
1849   1000,    0,    0,    0,    0,    0,    0,    0,
1850      0,    0,    0,    0,    0,    0,    0,    0,
1851      0, 1000,    0,  300,    0,    0,    0,    0,
1852    667,  778, 1000,  330,    0,    0,    0,    0,
1853      0,  722,    0,    0,    0,  278,    0,    0,
1854    278,  500,  722,  556,    0,    0,    0,    0,
1855    722,  722,  722,  722,  722,  722,  722,  667,
1856    667,  667,  667,  722,  389,  389,  389,  389,
1857    722,  778,  778,  778,  778,  778,  556,  611,
1858    722,  722,  722,  722,  722,  722,  667,  500,
1859    500,  500,  500,  500,  500,  220,  444,  747,
1860    400,  570,  444,  444,  444,  444,  500,  278,
1861    278,  278,  278,  570,  570,  556,  570,  556,
1862    500,  500,  500,  500,  750,  750,  300,  500,
1863    570,  747,  389,  556,  750,  300, 1000,  300,
1864    556,  556,  556,  556,  500,  500,  444
1865 };
1866
1867 static Gushort timesBoldItalicWidths[335] = {
1868      0,    0,    0,    0,    0,    0,    0,    0,
1869      0,    0,    0,    0,    0,    0,    0,    0,
1870      0,    0,    0,    0,    0,    0,    0,    0,
1871      0,    0,    0,    0,    0,    0,    0,    0,
1872    250,  389,  555,  500,  500,  833,  778,  333,
1873    333,  333,  500,  570,  250,  333,  250,  278,
1874    500,  500,  500,  500,  500,  500,  500,  500,
1875    500,  500,  333,  333,  570,  570,  570,  500,
1876    832,  667,  667,  667,  722,  667,  667,  722,
1877    778,  389,  500,  667,  611,  889,  722,  722,
1878    611,  722,  667,  556,  611,  722,  667,  889,
1879    667,  611,  611,  333,  278,  333,  570,  500,
1880    333,  500,  500,  444,  500,  444,  333,  500,
1881    556,  278,  278,  500,  278,  778,  556,  500,
1882    500,  500,  389,  389,  278,  556,  444,  667,
1883    500,  444,  389,  348,  220,  348,  570,    0,
1884      0,    0,    0,    0,    0,    0,    0,    0,
1885      0,    0,    0,    0,    0,    0,    0,    0,
1886      0,    0,    0,    0,    0,    0,    0,    0,
1887      0,    0,    0,    0,    0,    0,    0,    0,
1888      0,  389,  500,  500,  167,  500,  500,  500,
1889    500,  278,  500,  500,  333,  333,  556,  556,
1890      0,  500,  500,  500,  250,    0,  500,  350,
1891    333,  500,  500,  500, 1000, 1000,    0,  500,
1892      0,  333,  333,  333,  333,  333,  333,  333,
1893    333,    0,  333,  333,    0,  333,  333,  333,
1894   1000,    0,    0,    0,    0,    0,    0,    0,
1895      0,    0,    0,    0,    0,    0,    0,    0,
1896      0,  944,    0,  266,    0,    0,    0,    0,
1897    611,  722,  944,  300,    0,    0,    0,    0,
1898      0,  722,    0,    0,    0,  278,    0,    0,
1899    278,  500,  722,  500,    0,    0,    0,    0,
1900    667,  667,  667,  667,  667,  667,  667,  667,
1901    667,  667,  667,  722,  389,  389,  389,  389,
1902    722,  722,  722,  722,  722,  722,  556,  611,
1903    722,  722,  722,  722,  611,  611,  611,  500,
1904    500,  500,  500,  500,  500,  220,  444,  747,
1905    400,  570,  444,  444,  444,  444,  500,  278,
1906    278,  278,  278,  606,  606,  576,  570,  556,
1907    500,  500,  500,  500,  750,  750,  300,  500,
1908    570,  747,  389,  500,  750,  300, 1000,  300,
1909    556,  556,  556,  556,  444,  444,  389
1910 };
1911
1912 static Gushort timesItalicWidths[335] = {
1913      0,    0,    0,    0,    0,    0,    0,    0,
1914      0,    0,    0,    0,    0,    0,    0,    0,
1915      0,    0,    0,    0,    0,    0,    0,    0,
1916      0,    0,    0,    0,    0,    0,    0,    0,
1917    250,  333,  420,  500,  500,  833,  778,  333,
1918    333,  333,  500,  675,  250,  333,  250,  278,
1919    500,  500,  500,  500,  500,  500,  500,  500,
1920    500,  500,  333,  333,  675,  675,  675,  500,
1921    920,  611,  611,  667,  722,  611,  611,  722,
1922    722,  333,  444,  667,  556,  833,  667,  722,
1923    611,  722,  611,  500,  556,  722,  611,  833,
1924    611,  556,  556,  389,  278,  389,  422,  500,
1925    333,  500,  500,  444,  500,  444,  278,  500,
1926    500,  278,  278,  444,  278,  722,  500,  500,
1927    500,  500,  389,  389,  278,  500,  444,  667,
1928    444,  444,  389,  400,  275,  400,  541,    0,
1929      0,    0,    0,    0,    0,    0,    0,    0,
1930      0,    0,    0,    0,    0,    0,    0,    0,
1931      0,    0,    0,    0,    0,    0,    0,    0,
1932      0,    0,    0,    0,    0,    0,    0,    0,
1933      0,  389,  500,  500,  167,  500,  500,  500,
1934    500,  214,  556,  500,  333,  333,  500,  500,
1935      0,  500,  500,  500,  250,    0,  523,  350,
1936    333,  556,  556,  500,  889, 1000,    0,  500,
1937      0,  333,  333,  333,  333,  333,  333,  333,
1938    333,    0,  333,  333,    0,  333,  333,  333,
1939    889,    0,    0,    0,    0,    0,    0,    0,
1940      0,    0,    0,    0,    0,    0,    0,    0,
1941      0,  889,    0,  276,    0,    0,    0,    0,
1942    556,  722,  944,  310,    0,    0,    0,    0,
1943      0,  667,    0,    0,    0,  278,    0,    0,
1944    278,  500,  667,  500,    0,    0,    0,    0,
1945    611,  611,  611,  611,  611,  611,  667,  611,
1946    611,  611,  611,  722,  333,  333,  333,  333,
1947    667,  722,  722,  722,  722,  722,  500,  611,
1948    722,  722,  722,  722,  556,  556,  556,  500,
1949    500,  500,  500,  500,  500,  275,  444,  760,
1950    400,  675,  444,  444,  444,  444,  500,  278,
1951    278,  278,  278,  675,  675,  500,  675,  500,
1952    500,  500,  500,  500,  750,  750,  300,  500,
1953    675,  760,  389,  500,  750,  300,  980,  300,
1954    500,  500,  500,  500,  444,  444,  389
1955 };
1956
1957 static Gushort timesRomanWidths[335] = {
1958      0,    0,    0,    0,    0,    0,    0,    0,
1959      0,    0,    0,    0,    0,    0,    0,    0,
1960      0,    0,    0,    0,    0,    0,    0,    0,
1961      0,    0,    0,    0,    0,    0,    0,    0,
1962    250,  333,  408,  500,  500,  833,  778,  333,
1963    333,  333,  500,  564,  250,  333,  250,  278,
1964    500,  500,  500,  500,  500,  500,  500,  500,
1965    500,  500,  278,  278,  564,  564,  564,  444,
1966    921,  722,  667,  667,  722,  611,  556,  722,
1967    722,  333,  389,  722,  611,  889,  722,  722,
1968    556,  722,  667,  556,  611,  722,  722,  944,
1969    722,  722,  611,  333,  278,  333,  469,  500,
1970    333,  444,  500,  444,  500,  444,  333,  500,
1971    500,  278,  278,  500,  278,  778,  500,  500,
1972    500,  500,  333,  389,  278,  500,  500,  722,
1973    500,  500,  444,  480,  200,  480,  541,    0,
1974      0,    0,    0,    0,    0,    0,    0,    0,
1975      0,    0,    0,    0,    0,    0,    0,    0,
1976      0,    0,    0,    0,    0,    0,    0,    0,
1977      0,    0,    0,    0,    0,    0,    0,    0,
1978      0,  333,  500,  500,  167,  500,  500,  500,
1979    500,  180,  444,  500,  333,  333,  556,  556,
1980      0,  500,  500,  500,  250,    0,  453,  350,
1981    333,  444,  444,  500, 1000, 1000,    0,  444,
1982      0,  333,  333,  333,  333,  333,  333,  333,
1983    333,    0,  333,  333,    0,  333,  333,  333,
1984   1000,    0,    0,    0,    0,    0,    0,    0,
1985      0,    0,    0,    0,    0,    0,    0,    0,
1986      0,  889,    0,  276,    0,    0,    0,    0,
1987    611,  722,  889,  310,    0,    0,    0,    0,
1988      0,  667,    0,    0,    0,  278,    0,    0,
1989    278,  500,  722,  500,    0,    0,    0,    0,
1990    722,  722,  722,  722,  722,  722,  667,  611,
1991    611,  611,  611,  722,  333,  333,  333,  333,
1992    722,  722,  722,  722,  722,  722,  556,  556,
1993    722,  722,  722,  722,  722,  722,  611,  444,
1994    444,  444,  444,  444,  444,  200,  444,  760,
1995    400,  564,  444,  444,  444,  444,  500,  278,
1996    278,  278,  278,  564,  564,  500,  564,  500,
1997    500,  500,  500,  500,  750,  750,  300,  500,
1998    564,  760,  389,  500,  750,  300,  980,  300,
1999    500,  500,  500,  500,  500,  500,  444
2000 };
2001
2002 static Gushort zapfDingbatsWidths[270] = {
2003      0,    0,    0,    0,    0,    0,    0,    0,
2004      0,    0,    0,    0,    0,    0,    0,    0,
2005      0,    0,    0,    0,    0,    0,    0,    0,
2006      0,    0,    0,    0,    0,    0,    0,    0,
2007    278,  974,  961,  974,  980,  719,  789,  790,
2008    791,  690,  960,  939,  549,  855,  911,  933,
2009    911,  945,  974,  755,  846,  762,  761,  571,
2010    677,  763,  760,  759,  754,  494,  552,  537,
2011    577,  692,  786,  788,  788,  790,  793,  794,
2012    816,  823,  789,  841,  823,  833,  816,  831,
2013    923,  744,  723,  749,  790,  792,  695,  776,
2014    768,  792,  759,  707,  708,  682,  701,  826,
2015    815,  789,  789,  707,  687,  696,  689,  786,
2016    787,  713,  791,  785,  791,  873,  761,  762,
2017    762,  759,  759,  892,  892,  788,  784,  438,
2018    138,  277,  415,  392,  392,  668,  668,    0,
2019      0,    0,    0,    0,    0,    0,    0,    0,
2020      0,    0,    0,    0,    0,    0,    0,    0,
2021      0,    0,    0,    0,    0,    0,    0,    0,
2022      0,    0,    0,    0,    0,    0,    0,    0,
2023      0,  732,  544,  544,  910,  667,  760,  760,
2024    776,  595,  694,  626,  788,  788,  788,  788,
2025    788,  788,  788,  788,  788,  788,  788,  788,
2026    788,  788,  788,  788,  788,  788,  788,  788,
2027    788,  788,  788,  788,  788,  788,  788,  788,
2028    788,  788,  788,  788,  788,  788,  788,  788,
2029    788,  788,  788,  788,  894,  838, 1016,  458,
2030    748,  924,  748,  918,  927,  928,  928,  834,
2031    873,  828,  924,  924,  917,  930,  931,  463,
2032    883,  836,  836,  867,  867,  696,  696,  874,
2033      0,  874,  760,  946,  771,  865,  771,  888,
2034    967,  888,  831,  873,  927,  970,  918,    0,
2035    509,  410,  509,  410,  234,  234,  390,  390,
2036    276,  276,  317,  317,  334,  334
2037 };
2038
2039 //------------------------------------------------------------------------
2040 // Built-in font table.
2041 //------------------------------------------------------------------------
2042
2043 struct BuiltinFont {
2044   char *name;
2045   Gushort *widths;
2046   FontEncoding *encoding;
2047 };
2048
2049 #define numBuiltinFonts ((int)(sizeof(builtinFonts)/sizeof(BuiltinFont)))
2050
2051 static BuiltinFont builtinFonts[] = {
2052   {"Courier",               courierWidths,              &standardEncoding},
2053   {"Courier-Bold",          courierBoldWidths,          &standardEncoding},
2054   {"Courier-BoldOblique",   courierBoldObliqueWidths,   &standardEncoding},
2055   {"Courier-Oblique",       courierObliqueWidths,       &standardEncoding},
2056   {"Helvetica",             helveticaWidths,            &standardEncoding},
2057   {"Helvetica-Bold",        helveticaBoldWidths,        &standardEncoding},
2058   {"Helvetica-BoldOblique", helveticaBoldObliqueWidths, &standardEncoding},
2059   {"Helvetica-Oblique",     helveticaObliqueWidths,     &standardEncoding},
2060   {"Symbol",                symbolWidths,               &symbolEncoding},
2061   {"Times-Bold",            timesBoldWidths,            &standardEncoding},
2062   {"Times-BoldItalic",      timesBoldItalicWidths,      &standardEncoding},
2063   {"Times-Italic",          timesItalicWidths,          &standardEncoding},
2064   {"Times-Roman",           timesRomanWidths,           &standardEncoding},
2065   {"ZapfDingbats",          zapfDingbatsWidths,         &zapfDingbatsEncoding}
2066 };
2067
2068 #endif