@jsxpdf/jsxpdf 0.0.1-alpha.0 → 0.0.1-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core.js +1286 -2
- package/dist/core.js.map +4 -4
- package/dist/index.js +10749 -80
- package/dist/index.js.map +4 -4
- package/dist/jsx-dev-runtime.js +18 -2
- package/dist/jsx-dev-runtime.js.map +3 -3
- package/dist/jsx-runtime.js +18 -2
- package/dist/jsx-runtime.js.map +3 -3
- package/dist/node.js +10824 -77
- package/dist/node.js.map +4 -4
- package/dist/standard-fonts.js +26 -2
- package/dist/standard-fonts.js.map +3 -3
- package/dist/vendor/fonts/LICENSE +102 -0
- package/dist/vendor/fonts/LiberationMono-Bold.ttf +0 -0
- package/dist/vendor/fonts/LiberationMono-BoldItalic.ttf +0 -0
- package/dist/vendor/fonts/LiberationMono-Italic.ttf +0 -0
- package/dist/vendor/fonts/LiberationMono-Regular.ttf +0 -0
- package/dist/vendor/fonts/LiberationSans-Bold.ttf +0 -0
- package/dist/vendor/fonts/LiberationSans-BoldItalic.ttf +0 -0
- package/dist/vendor/fonts/LiberationSans-Italic.ttf +0 -0
- package/dist/vendor/fonts/LiberationSans-Regular.ttf +0 -0
- package/dist/vendor/fonts/LiberationSerif-Bold.ttf +0 -0
- package/dist/vendor/fonts/LiberationSerif-BoldItalic.ttf +0 -0
- package/dist/vendor/fonts/LiberationSerif-Italic.ttf +0 -0
- package/dist/vendor/fonts/LiberationSerif-Regular.ttf +0 -0
- package/dist/vendor/fonts/README.md +27 -0
- package/package.json +6 -2
package/dist/core.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
4
|
-
"sourcesContent": ["export * from \"@jsxpdf/core\"\n"],
|
|
5
|
-
"mappings": ";AAAA,cAAc;",
|
|
6
|
-
"names": []
|
|
3
|
+
"sources": ["../../core/src/binary.ts", "../../core/src/binding.ts", "../../core/src/color.ts", "../../core/src/vendor/base14-font-metrics.json", "../../core/src/font.ts", "../../core/src/primitives.ts", "../../core/src/jsx.ts", "../../core/src/style.ts", "../../core/src/node.ts", "../../core/src/profile.ts", "../../core/src/winansi.ts"],
|
|
4
|
+
"sourcesContent": ["export type BinaryInput = Uint8Array | ArrayBuffer\n\nexport const isArrayBuffer = (value: unknown): value is ArrayBuffer =>\n typeof ArrayBuffer !== \"undefined\" && value instanceof ArrayBuffer\n\nexport const isBinaryInput = (value: unknown): value is BinaryInput =>\n value instanceof Uint8Array || isArrayBuffer(value)\n\n/** react-pdf Image `src`/`source` objects (`{ uri }`, `{ data }`, \u2026). */\nexport const unwrapImageSource = (source: unknown): unknown => {\n if (source == null || typeof source === \"string\" || isBinaryInput(source)) return source\n if (typeof source !== \"object\") return source\n const record = source as Record<string, unknown>\n if (typeof record.uri === \"string\") return record.uri\n if (typeof record.url === \"string\") return record.url\n if (typeof record.src === \"string\") return record.src\n if (record.data != null) return unwrapImageSource(record.data)\n return source\n}\n\nexport const toUint8Array = (value: BinaryInput): Uint8Array =>\n value instanceof Uint8Array ? value : new Uint8Array(value)\n\nexport const base64ToBytes = (value: string): Uint8Array => {\n if (typeof Buffer !== \"undefined\") {\n // Copy via set() instead of Uint8Array.from(iterable): the iterable path\n // is an order of magnitude slower for large payloads.\n const buffer = Buffer.from(value, \"base64\")\n const bytes = new Uint8Array(buffer.byteLength)\n bytes.set(buffer)\n return bytes\n }\n\n const decoded = atob(value)\n const bytes = new Uint8Array(decoded.length)\n for (let index = 0; index < decoded.length; index += 1) {\n bytes[index] = decoded.charCodeAt(index)\n }\n return bytes\n}\n\nexport const base64ToText = (value: string): string => new TextDecoder().decode(base64ToBytes(value))\n\nexport const bytesToBase64 = (value: Uint8Array): string => {\n if (typeof Buffer !== \"undefined\") {\n return Buffer.from(value).toString(\"base64\")\n }\n\n let binary = \"\"\n for (let index = 0; index < value.length; index += 1) {\n binary += String.fromCharCode(value[index])\n }\n return btoa(binary)\n}\n\nexport const concatUint8Arrays = (chunks: Uint8Array[]): Uint8Array => {\n const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0)\n const merged = new Uint8Array(totalLength)\n let offset = 0\n\n for (const chunk of chunks) {\n merged.set(chunk, offset)\n offset += chunk.length\n }\n\n return merged\n}\n\nexport const readUint32BE = (value: Uint8Array, offset: number): number =>\n new DataView(value.buffer, value.byteOffset, value.byteLength).getUint32(offset, false)\n", "import { base64ToText, bytesToBase64 } from \"./binary\"\n\nexport type BindingPath = Array<string | number>\n\nconst BINDING_TOKEN_SYMBOL = Symbol.for(\"jsxpdf.bindingToken\")\ntype BindingAccessHandler = (path: BindingPath) => void\nconst BINDING_MARKER_PREFIX = \"\\u0001jsxpdf.binding:\"\nconst BINDING_MARKER_SUFFIX = \"\\u0002\"\n\nexport type BindingToken = {\n readonly [BINDING_TOKEN_SYMBOL]: true\n readonly path: BindingPath\n readonly value: unknown\n}\n\nexport type BindingTemplatePart =\n | { type: \"text\"; value: string }\n | { type: \"binding\"; path: BindingPath }\n\nconst DEFAULT_BINDING_PRIMITIVE = \"\"\nconst DEFAULT_SCHEMA_NUMBER = 999\n\nconst encodeBindingPath = (path: BindingPath): string => {\n const json = JSON.stringify(path)\n return bytesToBase64(new TextEncoder().encode(json))\n}\n\nconst decodeBindingPath = (encoded: string): BindingPath | null => {\n try {\n const json = base64ToText(encoded)\n const parsed = JSON.parse(json)\n return Array.isArray(parsed) ? parsed as BindingPath : null\n } catch {\n return null\n }\n}\n\nconst serializeBindingMarker = (path: BindingPath): string => (\n `${BINDING_MARKER_PREFIX}${encodeBindingPath(path)}${BINDING_MARKER_SUFFIX}`\n)\n\nexport const parseBindingTemplateString = (value: string): BindingTemplatePart[] | null => {\n if (!value.includes(BINDING_MARKER_PREFIX)) return null\n\n const parts: BindingTemplatePart[] = []\n let cursor = 0\n\n while (cursor < value.length) {\n const markerStart = value.indexOf(BINDING_MARKER_PREFIX, cursor)\n if (markerStart < 0) {\n if (cursor < value.length) parts.push({ type: \"text\", value: value.slice(cursor) })\n break\n }\n\n if (markerStart > cursor) {\n parts.push({ type: \"text\", value: value.slice(cursor, markerStart) })\n }\n\n const encodedStart = markerStart + BINDING_MARKER_PREFIX.length\n const markerEnd = value.indexOf(BINDING_MARKER_SUFFIX, encodedStart)\n if (markerEnd < 0) return null\n\n const path = decodeBindingPath(value.slice(encodedStart, markerEnd))\n if (!path) return null\n parts.push({ type: \"binding\", path })\n cursor = markerEnd + BINDING_MARKER_SUFFIX.length\n }\n\n return parts.some((part) => part.type === \"binding\") ? parts : null\n}\n\nexport const createBindingToken = (\n path: BindingPath,\n value: unknown = DEFAULT_BINDING_PRIMITIVE,\n onAccess?: BindingAccessHandler,\n templateString = false,\n): BindingToken => {\n const target = {\n [BINDING_TOKEN_SYMBOL]: true as const,\n path: [...path],\n value,\n }\n\n return new Proxy(target, {\n get(currentTarget, property, receiver) {\n if (property === BINDING_TOKEN_SYMBOL || property === \"path\" || property === \"value\") {\n return Reflect.get(currentTarget, property, receiver)\n }\n if (templateString && (property === \"toLocaleDateString\" || property === \"toDateString\" || property === \"toLocaleString\")) {\n return () => serializeBindingMarker(currentTarget.path)\n }\n if (property === \"toString\") {\n return () => templateString\n ? serializeBindingMarker(currentTarget.path)\n : String(currentTarget.value ?? DEFAULT_BINDING_PRIMITIVE)\n }\n if (property === \"valueOf\") {\n return () => templateString\n ? DEFAULT_SCHEMA_NUMBER\n : currentTarget.value ?? DEFAULT_BINDING_PRIMITIVE\n }\n if (property === Symbol.toPrimitive) {\n return (hint: string) => templateString\n ? (hint === \"number\" ? DEFAULT_SCHEMA_NUMBER : serializeBindingMarker(currentTarget.path))\n : currentTarget.value ?? DEFAULT_BINDING_PRIMITIVE\n }\n if (typeof property === \"symbol\") return Reflect.get(currentTarget, property, receiver)\n const nextPath = [...currentTarget.path, property]\n onAccess?.(nextPath)\n return createBindingToken(nextPath, DEFAULT_BINDING_PRIMITIVE, onAccess, templateString)\n }\n }) as BindingToken\n}\n\nexport const isBindingToken = (value: unknown): value is BindingToken => {\n return Boolean(value && typeof value === \"object\" && (value as Record<PropertyKey, unknown>)[BINDING_TOKEN_SYMBOL] === true)\n}\n", "import colorString from \"color-string\"\n\nexport type PdfColor = {\n value: string\n opacity: number\n}\n\nconst clampOpacity = (value: number | undefined): number => {\n if (value == null || Number.isNaN(value)) return 1\n return Math.max(0, Math.min(1, value))\n}\n\n// Bounded memo: colors repeat heavily across nodes and renders.\nconst RESOLVE_COLOR_CACHE_LIMIT = 2048\nlet resolveColorCache = new Map<string, PdfColor>()\n\nexport const resolveColor = (input: string | undefined, fallback = \"#000000\"): PdfColor => {\n if (!input) return { value: fallback, opacity: 1 }\n const cached = resolveColorCache.get(input)\n if (cached) return cached\n\n const parsed = colorString.get(input)\n let resolved: PdfColor\n if (!parsed) {\n resolved = { value: input, opacity: 1 }\n } else if (parsed.model === \"rgb\") {\n const [red, green, blue, alpha] = parsed.value as [number, number, number, number?]\n resolved = {\n value: colorString.to.hex(red, green, blue) ?? input,\n opacity: clampOpacity(alpha)\n }\n } else {\n const rgb = colorString.to.rgb(...(parsed.value as [number, number, number, number?]))\n const parsedRgb = rgb ? colorString.get(rgb) : null\n if (!parsedRgb || parsedRgb.model !== \"rgb\") {\n resolved = { value: input, opacity: 1 }\n } else {\n const [red, green, blue, alpha] = parsedRgb.value as [number, number, number, number?]\n resolved = {\n value: colorString.to.hex(red, green, blue) ?? input,\n opacity: clampOpacity(alpha)\n }\n }\n }\n\n if (resolveColorCache.size >= RESOLVE_COLOR_CACHE_LIMIT) {\n resolveColorCache = new Map()\n }\n resolveColorCache.set(input, resolved)\n return resolved\n}\n", "{\"Courier\":{\"ascender\":629,\"descender\":-157,\"capHeight\":562,\"xHeight\":426,\"lineGap\":269,\"widths\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,0,600,0,600,600,600,600,600,600,600,600,600,600,600,0,600,0,0,600,600,600,600,600,600,600,600,600,600,600,600,0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,0],\"names\":[\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\"space\",\"exclam\",\"quotedbl\",\"numbersign\",\"dollar\",\"percent\",\"ampersand\",\"quotesingle\",\"parenleft\",\"parenright\",\"asterisk\",\"plus\",\"comma\",\"hyphen\",\"period\",\"slash\",\"zero\",\"one\",\"two\",\"three\",\"four\",\"five\",\"six\",\"seven\",\"eight\",\"nine\",\"colon\",\"semicolon\",\"less\",\"equal\",\"greater\",\"question\",\"at\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"bracketleft\",\"backslash\",\"bracketright\",\"asciicircum\",\"underscore\",\"grave\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"braceleft\",\"bar\",\"braceright\",\"asciitilde\",\".notdef\",\"Euro\",\".notdef\",\"quotesinglbase\",\"florin\",\"quotedblbase\",\"ellipsis\",\"dagger\",\"daggerdbl\",\"circumflex\",\"perthousand\",\"Scaron\",\"guilsinglleft\",\"OE\",\".notdef\",\"Zcaron\",\".notdef\",\".notdef\",\"quoteleft\",\"quoteright\",\"quotedblleft\",\"quotedblright\",\"bullet\",\"endash\",\"emdash\",\"tilde\",\"trademark\",\"scaron\",\"guilsinglright\",\"oe\",\".notdef\",\"zcaron\",\"ydieresis\",\"space\",\"exclamdown\",\"cent\",\"sterling\",\"currency\",\"yen\",\"brokenbar\",\"section\",\"dieresis\",\"copyright\",\"ordfeminine\",\"guillemotleft\",\"logicalnot\",\"hyphen\",\"registered\",\"macron\",\"degree\",\"plusminus\",\"twosuperior\",\"threesuperior\",\"acute\",\"mu\",\"paragraph\",\"periodcentered\",\"cedilla\",\"onesuperior\",\"ordmasculine\",\"guillemotright\",\"onequarter\",\"onehalf\",\"threequarters\",\"questiondown\",\"Agrave\",\"Aacute\",\"Acircumflex\",\"Atilde\",\"Adieresis\",\"Aring\",\"AE\",\"Ccedilla\",\"Egrave\",\"Eacute\",\"Ecircumflex\",\"Edieresis\",\"Igrave\",\"Iacute\",\"Icircumflex\",\"Idieresis\",\"Eth\",\"Ntilde\",\"Ograve\",\"Oacute\",\"Ocircumflex\",\"Otilde\",\"Odieresis\",\"multiply\",\"Oslash\",\"Ugrave\",\"Uacute\",\"Ucircumflex\",\"Udieresis\",\"Yacute\",\"Thorn\",\"germandbls\",\"agrave\",\"aacute\",\"acircumflex\",\"atilde\",\"adieresis\",\"aring\",\"ae\",\"ccedilla\",\"egrave\",\"eacute\",\"ecircumflex\",\"edieresis\",\"igrave\",\"iacute\",\"icircumflex\",\"idieresis\",\"eth\",\"ntilde\",\"ograve\",\"oacute\",\"ocircumflex\",\"otilde\",\"odieresis\",\"divide\",\"oslash\",\"ugrave\",\"uacute\",\"ucircumflex\",\"udieresis\",\"yacute\",\"thorn\",\"ydieresis\\\\\"]},\"Courier-Bold\":{\"ascender\":629,\"descender\":-157,\"capHeight\":562,\"xHeight\":439,\"lineGap\":265,\"widths\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,0,600,0,600,600,600,600,600,600,600,600,600,600,600,0,600,0,0,600,600,600,600,600,600,600,600,600,600,600,600,0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,0],\"names\":[\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\"space\",\"exclam\",\"quotedbl\",\"numbersign\",\"dollar\",\"percent\",\"ampersand\",\"quotesingle\",\"parenleft\",\"parenright\",\"asterisk\",\"plus\",\"comma\",\"hyphen\",\"period\",\"slash\",\"zero\",\"one\",\"two\",\"three\",\"four\",\"five\",\"six\",\"seven\",\"eight\",\"nine\",\"colon\",\"semicolon\",\"less\",\"equal\",\"greater\",\"question\",\"at\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"bracketleft\",\"backslash\",\"bracketright\",\"asciicircum\",\"underscore\",\"grave\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"braceleft\",\"bar\",\"braceright\",\"asciitilde\",\".notdef\",\"Euro\",\".notdef\",\"quotesinglbase\",\"florin\",\"quotedblbase\",\"ellipsis\",\"dagger\",\"daggerdbl\",\"circumflex\",\"perthousand\",\"Scaron\",\"guilsinglleft\",\"OE\",\".notdef\",\"Zcaron\",\".notdef\",\".notdef\",\"quoteleft\",\"quoteright\",\"quotedblleft\",\"quotedblright\",\"bullet\",\"endash\",\"emdash\",\"tilde\",\"trademark\",\"scaron\",\"guilsinglright\",\"oe\",\".notdef\",\"zcaron\",\"ydieresis\",\"space\",\"exclamdown\",\"cent\",\"sterling\",\"currency\",\"yen\",\"brokenbar\",\"section\",\"dieresis\",\"copyright\",\"ordfeminine\",\"guillemotleft\",\"logicalnot\",\"hyphen\",\"registered\",\"macron\",\"degree\",\"plusminus\",\"twosuperior\",\"threesuperior\",\"acute\",\"mu\",\"paragraph\",\"periodcentered\",\"cedilla\",\"onesuperior\",\"ordmasculine\",\"guillemotright\",\"onequarter\",\"onehalf\",\"threequarters\",\"questiondown\",\"Agrave\",\"Aacute\",\"Acircumflex\",\"Atilde\",\"Adieresis\",\"Aring\",\"AE\",\"Ccedilla\",\"Egrave\",\"Eacute\",\"Ecircumflex\",\"Edieresis\",\"Igrave\",\"Iacute\",\"Icircumflex\",\"Idieresis\",\"Eth\",\"Ntilde\",\"Ograve\",\"Oacute\",\"Ocircumflex\",\"Otilde\",\"Odieresis\",\"multiply\",\"Oslash\",\"Ugrave\",\"Uacute\",\"Ucircumflex\",\"Udieresis\",\"Yacute\",\"Thorn\",\"germandbls\",\"agrave\",\"aacute\",\"acircumflex\",\"atilde\",\"adieresis\",\"aring\",\"ae\",\"ccedilla\",\"egrave\",\"eacute\",\"ecircumflex\",\"edieresis\",\"igrave\",\"iacute\",\"icircumflex\",\"idieresis\",\"eth\",\"ntilde\",\"ograve\",\"oacute\",\"ocircumflex\",\"otilde\",\"odieresis\",\"divide\",\"oslash\",\"ugrave\",\"uacute\",\"ucircumflex\",\"udieresis\",\"yacute\",\"thorn\",\"ydieresis\\\\\"]},\"Courier-Oblique\":{\"ascender\":629,\"descender\":-157,\"capHeight\":562,\"xHeight\":426,\"lineGap\":269,\"widths\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,0,600,0,600,600,600,600,600,600,600,600,600,600,600,0,600,0,0,600,600,600,600,600,600,600,600,600,600,600,600,0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,0],\"names\":[\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\"space\",\"exclam\",\"quotedbl\",\"numbersign\",\"dollar\",\"percent\",\"ampersand\",\"quotesingle\",\"parenleft\",\"parenright\",\"asterisk\",\"plus\",\"comma\",\"hyphen\",\"period\",\"slash\",\"zero\",\"one\",\"two\",\"three\",\"four\",\"five\",\"six\",\"seven\",\"eight\",\"nine\",\"colon\",\"semicolon\",\"less\",\"equal\",\"greater\",\"question\",\"at\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"bracketleft\",\"backslash\",\"bracketright\",\"asciicircum\",\"underscore\",\"grave\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"braceleft\",\"bar\",\"braceright\",\"asciitilde\",\".notdef\",\"Euro\",\".notdef\",\"quotesinglbase\",\"florin\",\"quotedblbase\",\"ellipsis\",\"dagger\",\"daggerdbl\",\"circumflex\",\"perthousand\",\"Scaron\",\"guilsinglleft\",\"OE\",\".notdef\",\"Zcaron\",\".notdef\",\".notdef\",\"quoteleft\",\"quoteright\",\"quotedblleft\",\"quotedblright\",\"bullet\",\"endash\",\"emdash\",\"tilde\",\"trademark\",\"scaron\",\"guilsinglright\",\"oe\",\".notdef\",\"zcaron\",\"ydieresis\",\"space\",\"exclamdown\",\"cent\",\"sterling\",\"currency\",\"yen\",\"brokenbar\",\"section\",\"dieresis\",\"copyright\",\"ordfeminine\",\"guillemotleft\",\"logicalnot\",\"hyphen\",\"registered\",\"macron\",\"degree\",\"plusminus\",\"twosuperior\",\"threesuperior\",\"acute\",\"mu\",\"paragraph\",\"periodcentered\",\"cedilla\",\"onesuperior\",\"ordmasculine\",\"guillemotright\",\"onequarter\",\"onehalf\",\"threequarters\",\"questiondown\",\"Agrave\",\"Aacute\",\"Acircumflex\",\"Atilde\",\"Adieresis\",\"Aring\",\"AE\",\"Ccedilla\",\"Egrave\",\"Eacute\",\"Ecircumflex\",\"Edieresis\",\"Igrave\",\"Iacute\",\"Icircumflex\",\"Idieresis\",\"Eth\",\"Ntilde\",\"Ograve\",\"Oacute\",\"Ocircumflex\",\"Otilde\",\"Odieresis\",\"multiply\",\"Oslash\",\"Ugrave\",\"Uacute\",\"Ucircumflex\",\"Udieresis\",\"Yacute\",\"Thorn\",\"germandbls\",\"agrave\",\"aacute\",\"acircumflex\",\"atilde\",\"adieresis\",\"aring\",\"ae\",\"ccedilla\",\"egrave\",\"eacute\",\"ecircumflex\",\"edieresis\",\"igrave\",\"iacute\",\"icircumflex\",\"idieresis\",\"eth\",\"ntilde\",\"ograve\",\"oacute\",\"ocircumflex\",\"otilde\",\"odieresis\",\"divide\",\"oslash\",\"ugrave\",\"uacute\",\"ucircumflex\",\"udieresis\",\"yacute\",\"thorn\",\"ydieresis\\\\\"]},\"Courier-BoldOblique\":{\"ascender\":629,\"descender\":-157,\"capHeight\":562,\"xHeight\":439,\"lineGap\":265,\"widths\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,0,600,0,600,600,600,600,600,600,600,600,600,600,600,0,600,0,0,600,600,600,600,600,600,600,600,600,600,600,600,0,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,0],\"names\":[\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\"space\",\"exclam\",\"quotedbl\",\"numbersign\",\"dollar\",\"percent\",\"ampersand\",\"quotesingle\",\"parenleft\",\"parenright\",\"asterisk\",\"plus\",\"comma\",\"hyphen\",\"period\",\"slash\",\"zero\",\"one\",\"two\",\"three\",\"four\",\"five\",\"six\",\"seven\",\"eight\",\"nine\",\"colon\",\"semicolon\",\"less\",\"equal\",\"greater\",\"question\",\"at\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"bracketleft\",\"backslash\",\"bracketright\",\"asciicircum\",\"underscore\",\"grave\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"braceleft\",\"bar\",\"braceright\",\"asciitilde\",\".notdef\",\"Euro\",\".notdef\",\"quotesinglbase\",\"florin\",\"quotedblbase\",\"ellipsis\",\"dagger\",\"daggerdbl\",\"circumflex\",\"perthousand\",\"Scaron\",\"guilsinglleft\",\"OE\",\".notdef\",\"Zcaron\",\".notdef\",\".notdef\",\"quoteleft\",\"quoteright\",\"quotedblleft\",\"quotedblright\",\"bullet\",\"endash\",\"emdash\",\"tilde\",\"trademark\",\"scaron\",\"guilsinglright\",\"oe\",\".notdef\",\"zcaron\",\"ydieresis\",\"space\",\"exclamdown\",\"cent\",\"sterling\",\"currency\",\"yen\",\"brokenbar\",\"section\",\"dieresis\",\"copyright\",\"ordfeminine\",\"guillemotleft\",\"logicalnot\",\"hyphen\",\"registered\",\"macron\",\"degree\",\"plusminus\",\"twosuperior\",\"threesuperior\",\"acute\",\"mu\",\"paragraph\",\"periodcentered\",\"cedilla\",\"onesuperior\",\"ordmasculine\",\"guillemotright\",\"onequarter\",\"onehalf\",\"threequarters\",\"questiondown\",\"Agrave\",\"Aacute\",\"Acircumflex\",\"Atilde\",\"Adieresis\",\"Aring\",\"AE\",\"Ccedilla\",\"Egrave\",\"Eacute\",\"Ecircumflex\",\"Edieresis\",\"Igrave\",\"Iacute\",\"Icircumflex\",\"Idieresis\",\"Eth\",\"Ntilde\",\"Ograve\",\"Oacute\",\"Ocircumflex\",\"Otilde\",\"Odieresis\",\"multiply\",\"Oslash\",\"Ugrave\",\"Uacute\",\"Ucircumflex\",\"Udieresis\",\"Yacute\",\"Thorn\",\"germandbls\",\"agrave\",\"aacute\",\"acircumflex\",\"atilde\",\"adieresis\",\"aring\",\"ae\",\"ccedilla\",\"egrave\",\"eacute\",\"ecircumflex\",\"edieresis\",\"igrave\",\"iacute\",\"icircumflex\",\"idieresis\",\"eth\",\"ntilde\",\"ograve\",\"oacute\",\"ocircumflex\",\"otilde\",\"odieresis\",\"divide\",\"oslash\",\"ugrave\",\"uacute\",\"ucircumflex\",\"udieresis\",\"yacute\",\"thorn\",\"ydieresis\\\\\"]},\"Helvetica\":{\"ascender\":718,\"descender\":-207,\"capHeight\":718,\"xHeight\":523,\"lineGap\":231,\"widths\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,0,556,0,222,556,333,1000,556,556,333,1000,667,333,1000,0,611,0,0,222,222,333,333,350,556,1000,333,1000,500,333,944,0,500,500,278,333,556,556,556,556,260,556,333,737,370,556,584,333,737,333,400,584,333,333,333,556,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1000,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,584,611,556,556,556,556,500,556,0],\"names\":[\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\"space\",\"exclam\",\"quotedbl\",\"numbersign\",\"dollar\",\"percent\",\"ampersand\",\"quotesingle\",\"parenleft\",\"parenright\",\"asterisk\",\"plus\",\"comma\",\"hyphen\",\"period\",\"slash\",\"zero\",\"one\",\"two\",\"three\",\"four\",\"five\",\"six\",\"seven\",\"eight\",\"nine\",\"colon\",\"semicolon\",\"less\",\"equal\",\"greater\",\"question\",\"at\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"bracketleft\",\"backslash\",\"bracketright\",\"asciicircum\",\"underscore\",\"grave\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"braceleft\",\"bar\",\"braceright\",\"asciitilde\",\".notdef\",\"Euro\",\".notdef\",\"quotesinglbase\",\"florin\",\"quotedblbase\",\"ellipsis\",\"dagger\",\"daggerdbl\",\"circumflex\",\"perthousand\",\"Scaron\",\"guilsinglleft\",\"OE\",\".notdef\",\"Zcaron\",\".notdef\",\".notdef\",\"quoteleft\",\"quoteright\",\"quotedblleft\",\"quotedblright\",\"bullet\",\"endash\",\"emdash\",\"tilde\",\"trademark\",\"scaron\",\"guilsinglright\",\"oe\",\".notdef\",\"zcaron\",\"ydieresis\",\"space\",\"exclamdown\",\"cent\",\"sterling\",\"currency\",\"yen\",\"brokenbar\",\"section\",\"dieresis\",\"copyright\",\"ordfeminine\",\"guillemotleft\",\"logicalnot\",\"hyphen\",\"registered\",\"macron\",\"degree\",\"plusminus\",\"twosuperior\",\"threesuperior\",\"acute\",\"mu\",\"paragraph\",\"periodcentered\",\"cedilla\",\"onesuperior\",\"ordmasculine\",\"guillemotright\",\"onequarter\",\"onehalf\",\"threequarters\",\"questiondown\",\"Agrave\",\"Aacute\",\"Acircumflex\",\"Atilde\",\"Adieresis\",\"Aring\",\"AE\",\"Ccedilla\",\"Egrave\",\"Eacute\",\"Ecircumflex\",\"Edieresis\",\"Igrave\",\"Iacute\",\"Icircumflex\",\"Idieresis\",\"Eth\",\"Ntilde\",\"Ograve\",\"Oacute\",\"Ocircumflex\",\"Otilde\",\"Odieresis\",\"multiply\",\"Oslash\",\"Ugrave\",\"Uacute\",\"Ucircumflex\",\"Udieresis\",\"Yacute\",\"Thorn\",\"germandbls\",\"agrave\",\"aacute\",\"acircumflex\",\"atilde\",\"adieresis\",\"aring\",\"ae\",\"ccedilla\",\"egrave\",\"eacute\",\"ecircumflex\",\"edieresis\",\"igrave\",\"iacute\",\"icircumflex\",\"idieresis\",\"eth\",\"ntilde\",\"ograve\",\"oacute\",\"ocircumflex\",\"otilde\",\"odieresis\",\"divide\",\"oslash\",\"ugrave\",\"uacute\",\"ucircumflex\",\"udieresis\",\"yacute\",\"thorn\",\"ydieresis\\\\\"]},\"Helvetica-Bold\":{\"ascender\":718,\"descender\":-207,\"capHeight\":718,\"xHeight\":532,\"lineGap\":265,\"widths\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,0,556,0,278,556,500,1000,556,556,333,1000,667,333,1000,0,611,0,0,278,278,500,500,350,556,1000,333,1000,556,333,944,0,500,556,278,333,556,556,556,556,280,556,333,737,370,556,584,333,737,333,400,584,333,333,333,611,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1000,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,584,611,611,611,611,611,556,611,0],\"names\":[\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\"space\",\"exclam\",\"quotedbl\",\"numbersign\",\"dollar\",\"percent\",\"ampersand\",\"quotesingle\",\"parenleft\",\"parenright\",\"asterisk\",\"plus\",\"comma\",\"hyphen\",\"period\",\"slash\",\"zero\",\"one\",\"two\",\"three\",\"four\",\"five\",\"six\",\"seven\",\"eight\",\"nine\",\"colon\",\"semicolon\",\"less\",\"equal\",\"greater\",\"question\",\"at\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"bracketleft\",\"backslash\",\"bracketright\",\"asciicircum\",\"underscore\",\"grave\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"braceleft\",\"bar\",\"braceright\",\"asciitilde\",\".notdef\",\"Euro\",\".notdef\",\"quotesinglbase\",\"florin\",\"quotedblbase\",\"ellipsis\",\"dagger\",\"daggerdbl\",\"circumflex\",\"perthousand\",\"Scaron\",\"guilsinglleft\",\"OE\",\".notdef\",\"Zcaron\",\".notdef\",\".notdef\",\"quoteleft\",\"quoteright\",\"quotedblleft\",\"quotedblright\",\"bullet\",\"endash\",\"emdash\",\"tilde\",\"trademark\",\"scaron\",\"guilsinglright\",\"oe\",\".notdef\",\"zcaron\",\"ydieresis\",\"space\",\"exclamdown\",\"cent\",\"sterling\",\"currency\",\"yen\",\"brokenbar\",\"section\",\"dieresis\",\"copyright\",\"ordfeminine\",\"guillemotleft\",\"logicalnot\",\"hyphen\",\"registered\",\"macron\",\"degree\",\"plusminus\",\"twosuperior\",\"threesuperior\",\"acute\",\"mu\",\"paragraph\",\"periodcentered\",\"cedilla\",\"onesuperior\",\"ordmasculine\",\"guillemotright\",\"onequarter\",\"onehalf\",\"threequarters\",\"questiondown\",\"Agrave\",\"Aacute\",\"Acircumflex\",\"Atilde\",\"Adieresis\",\"Aring\",\"AE\",\"Ccedilla\",\"Egrave\",\"Eacute\",\"Ecircumflex\",\"Edieresis\",\"Igrave\",\"Iacute\",\"Icircumflex\",\"Idieresis\",\"Eth\",\"Ntilde\",\"Ograve\",\"Oacute\",\"Ocircumflex\",\"Otilde\",\"Odieresis\",\"multiply\",\"Oslash\",\"Ugrave\",\"Uacute\",\"Ucircumflex\",\"Udieresis\",\"Yacute\",\"Thorn\",\"germandbls\",\"agrave\",\"aacute\",\"acircumflex\",\"atilde\",\"adieresis\",\"aring\",\"ae\",\"ccedilla\",\"egrave\",\"eacute\",\"ecircumflex\",\"edieresis\",\"igrave\",\"iacute\",\"icircumflex\",\"idieresis\",\"eth\",\"ntilde\",\"ograve\",\"oacute\",\"ocircumflex\",\"otilde\",\"odieresis\",\"divide\",\"oslash\",\"ugrave\",\"uacute\",\"ucircumflex\",\"udieresis\",\"yacute\",\"thorn\",\"ydieresis\\\\\"]},\"Helvetica-Oblique\":{\"ascender\":718,\"descender\":-207,\"capHeight\":718,\"xHeight\":523,\"lineGap\":231,\"widths\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,0,556,0,222,556,333,1000,556,556,333,1000,667,333,1000,0,611,0,0,222,222,333,333,350,556,1000,333,1000,500,333,944,0,500,500,278,333,556,556,556,556,260,556,333,737,370,556,584,333,737,333,400,584,333,333,333,556,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1000,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,584,611,556,556,556,556,500,556,0],\"names\":[\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\"space\",\"exclam\",\"quotedbl\",\"numbersign\",\"dollar\",\"percent\",\"ampersand\",\"quotesingle\",\"parenleft\",\"parenright\",\"asterisk\",\"plus\",\"comma\",\"hyphen\",\"period\",\"slash\",\"zero\",\"one\",\"two\",\"three\",\"four\",\"five\",\"six\",\"seven\",\"eight\",\"nine\",\"colon\",\"semicolon\",\"less\",\"equal\",\"greater\",\"question\",\"at\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"bracketleft\",\"backslash\",\"bracketright\",\"asciicircum\",\"underscore\",\"grave\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"braceleft\",\"bar\",\"braceright\",\"asciitilde\",\".notdef\",\"Euro\",\".notdef\",\"quotesinglbase\",\"florin\",\"quotedblbase\",\"ellipsis\",\"dagger\",\"daggerdbl\",\"circumflex\",\"perthousand\",\"Scaron\",\"guilsinglleft\",\"OE\",\".notdef\",\"Zcaron\",\".notdef\",\".notdef\",\"quoteleft\",\"quoteright\",\"quotedblleft\",\"quotedblright\",\"bullet\",\"endash\",\"emdash\",\"tilde\",\"trademark\",\"scaron\",\"guilsinglright\",\"oe\",\".notdef\",\"zcaron\",\"ydieresis\",\"space\",\"exclamdown\",\"cent\",\"sterling\",\"currency\",\"yen\",\"brokenbar\",\"section\",\"dieresis\",\"copyright\",\"ordfeminine\",\"guillemotleft\",\"logicalnot\",\"hyphen\",\"registered\",\"macron\",\"degree\",\"plusminus\",\"twosuperior\",\"threesuperior\",\"acute\",\"mu\",\"paragraph\",\"periodcentered\",\"cedilla\",\"onesuperior\",\"ordmasculine\",\"guillemotright\",\"onequarter\",\"onehalf\",\"threequarters\",\"questiondown\",\"Agrave\",\"Aacute\",\"Acircumflex\",\"Atilde\",\"Adieresis\",\"Aring\",\"AE\",\"Ccedilla\",\"Egrave\",\"Eacute\",\"Ecircumflex\",\"Edieresis\",\"Igrave\",\"Iacute\",\"Icircumflex\",\"Idieresis\",\"Eth\",\"Ntilde\",\"Ograve\",\"Oacute\",\"Ocircumflex\",\"Otilde\",\"Odieresis\",\"multiply\",\"Oslash\",\"Ugrave\",\"Uacute\",\"Ucircumflex\",\"Udieresis\",\"Yacute\",\"Thorn\",\"germandbls\",\"agrave\",\"aacute\",\"acircumflex\",\"atilde\",\"adieresis\",\"aring\",\"ae\",\"ccedilla\",\"egrave\",\"eacute\",\"ecircumflex\",\"edieresis\",\"igrave\",\"iacute\",\"icircumflex\",\"idieresis\",\"eth\",\"ntilde\",\"ograve\",\"oacute\",\"ocircumflex\",\"otilde\",\"odieresis\",\"divide\",\"oslash\",\"ugrave\",\"uacute\",\"ucircumflex\",\"udieresis\",\"yacute\",\"thorn\",\"ydieresis\\\\\"]},\"Helvetica-BoldOblique\":{\"ascender\":718,\"descender\":-207,\"capHeight\":718,\"xHeight\":532,\"lineGap\":265,\"widths\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,0,556,0,278,556,500,1000,556,556,333,1000,667,333,1000,0,611,0,0,278,278,500,500,350,556,1000,333,1000,556,333,944,0,500,556,278,333,556,556,556,556,280,556,333,737,370,556,584,333,737,333,400,584,333,333,333,611,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1000,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,584,611,611,611,611,611,556,611,0],\"names\":[\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\"space\",\"exclam\",\"quotedbl\",\"numbersign\",\"dollar\",\"percent\",\"ampersand\",\"quotesingle\",\"parenleft\",\"parenright\",\"asterisk\",\"plus\",\"comma\",\"hyphen\",\"period\",\"slash\",\"zero\",\"one\",\"two\",\"three\",\"four\",\"five\",\"six\",\"seven\",\"eight\",\"nine\",\"colon\",\"semicolon\",\"less\",\"equal\",\"greater\",\"question\",\"at\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"bracketleft\",\"backslash\",\"bracketright\",\"asciicircum\",\"underscore\",\"grave\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"braceleft\",\"bar\",\"braceright\",\"asciitilde\",\".notdef\",\"Euro\",\".notdef\",\"quotesinglbase\",\"florin\",\"quotedblbase\",\"ellipsis\",\"dagger\",\"daggerdbl\",\"circumflex\",\"perthousand\",\"Scaron\",\"guilsinglleft\",\"OE\",\".notdef\",\"Zcaron\",\".notdef\",\".notdef\",\"quoteleft\",\"quoteright\",\"quotedblleft\",\"quotedblright\",\"bullet\",\"endash\",\"emdash\",\"tilde\",\"trademark\",\"scaron\",\"guilsinglright\",\"oe\",\".notdef\",\"zcaron\",\"ydieresis\",\"space\",\"exclamdown\",\"cent\",\"sterling\",\"currency\",\"yen\",\"brokenbar\",\"section\",\"dieresis\",\"copyright\",\"ordfeminine\",\"guillemotleft\",\"logicalnot\",\"hyphen\",\"registered\",\"macron\",\"degree\",\"plusminus\",\"twosuperior\",\"threesuperior\",\"acute\",\"mu\",\"paragraph\",\"periodcentered\",\"cedilla\",\"onesuperior\",\"ordmasculine\",\"guillemotright\",\"onequarter\",\"onehalf\",\"threequarters\",\"questiondown\",\"Agrave\",\"Aacute\",\"Acircumflex\",\"Atilde\",\"Adieresis\",\"Aring\",\"AE\",\"Ccedilla\",\"Egrave\",\"Eacute\",\"Ecircumflex\",\"Edieresis\",\"Igrave\",\"Iacute\",\"Icircumflex\",\"Idieresis\",\"Eth\",\"Ntilde\",\"Ograve\",\"Oacute\",\"Ocircumflex\",\"Otilde\",\"Odieresis\",\"multiply\",\"Oslash\",\"Ugrave\",\"Uacute\",\"Ucircumflex\",\"Udieresis\",\"Yacute\",\"Thorn\",\"germandbls\",\"agrave\",\"aacute\",\"acircumflex\",\"atilde\",\"adieresis\",\"aring\",\"ae\",\"ccedilla\",\"egrave\",\"eacute\",\"ecircumflex\",\"edieresis\",\"igrave\",\"iacute\",\"icircumflex\",\"idieresis\",\"eth\",\"ntilde\",\"ograve\",\"oacute\",\"ocircumflex\",\"otilde\",\"odieresis\",\"divide\",\"oslash\",\"ugrave\",\"uacute\",\"ucircumflex\",\"udieresis\",\"yacute\",\"thorn\",\"ydieresis\\\\\"]},\"Times-Roman\":{\"ascender\":683,\"descender\":-217,\"capHeight\":662,\"xHeight\":450,\"lineGap\":216,\"widths\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,250,333,408,500,500,833,778,180,333,333,500,564,250,333,250,278,500,500,500,500,500,500,500,500,500,500,278,278,564,564,564,444,921,722,667,667,722,611,556,722,722,333,389,722,611,889,722,722,556,722,667,556,611,722,722,944,722,722,611,333,278,333,469,500,333,444,500,444,500,444,333,500,500,278,278,500,278,778,500,500,500,500,333,389,278,500,500,722,500,500,444,480,200,480,541,0,500,0,333,500,444,1000,500,500,333,1000,556,333,889,0,611,0,0,333,333,444,444,350,500,1000,333,980,389,333,722,0,444,500,250,333,500,500,500,500,200,500,333,760,276,500,564,333,760,333,400,564,300,300,333,500,453,250,333,300,310,500,750,750,750,444,722,722,722,722,722,722,889,667,611,611,611,611,333,333,333,333,722,722,722,722,722,722,722,564,722,722,722,722,722,722,556,500,444,444,444,444,444,444,667,444,444,444,444,444,278,278,278,278,500,500,500,500,500,500,500,564,500,500,500,500,500,500,500,0],\"names\":[\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\"space\",\"exclam\",\"quotedbl\",\"numbersign\",\"dollar\",\"percent\",\"ampersand\",\"quotesingle\",\"parenleft\",\"parenright\",\"asterisk\",\"plus\",\"comma\",\"hyphen\",\"period\",\"slash\",\"zero\",\"one\",\"two\",\"three\",\"four\",\"five\",\"six\",\"seven\",\"eight\",\"nine\",\"colon\",\"semicolon\",\"less\",\"equal\",\"greater\",\"question\",\"at\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"bracketleft\",\"backslash\",\"bracketright\",\"asciicircum\",\"underscore\",\"grave\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"braceleft\",\"bar\",\"braceright\",\"asciitilde\",\".notdef\",\"Euro\",\".notdef\",\"quotesinglbase\",\"florin\",\"quotedblbase\",\"ellipsis\",\"dagger\",\"daggerdbl\",\"circumflex\",\"perthousand\",\"Scaron\",\"guilsinglleft\",\"OE\",\".notdef\",\"Zcaron\",\".notdef\",\".notdef\",\"quoteleft\",\"quoteright\",\"quotedblleft\",\"quotedblright\",\"bullet\",\"endash\",\"emdash\",\"tilde\",\"trademark\",\"scaron\",\"guilsinglright\",\"oe\",\".notdef\",\"zcaron\",\"ydieresis\",\"space\",\"exclamdown\",\"cent\",\"sterling\",\"currency\",\"yen\",\"brokenbar\",\"section\",\"dieresis\",\"copyright\",\"ordfeminine\",\"guillemotleft\",\"logicalnot\",\"hyphen\",\"registered\",\"macron\",\"degree\",\"plusminus\",\"twosuperior\",\"threesuperior\",\"acute\",\"mu\",\"paragraph\",\"periodcentered\",\"cedilla\",\"onesuperior\",\"ordmasculine\",\"guillemotright\",\"onequarter\",\"onehalf\",\"threequarters\",\"questiondown\",\"Agrave\",\"Aacute\",\"Acircumflex\",\"Atilde\",\"Adieresis\",\"Aring\",\"AE\",\"Ccedilla\",\"Egrave\",\"Eacute\",\"Ecircumflex\",\"Edieresis\",\"Igrave\",\"Iacute\",\"Icircumflex\",\"Idieresis\",\"Eth\",\"Ntilde\",\"Ograve\",\"Oacute\",\"Ocircumflex\",\"Otilde\",\"Odieresis\",\"multiply\",\"Oslash\",\"Ugrave\",\"Uacute\",\"Ucircumflex\",\"Udieresis\",\"Yacute\",\"Thorn\",\"germandbls\",\"agrave\",\"aacute\",\"acircumflex\",\"atilde\",\"adieresis\",\"aring\",\"ae\",\"ccedilla\",\"egrave\",\"eacute\",\"ecircumflex\",\"edieresis\",\"igrave\",\"iacute\",\"icircumflex\",\"idieresis\",\"eth\",\"ntilde\",\"ograve\",\"oacute\",\"ocircumflex\",\"otilde\",\"odieresis\",\"divide\",\"oslash\",\"ugrave\",\"uacute\",\"ucircumflex\",\"udieresis\",\"yacute\",\"thorn\",\"ydieresis\\\\\"]},\"Times-Bold\":{\"ascender\":683,\"descender\":-217,\"capHeight\":676,\"xHeight\":461,\"lineGap\":253,\"widths\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,250,333,555,500,500,1000,833,278,333,333,500,570,250,333,250,278,500,500,500,500,500,500,500,500,500,500,333,333,570,570,570,500,930,722,667,722,722,667,611,778,778,389,500,778,667,944,722,778,611,778,722,556,667,722,722,1000,722,722,667,333,278,333,581,500,333,500,556,444,556,444,333,500,556,278,333,556,278,833,556,500,556,556,444,389,333,556,500,722,500,500,444,394,220,394,520,0,500,0,333,500,500,1000,500,500,333,1000,556,333,1000,0,667,0,0,333,333,500,500,350,500,1000,333,1000,389,333,722,0,444,500,250,333,500,500,500,500,220,500,333,747,300,500,570,333,747,333,400,570,300,300,333,556,540,250,333,300,330,500,750,750,750,500,722,722,722,722,722,722,1000,722,667,667,667,667,389,389,389,389,722,722,778,778,778,778,778,570,778,722,722,722,722,722,611,556,500,500,500,500,500,500,722,444,444,444,444,444,278,278,278,278,500,556,500,500,500,500,500,570,500,556,556,556,556,500,556,0],\"names\":[\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\"space\",\"exclam\",\"quotedbl\",\"numbersign\",\"dollar\",\"percent\",\"ampersand\",\"quotesingle\",\"parenleft\",\"parenright\",\"asterisk\",\"plus\",\"comma\",\"hyphen\",\"period\",\"slash\",\"zero\",\"one\",\"two\",\"three\",\"four\",\"five\",\"six\",\"seven\",\"eight\",\"nine\",\"colon\",\"semicolon\",\"less\",\"equal\",\"greater\",\"question\",\"at\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"bracketleft\",\"backslash\",\"bracketright\",\"asciicircum\",\"underscore\",\"grave\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"braceleft\",\"bar\",\"braceright\",\"asciitilde\",\".notdef\",\"Euro\",\".notdef\",\"quotesinglbase\",\"florin\",\"quotedblbase\",\"ellipsis\",\"dagger\",\"daggerdbl\",\"circumflex\",\"perthousand\",\"Scaron\",\"guilsinglleft\",\"OE\",\".notdef\",\"Zcaron\",\".notdef\",\".notdef\",\"quoteleft\",\"quoteright\",\"quotedblleft\",\"quotedblright\",\"bullet\",\"endash\",\"emdash\",\"tilde\",\"trademark\",\"scaron\",\"guilsinglright\",\"oe\",\".notdef\",\"zcaron\",\"ydieresis\",\"space\",\"exclamdown\",\"cent\",\"sterling\",\"currency\",\"yen\",\"brokenbar\",\"section\",\"dieresis\",\"copyright\",\"ordfeminine\",\"guillemotleft\",\"logicalnot\",\"hyphen\",\"registered\",\"macron\",\"degree\",\"plusminus\",\"twosuperior\",\"threesuperior\",\"acute\",\"mu\",\"paragraph\",\"periodcentered\",\"cedilla\",\"onesuperior\",\"ordmasculine\",\"guillemotright\",\"onequarter\",\"onehalf\",\"threequarters\",\"questiondown\",\"Agrave\",\"Aacute\",\"Acircumflex\",\"Atilde\",\"Adieresis\",\"Aring\",\"AE\",\"Ccedilla\",\"Egrave\",\"Eacute\",\"Ecircumflex\",\"Edieresis\",\"Igrave\",\"Iacute\",\"Icircumflex\",\"Idieresis\",\"Eth\",\"Ntilde\",\"Ograve\",\"Oacute\",\"Ocircumflex\",\"Otilde\",\"Odieresis\",\"multiply\",\"Oslash\",\"Ugrave\",\"Uacute\",\"Ucircumflex\",\"Udieresis\",\"Yacute\",\"Thorn\",\"germandbls\",\"agrave\",\"aacute\",\"acircumflex\",\"atilde\",\"adieresis\",\"aring\",\"ae\",\"ccedilla\",\"egrave\",\"eacute\",\"ecircumflex\",\"edieresis\",\"igrave\",\"iacute\",\"icircumflex\",\"idieresis\",\"eth\",\"ntilde\",\"ograve\",\"oacute\",\"ocircumflex\",\"otilde\",\"odieresis\",\"divide\",\"oslash\",\"ugrave\",\"uacute\",\"ucircumflex\",\"udieresis\",\"yacute\",\"thorn\",\"ydieresis\\\\\"]},\"Times-Italic\":{\"ascender\":683,\"descender\":-217,\"capHeight\":653,\"xHeight\":441,\"lineGap\":200,\"widths\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,250,333,420,500,500,833,778,214,333,333,500,675,250,333,250,278,500,500,500,500,500,500,500,500,500,500,333,333,675,675,675,500,920,611,611,667,722,611,611,722,722,333,444,667,556,833,667,722,611,722,611,500,556,722,611,833,611,556,556,389,278,389,422,500,333,500,500,444,500,444,278,500,500,278,278,444,278,722,500,500,500,500,389,389,278,500,444,667,444,444,389,400,275,400,541,0,500,0,333,500,556,889,500,500,333,1000,500,333,944,0,556,0,0,333,333,556,556,350,500,889,333,980,389,333,667,0,389,444,250,389,500,500,500,500,275,500,333,760,276,500,675,333,760,333,400,675,300,300,333,500,523,250,333,300,310,500,750,750,750,500,611,611,611,611,611,611,889,667,611,611,611,611,333,333,333,333,722,667,722,722,722,722,722,675,722,722,722,722,722,556,611,500,500,500,500,500,500,500,667,444,444,444,444,444,278,278,278,278,500,500,500,500,500,500,500,675,500,500,500,500,500,444,500,0],\"names\":[\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\"space\",\"exclam\",\"quotedbl\",\"numbersign\",\"dollar\",\"percent\",\"ampersand\",\"quotesingle\",\"parenleft\",\"parenright\",\"asterisk\",\"plus\",\"comma\",\"hyphen\",\"period\",\"slash\",\"zero\",\"one\",\"two\",\"three\",\"four\",\"five\",\"six\",\"seven\",\"eight\",\"nine\",\"colon\",\"semicolon\",\"less\",\"equal\",\"greater\",\"question\",\"at\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"bracketleft\",\"backslash\",\"bracketright\",\"asciicircum\",\"underscore\",\"grave\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"braceleft\",\"bar\",\"braceright\",\"asciitilde\",\".notdef\",\"Euro\",\".notdef\",\"quotesinglbase\",\"florin\",\"quotedblbase\",\"ellipsis\",\"dagger\",\"daggerdbl\",\"circumflex\",\"perthousand\",\"Scaron\",\"guilsinglleft\",\"OE\",\".notdef\",\"Zcaron\",\".notdef\",\".notdef\",\"quoteleft\",\"quoteright\",\"quotedblleft\",\"quotedblright\",\"bullet\",\"endash\",\"emdash\",\"tilde\",\"trademark\",\"scaron\",\"guilsinglright\",\"oe\",\".notdef\",\"zcaron\",\"ydieresis\",\"space\",\"exclamdown\",\"cent\",\"sterling\",\"currency\",\"yen\",\"brokenbar\",\"section\",\"dieresis\",\"copyright\",\"ordfeminine\",\"guillemotleft\",\"logicalnot\",\"hyphen\",\"registered\",\"macron\",\"degree\",\"plusminus\",\"twosuperior\",\"threesuperior\",\"acute\",\"mu\",\"paragraph\",\"periodcentered\",\"cedilla\",\"onesuperior\",\"ordmasculine\",\"guillemotright\",\"onequarter\",\"onehalf\",\"threequarters\",\"questiondown\",\"Agrave\",\"Aacute\",\"Acircumflex\",\"Atilde\",\"Adieresis\",\"Aring\",\"AE\",\"Ccedilla\",\"Egrave\",\"Eacute\",\"Ecircumflex\",\"Edieresis\",\"Igrave\",\"Iacute\",\"Icircumflex\",\"Idieresis\",\"Eth\",\"Ntilde\",\"Ograve\",\"Oacute\",\"Ocircumflex\",\"Otilde\",\"Odieresis\",\"multiply\",\"Oslash\",\"Ugrave\",\"Uacute\",\"Ucircumflex\",\"Udieresis\",\"Yacute\",\"Thorn\",\"germandbls\",\"agrave\",\"aacute\",\"acircumflex\",\"atilde\",\"adieresis\",\"aring\",\"ae\",\"ccedilla\",\"egrave\",\"eacute\",\"ecircumflex\",\"edieresis\",\"igrave\",\"iacute\",\"icircumflex\",\"idieresis\",\"eth\",\"ntilde\",\"ograve\",\"oacute\",\"ocircumflex\",\"otilde\",\"odieresis\",\"divide\",\"oslash\",\"ugrave\",\"uacute\",\"ucircumflex\",\"udieresis\",\"yacute\",\"thorn\",\"ydieresis\\\\\"]},\"Times-BoldItalic\":{\"ascender\":683,\"descender\":-217,\"capHeight\":669,\"xHeight\":462,\"lineGap\":239,\"widths\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,250,389,555,500,500,833,778,278,333,333,500,570,250,333,250,278,500,500,500,500,500,500,500,500,500,500,333,333,570,570,570,500,832,667,667,667,722,667,667,722,778,389,500,667,611,889,722,722,611,722,667,556,611,722,667,889,667,611,611,333,278,333,570,500,333,500,500,444,500,444,333,500,556,278,278,500,278,778,556,500,500,500,389,389,278,556,444,667,500,444,389,348,220,348,570,0,500,0,333,500,500,1000,500,500,333,1000,556,333,944,0,611,0,0,333,333,500,500,350,500,1000,333,1000,389,333,722,0,389,444,250,389,500,500,500,500,220,500,333,747,266,500,606,333,747,333,400,570,300,300,333,576,500,250,333,300,300,500,750,750,750,500,667,667,667,667,667,667,944,667,667,667,667,667,389,389,389,389,722,722,722,722,722,722,722,570,722,722,722,722,722,611,611,500,500,500,500,500,500,500,722,444,444,444,444,444,278,278,278,278,500,556,500,500,500,500,500,570,500,556,556,556,556,444,500,0],\"names\":[\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\"space\",\"exclam\",\"quotedbl\",\"numbersign\",\"dollar\",\"percent\",\"ampersand\",\"quotesingle\",\"parenleft\",\"parenright\",\"asterisk\",\"plus\",\"comma\",\"hyphen\",\"period\",\"slash\",\"zero\",\"one\",\"two\",\"three\",\"four\",\"five\",\"six\",\"seven\",\"eight\",\"nine\",\"colon\",\"semicolon\",\"less\",\"equal\",\"greater\",\"question\",\"at\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"bracketleft\",\"backslash\",\"bracketright\",\"asciicircum\",\"underscore\",\"grave\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"braceleft\",\"bar\",\"braceright\",\"asciitilde\",\".notdef\",\"Euro\",\".notdef\",\"quotesinglbase\",\"florin\",\"quotedblbase\",\"ellipsis\",\"dagger\",\"daggerdbl\",\"circumflex\",\"perthousand\",\"Scaron\",\"guilsinglleft\",\"OE\",\".notdef\",\"Zcaron\",\".notdef\",\".notdef\",\"quoteleft\",\"quoteright\",\"quotedblleft\",\"quotedblright\",\"bullet\",\"endash\",\"emdash\",\"tilde\",\"trademark\",\"scaron\",\"guilsinglright\",\"oe\",\".notdef\",\"zcaron\",\"ydieresis\",\"space\",\"exclamdown\",\"cent\",\"sterling\",\"currency\",\"yen\",\"brokenbar\",\"section\",\"dieresis\",\"copyright\",\"ordfeminine\",\"guillemotleft\",\"logicalnot\",\"hyphen\",\"registered\",\"macron\",\"degree\",\"plusminus\",\"twosuperior\",\"threesuperior\",\"acute\",\"mu\",\"paragraph\",\"periodcentered\",\"cedilla\",\"onesuperior\",\"ordmasculine\",\"guillemotright\",\"onequarter\",\"onehalf\",\"threequarters\",\"questiondown\",\"Agrave\",\"Aacute\",\"Acircumflex\",\"Atilde\",\"Adieresis\",\"Aring\",\"AE\",\"Ccedilla\",\"Egrave\",\"Eacute\",\"Ecircumflex\",\"Edieresis\",\"Igrave\",\"Iacute\",\"Icircumflex\",\"Idieresis\",\"Eth\",\"Ntilde\",\"Ograve\",\"Oacute\",\"Ocircumflex\",\"Otilde\",\"Odieresis\",\"multiply\",\"Oslash\",\"Ugrave\",\"Uacute\",\"Ucircumflex\",\"Udieresis\",\"Yacute\",\"Thorn\",\"germandbls\",\"agrave\",\"aacute\",\"acircumflex\",\"atilde\",\"adieresis\",\"aring\",\"ae\",\"ccedilla\",\"egrave\",\"eacute\",\"ecircumflex\",\"edieresis\",\"igrave\",\"iacute\",\"icircumflex\",\"idieresis\",\"eth\",\"ntilde\",\"ograve\",\"oacute\",\"ocircumflex\",\"otilde\",\"odieresis\",\"divide\",\"oslash\",\"ugrave\",\"uacute\",\"ucircumflex\",\"udieresis\",\"yacute\",\"thorn\",\"ydieresis\\\\\"]},\"Symbol\":{\"ascender\":0,\"descender\":0,\"capHeight\":0,\"xHeight\":0,\"lineGap\":1303,\"widths\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,250,333,0,500,0,833,778,0,333,333,0,549,250,0,250,278,500,500,500,500,500,500,500,500,500,500,278,278,549,549,549,444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,333,0,333,0,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,480,200,480,0,0,750,0,0,500,0,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,460,0,0,0,0,0,0,0,0,0,0,250,0,0,0,0,0,0,0,0,0,0,0,713,0,0,0,400,549,0,0,0,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,549,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,549,0,0,0,0,0,0,0,0],\"names\":[\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\"space\",\"exclam\",\"quotedbl\",\"numbersign\",\"dollar\",\"percent\",\"ampersand\",\"quotesingle\",\"parenleft\",\"parenright\",\"asterisk\",\"plus\",\"comma\",\"hyphen\",\"period\",\"slash\",\"zero\",\"one\",\"two\",\"three\",\"four\",\"five\",\"six\",\"seven\",\"eight\",\"nine\",\"colon\",\"semicolon\",\"less\",\"equal\",\"greater\",\"question\",\"at\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"bracketleft\",\"backslash\",\"bracketright\",\"asciicircum\",\"underscore\",\"grave\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"braceleft\",\"bar\",\"braceright\",\"asciitilde\",\".notdef\",\"Euro\",\".notdef\",\"quotesinglbase\",\"florin\",\"quotedblbase\",\"ellipsis\",\"dagger\",\"daggerdbl\",\"circumflex\",\"perthousand\",\"Scaron\",\"guilsinglleft\",\"OE\",\".notdef\",\"Zcaron\",\".notdef\",\".notdef\",\"quoteleft\",\"quoteright\",\"quotedblleft\",\"quotedblright\",\"bullet\",\"endash\",\"emdash\",\"tilde\",\"trademark\",\"scaron\",\"guilsinglright\",\"oe\",\".notdef\",\"zcaron\",\"ydieresis\",\"space\",\"exclamdown\",\"cent\",\"sterling\",\"currency\",\"yen\",\"brokenbar\",\"section\",\"dieresis\",\"copyright\",\"ordfeminine\",\"guillemotleft\",\"logicalnot\",\"hyphen\",\"registered\",\"macron\",\"degree\",\"plusminus\",\"twosuperior\",\"threesuperior\",\"acute\",\"mu\",\"paragraph\",\"periodcentered\",\"cedilla\",\"onesuperior\",\"ordmasculine\",\"guillemotright\",\"onequarter\",\"onehalf\",\"threequarters\",\"questiondown\",\"Agrave\",\"Aacute\",\"Acircumflex\",\"Atilde\",\"Adieresis\",\"Aring\",\"AE\",\"Ccedilla\",\"Egrave\",\"Eacute\",\"Ecircumflex\",\"Edieresis\",\"Igrave\",\"Iacute\",\"Icircumflex\",\"Idieresis\",\"Eth\",\"Ntilde\",\"Ograve\",\"Oacute\",\"Ocircumflex\",\"Otilde\",\"Odieresis\",\"multiply\",\"Oslash\",\"Ugrave\",\"Uacute\",\"Ucircumflex\",\"Udieresis\",\"Yacute\",\"Thorn\",\"germandbls\",\"agrave\",\"aacute\",\"acircumflex\",\"atilde\",\"adieresis\",\"aring\",\"ae\",\"ccedilla\",\"egrave\",\"eacute\",\"ecircumflex\",\"edieresis\",\"igrave\",\"iacute\",\"icircumflex\",\"idieresis\",\"eth\",\"ntilde\",\"ograve\",\"oacute\",\"ocircumflex\",\"otilde\",\"odieresis\",\"divide\",\"oslash\",\"ugrave\",\"uacute\",\"ucircumflex\",\"udieresis\",\"yacute\",\"thorn\",\"ydieresis\\\\\"]},\"ZapfDingbats\":{\"ascender\":0,\"descender\":0,\"capHeight\":0,\"xHeight\":0,\"lineGap\":963,\"widths\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,278,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,278,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],\"names\":[\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\".notdef\",\"space\",\"exclam\",\"quotedbl\",\"numbersign\",\"dollar\",\"percent\",\"ampersand\",\"quotesingle\",\"parenleft\",\"parenright\",\"asterisk\",\"plus\",\"comma\",\"hyphen\",\"period\",\"slash\",\"zero\",\"one\",\"two\",\"three\",\"four\",\"five\",\"six\",\"seven\",\"eight\",\"nine\",\"colon\",\"semicolon\",\"less\",\"equal\",\"greater\",\"question\",\"at\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"bracketleft\",\"backslash\",\"bracketright\",\"asciicircum\",\"underscore\",\"grave\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"braceleft\",\"bar\",\"braceright\",\"asciitilde\",\".notdef\",\"Euro\",\".notdef\",\"quotesinglbase\",\"florin\",\"quotedblbase\",\"ellipsis\",\"dagger\",\"daggerdbl\",\"circumflex\",\"perthousand\",\"Scaron\",\"guilsinglleft\",\"OE\",\".notdef\",\"Zcaron\",\".notdef\",\".notdef\",\"quoteleft\",\"quoteright\",\"quotedblleft\",\"quotedblright\",\"bullet\",\"endash\",\"emdash\",\"tilde\",\"trademark\",\"scaron\",\"guilsinglright\",\"oe\",\".notdef\",\"zcaron\",\"ydieresis\",\"space\",\"exclamdown\",\"cent\",\"sterling\",\"currency\",\"yen\",\"brokenbar\",\"section\",\"dieresis\",\"copyright\",\"ordfeminine\",\"guillemotleft\",\"logicalnot\",\"hyphen\",\"registered\",\"macron\",\"degree\",\"plusminus\",\"twosuperior\",\"threesuperior\",\"acute\",\"mu\",\"paragraph\",\"periodcentered\",\"cedilla\",\"onesuperior\",\"ordmasculine\",\"guillemotright\",\"onequarter\",\"onehalf\",\"threequarters\",\"questiondown\",\"Agrave\",\"Aacute\",\"Acircumflex\",\"Atilde\",\"Adieresis\",\"Aring\",\"AE\",\"Ccedilla\",\"Egrave\",\"Eacute\",\"Ecircumflex\",\"Edieresis\",\"Igrave\",\"Iacute\",\"Icircumflex\",\"Idieresis\",\"Eth\",\"Ntilde\",\"Ograve\",\"Oacute\",\"Ocircumflex\",\"Otilde\",\"Odieresis\",\"multiply\",\"Oslash\",\"Ugrave\",\"Uacute\",\"Ucircumflex\",\"Udieresis\",\"Yacute\",\"Thorn\",\"germandbls\",\"agrave\",\"aacute\",\"acircumflex\",\"atilde\",\"adieresis\",\"aring\",\"ae\",\"ccedilla\",\"egrave\",\"eacute\",\"ecircumflex\",\"edieresis\",\"igrave\",\"iacute\",\"icircumflex\",\"idieresis\",\"eth\",\"ntilde\",\"ograve\",\"oacute\",\"ocircumflex\",\"otilde\",\"odieresis\",\"divide\",\"oslash\",\"ugrave\",\"uacute\",\"ucircumflex\",\"udieresis\",\"yacute\",\"thorn\",\"ydieresis\\\\\"]}}", "import type { HyphenationCallback } from \"./types\"\nimport base14Metrics from \"./vendor/base14-font-metrics.json\"\n\nexport type FontStyle = \"normal\" | \"italic\" | \"oblique\"\nexport type FontWeight = \"thin\" | \"ultralight\" | \"light\" | \"normal\" | \"medium\" | \"semibold\" | \"bold\" | \"ultrabold\" | \"heavy\" | number\n\nexport type FontSource = {\n src: string\n fontStyle?: FontStyle\n fontWeight?: FontWeight\n}\n\nexport type FontRegistration = {\n family: string\n} & FontSource\n\nexport type BulkFontRegistration = {\n family: string\n fonts: FontSource[]\n}\n\nconst FONT_WEIGHT_KEYWORDS = new Set<Exclude<FontWeight, number>>([\n \"thin\",\n \"ultralight\",\n \"light\",\n \"normal\",\n \"medium\",\n \"semibold\",\n \"bold\",\n \"ultrabold\",\n \"heavy\"\n])\n\nexport const BUILTIN_PDF_FONTS = new Set(Object.keys(base14Metrics))\n\nconst BASE14_ALIASES: Record<string, string> = {}\nfor (const name of Object.keys(base14Metrics)) {\n BASE14_ALIASES[name.toLowerCase().replaceAll(\"-\", \"\")] = name\n}\n\nexport const normalizeStandardFamily = (family: string): string =>\n BASE14_ALIASES[family.toLowerCase().replaceAll(\"-\", \"\")] ?? family\n\n/**\n * Metric-compatible TrueType substitutes for the base-14 families\n * (`./vendor/fonts`, Liberation 2.1.5). Lets the renderer embed font\n * programs (required by PDF/UA and PDF/A) while layout keeps using the AFM\n * metrics, so advances and line heights are unchanged. Symbol and\n * ZapfDingbats have no metric-compatible OFL equivalent and stay standard.\n */\nconst VENDORED_FACE_FILES: Record<string, string> = {\n Helvetica: \"LiberationSans-Regular.ttf\",\n \"Helvetica-Bold\": \"LiberationSans-Bold.ttf\",\n \"Helvetica-Oblique\": \"LiberationSans-Italic.ttf\",\n \"Helvetica-BoldOblique\": \"LiberationSans-BoldItalic.ttf\",\n \"Times-Roman\": \"LiberationSerif-Regular.ttf\",\n \"Times-Bold\": \"LiberationSerif-Bold.ttf\",\n \"Times-Italic\": \"LiberationSerif-Italic.ttf\",\n \"Times-BoldItalic\": \"LiberationSerif-BoldItalic.ttf\",\n Courier: \"LiberationMono-Regular.ttf\",\n \"Courier-Bold\": \"LiberationMono-Bold.ttf\",\n \"Courier-Oblique\": \"LiberationMono-Italic.ttf\",\n \"Courier-BoldOblique\": \"LiberationMono-BoldItalic.ttf\"\n}\n\n/**\n * File URL for a vendored font, resolved relative to this module so it\n * works both from source (`src/vendor/fonts/\u2026`) and from the packaged\n * bundle (`dist/vendor/fonts/\u2026`; the build script copies the directory).\n */\nconst vendoredFontUrl = (file: string): string =>\n new URL(`./vendor/fonts/${file}`, import.meta.url).href\n\n/**\n * Map a requested family/weight/style onto one of the 14 standard faces.\n * Returns null for families outside the base-14 set.\n */\nexport const resolveStandardFace = (\n family: string,\n fontWeight?: string | number,\n fontStyle?: FontStyle\n): string | null => {\n const normalized = normalizeStandardFamily(family)\n if (!BUILTIN_PDF_FONTS.has(normalized)) return null\n\n // Composite faces (\"Times-Bold\", \"Courier-Oblique\", ...) already encode their style.\n if (/-(Bold|Oblique|Italic|BoldOblique|BoldItalic|Roman)$/.test(normalized)) return normalized\n\n const weightValue =\n typeof fontWeight === \"number\"\n ? fontWeight\n : ({\n thin: 100,\n ultralight: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n ultrabold: 800,\n heavy: 900\n } as Record<string, number>)[fontWeight ?? \"normal\"] ?? 400\n const isBold = weightValue >= 600\n const isItalic = fontStyle === \"italic\" || fontStyle === \"oblique\"\n const hasItalicName = /Italic/.test(normalized)\n\n let suffix = \"\"\n if (isBold && isItalic) suffix = hasItalicName ? \"BoldItalic\" : \"BoldOblique\"\n else if (isBold) suffix = \"Bold\"\n else if (isItalic) suffix = hasItalicName ? \"Italic\" : \"Oblique\"\n\n if (suffix === \"\") return normalized\n const candidate = `${normalized}-${suffix}`\n return BUILTIN_PDF_FONTS.has(candidate) ? candidate : normalized\n}\n\nexport type StandardFontMetrics = {\n ascender: number\n descender: number\n capHeight: number\n xHeight: number\n lineGap: number\n widths: number[]\n}\n\nexport const getStandardFontMetrics = (name: string): StandardFontMetrics | undefined => {\n const direct = (base14Metrics as Record<string, StandardFontMetrics>)[name]\n if (direct) return direct\n return (base14Metrics as Record<string, StandardFontMetrics>)[BASE14_ALIASES[name.toLowerCase().replaceAll(\"-\", \"\")]]\n}\n\n// Minimal structural view of a parsed fontkit font. Core stays decoupled from\n// fontkit's own typings on purpose.\nexport type EmbeddedFont = {\n postscriptName?: string\n unitsPerEm: number\n ascent: number\n descent: number\n lineGap: number\n layout(text: string): {\n glyphs: Array<{ id: number; advanceWidth: number; codePoints: number[] }>\n positions: Array<{ xAdvance: number; yAdvance: number; xOffset: number; yOffset: number }>\n }\n}\n\nexport type ResolvedFontData =\n | { kind: \"standard\"; name: string; metrics: StandardFontMetrics }\n | {\n kind: \"embedded\"\n src: string\n font: EmbeddedFont\n /**\n * AFM metrics override for vendored base-14 substitutes: layout keeps\n * measuring exactly like the standard face while the embedded outlines\n * come from the TrueType file. Absent for user-registered fonts, which\n * measure with their own OpenType metrics.\n */\n metrics?: StandardFontMetrics\n }\n\ntype FontkitModule = {\n create(source: Buffer | Uint8Array, postscriptName?: string): EmbeddedFont | { fonts?: EmbeddedFont[] }\n}\n\nlet fontkitPromise: Promise<FontkitModule> | null = null\nconst loadFontkit = (): Promise<FontkitModule> => {\n fontkitPromise ??= import(\"fontkit\") as Promise<FontkitModule>\n return fontkitPromise\n}\n\nconst normalizeFontWeight = (fontWeight: string | number | undefined): FontWeight | undefined => {\n if (typeof fontWeight === \"number\") return fontWeight\n return fontWeight && FONT_WEIGHT_KEYWORDS.has(fontWeight as Exclude<FontWeight, number>)\n ? fontWeight as Exclude<FontWeight, number>\n : undefined\n}\n\nconst toFontFamilyList = (fontFamily: string | string[] | undefined): string[] => {\n if (fontFamily == null) return []\n return Array.isArray(fontFamily) ? fontFamily : [fontFamily]\n}\n\nconst FONT_WEIGHT_VALUE_BY_NAME: Record<string, number> = {\n thin: 100,\n ultralight: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n ultrabold: 800,\n heavy: 900\n}\n\nconst weightDistance = (registered: FontWeight | undefined, requested: FontWeight | undefined): number => {\n if (requested == null || registered == null) return 0\n const a = typeof registered === \"number\" ? registered : FONT_WEIGHT_VALUE_BY_NAME[registered] ?? 400\n const b = typeof requested === \"number\" ? requested : FONT_WEIGHT_VALUE_BY_NAME[requested] ?? 400\n return Math.abs(a - b)\n}\n\nconst isBrowserRuntime = (): boolean => typeof window !== \"undefined\" && typeof document !== \"undefined\"\n\nclass FontRegistry {\n private fonts = new Map<string, FontRegistration[]>()\n private hyphenationCallback: HyphenationCallback | null = null\n private sourceCache = new Map<string, string | undefined>()\n private renderSourceCache = new Map<string, string | Uint8Array | undefined>()\n private renderSourceBySrc = new Map<string, string | Uint8Array>()\n private fontDataCache = new Map<string, ResolvedFontData>()\n private fontDataMemo = new Map<string, ResolvedFontData | null>()\n private binaryBySrc = new Map<string, Uint8Array>()\n\n private descriptorKey(descriptor: {\n fontFamily: string | string[]\n fontWeight?: string | number\n fontStyle?: string\n }): string {\n const families = toFontFamilyList(descriptor.fontFamily).join(\",\")\n const weight = normalizeFontWeight(descriptor.fontWeight)\n const weightKey = weight == null || weight === \"normal\" || weight === 400 ? \"\" : String(weight)\n const styleKey = !descriptor.fontStyle || descriptor.fontStyle === \"normal\" ? \"\" : descriptor.fontStyle\n return `${families}::${weightKey}::${styleKey}`\n }\n\n register(font: FontRegistration | BulkFontRegistration): void {\n this.sourceCache.clear()\n this.renderSourceCache.clear()\n this.renderSourceBySrc.clear()\n this.fontDataCache.clear()\n this.fontDataMemo.clear()\n\n const entries = \"fonts\" in font\n ? font.fonts.map((entry) => ({ family: font.family, ...entry }))\n : [{ family: font.family, src: font.src, fontWeight: font.fontWeight, fontStyle: font.fontStyle }]\n this.fonts.set(font.family, entries)\n }\n\n get(family: string | string[] | undefined): FontRegistration | undefined {\n for (const entry of toFontFamilyList(family)) {\n const resolved = this.fonts.get(entry)?.[0]\n if (resolved) return resolved\n }\n return undefined\n }\n\n clear(): void {\n this.fonts.clear()\n this.hyphenationCallback = null\n this.sourceCache.clear()\n this.renderSourceCache.clear()\n this.renderSourceBySrc.clear()\n this.fontDataCache.clear()\n this.fontDataMemo.clear()\n this.binaryBySrc.clear()\n }\n\n registerHyphenationCallback(callback: HyphenationCallback): void {\n this.hyphenationCallback = callback\n }\n\n getHyphenationCallback(): HyphenationCallback | null {\n return this.hyphenationCallback\n }\n\n clearHyphenationCallback(): void {\n this.hyphenationCallback = null\n }\n\n /**\n * Resolve and parse the best matching font face for a descriptor.\n * Standard PDF base-14 faces resolve without any I/O; custom families are\n * fetched/read and parsed with fontkit exactly once and then cached.\n */\n async load(descriptor: { fontFamily: string | string[]; fontWeight?: string | number; fontStyle?: FontStyle }): Promise<ResolvedFontData> {\n let lastError: unknown\n for (const family of toFontFamilyList(descriptor.fontFamily)) {\n try {\n return await this.resolveFontData({\n fontFamily: family,\n fontWeight: descriptor.fontWeight,\n fontStyle: descriptor.fontStyle\n })\n } catch (error) {\n lastError = error\n }\n }\n if (lastError) throw lastError\n throw new Error(\n `Unable to load font for family \"${toFontFamilyList(descriptor.fontFamily).join(\", \")}\". Register it with Font.register(...) first.`\n )\n }\n\n getFontData(descriptor: { fontFamily: string | string[]; fontWeight?: string | number; fontStyle?: FontStyle }): ResolvedFontData | null {\n // Hot path: resolveStyle/shapeText call this for every text measurement.\n const fullKey = this.descriptorKey(descriptor)\n const memo = this.fontDataMemo.get(fullKey)\n if (memo !== undefined) return memo\n const resolved = this.resolveFontDataSlow(descriptor)\n this.fontDataMemo.set(fullKey, resolved)\n return resolved\n }\n\n private resolveFontDataSlow(descriptor: { fontFamily: string | string[]; fontWeight?: string | number; fontStyle?: FontStyle }): ResolvedFontData | null {\n // A preloaded vendored embedded face (see resolveFontData) wins over the\n // I/O-free standard face so sync shaping and rendering agree on the\n // encoding. Standard entries cached here fall through to the identical\n // logic below.\n const preloaded = this.fontDataCache.get(this.descriptorKey(descriptor))\n if (preloaded && preloaded.kind === \"embedded\") return preloaded\n for (const family of toFontFamilyList(descriptor.fontFamily)) {\n if (!this.fonts.has(family)) {\n const face = resolveStandardFace(family, descriptor.fontWeight, descriptor.fontStyle)\n if (face) {\n return { kind: \"standard\", name: face, metrics: getStandardFontMetrics(face)! }\n }\n }\n const cached = this.fontDataCache.get(this.descriptorKey({ ...descriptor, fontFamily: family }))\n if (cached) return cached\n }\n // Family-level fallback: any previously parsed face for a listed family.\n for (const family of toFontFamilyList(descriptor.fontFamily)) {\n const prefix = `${family}::`\n for (const [key, value] of this.fontDataCache) {\n if (key.startsWith(prefix)) return value\n }\n }\n return null\n }\n\n getSource(descriptor: { fontFamily: string | string[]; fontWeight?: string | number; fontStyle?: FontStyle }): string | undefined {\n const cacheKey = this.descriptorKey(descriptor)\n if (this.sourceCache.has(cacheKey)) return this.sourceCache.get(cacheKey)\n let source: string | undefined\n for (const family of toFontFamilyList(descriptor.fontFamily)) {\n if (!this.fonts.has(family)) continue\n const registrations = this.fonts.get(family)!\n const requestedWeight = normalizeFontWeight(descriptor.fontWeight)\n const requestedStyle = descriptor.fontStyle ?? \"normal\"\n const best = registrations\n .map((registration, index) => ({\n registration,\n score:\n weightDistance(registration.fontWeight, requestedWeight) +\n ((registration.fontStyle ?? \"normal\") === requestedStyle ? 0 : 10) +\n index * 0.01\n }))\n .sort((a, b) => a.score - b.score)[0]?.registration\n if (best?.src) {\n source = best.src\n break\n }\n }\n if (source == null) {\n // Implicit metric-compatible substitutes for the base-14 families so\n // renderers can embed without an explicit Font.register(...). User\n // registrations above always win. The file: URL only resolves where\n // fs access exists (Node); elsewhere loading fails downstream and the\n // pipeline falls back to standard fonts.\n for (const family of toFontFamilyList(descriptor.fontFamily)) {\n if (this.fonts.has(family)) continue\n const face = resolveStandardFace(family, descriptor.fontWeight, descriptor.fontStyle)\n const file = face ? VENDORED_FACE_FILES[face] : undefined\n if (file) {\n source = vendoredFontUrl(file)\n break\n }\n }\n }\n this.sourceCache.set(cacheKey, source)\n return source\n }\n\n getRenderSource(descriptor: { fontFamily: string | string[]; fontWeight?: string | number; fontStyle?: FontStyle }): string | Uint8Array | undefined {\n const cacheKey = this.descriptorKey(descriptor)\n if (this.renderSourceCache.has(cacheKey)) return this.renderSourceCache.get(cacheKey)\n\n const source = this.getSource(descriptor)\n if (source == null) return undefined\n if (BUILTIN_PDF_FONTS.has(source)) {\n this.renderSourceCache.set(cacheKey, source)\n return source\n }\n const cachedBySrc = this.renderSourceBySrc.get(source)\n if (cachedBySrc) {\n this.renderSourceCache.set(cacheKey, cachedBySrc)\n return cachedBySrc\n }\n if (isBrowserRuntime()) {\n throw new Error(\n `Font source \"${source}\" was not preloaded for browser rendering. Register the font with a browser-accessible URL or data URI before rendering.`\n )\n }\n\n this.renderSourceCache.set(cacheKey, source)\n return source\n }\n\n private async fetchBinary(source: string): Promise<Uint8Array> {\n const cached = this.binaryBySrc.get(source)\n if (cached) return cached\n let bytes: Uint8Array\n if (/^data:/.test(source)) {\n const response = await fetch(source)\n bytes = new Uint8Array(await response.arrayBuffer())\n } else if (isBrowserRuntime()) {\n const response = await fetch(source)\n if (!response.ok) {\n throw new Error(`Unable to load font from \"${source}\". Use a public URL, imported asset URL, or data URI.`)\n }\n bytes = new Uint8Array(await response.arrayBuffer())\n } else {\n // Hidden behind an indirect import so browser bundles don't try to\n // resolve node builtins. file: URLs (vendored base-14 substitutes, see\n // VENDORED_FACE_FILES) are converted to URL objects, which readFile\n // accepts; environments without fs access throw and callers fall back\n // to standard fonts.\n const loadNodeFs = new Function(\"return import('node:fs/promises')\") as () => Promise<{ readFile: (path: string | URL) => Promise<Buffer> }>\n const fsModule = await loadNodeFs()\n bytes = new Uint8Array(await fsModule.readFile(source.startsWith(\"file:\") ? new URL(source) : source))\n }\n this.binaryBySrc.set(source, bytes)\n return bytes\n }\n\n private standardFromSrc(src: string, descriptor: { fontWeight?: string | number; fontStyle?: FontStyle }): ResolvedFontData | null {\n if (!BUILTIN_PDF_FONTS.has(src)) return null\n const face = resolveStandardFace(src, descriptor.fontWeight, descriptor.fontStyle)\n const metrics = face ? getStandardFontMetrics(face) : undefined\n return face && metrics ? { kind: \"standard\", name: face, metrics } : null\n }\n\n private async tryVendoredFace(\n family: string,\n descriptor: { fontWeight?: string | number; fontStyle?: FontStyle }\n ): Promise<ResolvedFontData | null> {\n const face = resolveStandardFace(family, descriptor.fontWeight, descriptor.fontStyle)\n const file = face ? VENDORED_FACE_FILES[face] : undefined\n const metrics = face ? getStandardFontMetrics(face) : undefined\n if (!face || !file || !metrics) return null\n const src = vendoredFontUrl(file)\n try {\n const bytes = await this.fetchBinary(src)\n const fontkit = await loadFontkit()\n const created = fontkit.create(bytes)\n const font = Array.isArray((created as { fonts?: EmbeddedFont[] }).fonts)\n ? (created as { fonts: EmbeddedFont[] }).fonts[0]\n : (created as EmbeddedFont)\n if (!font || typeof font.layout !== \"function\") return null\n const resolved: ResolvedFontData = { kind: \"embedded\", src, font, metrics }\n this.renderSourceBySrc.set(src, bytes)\n return resolved\n } catch {\n // Missing files, workers without fs access, parse errors: fall back\n // to the unembedded standard face (previous behavior).\n return null\n }\n }\n\n private async resolveFontData(descriptor: {\n fontFamily: string | string[]\n fontWeight?: string | number\n fontStyle?: FontStyle\n }): Promise<ResolvedFontData> {\n const cacheKey = this.descriptorKey(descriptor)\n const cached = this.fontDataCache.get(cacheKey)\n if (cached) return cached\n\n for (const family of toFontFamilyList(descriptor.fontFamily)) {\n if (!this.fonts.has(family)) {\n const vendored = await this.tryVendoredFace(family, descriptor)\n if (vendored) {\n this.fontDataCache.set(cacheKey, vendored)\n return vendored\n }\n const face = resolveStandardFace(family, descriptor.fontWeight, descriptor.fontStyle)\n const metrics = face ? getStandardFontMetrics(face) : undefined\n if (face && metrics) {\n const resolved: ResolvedFontData = { kind: \"standard\", name: face, metrics }\n this.fontDataCache.set(cacheKey, resolved)\n return resolved\n }\n }\n\n const src = this.getSource({ ...descriptor, fontFamily: family })\n if (!src) continue\n\n // Sources may themselves be standard font names (aliases like\n // { family: \"Body\", src: \"Times-Roman\" }) \u2014 resolve without I/O.\n const fromSrc = this.standardFromSrc(src, descriptor)\n if (fromSrc) {\n this.fontDataCache.set(cacheKey, fromSrc)\n return fromSrc\n }\n\n const bytes = await this.fetchBinary(src)\n const fontkit = await loadFontkit()\n const created = fontkit.create(bytes)\n const font = Array.isArray((created as { fonts?: EmbeddedFont[] }).fonts)\n ? (created as { fonts: EmbeddedFont[] }).fonts[0]\n : (created as EmbeddedFont)\n if (!font || typeof font.layout !== \"function\") {\n throw new Error(`Unsupported font file for family \"${family}\": ${src}`)\n }\n const resolved: ResolvedFontData = { kind: \"embedded\", src, font }\n this.fontDataCache.set(this.descriptorKey({ ...descriptor, fontFamily: family }), resolved)\n this.renderSourceBySrc.set(src, bytes)\n return resolved\n }\n\n throw new Error(\n `Font family \"${toFontFamilyList(descriptor.fontFamily).join(\", \")}\" is not registered. Register it with Font.register(...) before rendering, or use a built-in PDF font like Helvetica.`\n )\n }\n}\n\nexport const Font = new FontRegistry()\n\n", "export const Document = \"DOCUMENT\" as const\nexport const Page = \"PAGE\" as const\nexport const PageBreak = \"PAGE_BREAK\" as const\nexport const View = \"VIEW\" as const\nexport const Table = \"TABLE\" as const\nexport const TableHead = \"TABLE_HEAD\" as const\nexport const TableBody = \"TABLE_BODY\" as const\nexport const TableRow = \"TABLE_ROW\" as const\nexport const TableCell = \"TABLE_CELL\" as const\nexport const TableFooter = \"TABLE_FOOTER\" as const\nexport const Text = \"TEXT\" as const\nexport const Image = \"IMAGE\" as const\nexport const Link = \"LINK\" as const\nexport const Note = \"NOTE\" as const\nexport const Canvas = \"CANVAS\" as const\nexport const FieldSet = \"FIELD_SET\" as const\nexport const TextInput = \"TEXT_INPUT\" as const\nexport const Select = \"SELECT\" as const\nexport const Checkbox = \"CHECKBOX\" as const\nexport const List = \"LIST\" as const\nexport const Svg = \"SVG\" as const\nexport const G = \"G\" as const\nexport const Path = \"PATH\" as const\nexport const Rect = \"RECT\" as const\nexport const Line = \"LINE\" as const\nexport const Circle = \"CIRCLE\" as const\nexport const Ellipse = \"ELLIPSE\" as const\nexport const Polygon = \"POLYGON\" as const\nexport const Polyline = \"POLYLINE\" as const\nexport const Defs = \"DEFS\" as const\nexport const ClipPath = \"CLIP_PATH\" as const\nexport const LinearGradient = \"LINEAR_GRADIENT\" as const\nexport const RadialGradient = \"RADIAL_GRADIENT\" as const\nexport const Stop = \"STOP\" as const\nexport const Tspan = \"TSPAN\" as const\nexport const TextInstance = \"TEXT_INSTANCE\" as const\n", "import { TextInstance } from \"./primitives\"\nimport type { PdfElement, PdfProps, PdfValue } from \"./types\"\n\nconst flattenChildren = (input: PdfValue): PdfValue[] => {\n if (!Array.isArray(input)) return [input]\n // Iterative depth-first flatten that preserves order without flatMap's\n // per-level intermediate arrays and closures.\n const out: PdfValue[] = []\n const pending: PdfValue[] = [input]\n while (pending.length > 0) {\n const current = pending.pop() as PdfValue\n if (Array.isArray(current)) {\n for (let index = current.length - 1; index >= 0; index -= 1) pending.push(current[index])\n } else {\n out.push(current)\n }\n }\n return out\n}\n\nexport const createElement = (type: PdfElement[\"type\"], props: PdfProps, key?: string): PdfElement => {\n const normalizedProps = props ?? {}\n return {\n type,\n key,\n props: normalizedProps\n }\n}\n\nexport const materializeChildren = (children: PdfValue): PdfValue[] => {\n if (!Array.isArray(children)) {\n return children === undefined || children === false || children === null ? [] : [children]\n }\n // Fast path: already-flat arrays are filtered in place without a flatten pass.\n let hasNested = false\n for (let index = 0; index < children.length; index += 1) {\n if (Array.isArray(children[index])) {\n hasNested = true\n break\n }\n }\n if (!hasNested) {\n const out: PdfValue[] = []\n for (let index = 0; index < children.length; index += 1) {\n const value = children[index]\n if (value !== undefined && value !== false && value !== null) out.push(value)\n }\n return out\n }\n return flattenChildren(children).filter((value) => value !== undefined && value !== false && value !== null)\n}\n\nexport const createTextElement = (value: string | number): PdfElement => ({\n type: TextInstance,\n props: {\n children: String(value)\n }\n})\n", "import type { BorderEdge, BorderEdgeStyle, PdfStyle, ResolvedStyle } from \"./types\"\n\ntype InheritedTextStyle = Pick<ResolvedStyle, \"fontSize\" | \"lineHeight\" | \"color\" | \"fontFamily\" | \"fontStyle\" | \"textAlign\" | \"direction\" | \"lang\" | \"letterSpacing\" | \"opacity\" | \"textDecoration\" | \"textDecorationColor\" | \"textDecorationStyle\"> & {\n fontWeight?: ResolvedStyle[\"fontWeight\"]\n}\n\nconst defaultBorder = (): BorderEdge => ({ width: 0, color: \"#000000\", style: \"solid\" })\nconst BORDER_STYLE_TOKENS = new Set<BorderEdgeStyle>([\"solid\", \"dashed\", \"dotted\", \"none\"])\n\nconst FLEX_DEFAULTS = [1, 1, 0] as const\nconst FLEX_AUTO_DEFAULTS = [1, 1, \"auto\"] as const\nconst STYLE_CACHE_LIMIT = 4096\nlet resolvedStyleCache = new Map<string, ResolvedStyle>()\n// Memoizes serialization results by object identity. Style objects are treated\n// as immutable across the pipeline (they are spread, never mutated), so this\n// avoids re-walking/sorting the same shared style objects for every node.\nlet serializedStyleValueCache = new WeakMap<object, string | null>()\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n if (typeof value !== \"object\" || value === null) return false\n const prototype = Object.getPrototypeOf(value)\n return prototype === Object.prototype || prototype === null\n}\n\nconst stableSerializeStyleValue = (value: unknown): string | null => {\n if (value == null) return \"null\"\n if (typeof value === \"string\") return `s:${value}`\n if (typeof value === \"number\") return Number.isFinite(value) ? `n:${value}` : null\n if (typeof value === \"boolean\") return value ? \"b:1\" : \"b:0\"\n if (typeof value === \"object\") {\n // Inherited text styles have a fixed primitive-only shape; serialize them\n // directly instead of walking/sorting generic objects.\n if ((value as Record<string, unknown>).__jsxpdfInheritedTextStyle === true) {\n return serializeInheritedTextStyle(value as Record<string, unknown>)\n }\n const cached = serializedStyleValueCache.get(value)\n if (cached !== undefined) return cached\n const serialized = Array.isArray(value)\n ? serializeArrayParts(value as unknown[])\n : isPlainObject(value)\n ? serializeObjectParts(value as Record<string, unknown>)\n : null\n serializedStyleValueCache.set(value, serialized)\n return serialized\n }\n return null\n}\n\nconst serializeInheritedTextStyle = (value: Record<string, unknown>): string => {\n const rawFontFamily = value.fontFamily\n // fontFamily may be a string or a fallback list; keep list identity distinct.\n const fontFamilyPart = Array.isArray(rawFontFamily)\n ? serializeArrayParts(rawFontFamily)\n : `${typeof rawFontFamily}:${String(rawFontFamily)}`\n return `i{fontSize:${typeof value.fontSize}:${value.fontSize}`\n + `|lineHeight:${typeof value.lineHeight}:${value.lineHeight}`\n + `|color:${typeof value.color}:${value.color}`\n + `|fontFamily:${fontFamilyPart}`\n + `|fontWeight:${typeof value.fontWeight}:${String(value.fontWeight)}`\n + `|fontStyle:${typeof value.fontStyle}:${value.fontStyle}`\n + `|letterSpacing:${typeof value.letterSpacing}:${value.letterSpacing}`\n + `|opacity:${typeof value.opacity}:${value.opacity}`\n + `|textDecoration:${typeof value.textDecoration}:${value.textDecoration}`\n + `|textDecorationColor:${typeof value.textDecorationColor}:${value.textDecorationColor}`\n + `|textDecorationStyle:${typeof value.textDecorationStyle}:${value.textDecorationStyle}`\n + `|textAlign:${typeof value.textAlign}:${value.textAlign}`\n + `|direction:${typeof value.direction}:${value.direction}`\n + `|lang:${typeof value.lang}:${value.lang}}`\n}\n\nconst serializeArrayParts = (value: unknown[]): string | null => {\n let result = \"[\"\n for (let index = 0; index < value.length; index += 1) {\n const serialized = stableSerializeStyleValue(value[index])\n if (serialized == null) return null\n if (index > 0) result += \",\"\n result += serialized\n }\n return `${result}]`\n}\n\nconst serializeObjectParts = (value: Record<string, unknown>): string | null => {\n const keys = Object.keys(value).sort()\n let result = \"{\"\n for (let index = 0; index < keys.length; index += 1) {\n const serialized = stableSerializeStyleValue(value[keys[index]])\n if (serialized == null) return null\n if (index > 0) result += \",\"\n result += `${keys[index]}:${serialized}`\n }\n return `${result}}`\n}\n\nconst getResolvedStyleCacheKey = (\n styleInput: PdfStyle | PdfStyle[] | undefined,\n inheritedTextStyle?: InheritedTextStyle\n): string | null => {\n const styleKey = stableSerializeStyleValue(styleInput ?? null)\n const inheritedKey = stableSerializeStyleValue(inheritedTextStyle ?? null)\n if (styleKey == null || inheritedKey == null) return null\n return `${styleKey}::${inheritedKey}`\n}\n\nconst toNumber = (value: string | number | undefined): number => {\n if (typeof value === \"number\") return value\n if (!value) return 0\n const parsed = Number.parseFloat(value)\n return Number.isFinite(parsed) ? parsed : 0\n}\n\nconst parseFlexShorthand = (\n value: PdfStyle[\"flex\"]\n): Pick<PdfStyle, \"flexGrow\" | \"flexShrink\" | \"flexBasis\"> => {\n if (value == null) return {}\n const parts = value === \"auto\"\n ? [...FLEX_AUTO_DEFAULTS]\n : `${value}`.trim().split(/\\s+/).filter(Boolean)\n\n const flexGrow = Number.parseFloat(`${parts[0] ?? FLEX_DEFAULTS[0]}`)\n const flexShrink = Number.parseFloat(`${parts[1] ?? FLEX_DEFAULTS[1]}`)\n const flexBasis = (parts[2] ?? FLEX_DEFAULTS[2]) as PdfStyle[\"flexBasis\"]\n\n return {\n flexGrow: Number.isFinite(flexGrow) ? flexGrow : undefined,\n flexShrink: Number.isFinite(flexShrink) ? flexShrink : undefined,\n flexBasis\n }\n}\n\nconst parseBorderStyleToken = (value: string | undefined): BorderEdgeStyle | undefined => {\n if (!value) return undefined\n const normalized = value.trim().toLowerCase()\n return BORDER_STYLE_TOKENS.has(normalized as BorderEdgeStyle) ? normalized as BorderEdgeStyle : undefined\n}\n\nconst parseBorder = (value: string | number | undefined): BorderEdge => {\n if (typeof value === \"number\") {\n return { width: value, color: \"#000000\", style: \"solid\" }\n }\n if (!value) return defaultBorder()\n const parts = value.trim().split(/\\s+/).filter(Boolean)\n let width = 0\n let color = \"#000000\"\n let style: BorderEdgeStyle = \"solid\"\n let sawWidth = false\n for (const part of parts) {\n const borderStyle = parseBorderStyleToken(part)\n if (borderStyle) {\n style = borderStyle\n continue\n }\n if (!sawWidth && /^-?\\d/.test(part)) {\n width = toNumber(part)\n sawWidth = true\n continue\n }\n color = part\n }\n if (!sawWidth && parts.length === 1 && !parseBorderStyleToken(parts[0])) {\n width = toNumber(parts[0])\n }\n if (style === \"none\") width = 0\n return { width, color, style }\n}\n\nconst resolveLineHeight = (lineHeight: number, fontSize: number): number => {\n // CSS-style unitless multipliers (react-pdf examples, Yoga/RN) vs explicit point sizes.\n if (lineHeight > 0 && lineHeight <= 4) return lineHeight * fontSize\n return lineHeight\n}\n\nexport const flattenStyle = (style: PdfStyle | PdfStyle[] | undefined): PdfStyle => {\n if (!style) return {}\n if (!Array.isArray(style)) return { ...style }\n return style.reduce<PdfStyle>((acc, entry) => Object.assign(acc, flattenStyle(entry)), {})\n}\n\nexport const resolveStyle = (\n styleInput: PdfStyle | PdfStyle[] | undefined,\n inheritedTextStyle?: InheritedTextStyle\n): ResolvedStyle => {\n const cacheKey = getResolvedStyleCacheKey(styleInput, inheritedTextStyle)\n if (cacheKey) {\n const cached = resolvedStyleCache.get(cacheKey)\n if (cached) return cached\n }\n\n const flattenedStyle = flattenStyle(styleInput)\n const flexShorthand = parseFlexShorthand(flattenedStyle.flex)\n const style = { ...flattenedStyle, ...flexShorthand }\n const marginVertical = toNumber(style.marginVertical ?? style.margin)\n const marginHorizontal = toNumber(style.marginHorizontal ?? style.margin)\n const paddingVertical = toNumber(style.paddingVertical ?? style.padding)\n const paddingHorizontal = toNumber(style.paddingHorizontal ?? style.padding)\n\n const border = parseBorder(style.border)\n const borderTop = style.borderTop != null ? parseBorder(style.borderTop) : { ...border }\n const borderRight = style.borderRight != null ? parseBorder(style.borderRight) : { ...border }\n const borderBottom = style.borderBottom != null ? parseBorder(style.borderBottom) : { ...border }\n const borderLeft = style.borderLeft != null ? parseBorder(style.borderLeft) : { ...border }\n\n if (style.borderWidth != null) {\n const width = toNumber(style.borderWidth)\n if (style.borderTopWidth == null) borderTop.width = width\n if (style.borderRightWidth == null) borderRight.width = width\n if (style.borderBottomWidth == null) borderBottom.width = width\n if (style.borderLeftWidth == null) borderLeft.width = width\n }\n if (style.borderTopWidth != null) borderTop.width = toNumber(style.borderTopWidth)\n if (style.borderRightWidth != null) borderRight.width = toNumber(style.borderRightWidth)\n if (style.borderBottomWidth != null) borderBottom.width = toNumber(style.borderBottomWidth)\n if (style.borderLeftWidth != null) borderLeft.width = toNumber(style.borderLeftWidth)\n\n const defaultBorderStyle = parseBorderStyleToken(style.borderStyle) ?? border.style ?? \"solid\"\n borderTop.style = parseBorderStyleToken(style.borderTopStyle) ?? (style.borderTop != null ? borderTop.style : defaultBorderStyle) ?? \"solid\"\n borderRight.style = parseBorderStyleToken(style.borderRightStyle) ?? (style.borderRight != null ? borderRight.style : defaultBorderStyle) ?? \"solid\"\n borderBottom.style = parseBorderStyleToken(style.borderBottomStyle) ?? (style.borderBottom != null ? borderBottom.style : defaultBorderStyle) ?? \"solid\"\n borderLeft.style = parseBorderStyleToken(style.borderLeftStyle) ?? (style.borderLeft != null ? borderLeft.style : defaultBorderStyle) ?? \"solid\"\n\n borderTop.color = style.borderTopColor ?? style.borderColor ?? borderTop.color\n borderRight.color = style.borderRightColor ?? style.borderColor ?? borderRight.color\n borderBottom.color = style.borderBottomColor ?? style.borderColor ?? borderBottom.color\n borderLeft.color = style.borderLeftColor ?? style.borderColor ?? borderLeft.color\n\n const fontSize = style.fontSize ?? inheritedTextStyle?.fontSize ?? 12\n const hasExplicitLineHeight = style.lineHeight != null\n const lineHeight =\n style.lineHeight != null\n ? resolveLineHeight(style.lineHeight, fontSize)\n : (style.fontSize != null\n ? fontSize\n : inheritedTextStyle?.lineHeight ?? fontSize)\n\n const resolved = {\n ...style,\n marginTop: toNumber(style.marginTop ?? marginVertical),\n marginRight: toNumber(style.marginRight ?? marginHorizontal),\n marginBottom: toNumber(style.marginBottom ?? marginVertical),\n marginLeft: toNumber(style.marginLeft ?? marginHorizontal),\n paddingTop: toNumber(style.paddingTop ?? paddingVertical),\n paddingRight: toNumber(style.paddingRight ?? paddingHorizontal),\n paddingBottom: toNumber(style.paddingBottom ?? paddingVertical),\n paddingLeft: toNumber(style.paddingLeft ?? paddingHorizontal),\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n fontSize,\n lineHeight,\n flexDirection: style.flexDirection ?? \"column\",\n color: style.color ?? inheritedTextStyle?.color ?? \"#000000\",\n fontFamily: style.fontFamily ?? inheritedTextStyle?.fontFamily ?? \"Helvetica\",\n fontWeight: style.fontWeight ?? inheritedTextStyle?.fontWeight,\n fontStyle: style.fontStyle ?? inheritedTextStyle?.fontStyle ?? \"normal\",\n letterSpacing: style.letterSpacing ?? inheritedTextStyle?.letterSpacing ?? 0,\n opacity: style.opacity ?? inheritedTextStyle?.opacity ?? 1,\n textDecoration: style.textDecoration ?? inheritedTextStyle?.textDecoration,\n textDecorationColor: style.textDecorationColor ?? inheritedTextStyle?.textDecorationColor,\n textDecorationStyle: style.textDecorationStyle ?? inheritedTextStyle?.textDecorationStyle,\n textAlign: style.textAlign ?? inheritedTextStyle?.textAlign ?? \"left\",\n direction: style.direction ?? inheritedTextStyle?.direction ?? \"ltr\",\n lang: style.lang ?? inheritedTextStyle?.lang ?? undefined,\n display: style.display ?? \"flex\",\n hasExplicitLineHeight\n }\n\n if (cacheKey) {\n if (resolvedStyleCache.size >= STYLE_CACHE_LIMIT) {\n resolvedStyleCache = new Map()\n }\n resolvedStyleCache.set(cacheKey, resolved)\n }\n\n return resolved\n}\n\nexport const StyleSheet = {\n create<T extends Record<string, PdfStyle>>(styles: T): T {\n return styles\n }\n}\n\nexport const isPercent = (value: unknown): value is string => typeof value === \"string\" && value.trim().endsWith(\"%\")\n\nconst parseUnitValue = (value: string, dpi: number): number | undefined => {\n const match = /^(-?\\d*\\.?\\d+)(in|mm|cm|pt|px)?$/i.exec(value.trim())\n if (!match) return undefined\n\n const scalar = Number.parseFloat(match[1] ?? \"\")\n if (!Number.isFinite(scalar)) return undefined\n\n switch ((match[2] ?? \"pt\").toLowerCase()) {\n case \"in\":\n return scalar * 72\n case \"mm\":\n return scalar * (72 / 25.4)\n case \"cm\":\n return scalar * (72 / 2.54)\n case \"px\":\n return scalar * (72 / dpi)\n default:\n return scalar\n }\n}\n\nexport const parseSizeValue = (value: string | number | undefined, total: number, dpi = 72): number | undefined => {\n if (value == null) return undefined\n if (typeof value === \"number\") return value\n if (isPercent(value)) return (Number.parseFloat(value) / 100) * total\n return parseUnitValue(value, dpi)\n}\n", "import {\n Circle,\n ClipPath,\n Canvas,\n Checkbox,\n Defs,\n Document,\n Ellipse,\n FieldSet,\n G,\n Image,\n Line,\n LinearGradient,\n Link,\n List,\n Note,\n Page,\n PageBreak,\n Path,\n Polygon,\n Polyline,\n RadialGradient,\n Rect,\n Select,\n Stop,\n Svg,\n Text,\n TextInput,\n TextInstance,\n Tspan,\n View,\n Table,\n TableHead,\n TableBody,\n TableRow,\n TableCell,\n TableFooter\n} from \"./primitives\"\nimport { isBindingToken } from \"./binding\"\nimport { materializeChildren } from \"./jsx\"\nimport { resolveStyle } from \"./style\"\nimport type { AttributedTextRun, PdfElement, PdfElementNode, PdfNodeType, PdfValue, ResolvedStyle } from \"./types\"\n\nconst DEFAULT_DYNAMIC_RENDER_CONTEXT = {\n pageNumber: 999,\n totalPages: 999\n} as const\n\ntype InheritedTextStyle = Pick<ResolvedStyle, \"fontSize\" | \"lineHeight\" | \"color\" | \"fontFamily\" | \"fontWeight\" | \"fontStyle\" | \"textAlign\" | \"direction\" | \"lang\" | \"letterSpacing\" | \"opacity\" | \"textDecoration\" | \"textDecorationColor\" | \"textDecorationStyle\">\n\nconst STRING_NODE_TYPES = new Set<PdfNodeType>([\n \"DOCUMENT\",\n \"PAGE\",\n \"PAGE_BREAK\",\n \"VIEW\",\n \"TABLE\",\n \"TABLE_HEAD\",\n \"TABLE_BODY\",\n \"TABLE_ROW\",\n \"TABLE_CELL\",\n \"TABLE_FOOTER\",\n \"TEXT\",\n \"IMAGE\",\n \"LINK\",\n \"NOTE\",\n \"CANVAS\",\n \"FIELD_SET\",\n \"TEXT_INPUT\",\n \"SELECT\",\n \"CHECKBOX\",\n \"LIST\",\n \"SVG\",\n \"G\",\n \"PATH\",\n \"RECT\",\n \"LINE\",\n \"CIRCLE\",\n \"ELLIPSE\",\n \"POLYGON\",\n \"POLYLINE\",\n \"DEFS\",\n \"CLIP_PATH\",\n \"LINEAR_GRADIENT\",\n \"RADIAL_GRADIENT\",\n \"STOP\",\n \"TSPAN\",\n \"ROOT\",\n \"TEXT_INSTANCE\"\n])\n\nconst isElement = (value: PdfValue): value is PdfElement => {\n return typeof value === \"object\" && value !== null && \"type\" in value && \"props\" in value\n}\n\nconst normalizeType = (type: PdfElement[\"type\"]): PdfNodeType => {\n switch (type) {\n case Document:\n return \"DOCUMENT\"\n case Page:\n return \"PAGE\"\n case PageBreak:\n return \"PAGE_BREAK\"\n case Table:\n return \"TABLE\"\n case TableHead:\n return \"TABLE_HEAD\"\n case TableBody:\n return \"TABLE_BODY\"\n case TableRow:\n return \"TABLE_ROW\"\n case TableCell:\n return \"TABLE_CELL\"\n case TableFooter:\n return \"TABLE_FOOTER\"\n case View:\n return \"VIEW\"\n case Text:\n return \"TEXT\"\n case Image:\n return \"IMAGE\"\n case Link:\n return \"LINK\"\n case Note:\n return \"NOTE\"\n case Canvas:\n return \"CANVAS\"\n case FieldSet:\n return \"FIELD_SET\"\n case TextInput:\n return \"TEXT_INPUT\"\n case Select:\n return \"SELECT\"\n case Checkbox:\n return \"CHECKBOX\"\n case List:\n return \"LIST\"\n case Svg:\n return \"SVG\"\n case G:\n return \"G\"\n case Path:\n return \"PATH\"\n case Rect:\n return \"RECT\"\n case Line:\n return \"LINE\"\n case Circle:\n return \"CIRCLE\"\n case Ellipse:\n return \"ELLIPSE\"\n case Polygon:\n return \"POLYGON\"\n case Polyline:\n return \"POLYLINE\"\n case Defs:\n return \"DEFS\"\n case ClipPath:\n return \"CLIP_PATH\"\n case LinearGradient:\n return \"LINEAR_GRADIENT\"\n case RadialGradient:\n return \"RADIAL_GRADIENT\"\n case Stop:\n return \"STOP\"\n case Tspan:\n return \"TSPAN\"\n case TextInstance:\n return \"TEXT_INSTANCE\"\n default: {\n if (typeof type === \"string\") {\n const normalized = (\n type.includes(\"_\") || type === type.toUpperCase()\n ? type\n : type.replace(/([a-z0-9])([A-Z])/g, \"$1_$2\").replace(/-/g, \"_\").toUpperCase()\n ) as PdfNodeType\n if (STRING_NODE_TYPES.has(normalized)) return normalized\n }\n throw new Error(`Unsupported node type: ${String(type)}`)\n }\n }\n}\n\n// Memoizes fully materialized trees by root element identity. Rendering the\n// same element object twice (benchmarks, repeated templates, re-renders of an\n// unchanged tree) then skips re-invoking every component function. Pipeline\n// mutations applied to the materialized tree afterwards (bookmark refs,\n// resolved image assets) are idempotent, so reuse is safe.\nconst materializedElementCache = new WeakMap<object, PdfValue>()\n\nexport const materializeElement = (value: PdfValue): PdfValue => {\n if (!isElement(value)) return value\n if (typeof value.type === \"function\") {\n const cached = materializedElementCache.get(value)\n if (cached) return cached\n const materialized = materializeElement(value.type(value.props))\n materializedElementCache.set(value, materialized)\n return materialized\n }\n const sourceChildren =\n typeof value.props.render === \"function\"\n ? value.props.render(DEFAULT_DYNAMIC_RENDER_CONTEXT)\n : value.props.children ?? []\n const flattened = materializeChildren(sourceChildren)\n const children: PdfValue[] = []\n for (let index = 0; index < flattened.length; index += 1) {\n children.push(materializeElement(flattened[index]))\n }\n return {\n ...value,\n props: {\n ...value.props,\n children\n }\n }\n}\n\nconst INHERITED_TEXT_STYLE_MARKER = \"__jsxpdfInheritedTextStyle\"\n\nexport const inheritTextStyle = (style: ResolvedStyle): InheritedTextStyle => {\n const inherited: InheritedTextStyle = {\n fontSize: style.fontSize,\n lineHeight: style.lineHeight,\n color: style.color,\n fontFamily: style.fontFamily,\n fontWeight: style.fontWeight,\n fontStyle: style.fontStyle,\n letterSpacing: style.letterSpacing,\n opacity: style.opacity,\n textDecoration: style.textDecoration,\n textDecorationColor: style.textDecorationColor,\n textDecorationStyle: style.textDecorationStyle,\n textAlign: style.textAlign,\n direction: style.direction,\n lang: style.lang\n }\n // Non-enumerable marker lets the style cache use a fast fixed-shape\n // serializer for these objects (they are created once per parent node).\n Object.defineProperty(inherited, INHERITED_TEXT_STYLE_MARKER, { value: true, enumerable: false })\n return inherited\n}\n\nexport const buildNodeChildren = (\n childrenValue: PdfValue,\n inheritedTextStyle?: InheritedTextStyle\n): PdfElementNode[] => {\n const childrenValues = materializeChildren(childrenValue)\n const children: PdfElementNode[] = []\n for (let index = 0; index < childrenValues.length; index += 1) {\n const child = childrenValues[index]\n if (typeof child === \"string\" || typeof child === \"number\") {\n children.push(buildNodeTree({\n type: TextInstance,\n props: { children: String(child) }\n }, inheritedTextStyle))\n continue\n }\n if (isBindingToken(child)) {\n children.push(buildNodeTree({\n type: TextInstance,\n props: { children: String(child.value) }\n }, inheritedTextStyle))\n continue\n }\n if (!isElement(child)) continue\n children.push(buildNodeTree(materializeElement(child) as PdfElement, inheritedTextStyle))\n }\n return children\n}\n\nexport const buildNodeTree = (\n element: PdfElement,\n inheritedTextStyle?: InheritedTextStyle\n): PdfElementNode => {\n const nodeType = normalizeType(element.type)\n const resolved = resolveStyle(element.props.style, inheritedTextStyle)\n // Document `language` prop seeds the per-node `lang` default for the whole\n // tree: style.lang ?? inherited lang ?? Document language ?? undefined.\n const style = nodeType === \"DOCUMENT\" && resolved.lang == null && typeof element.props.language === \"string\" && element.props.language\n ? { ...resolved, lang: element.props.language }\n : resolved\n if (nodeType === \"TEXT_INSTANCE\") {\n return {\n type: nodeType,\n props: element.props,\n style,\n children: [],\n text: String(element.props.children ?? \"\")\n }\n }\n const children = buildNodeChildren(element.props.children ?? [], inheritTextStyle(style))\n\n return {\n type: nodeType,\n props: element.props,\n style,\n children,\n text: undefined\n }\n}\n\nexport const extractText = (node: PdfElementNode): string => {\n if (node.type === \"TEXT_INSTANCE\") return node.text ?? \"\"\n if (node.children.length === 0 && typeof node.text === \"string\") return node.text\n return node.children.map((child) => extractText(child)).join(\"\")\n}\n\nconst mergeAdjacentTextRuns = (runs: AttributedTextRun[]): AttributedTextRun[] => {\n const merged: AttributedTextRun[] = []\n for (const run of runs) {\n if (!run.text) continue\n const previous = merged.length > 0 ? merged[merged.length - 1] : undefined\n if (\n previous &&\n previous.style.fontFamily === run.style.fontFamily &&\n previous.style.fontSize === run.style.fontSize &&\n previous.style.fontWeight === run.style.fontWeight &&\n previous.style.fontStyle === run.style.fontStyle &&\n previous.style.lineHeight === run.style.lineHeight &&\n previous.style.hasExplicitLineHeight === run.style.hasExplicitLineHeight &&\n previous.style.color === run.style.color &&\n previous.style.letterSpacing === run.style.letterSpacing &&\n previous.style.opacity === run.style.opacity &&\n previous.style.textDecoration === run.style.textDecoration &&\n previous.style.textDecorationColor === run.style.textDecorationColor &&\n previous.style.textDecorationStyle === run.style.textDecorationStyle &&\n previous.style.textAlign === run.style.textAlign &&\n previous.style.direction === run.style.direction &&\n previous.style.lang === run.style.lang\n ) {\n previous.text += run.text\n continue\n }\n merged.push({ text: run.text, style: run.style })\n }\n return merged\n}\n\nexport const extractTextRuns = (node: PdfElementNode): AttributedTextRun[] => {\n if (node.type === \"TEXT_INSTANCE\") {\n return node.text ? [{ text: node.text, style: node.style }] : []\n }\n\n const childRuns = mergeAdjacentTextRuns(node.children.flatMap((child) => extractTextRuns(child)))\n if (childRuns.length > 0) return childRuns\n if ((node.type === \"TEXT\" || node.type === \"LINK\") && typeof node.text === \"string\" && node.text.length > 0) {\n return [{ text: node.text, style: node.style }]\n }\n return []\n}\n", "import type { ProfileCounters, ProfileOptions, ProfileStage, ProfileStageName, ProfileTrace } from \"./types\"\n\nconst defaultCounters = (): ProfileCounters => ({\n elementNodes: 0,\n textInstances: 0,\n pages: 0,\n images: 0,\n textRuns: 0,\n backendOps: 0,\n textMeasureCalls: 0,\n textMeasureCacheHits: 0,\n textMeasureCacheMisses: 0,\n textShapeCalls: 0,\n textMeasureDistinctCacheKeys: 0,\n textMeasureDistinctRunFingerprints: 0,\n textMeasureDistinctWidths: 0,\n specializedTablesUsed: 0,\n fastCellsMeasured: 0,\n fallbackCellsMeasured: 0,\n rowCacheHits: 0,\n rowCacheMisses: 0\n})\n\nconst appendProfileLog = async (logFile: string, payload: string): Promise<void> => {\n if (typeof process === \"undefined\" || !process.versions?.node) return\n const loadNodeFs = new Function(\"return import('node:fs')\") as () => Promise<{ default: { appendFileSync: (path: string, data: string) => void } }>\n const { default: fs } = await loadNodeFs()\n fs.appendFileSync(logFile, payload)\n}\n\nexport class ProfileCollector {\n private stages: ProfileStage[] = []\n readonly counters: ProfileCounters = defaultCounters()\n private totalStart = performance.now()\n /** When false, stage/record/addCounter are no-ops so un-profiled renders pay no collection cost. */\n readonly enabled: boolean\n constructor(private readonly options: ProfileOptions | undefined) {\n this.enabled = options != null\n }\n\n async stage<T>(name: ProfileStageName, fn: () => Promise<T> | T): Promise<T> {\n if (!this.enabled) return fn()\n const start = performance.now()\n const result = await fn()\n this.record(name, performance.now() - start)\n return result\n }\n\n record(name: ProfileStageName, durationMs: number): void {\n if (!this.enabled) return\n this.stages.push({ name, durationMs })\n }\n\n addCounter(name: keyof ProfileCounters, value = 1): void {\n if (!this.enabled) return\n this.counters[name] += value\n }\n\n finish(): ProfileTrace {\n const trace = {\n stages: [...this.stages],\n totalMs: performance.now() - this.totalStart,\n counters: { ...this.counters }\n }\n this.write(trace)\n return trace\n }\n\n private write(trace: ProfileTrace): void {\n const logFile = this.options?.logFile ?? (\n typeof process !== \"undefined\" && process.versions?.node\n ? process.env.PDF_JSX_PERF_LOG\n : undefined\n )\n if (!logFile) return\n const payload = {\n ts: new Date().toISOString(),\n label: this.options?.label ?? \"jsxpdf.render.total\",\n ...this.options?.context,\n trace\n }\n void appendProfileLog(logFile, `${JSON.stringify(payload)}\\n`)\n }\n}\n\nexport const normalizeProfileOptions = (profile: boolean | ProfileOptions | undefined): ProfileOptions | undefined => {\n if (!profile) return undefined\n if (profile === true) return { enabled: true }\n return { enabled: true, ...profile }\n}\n", "// Unicode code point -> WinAnsiEncoding byte mapping for the PDF base-14 fonts.\n// Code points below 0x100 map identity except for the Euro/currency/smart-punct\n// range, which lives in 0x80-0x9F of WinAnsi.\nconst WIN_ANSI_MAP: Record<number, number> = {\n 0x0152: 140,\n 0x0153: 156,\n 0x0160: 138,\n 0x0161: 154,\n 0x0178: 159,\n 0x017D: 142,\n 0x017E: 158,\n 0x0192: 131,\n 0x02C6: 136,\n 0x02DC: 152,\n 0x2013: 150,\n 0x2014: 151,\n 0x2018: 145,\n 0x2019: 146,\n 0x201A: 130,\n 0x201C: 147,\n 0x201D: 148,\n 0x201E: 132,\n 0x2020: 134,\n 0x2021: 135,\n 0x2022: 149,\n 0x2026: 133,\n 0x2030: 137,\n 0x2039: 139,\n 0x203A: 155,\n 0x20AC: 128,\n 0x2122: 153\n}\n\nexport const toWinAnsiByte = (codePoint: number): number => {\n const mapped = WIN_ANSI_MAP[codePoint] ?? codePoint\n return mapped >= 0 && mapped <= 255 ? mapped : 63\n}\n\nexport const toWinAnsiBytes = (text: string): number[] => {\n const bytes: number[] = []\n for (const char of text) {\n bytes.push(toWinAnsiByte(char.codePointAt(0) ?? 63))\n }\n return bytes\n}\n"],
|
|
5
|
+
"mappings": "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AAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAE,KAAI,GAAE,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAE,KAAI,GAAE,GAAE,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAE,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,CAAC,GAAE,O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,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAE,KAAI,GAAE,KAAI,KAAI,KAAI,KAAK,KAAI,KAAI,KAAI,KAAK,KAAI,KAAI,KAAK,GAAE,KAAI,GAAE,GAAE,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAK,KAAI,KAAK,KAAI,KAAI,KAAI,GAAE,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,CAAC,GAAE,OAAQ,CAAC,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU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AAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAE,KAAI,GAAE,KAAI,KAAI,KAAI,KAAK,KAAI,KAAI,KAAI,KAAK,KAAI,KAAI,KAAI,GAAE,KAAI,GAAE,GAAE,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAK,KAAI,KAAI,KAAI,KAAI,KAAI,GAAE,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,CAAC,GAAE,OAAQ,CAAC,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,SAAQ,UAAS,YAAW,cAAa,UAAS,WAAU,aAAY,eAAc,aAAY,cAAa,YAAW,QAAO,SAAQ,UAAS,UAAS,SAAQ,QAAO,OAAM,OAAM,SAAQ,QAAO,QAAO,OAAM,SAAQ,SAAQ,QAAO,SAAQ,aAAY,QAAO,SAAQ,WAAU,YAAW,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,eAAc,aAAY,gBAAe,eAAc,cAAa,SAAQ,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,aAAY,OAAM,cAAa,cAAa,WAAU,QAAO,WAAU,kBAAiB,UAAS,gBAAe,YAAW,UAAS,aAAY,cAAa,eAAc,UAAS,iBAAgB,MAAK,WAAU,UAAS,WAAU,WAAU,aAAY,cAAa,gBAAe,iBAAgB,UAAS,UAAS,UAAS,SAAQ,aAAY,UAAS,kBAAiB,MAAK,WAAU,UAAS,aAAY,SAAQ,cAAa,QAAO,YAAW,YAAW,OAAM,aAAY,WAAU,YAAW,aAAY,eAAc,iBAAgB,cAAa,UAAS,cAAa,UAAS,UAAS,aAAY,eAAc,iBAAgB,SAAQ,MAAK,aAAY,kBAAiB,WAAU,eAAc,gBAAe,kBAAiB,cAAa,WAAU,iBAAgB,gBAAe,UAAS,UAAS,eAAc,UAAS,aAAY,SAAQ,MAAK,YAAW,UAAS,UAAS,eAAc,aAAY,UAAS,UAAS,eAAc,aAAY,OAAM,UAAS,UAAS,UAAS,eAAc,UAAS,aAAY,YAAW,UAAS,UAAS,UAAS,eAAc,aAAY,UAAS,SAAQ,cAAa,UAAS,UAAS,eAAc,UAAS,aAAY,SAAQ,MAAK,YAAW,UAAS,UAAS,eAAc,aAAY,UAAS,UAAS,eAAc,aAAY,OAAM,UAAS,UAAS,UAAS,eAAc,UAAS,aAAY,UAAS,UAAS,UAAS,UAAS,eAAc,aAAY,UAAS,SAAQ,aAAa,EAAC,GAAE,cAAa,EAAC,UAAW,KAAI,WAAY,MAAK,WAAY,KAAI,SAAU,KAAI,SAAU,KAAI,QAAS,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,KAAI,KAAI,KAAI,KAAI,KAAI,KAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAE,KAAI,GAAE,KAAI,KAAI,KAAI,KAAK,KAAI,KAAI,KAAI,KAAK,KAAI,KAAI,KAAK,GAAE,KAAI,GAAE,GAAE,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAK,KAAI,KAAK,KAAI,KAAI,KAAI,GAAE,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAA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E,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,KAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,KAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAA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",
|
|
6
|
+
"names": ["bytes", "resolved"]
|
|
7
7
|
}
|