1 /* See cairo-font-face-twin.c for copyright info */
5 const int8_t _cairo_twin_outlines
[] = {
6 /* 0x0 '\0' offset 0 */
9 -42, -21, -15, 0, /* snap_y */
16 /* 0x20 ' ' offset 28 */
19 -21, -15, 0, /* snap_y */
21 /* 0x21 '!' offset 40 */
24 -21, -15, 0, /* snap_y */
28 'c', 1, -4, 0, -3, 0, -2,
29 'c', 0, -1, 1, 0, 2, 0,
30 'c', 3, 0, 4, -1, 4, -2,
31 'c', 4, -3, 3, -4, 2, -4,
33 /* 0x22 '"' offset 90 */
36 -21, -15, 0, /* snap_y */
42 /* 0x23 '#' offset 114 */
45 -24, -21, -15, -12, 0, /* snap_y */
55 /* 0x24 '$' offset 152 */
57 0, 10, 18, 28, /* snap_x */
58 -42, -21, -15, 0, /* snap_y */
64 'c', 24, -42, 18, -42, 14, -42,
65 'c', 10, -42, 0, -42, 0, -34,
66 'c', 0, -25, 8, -24, 14, -22,
67 'c', 20, -20, 28, -19, 28, -9,
68 'c', 28, 0, 18, 0, 14, 0,
69 'c', 10, 0, 4, 0, 0, -6,
71 /* 0x25 '%' offset 224 */
73 0, 14, 22, 36, /* snap_x */
74 -42, -38, -28, -21, -15, -14, 0, /* snap_y */
76 'c', 12, -41, 14, -40, 14, -36,
77 'c', 14, -30, 11, -28, 6, -28,
78 'c', 2, -28, 0, -30, 0, -34,
79 'c', 0, -39, 3, -42, 8, -42,
81 'c', 18, -37, 28, -37, 36, -42,
84 'c', 24, -14, 22, -11, 22, -6,
85 'c', 22, -2, 24, 0, 28, 0,
86 'c', 33, 0, 36, -2, 36, -8,
87 'c', 36, -12, 34, -14, 30, -14,
91 /* 0x26 '&' offset 323 */
93 0, 10, 22, 40, /* snap_x */
94 -28, -21, -15, 0, /* snap_y */
96 'c', 40, -27, 39, -28, 37, -28,
97 'c', 29, -28, 32, 0, 12, 0,
98 'c', 0, 0, 0, -8, 0, -10,
99 'c', 0, -24, 22, -20, 22, -34,
100 'c', 22, -45, 10, -45, 10, -34,
101 'c', 10, -27, 25, 0, 36, 0,
102 'c', 39, 0, 40, -1, 40, -4,
104 /* 0x27 ''' offset 390 */
107 -21, -15, 0, /* snap_y */
109 'c', -1, -38, -1, -42, 2, -42,
110 'c', 6, -42, 5, -33, 0, -30,
112 /* 0x28 '(' offset 419 */
115 -21, -15, 0, /* snap_y */
117 'c', -5, -32, -5, -5, 14, 14,
119 /* 0x29 ')' offset 441 */
122 -21, -15, 0, /* snap_y */
124 'c', 19, -34, 19, -2, 0, 14,
126 /* 0x2a '*' offset 463 */
128 0, 10, 20, /* snap_x */
129 -21, -15, 0, /* snap_y */
137 /* 0x2b '+' offset 494 */
139 0, 18, 36, /* snap_x */
140 -21, -18, -15, 0, /* snap_y */
146 /* 0x2c ',' offset 520 */
149 -21, -15, 0, /* snap_y */
151 'c', 4, 1, 0, 1, 0, -2,
152 'c', 0, -5, 4, -5, 4, -2,
153 'c', 4, 4, 2, 6, 0, 8,
155 /* 0x2d '-' offset 556 */
156 0, 36, 18, -18, 2, 4,
158 -21, -18, -15, 0, /* snap_y */
162 /* 0x2e '.' offset 575 */
165 -21, -15, 0, /* snap_y */
167 'c', -1, -4, -1, 0, 2, 0,
168 'c', 5, 0, 5, -4, 2, -4,
170 /* 0x2f '/' offset 604 */
173 -21, -15, 0, /* snap_y */
177 /* 0x30 '0' offset 622 */
180 -42, -21, -15, 0, /* snap_y */
182 'c', 9, -42, 0, -42, 0, -21,
183 'c', 0, 0, 9, 0, 14, 0,
184 'c', 19, 0, 28, 0, 28, -21,
185 'c', 28, -42, 19, -42, 14, -42,
187 /* 0x31 '1' offset 666 */
189 0, 17, 28 /* snap_x */
190 -21, -15, 0, /* snap_y */
192 'c', 11, -35, 15, -38, 17, -42,
195 /* 0x32 '2' offset 691 */
197 0, 2, 26, 28, /* snap_x */
198 -42, -21, -15, 0, /* snap_y */
200 'c', 2, -34, 2, -42, 14, -42,
201 'c', 26, -42, 26, -34, 26, -32,
202 'c', 26, -30, 25, -25, 10, -10,
206 /* 0x33 '3' offset 736 */
209 -42, -26, -21, -15, 0, /* snap_y */
213 'c', 21, -26, 28, -26, 28, -14,
214 'c', 28, 0, 17, 0, 13, 0,
215 'c', 8, 0, 3, -1, 0, -8,
217 /* 0x34 '4' offset 780 */
219 0, 20, 30, /* snap_x */
220 -21, -15, -14, 0, /* snap_y */
227 /* 0x35 '5' offset 809 */
230 -42, -28, -21, -15, 0, /* snap_y */
234 'c', 5, -27, 10, -28, 13, -28,
235 'c', 16, -28, 28, -28, 28, -14,
236 'c', 28, 0, 16, 0, 13, 0,
237 'c', 10, 0, 3, 0, 0, -8,
239 /* 0x36 '6' offset 860 */
242 -42, -26, -21, -15, 0, /* snap_y */
244 'c', 22, -41, 19, -42, 14, -42,
245 'c', 9, -42, 0, -41, 0, -19,
246 'c', 0, -1, 9, 0, 13, 0,
247 'c', 18, 0, 26, -3, 26, -13,
248 'c', 26, -18, 23, -26, 13, -26,
249 'c', 10, -26, 1, -24, 0, -14,
251 /* 0x37 '7' offset 919 */
254 -42, -21, -15, 0, /* snap_y */
260 /* 0x38 '8' offset 944 */
262 0, 2, 26, 28, /* snap_x */
263 -42, -21, -15, 0, /* snap_y */
265 'c', 5, -42, 2, -40, 2, -34,
266 'c', 2, -18, 28, -32, 28, -11,
267 'c', 28, 0, 18, 0, 14, 0,
268 'c', 10, 0, 0, 0, 0, -11,
269 'c', 0, -32, 26, -18, 26, -34,
270 'c', 26, -40, 23, -42, 14, -42,
272 /* 0x39 '9' offset 1004 */
275 -42, -21, -16, -15, 0, /* snap_y */
277 'c', 25, -16, 13, -16, 13, -16,
278 'c', 8, -16, 0, -19, 0, -29,
279 'c', 0, -34, 3, -42, 13, -42,
280 'c', 24, -42, 26, -32, 26, -23,
281 'c', 26, -14, 24, 0, 12, 0,
282 'c', 7, 0, 4, -2, 2, -6,
284 /* 0x3a ':' offset 1063 */
287 -21, -15, 0, /* snap_y */
289 'c', -1, -28, -1, -24, 2, -24,
290 'c', 5, -24, 5, -28, 2, -28,
292 'c', -1, -4, -1, 0, 2, 0,
293 'c', 5, 0, 5, -4, 2, -4,
295 /* 0x3b ';' offset 1109 */
298 -21, -15, 0, /* snap_y */
300 'c', -1, -28, -1, -24, 2, -24,
301 'c', 5, -24, 5, -28, 2, -28,
303 'c', 4, 1, 0, 1, 0, -2,
304 'c', 0, -5, 4, -5, 4, -2,
305 'c', 4, 3, 2, 6, 0, 8,
307 /* 0x3c '<' offset 1162 */
310 -21, -15, 0, /* snap_y */
315 /* 0x3d '=' offset 1183 */
316 0, 36, 24, -12, 2, 5,
318 -24, -21, -15, -12, 0, /* snap_y */
324 /* 0x3e '>' offset 1209 */
327 -21, -15, 0, /* snap_y */
332 /* 0x3f '?' offset 1230 */
334 0, 12, 24, /* snap_x */
335 -42, -21, -15, 0, /* snap_y */
337 'c', 0, -34, 0, -42, 12, -42,
338 'c', 24, -42, 24, -34, 24, -32,
339 'c', 24, -29, 24, -24, 12, -20,
342 'c', 9, -4, 9, 0, 12, 0,
343 'c', 15, 0, 15, -4, 12, -4,
345 /* 0x40 '@' offset 1288 */
348 -42, -32, -21, -15, -10, 0, /* snap_y */
350 'c', 28, -31, 24, -32, 21, -32,
351 'c', 10, -32, 10, -23, 10, -19,
352 'c', 10, -13, 11, -10, 19, -10,
353 'c', 30, -10, 28, -21, 30, -32,
354 'c', 27, -10, 30, -10, 34, -10,
355 'c', 41, -10, 42, -19, 42, -22,
356 'c', 42, -34, 34, -42, 21, -42,
357 'c', 9, -42, 0, -34, 0, -21,
358 'c', 0, -9, 8, 0, 21, 0,
359 'c', 30, 0, 34, -3, 36, -6,
361 /* 0x41 'A' offset 1375 */
364 -21, -15, -14, 0, /* snap_y */
372 /* 0x42 'B' offset 1406 */
375 -42, -22, -21, -15, 0, /* snap_y */
379 'c', 32, -42, 32, -22, 18, -22,
382 'c', 32, -22, 32, 0, 18, 0,
386 /* 0x43 'C' offset 1455 */
389 -42, -21, -15, 0, /* snap_y */
391 'c', 26, -42, 21, -42, 16, -42,
392 'c', 2, -42, 0, -29, 0, -21,
393 'c', 0, -13, 2, 0, 16, 0,
394 'c', 21, 0, 26, 0, 30, -10,
396 /* 0x44 'D' offset 1499 */
399 -42, -21, -15, 0, /* snap_y */
403 'c', 33, -42, 33, 0, 14, 0,
407 /* 0x45 'E' offset 1534 */
410 -42, -22, -21, -15, 0, /* snap_y */
420 /* 0x46 'F' offset 1572 */
423 -42, -22, -21, -15, 0, /* snap_y */
431 /* 0x47 'G' offset 1604 */
434 -42, -21, -16, -15, 0, /* snap_y */
436 'c', 26, -42, 21, -42, 16, -42,
437 'c', 2, -42, 0, -29, 0, -21,
438 'c', 0, -13, 2, 0, 16, 0,
439 'c', 28, 0, 30, -7, 30, -16,
443 /* 0x48 'H' offset 1655 */
446 -22, -21, -15, 0, /* snap_y */
454 /* 0x49 'I' offset 1686 */
457 -21, -15, 0, /* snap_y */
461 /* 0x4a 'J' offset 1703 */
464 -21, -15, 0, /* snap_y */
467 'c', 20, 3, 0, 3, 0, -10,
470 /* 0x4b 'K' offset 1731 */
473 -21, -15, 0, /* snap_y */
481 /* 0x4c 'L' offset 1761 */
484 -21, -15, 0, /* snap_y */
490 /* 0x4d 'M' offset 1785 */
493 -21, -15, 0, /* snap_y */
503 /* 0x4e 'N' offset 1821 */
506 -21, -15, 0, /* snap_y */
514 /* 0x4f 'O' offset 1851 */
517 -42, -21, -15, 0, /* snap_y */
519 'c', 2, -42, 0, -29, 0, -21,
520 'c', 0, -13, 2, 0, 16, 0,
521 'c', 30, 0, 32, -13, 32, -21,
522 'c', 32, -29, 30, -42, 16, -42,
524 /* 0x50 'P' offset 1895 */
527 -42, -21, -20, -15, 0, /* snap_y */
531 'c', 32, -42, 32, -20, 18, -20,
535 /* 0x51 'Q' offset 1931 */
538 -42, -21, -15, 0, /* snap_y */
540 'c', 2, -42, 0, -29, 0, -21,
541 'c', 0, -13, 2, 0, 16, 0,
542 'c', 30, 0, 32, -13, 32, -21,
543 'c', 32, -29, 30, -42, 16, -42,
547 /* 0x52 'R' offset 1981 */
550 -42, -22, -21, -15, 0, /* snap_y */
554 'c', 32, -42, 31, -22, 18, -22,
560 /* 0x53 'S' offset 2023 */
563 -42, -21, -15, 0, /* snap_y */
565 'c', 25, -41, 21, -42, 14, -42,
566 'c', 10, -42, 0, -42, 0, -34,
567 'c', 0, -17, 28, -28, 28, -9,
568 'c', 28, 0, 19, 0, 14, 0,
569 'c', 7, 0, 3, -1, 0, -6,
571 /* 0x54 'T' offset 2074 */
573 0, 14, 28, /* snap_x */
574 -42, -21, -15, 0, /* snap_y */
580 /* 0x55 'U' offset 2100 */
583 -21, -15, 0, /* snap_y */
586 'c', 0, 4, 28, 4, 28, -12,
589 /* 0x56 'V' offset 2128 */
592 -21, -15, 0, /* snap_y */
598 /* 0x57 'W' offset 2152 */
601 -21, -15, 0, /* snap_y */
611 /* 0x58 'X' offset 2188 */
614 -21, -15, 0, /* snap_y */
620 /* 0x59 'Y' offset 2212 */
622 0, 16, 32, /* snap_x */
623 -21, -15, 0, /* snap_y */
630 /* 0x5a 'Z' offset 2240 */
633 -42, -21, -15, 0, /* snap_y */
641 /* 0x5b '[' offset 2271 */
644 -44, -21, -15, 0, /* snap_y */
650 /* 0x5c '\' offset 2296 */
653 -21, -15, 0, /* snap_y */
657 /* 0x5d ']' offset 2314 */
660 -44, -21, -15, 0, /* snap_y */
666 /* 0x5e '^' offset 2339 */
667 0, 32, 46, -18, 2, 3,
669 -21, -15, 0, /* snap_y */
675 /* 0x5f '_' offset 2363 */
678 -21, -15, 0, /* snap_y */
682 /* 0x60 '`' offset 2381 */
685 -21, -15, 0, /* snap_y */
687 'c', 2, -40, 0, -39, 0, -32,
688 'c', 0, -31, 1, -30, 2, -30,
689 'c', 5, -30, 5, -34, 2, -34,
691 /* 0x61 'a' offset 2417 */
694 -28, -21, -15, 0, /* snap_y */
698 'c', 21, -27, 18, -28, 13, -28,
699 'c', 2, -28, 0, -19, 0, -14,
700 'c', 0, -9, 2, 0, 13, 0,
701 'c', 18, 0, 21, -1, 24, -6,
703 /* 0x62 'b' offset 2467 */
706 -28, -21, -15, 0, /* snap_y */
710 'c', 3, -26, 6, -28, 11, -28,
711 'c', 22, -28, 24, -19, 24, -14,
712 'c', 24, -9, 22, 0, 11, 0,
713 'c', 6, 0, 3, -2, 0, -6,
715 /* 0x63 'c' offset 2517 */
718 -28, -21, -15, 0, /* snap_y */
720 'c', 21, -26, 18, -28, 13, -28,
721 'c', 2, -28, 0, -19, 0, -14,
722 'c', 0, -9, 2, 0, 13, 0,
723 'c', 18, 0, 21, -2, 24, -6,
725 /* 0x64 'd' offset 2561 */
728 -28, -21, -15, 0, /* snap_y */
732 'c', 21, -26, 18, -28, 13, -28,
733 'c', 2, -28, 0, -19, 0, -14,
734 'c', 0, -9, 2, 0, 13, 0,
735 'c', 18, 0, 21, -2, 24, -6,
737 /* 0x65 'e' offset 2611 */
740 -28, -21, -16, -15, 0, /* snap_y */
743 'c', 24, -20, 24, -28, 13, -28,
744 'c', 2, -28, 0, -19, 0, -14,
745 'c', 0, -9, 2, 0, 13, 0,
746 'c', 18, 0, 21, -2, 24, -6,
748 /* 0x66 'f' offset 2659 */
750 0, 6, 16, /* snap_x */
751 -42, -28, -21, -15, 0, /* snap_y */
753 'c', 8, -42, 6, -40, 6, -34,
758 /* 0x67 'g' offset 2693 */
761 -28, -21, -15, 0, 14, /* snap_y */
764 'c', 23, 14, 16, 14, 13, 14,
765 'c', 10, 14, 8, 14, 6, 12,
767 'c', 21, -26, 18, -28, 13, -28,
768 'c', 2, -28, 0, -19, 0, -14,
769 'c', 0, -9, 2, 0, 13, 0,
770 'c', 18, 0, 21, -2, 24, -6,
772 /* 0x68 'h' offset 2758 */
775 -28, -21, -15, 0, /* snap_y */
779 'c', 8, -32, 22, -31, 22, -20,
782 /* 0x69 'i' offset 2790 */
784 0, 2, 4, /* snap_x */
785 -21, -15, 0, /* snap_y */
787 'c', 0, -39, 4, -39, 4, -42,
788 'c', 4, -45, 0, -45, 0, -42,
792 /* 0x6a 'j' offset 2826 */
794 0, 2, 4, /* snap_x */
795 -21, -15, 0, 14, /* snap_y */
797 'c', 0, -39, 4, -39, 4, -42,
798 'c', 4, -45, 0, -45, 0, -42,
801 'c', 2, 13, -1, 14, -8, 14,
803 /* 0x6b 'k' offset 2870 */
806 -21, -15, 0, /* snap_y */
814 /* 0x6c 'l' offset 2900 */
817 -21, -15, 0, /* snap_y */
821 /* 0x6d 'm' offset 2917 */
823 0, 22, 44, /* snap_x */
824 -28, -21, -15, 0, /* snap_y */
828 'c', 5, -29, 22, -33, 22, -20,
831 'c', 27, -29, 44, -33, 44, -20,
834 /* 0x6e 'n' offset 2963 */
837 -28, -21, -15, 0, /* snap_y */
841 'c', 4, -28, 22, -34, 22, -20,
844 /* 0x6f 'o' offset 2995 */
847 -28, -21, -15, 0, /* snap_y */
849 'c', 2, -28, 0, -19, 0, -14,
850 'c', 0, -9, 2, 0, 13, 0,
851 'c', 24, 0, 26, -9, 26, -14,
852 'c', 26, -19, 24, -28, 13, -28,
854 /* 0x70 'p' offset 3039 */
857 -28, -21, -15, 0, /* snap_y */
861 'c', 3, -26, 6, -28, 11, -28,
862 'c', 22, -28, 24, -19, 24, -14,
863 'c', 24, -9, 22, 0, 11, 0,
864 'c', 6, 0, 3, -2, 0, -6,
866 /* 0x71 'q' offset 3089 */
869 -28, -21, -15, 0, /* snap_y */
873 'c', 21, -26, 18, -28, 13, -28,
874 'c', 2, -28, 0, -19, 0, -14,
875 'c', 0, -9, 2, 0, 13, 0,
876 'c', 18, 0, 21, -2, 24, -6,
878 /* 0x72 'r' offset 3139 */
881 -28, -21, -15, 0, /* snap_y */
885 'c', 2, -27, 7, -28, 16, -28,
887 /* 0x73 's' offset 3168 */
890 -28, -21, -15, 0, /* snap_y */
892 'c', 22, -27, 16, -28, 11, -28,
893 'c', 4, -28, 0, -26, 0, -22,
894 'c', 0, -11, 22, -20, 22, -7,
895 'c', 22, 0, 17, 0, 11, 0,
896 'c', 6, 0, 0, -1, 0, -6,
898 /* 0x74 't' offset 3219 */
900 0, 6, 16, /* snap_x */
901 -28, -21, -15, 0, /* snap_y */
904 'c', 6, -2, 8, 0, 16, 0,
908 /* 0x75 'u' offset 3252 */
911 -21, -15, 0, /* snap_y */
914 'c', 0, 6, 18, 0, 22, -8,
918 /* 0x76 'v' offset 3283 */
921 -21, -15, 0, /* snap_y */
927 /* 0x77 'w' offset 3307 */
930 -21, -15, 0, /* snap_y */
940 /* 0x78 'x' offset 3343 */
943 -21, -15, 0, /* snap_y */
949 /* 0x79 'y' offset 3367 */
950 -2, 24, 28, 14, 2, 4,
952 -21, -15, 0, 14, /* snap_y */
957 'c', 6, 13, 0, 14, -2, 14,
959 /* 0x7a 'z' offset 3399 */
962 -28, -21, -15, 0, /* snap_y */
970 /* 0x7b '{' offset 3430 */
972 0, 6, 16, /* snap_x */
973 -44, -24, -21, -15, 0, /* snap_y */
975 'c', 10, -44, 6, -42, 6, -36,
980 'c', 6, -2, 10, 0, 16, 0,
982 /* 0x7c '|' offset 3474 */
985 -21, -15, 0, /* snap_y */
989 /* 0x7d '}' offset 3491 */
991 0, 10, 16, /* snap_x */
992 -44, -24, -21, -15, 0, /* snap_y */
994 'c', 6, -44, 10, -42, 10, -36,
999 'c', 10, -2, 6, 0, 0, 0,
1001 /* 0x7e '~' offset 3535 */
1002 0, 36, 24, -12, 2, 5,
1004 -24, -21, -15, -12, 0, /* snap_y */
1006 'c', 1, -21, 4, -24, 8, -24,
1007 'c', 18, -24, 18, -12, 28, -12,
1008 'c', 32, -12, 35, -15, 36, -22,
1012 const uint16_t _cairo_twin_charmap
[128] = {
1013 0, 0, 0, 0, 0, 0, 0, 0,
1014 0, 0, 0, 0, 0, 0, 0, 0,
1015 0, 0, 0, 0, 0, 0, 0, 0,
1016 0, 0, 0, 0, 0, 0, 0, 0,
1017 28, 40, 90, 114, 152, 224, 323, 390,
1018 419, 441, 463, 494, 520, 556, 575, 604,
1019 622, 666, 691, 736, 780, 809, 860, 919,
1020 944, 1004, 1063, 1109, 1162, 1183, 1209, 1230,
1021 1288, 1375, 1406, 1455, 1499, 1534, 1572, 1604,
1022 1655, 1686, 1703, 1731, 1761, 1785, 1821, 1851,
1023 1895, 1931, 1981, 2023, 2074, 2100, 2128, 2152,
1024 2188, 2212, 2240, 2271, 2296, 2314, 2339, 2363,
1025 2381, 2417, 2467, 2517, 2561, 2611, 2659, 2693,
1026 2758, 2790, 2826, 2870, 2900, 2917, 2963, 2995,
1027 3039, 3089, 3139, 3168, 3219, 3252, 3283, 3307,
1028 3343, 3367, 3399, 3430, 3474, 3491, 3535, 0,