ats-form-react-pdf-renderer 4.3.2
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/README.md +162 -0
- package/index.d.ts +692 -0
- package/lib/react-pdf.browser.d.cts +692 -0
- package/lib/react-pdf.browser.d.ts +692 -0
- package/lib/react-pdf.browser.js +27262 -0
- package/lib/react-pdf.browser.js.map +1 -0
- package/lib/react-pdf.browser.min.d.cts +692 -0
- package/lib/react-pdf.browser.min.d.ts +692 -0
- package/lib/react-pdf.browser.min.js +8 -0
- package/lib/react-pdf.d.cts +692 -0
- package/lib/react-pdf.d.ts +692 -0
- package/lib/react-pdf.js +14014 -0
- package/lib/react-pdf.js.map +1 -0
- package/lib/react-pdf.min.d.cts +692 -0
- package/lib/react-pdf.min.d.ts +692 -0
- package/lib/react-pdf.min.js +8 -0
- package/package.json +67 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-pdf.js","sources":["../../../node_modules/media-engine/src/queries.js","../../../node_modules/media-engine/src/operators.js","../../../node_modules/media-engine/src/parser.js","../../../node_modules/media-engine/src/index.js","../../../node_modules/hsl-to-rgb-for-reals/converter.js","../../../node_modules/hsl-to-hex/index.js","../../../node_modules/color-name/index.js","../../../node_modules/simple-swizzle/node_modules/is-arrayish/index.js","../../../node_modules/simple-swizzle/index.js","../../../node_modules/color-string/index.js","../../../node_modules/postcss-value-parser/lib/parse.js","../../../node_modules/postcss-value-parser/lib/unit.js","../../stylesheet/lib/index.js","../../../node_modules/bidi-js/dist/bidi.mjs","../../../node_modules/base64-js/index.js","../../../node_modules/tiny-inflate/index.js","../../../node_modules/unicode-trie/swap.js","../../../node_modules/unicode-trie/index.js","../../../node_modules/unicode-properties/dist/module.mjs","../../../node_modules/hyphen/hyphen.js","../../../node_modules/hyphen/index.js","../../../node_modules/hyphen/patterns/en-us.js","../../textkit/lib/textkit.js","../../../node_modules/yoga-layout/dist/binaries/yoga-wasm-base64-esm.js","../../../node_modules/yoga-layout/dist/src/generated/YGEnums.js","../../../node_modules/yoga-layout/dist/src/wrapAssembly.js","../../../node_modules/yoga-layout/dist/src/load.js","../../../node_modules/emoji-regex-xs/index.mjs","../../png-js/lib/png-js.js","../../../node_modules/restructure/src/DecodeStream.js","../../../node_modules/restructure/src/EncodeStream.js","../../../node_modules/restructure/src/Base.js","../../../node_modules/restructure/src/Number.js","../../../node_modules/restructure/src/utils.js","../../../node_modules/restructure/src/Array.js","../../../node_modules/restructure/src/Buffer.js","../../../node_modules/restructure/src/Reserved.js","../../../node_modules/restructure/src/String.js","../../../node_modules/restructure/src/Struct.js","../../../node_modules/restructure/src/VersionedStruct.js","../../../node_modules/jay-peg/src/markers/dac.js","../../../node_modules/jay-peg/src/markers/utils.js","../../../node_modules/jay-peg/src/markers/dht.js","../../../node_modules/jay-peg/src/markers/dqt.js","../../../node_modules/jay-peg/src/markers/dri.js","../../../node_modules/jay-peg/src/markers/eoi.js","../../../node_modules/jay-peg/src/markers/exif.js","../../../node_modules/jay-peg/src/markers/jfif.js","../../../node_modules/jay-peg/src/markers/sos.js","../../../node_modules/jay-peg/src/markers/sof.js","../../../node_modules/jay-peg/src/markers/soi.js","../../../node_modules/jay-peg/src/index.js","../../image/lib/index.js","../../../node_modules/@react-pdf/layout/lib/index.js","../src/utils.js","../src/renderer.js","../src/index.js","../src/node/renderTo.js","../src/node/index.js"],"sourcesContent":["function MaxHeight(value) {\n this.value = value;\n\n this.match = function(options) {\n return this.value >= options.height;\n };\n}\n\nfunction MinHeight(value) {\n this.value = value;\n\n this.match = function(options) {\n return this.value < options.height;\n };\n}\n\nfunction MaxWidth(value) {\n this.value = value;\n\n this.match = function(options) {\n return this.value >= options.width;\n };\n}\n\nfunction MinWidth(value) {\n this.value = value;\n\n this.match = function(options) {\n return this.value < options.width;\n };\n}\n\nfunction Orientation(value) {\n this.value = value;\n\n this.match = function(options) {\n return this.value === options.orientation;\n };\n}\n\nmodule.exports = function Query(type, value) {\n switch (type) {\n case 'max-height':\n return new MaxHeight(value);\n case 'min-height':\n return new MinHeight(value);\n case 'max-width':\n return new MaxWidth(value);\n case 'min-width':\n return new MinWidth(value);\n case 'orientation':\n return new Orientation(value);\n default:\n throw new Error(value);\n }\n};\n","function And(left, right) {\n this.left = left;\n this.right = right;\n\n this.match = function(options) {\n return left.match(options) && right.match(options);\n };\n}\n\nfunction Or(left, right) {\n this.left = left;\n this.right = right;\n\n this.match = function(options) {\n return left.match(options) || right.match(options);\n };\n}\n\nmodule.exports = function Operator(type, left, right) {\n switch (type) {\n case 'and':\n return new And(left, right);\n case ',':\n return new Or(left, right);\n default:\n throw new Error(value);\n }\n};\n","var Query = require('./queries');\nvar Operator = require('./operators');\n\nvar NUMBERS = /[0-9]/;\nvar LETTERS = /[a-z|\\-]/i;\nvar WHITESPACE = /\\s/;\nvar COLON = /:/;\nvar COMMA = /,/;\nvar AND = /and$/;\nvar AT = /@/;\n\nfunction tokenizer(input) {\n var current = 0;\n var tokens = [];\n\n while (current < input.length) {\n var char = input[current];\n\n if (AT.test(char)) {\n char = input[++current];\n while (LETTERS.test(char) && char !== undefined) {\n char = input[++current];\n }\n }\n\n if (WHITESPACE.test(char) || char === ')' || char === '(') {\n current++;\n continue;\n }\n\n if (COLON.test(char) || COMMA.test(char)) {\n current++;\n tokens.push({ type: 'operator', value: char });\n continue;\n }\n\n if (NUMBERS.test(char)) {\n var value = '';\n while (NUMBERS.test(char)) {\n value += char;\n char = input[++current];\n }\n\n tokens.push({ type: 'number', value: value });\n continue;\n }\n\n if (LETTERS.test(char)) {\n var value = '';\n while (LETTERS.test(char) && char !== undefined) {\n value += char;\n char = input[++current];\n }\n if (AND.test(value)) {\n tokens.push({ type: 'operator', value: value });\n } else {\n tokens.push({ type: 'literal', value: value });\n }\n\n continue;\n }\n\n throw new TypeError(\n 'Tokenizer: I dont know what this character is: ' + char\n );\n }\n\n return tokens;\n}\n\nfunction parser(tokens) {\n var output = [];\n var stack = [];\n\n while (tokens.length > 0) {\n var token = tokens.shift();\n\n if (token.type === 'number' || token.type === 'literal') {\n output.push(token);\n continue;\n }\n\n if (token.type === 'operator') {\n if (COLON.test(token.value)) {\n token = { type: 'query', key: output.pop(), value: tokens.shift() };\n output.push(token);\n continue;\n }\n\n while (stack.length > 0) {\n output.unshift(stack.pop());\n }\n stack.push(token);\n }\n }\n\n while (stack.length > 0) {\n output.unshift(stack.pop());\n }\n\n function walk() {\n var head = output.shift();\n\n if (head.type === 'number') {\n return parseInt(head.value);\n }\n\n if (head.type === 'literal') {\n return head.value;\n }\n\n if (head.type === 'operator') {\n var l = walk();\n var r = walk();\n\n return Operator(head.value, l, r);\n }\n\n if (head.type === 'query') {\n var l = head.key.value;\n var r = head.value.value;\n\n return Query(l, r);\n }\n }\n\n return walk();\n}\n\nmodule.exports = {\n parse: function(query) {\n var tokens = tokenizer(query);\n var ast = parser(tokens);\n return ast;\n }\n};\n","var Parser = require('./parser');\n\nmodule.exports = function(queries, options) {\n var result = {};\n\n Object.keys(queries).forEach(function(query) {\n if (Parser.parse(query).match(options)) {\n Object.assign(result, queries[query]);\n }\n });\n\n return result;\n};\n","// expected hue range: [0, 360)\n// expected saturation range: [0, 1]\n// expected lightness range: [0, 1]\nvar hslToRgb = function(hue, saturation, lightness){\n // based on algorithm from http://en.wikipedia.org/wiki/HSL_and_HSV#Converting_to_RGB\n if( hue == undefined ){\n return [0, 0, 0];\n }\n\n var chroma = (1 - Math.abs((2 * lightness) - 1)) * saturation;\n var huePrime = hue / 60;\n var secondComponent = chroma * (1 - Math.abs((huePrime % 2) - 1));\n\n huePrime = Math.floor(huePrime);\n var red;\n var green;\n var blue;\n\n if( huePrime === 0 ){\n red = chroma;\n green = secondComponent;\n blue = 0;\n }else if( huePrime === 1 ){\n red = secondComponent;\n green = chroma;\n blue = 0;\n }else if( huePrime === 2 ){\n red = 0;\n green = chroma;\n blue = secondComponent;\n }else if( huePrime === 3 ){\n red = 0;\n green = secondComponent;\n blue = chroma;\n }else if( huePrime === 4 ){\n red = secondComponent;\n green = 0;\n blue = chroma;\n }else if( huePrime === 5 ){\n red = chroma;\n green = 0;\n blue = secondComponent;\n }\n\n var lightnessAdjustment = lightness - (chroma / 2);\n red += lightnessAdjustment;\n green += lightnessAdjustment;\n blue += lightnessAdjustment;\n\n return [\n Math.abs(Math.round(red * 255)),\n Math.abs(Math.round(green * 255)),\n Math.abs(Math.round(blue * 255))\n ];\n\n};\n\nmodule.exports = hslToRgb;\n","// In our case, there's only one dependency\n\nvar toRgb = require('hsl-to-rgb-for-reals')\n\n// Typically all dependencies should be declared at the top of the file.\n\n// Now let's define an API for our module, we're taking hue, saturation and luminosity values and outputting a CSS compatible hex string.\n// Hue is in degrees, between 0 and 359. Since degrees a cyclical in nature, we'll support numbers greater than 359 or less than 0 by \"spinning\" them around until they fall within the 0 to 359 range.\n// Saturation and luminosity are both percentages, we'll represent these percentages with whole numbers between 0 and 100. For these numbers we'll need to enforce a maximum and a minimum, anything below 0 will become 0, anything above 100 will become 100.\n// Let's write some utility functions to handle this logic:\n\nfunction max (val, n) {\n return (val > n) ? n : val\n}\n\nfunction min (val, n) {\n return (val < n) ? n : val\n}\n\nfunction cycle (val) {\n // for safety:\n val = max(val, 1e7)\n val = min(val, -1e7)\n // cycle value:\n while (val < 0) { val += 360 }\n while (val > 359) { val -= 360 }\n return val\n}\n\n// Now for the main piece, the `hsl` function:\n\nfunction hsl (hue, saturation, luminosity) {\n // resolve degrees to 0 - 359 range\n hue = cycle(hue)\n\n // enforce constraints\n saturation = min(max(saturation, 100), 0)\n luminosity = min(max(luminosity, 100), 0)\n\n // convert to 0 to 1 range used by hsl-to-rgb-for-reals\n saturation /= 100\n luminosity /= 100\n\n // let hsl-to-rgb-for-reals do the hard work\n var rgb = toRgb(hue, saturation, luminosity)\n\n // convert each value in the returned RGB array\n // to a 2 character hex value, join the array into\n // a string, prefixed with a hash\n return '#' + rgb\n .map(function (n) {\n return (256 + n).toString(16).substr(-2)\n })\n .join('')\n}\n\n// In order to make our code into a bona fide module we have to export it:\n\nmodule.exports = hsl\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","var openParentheses = \"(\".charCodeAt(0);\nvar closeParentheses = \")\".charCodeAt(0);\nvar singleQuote = \"'\".charCodeAt(0);\nvar doubleQuote = '\"'.charCodeAt(0);\nvar backslash = \"\\\\\".charCodeAt(0);\nvar slash = \"/\".charCodeAt(0);\nvar comma = \",\".charCodeAt(0);\nvar colon = \":\".charCodeAt(0);\nvar star = \"*\".charCodeAt(0);\nvar uLower = \"u\".charCodeAt(0);\nvar uUpper = \"U\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar isUnicodeRange = /^[a-f0-9?-]+$/i;\n\nmodule.exports = function(input) {\n var tokens = [];\n var value = input;\n\n var next,\n quote,\n prev,\n token,\n escape,\n escapePos,\n whitespacePos,\n parenthesesOpenPos;\n var pos = 0;\n var code = value.charCodeAt(pos);\n var max = value.length;\n var stack = [{ nodes: tokens }];\n var balanced = 0;\n var parent;\n\n var name = \"\";\n var before = \"\";\n var after = \"\";\n\n while (pos < max) {\n // Whitespaces\n if (code <= 32) {\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = value.slice(pos, next);\n\n prev = tokens[tokens.length - 1];\n if (code === closeParentheses && balanced) {\n after = token;\n } else if (prev && prev.type === \"div\") {\n prev.after = token;\n prev.sourceEndIndex += token.length;\n } else if (\n code === comma ||\n code === colon ||\n (code === slash &&\n value.charCodeAt(next + 1) !== star &&\n (!parent ||\n (parent && parent.type === \"function\" && parent.value !== \"calc\")))\n ) {\n before = token;\n } else {\n tokens.push({\n type: \"space\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n }\n\n pos = next;\n\n // Quotes\n } else if (code === singleQuote || code === doubleQuote) {\n next = pos;\n quote = code === singleQuote ? \"'\" : '\"';\n token = {\n type: \"string\",\n sourceIndex: pos,\n quote: quote\n };\n do {\n escape = false;\n next = value.indexOf(quote, next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += quote;\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n token.value = value.slice(pos + 1, next);\n token.sourceEndIndex = token.unclosed ? next : next + 1;\n tokens.push(token);\n pos = next + 1;\n code = value.charCodeAt(pos);\n\n // Comments\n } else if (code === slash && value.charCodeAt(pos + 1) === star) {\n next = value.indexOf(\"*/\", pos);\n\n token = {\n type: \"comment\",\n sourceIndex: pos,\n sourceEndIndex: next + 2\n };\n\n if (next === -1) {\n token.unclosed = true;\n next = value.length;\n token.sourceEndIndex = next;\n }\n\n token.value = value.slice(pos + 2, next);\n tokens.push(token);\n\n pos = next + 2;\n code = value.charCodeAt(pos);\n\n // Operation within calc\n } else if (\n (code === slash || code === star) &&\n parent &&\n parent.type === \"function\" &&\n parent.value === \"calc\"\n ) {\n token = value[pos];\n tokens.push({\n type: \"word\",\n sourceIndex: pos - before.length,\n sourceEndIndex: pos + token.length,\n value: token\n });\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Dividers\n } else if (code === slash || code === comma || code === colon) {\n token = value[pos];\n\n tokens.push({\n type: \"div\",\n sourceIndex: pos - before.length,\n sourceEndIndex: pos + token.length,\n value: token,\n before: before,\n after: \"\"\n });\n before = \"\";\n\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Open parentheses\n } else if (openParentheses === code) {\n // Whitespaces after open parentheses\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n parenthesesOpenPos = pos;\n token = {\n type: \"function\",\n sourceIndex: pos - name.length,\n value: name,\n before: value.slice(parenthesesOpenPos + 1, next)\n };\n pos = next;\n\n if (name === \"url\" && code !== singleQuote && code !== doubleQuote) {\n next -= 1;\n do {\n escape = false;\n next = value.indexOf(\")\", next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += \")\";\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n // Whitespaces before closed\n whitespacePos = next;\n do {\n whitespacePos -= 1;\n code = value.charCodeAt(whitespacePos);\n } while (code <= 32);\n if (parenthesesOpenPos < whitespacePos) {\n if (pos !== whitespacePos + 1) {\n token.nodes = [\n {\n type: \"word\",\n sourceIndex: pos,\n sourceEndIndex: whitespacePos + 1,\n value: value.slice(pos, whitespacePos + 1)\n }\n ];\n } else {\n token.nodes = [];\n }\n if (token.unclosed && whitespacePos + 1 !== next) {\n token.after = \"\";\n token.nodes.push({\n type: \"space\",\n sourceIndex: whitespacePos + 1,\n sourceEndIndex: next,\n value: value.slice(whitespacePos + 1, next)\n });\n } else {\n token.after = value.slice(whitespacePos + 1, next);\n token.sourceEndIndex = next;\n }\n } else {\n token.after = \"\";\n token.nodes = [];\n }\n pos = next + 1;\n token.sourceEndIndex = token.unclosed ? next : pos;\n code = value.charCodeAt(pos);\n tokens.push(token);\n } else {\n balanced += 1;\n token.after = \"\";\n token.sourceEndIndex = pos + 1;\n tokens.push(token);\n stack.push(token);\n tokens = token.nodes = [];\n parent = token;\n }\n name = \"\";\n\n // Close parentheses\n } else if (closeParentheses === code && balanced) {\n pos += 1;\n code = value.charCodeAt(pos);\n\n parent.after = after;\n parent.sourceEndIndex += after.length;\n after = \"\";\n balanced -= 1;\n stack[stack.length - 1].sourceEndIndex = pos;\n stack.pop();\n parent = stack[balanced];\n tokens = parent.nodes;\n\n // Words\n } else {\n next = pos;\n do {\n if (code === backslash) {\n next += 1;\n }\n next += 1;\n code = value.charCodeAt(next);\n } while (\n next < max &&\n !(\n code <= 32 ||\n code === singleQuote ||\n code === doubleQuote ||\n code === comma ||\n code === colon ||\n code === slash ||\n code === openParentheses ||\n (code === star &&\n parent &&\n parent.type === \"function\" &&\n parent.value === \"calc\") ||\n (code === slash &&\n parent.type === \"function\" &&\n parent.value === \"calc\") ||\n (code === closeParentheses && balanced)\n )\n );\n token = value.slice(pos, next);\n\n if (openParentheses === code) {\n name = token;\n } else if (\n (uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) &&\n plus === token.charCodeAt(1) &&\n isUnicodeRange.test(token.slice(2))\n ) {\n tokens.push({\n type: \"unicode-range\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n } else {\n tokens.push({\n type: \"word\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n }\n\n pos = next;\n }\n }\n\n for (pos = stack.length - 1; pos; pos -= 1) {\n stack[pos].unclosed = true;\n stack[pos].sourceEndIndex = value.length;\n }\n\n return stack[0].nodes;\n};\n","var minus = \"-\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar dot = \".\".charCodeAt(0);\nvar exp = \"e\".charCodeAt(0);\nvar EXP = \"E\".charCodeAt(0);\n\n// Check if three code points would start a number\n// https://www.w3.org/TR/css-syntax-3/#starts-with-a-number\nfunction likeNumber(value) {\n var code = value.charCodeAt(0);\n var nextCode;\n\n if (code === plus || code === minus) {\n nextCode = value.charCodeAt(1);\n\n if (nextCode >= 48 && nextCode <= 57) {\n return true;\n }\n\n var nextNextCode = value.charCodeAt(2);\n\n if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) {\n return true;\n }\n\n return false;\n }\n\n if (code === dot) {\n nextCode = value.charCodeAt(1);\n\n if (nextCode >= 48 && nextCode <= 57) {\n return true;\n }\n\n return false;\n }\n\n if (code >= 48 && code <= 57) {\n return true;\n }\n\n return false;\n}\n\n// Consume a number\n// https://www.w3.org/TR/css-syntax-3/#consume-number\nmodule.exports = function(value) {\n var pos = 0;\n var length = value.length;\n var code;\n var nextCode;\n var nextNextCode;\n\n if (length === 0 || !likeNumber(value)) {\n return false;\n }\n\n code = value.charCodeAt(pos);\n\n if (code === plus || code === minus) {\n pos++;\n }\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n\n code = value.charCodeAt(pos);\n nextCode = value.charCodeAt(pos + 1);\n\n if (code === dot && nextCode >= 48 && nextCode <= 57) {\n pos += 2;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n }\n\n code = value.charCodeAt(pos);\n nextCode = value.charCodeAt(pos + 1);\n nextNextCode = value.charCodeAt(pos + 2);\n\n if (\n (code === exp || code === EXP) &&\n ((nextCode >= 48 && nextCode <= 57) ||\n ((nextCode === plus || nextCode === minus) &&\n nextNextCode >= 48 &&\n nextNextCode <= 57))\n ) {\n pos += nextCode === plus || nextCode === minus ? 3 : 2;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n }\n\n return {\n number: value.slice(0, pos),\n unit: value.slice(pos)\n };\n};\n","import { compose, castArray, parseFloat as parseFloat$1, matchPercent } from '@react-pdf/fns';\nimport matchMedia from 'media-engine';\nimport hlsToHex from 'hsl-to-hex';\nimport colorString from 'color-string';\nimport parse$1 from 'postcss-value-parser/lib/parse.js';\nimport parseUnit from 'postcss-value-parser/lib/unit.js';\n\n/**\n * Remove nil values from array\n *\n * @param array - Style array\n * @returns Style array without nils\n */\nconst compact = (array) => array.filter(Boolean);\n/**\n * Merges style objects array\n *\n * @param styles - Style array\n * @returns Merged style object\n */\nconst mergeStyles = (styles) => styles.reduce((acc, style) => {\n const s = Array.isArray(style) ? flatten(style) : style;\n Object.keys(s).forEach((key) => {\n if (s[key] !== null && s[key] !== undefined) {\n acc[key] = s[key];\n }\n });\n return acc;\n}, {});\n/**\n * Flattens an array of style objects, into one aggregated style object.\n *\n * @param styles - Style or style array\n * @returns Flattened style object\n */\nconst flatten = compose(mergeStyles, compact, (castArray));\n\n/**\n * Resolves media queries in styles object\n *\n * @param container - Container for which styles are resolved\n * @param style - Style description\n * @returns Resolved style object\n */\nconst resolveMediaQueries = (container, style) => {\n return Object.keys(style).reduce((acc, key) => {\n if (/@media/.test(key)) {\n return {\n ...acc,\n ...matchMedia({ [key]: style[key] }, container),\n };\n }\n return { ...acc, [key]: style[key] };\n }, {});\n};\n\nconst isRgb = (value) => /rgba?/g.test(value);\nconst isHsl = (value) => /hsla?/g.test(value);\n/**\n * Transform rgb color to hexa\n *\n * @param value - Styles value\n * @returns Transformed value\n */\nconst parseRgb = (value) => {\n const rgb = colorString.get.rgb(value);\n return colorString.to.hex(rgb);\n};\n/**\n * Transform Hsl color to hexa\n *\n * @param value - Styles value\n * @returns Transformed value\n */\nconst parseHsl = (value) => {\n const hsl = colorString.get.hsl(value).map(Math.round);\n const hex = hlsToHex(...hsl);\n return hex.toUpperCase();\n};\n/**\n * Transform given color to hexa\n *\n * @param value - Styles value\n * @returns Transformed value\n */\nconst transformColor = (value) => {\n if (isRgb(value))\n return parseRgb(value);\n if (isHsl(value))\n return parseHsl(value);\n return value;\n};\n\n/**\n * Parses scalar value in value and unit pairs\n *\n * @param value - Scalar value\n * @returns Parsed value\n */\nconst parseValue = (value) => {\n if (typeof value === 'number')\n return { value, unit: undefined };\n const match = /^(-?\\d*\\.?\\d+)(in|mm|cm|pt|vh|vw|px|rem)?$/g.exec(value);\n return match\n ? { value: parseFloat(match[1]), unit: match[2] || 'pt' }\n : { value, unit: undefined };\n};\n/**\n * Transform given scalar value\n *\n * @param container\n * @param value - Styles value\n * @returns Transformed value\n */\nconst transformUnit = (container, value) => {\n const scalar = parseValue(value);\n const outputDpi = 72;\n const inputDpi = container.dpi || 72;\n const mmFactor = (1 / 25.4) * outputDpi;\n const cmFactor = (1 / 2.54) * outputDpi;\n if (typeof scalar.value !== 'number')\n return scalar.value;\n switch (scalar.unit) {\n case 'rem':\n return scalar.value * (container.remBase || 18);\n case 'in':\n return scalar.value * outputDpi;\n case 'mm':\n return scalar.value * mmFactor;\n case 'cm':\n return scalar.value * cmFactor;\n case 'vh':\n return scalar.value * (container.height / 100);\n case 'vw':\n return scalar.value * (container.width / 100);\n case 'px':\n return Math.round(scalar.value * (outputDpi / inputDpi));\n default:\n return scalar.value;\n }\n};\n\nconst processNumberValue = (key, value) => ({\n [key]: parseFloat$1(value),\n});\nconst processUnitValue = (key, value, container) => ({\n [key]: transformUnit(container, value),\n});\nconst processColorValue = (key, value) => {\n const result = { [key]: transformColor(value) };\n return result;\n};\nconst processNoopValue = (key, value) => ({\n [key]: value,\n});\n\nconst BORDER_SHORTHAND_REGEX = /(-?\\d+(\\.\\d+)?(in|mm|cm|pt|vw|vh|px|rem)?)\\s(\\S+)\\s(.+)/;\nconst matchBorderShorthand = (value) => value.match(BORDER_SHORTHAND_REGEX) || [];\nconst resolveBorderShorthand = (key, value, container) => {\n const match = matchBorderShorthand(`${value}`);\n if (match) {\n const widthMatch = match[1] || value;\n const styleMatch = match[4] || value;\n const colorMatch = match[5] || value;\n const style = styleMatch;\n const color = colorMatch ? transformColor(colorMatch) : undefined;\n const width = widthMatch ? transformUnit(container, widthMatch) : undefined;\n if (key.match(/(Top|Right|Bottom|Left)$/)) {\n return {\n [`${key}Color`]: color,\n [`${key}Style`]: style,\n [`${key}Width`]: width,\n };\n }\n if (key.match(/Color$/)) {\n return {\n borderTopColor: color,\n borderRightColor: color,\n borderBottomColor: color,\n borderLeftColor: color,\n };\n }\n if (key.match(/Style$/)) {\n if (typeof style === 'number')\n throw new Error(`Invalid border style: ${style}`);\n return {\n borderTopStyle: style,\n borderRightStyle: style,\n borderBottomStyle: style,\n borderLeftStyle: style,\n };\n }\n if (key.match(/Width$/)) {\n if (typeof width !== 'number')\n throw new Error(`Invalid border width: ${width}`);\n return {\n borderTopWidth: width,\n borderRightWidth: width,\n borderBottomWidth: width,\n borderLeftWidth: width,\n };\n }\n if (key.match(/Radius$/)) {\n const radius = value ? transformUnit(container, value) : undefined;\n if (typeof radius !== 'number')\n throw new Error(`Invalid border radius: ${radius}`);\n return {\n borderTopLeftRadius: radius,\n borderTopRightRadius: radius,\n borderBottomRightRadius: radius,\n borderBottomLeftRadius: radius,\n };\n }\n if (typeof width !== 'number')\n throw new Error(`Invalid border width: ${width}`);\n if (typeof style === 'number')\n throw new Error(`Invalid border style: ${style}`);\n return {\n borderTopColor: color,\n borderTopStyle: style,\n borderTopWidth: width,\n borderRightColor: color,\n borderRightStyle: style,\n borderRightWidth: width,\n borderBottomColor: color,\n borderBottomStyle: style,\n borderBottomWidth: width,\n borderLeftColor: color,\n borderLeftStyle: style,\n borderLeftWidth: width,\n };\n }\n return { [key]: value };\n};\nconst handlers$b = {\n border: (resolveBorderShorthand),\n borderBottom: (resolveBorderShorthand),\n borderBottomColor: (processColorValue),\n borderBottomLeftRadius: (processUnitValue),\n borderBottomRightRadius: (processUnitValue),\n borderBottomStyle: (processNoopValue),\n borderBottomWidth: (processUnitValue),\n borderColor: (resolveBorderShorthand),\n borderLeft: (resolveBorderShorthand),\n borderLeftColor: (processColorValue),\n borderLeftStyle: (processNoopValue),\n borderLeftWidth: (processUnitValue),\n borderRadius: (resolveBorderShorthand),\n borderRight: (resolveBorderShorthand),\n borderRightColor: (processColorValue),\n borderRightStyle: (processNoopValue),\n borderRightWidth: (processUnitValue),\n borderStyle: (resolveBorderShorthand),\n borderTop: (resolveBorderShorthand),\n borderTopColor: (processColorValue),\n borderTopLeftRadius: (processUnitValue),\n borderTopRightRadius: (processUnitValue),\n borderTopStyle: (processNoopValue),\n borderTopWidth: (processUnitValue),\n borderWidth: (resolveBorderShorthand),\n};\n\nconst handlers$a = {\n backgroundColor: (processColorValue),\n color: (processColorValue),\n opacity: (processNumberValue),\n};\n\nconst handlers$9 = {\n height: (processUnitValue),\n maxHeight: (processUnitValue),\n maxWidth: (processUnitValue),\n minHeight: (processUnitValue),\n minWidth: (processUnitValue),\n width: (processUnitValue),\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/flex#values\n// TODO: change flex defaults to [0, 1, 'auto'] as in spec in next major release\nconst flexDefaults = [1, 1, 0];\nconst flexAuto = [1, 1, 'auto'];\nconst processFlexShorthand = (key, value, container) => {\n let defaults = flexDefaults;\n let matches = [];\n if (value === 'auto') {\n defaults = flexAuto;\n }\n else {\n matches = `${value}`.split(' ');\n }\n const flexGrow = parseFloat$1(matches[0] || defaults[0]);\n const flexShrink = parseFloat$1(matches[1] || defaults[1]);\n const flexBasis = transformUnit(container, matches[2] || defaults[2]);\n return { flexGrow, flexShrink, flexBasis };\n};\nconst handlers$8 = {\n alignContent: (processNoopValue),\n alignItems: (processNoopValue),\n alignSelf: (processNoopValue),\n flex: (processFlexShorthand),\n flexBasis: (processUnitValue),\n flexDirection: (processNoopValue),\n flexFlow: (processNoopValue),\n flexGrow: (processNumberValue),\n flexShrink: (processNumberValue),\n flexWrap: (processNoopValue),\n justifyContent: (processNoopValue),\n justifySelf: (processNoopValue),\n};\n\nconst processGapShorthand = (key, value, container) => {\n const match = `${value}`.split(' ');\n const rowGap = transformUnit(container, match?.[0] || value);\n const columnGap = transformUnit(container, match?.[1] || value);\n return { rowGap, columnGap };\n};\nconst handlers$7 = {\n gap: (processGapShorthand),\n columnGap: (processUnitValue),\n rowGap: (processUnitValue),\n};\n\nconst handlers$6 = {\n aspectRatio: (processNumberValue),\n bottom: (processUnitValue),\n display: (processNoopValue),\n left: (processUnitValue),\n position: (processNoopValue),\n right: (processUnitValue),\n top: (processUnitValue),\n overflow: (processNoopValue),\n zIndex: (processNumberValue),\n};\n\nconst BOX_MODEL_UNITS = 'px,in,mm,cm,pt,%,vw,vh';\nconst logError = (style, value) => {\n const name = style.toString();\n // eslint-disable-next-line no-console\n console.error(`\n @react-pdf/stylesheet parsing error:\n ${name}: ${value},\n ${' '.repeat(name.length + 2)}^\n Unsupported ${name} value format\n `);\n};\n/**\n * @param options\n * @param [options.expandsTo]\n * @param [options.maxValues]\n * @param [options.autoSupported]\n */\nconst expandBoxModel = ({ expandsTo, maxValues = 1, autoSupported = false, } = {}) => (model, value, container) => {\n const nodes = parse$1(`${value}`);\n const parts = [];\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n // value contains `calc`, `url` or other css function\n // `,`, `/` or strings that unsupported by margin and padding\n if (node.type === 'function' ||\n node.type === 'string' ||\n node.type === 'div') {\n logError(model, value);\n return {};\n }\n if (node.type === 'word') {\n if (node.value === 'auto' && autoSupported) {\n parts.push(node.value);\n }\n else {\n const result = parseUnit(node.value);\n // when unit isn't specified this condition is true\n if (result && BOX_MODEL_UNITS.includes(result.unit)) {\n parts.push(node.value);\n }\n else {\n logError(model, value);\n return {};\n }\n }\n }\n }\n // checks that we have enough parsed values\n if (parts.length > maxValues) {\n logError(model, value);\n return {};\n }\n const first = transformUnit(container, parts[0]);\n if (expandsTo) {\n const second = transformUnit(container, parts[1] || parts[0]);\n const third = transformUnit(container, parts[2] || parts[0]);\n const fourth = transformUnit(container, parts[3] || parts[1] || parts[0]);\n return expandsTo({ first, second, third, fourth });\n }\n return {\n [model]: first,\n };\n};\n\nconst processMargin = expandBoxModel({\n expandsTo: ({ first, second, third, fourth }) => ({\n marginTop: first,\n marginRight: second,\n marginBottom: third,\n marginLeft: fourth,\n }),\n maxValues: 4,\n autoSupported: true,\n});\nconst processMarginVertical = expandBoxModel({\n expandsTo: ({ first, second }) => ({\n marginTop: first,\n marginBottom: second,\n }),\n maxValues: 2,\n autoSupported: true,\n});\nconst processMarginHorizontal = expandBoxModel({\n expandsTo: ({ first, second }) => ({\n marginRight: first,\n marginLeft: second,\n }),\n maxValues: 2,\n autoSupported: true,\n});\nconst processMarginSingle = expandBoxModel({\n autoSupported: true,\n});\nconst handlers$5 = {\n margin: (processMargin),\n marginBottom: (processMarginSingle),\n marginHorizontal: (processMarginHorizontal),\n marginLeft: (processMarginSingle),\n marginRight: (processMarginSingle),\n marginTop: (processMarginSingle),\n marginVertical: (processMarginVertical),\n};\n\nconst processPadding = expandBoxModel({\n expandsTo: ({ first, second, third, fourth }) => ({\n paddingTop: first,\n paddingRight: second,\n paddingBottom: third,\n paddingLeft: fourth,\n }),\n maxValues: 4,\n});\nconst processPaddingVertical = expandBoxModel({\n expandsTo: ({ first, second }) => ({\n paddingTop: first,\n paddingBottom: second,\n }),\n maxValues: 2,\n});\nconst processPaddingHorizontal = expandBoxModel({\n expandsTo: ({ first, second }) => ({\n paddingRight: first,\n paddingLeft: second,\n }),\n maxValues: 2,\n});\nconst processPaddingSingle = expandBoxModel();\nconst handlers$4 = {\n padding: (processPadding),\n paddingBottom: (processPaddingSingle),\n paddingHorizontal: (processPaddingHorizontal),\n paddingLeft: (processPaddingSingle),\n paddingRight: (processPaddingSingle),\n paddingTop: (processPaddingSingle),\n paddingVertical: (processPaddingVertical),\n};\n\nconst offsetKeyword = (value) => {\n switch (value) {\n case 'top':\n case 'left':\n return '0%';\n case 'right':\n case 'bottom':\n return '100%';\n case 'center':\n return '50%';\n default:\n return value;\n }\n};\n\nconst processObjectPosition = (key, value, container) => {\n const match = `${value}`.split(' ');\n const objectPositionX = offsetKeyword(transformUnit(container, match?.[0] || value));\n const objectPositionY = offsetKeyword(transformUnit(container, match?.[1] || value));\n return { objectPositionX, objectPositionY };\n};\nconst processObjectPositionValue = (key, value, container) => ({\n [key]: offsetKeyword(transformUnit(container, value)),\n});\nconst handlers$3 = {\n objectPosition: (processObjectPosition),\n objectPositionX: (processObjectPositionValue),\n objectPositionY: (processObjectPositionValue),\n objectFit: (processNoopValue),\n};\n\nconst castInt = (value) => {\n if (typeof value === 'number')\n return value;\n return parseInt(value, 10);\n};\n\nconst FONT_WEIGHTS = {\n thin: 100,\n hairline: 100,\n ultralight: 200,\n extralight: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n demibold: 600,\n bold: 700,\n ultrabold: 800,\n extrabold: 800,\n heavy: 900,\n black: 900,\n};\nconst transformFontWeight = (value) => {\n if (!value)\n return FONT_WEIGHTS.normal;\n if (typeof value === 'number')\n return value;\n const lv = value.toLowerCase();\n if (FONT_WEIGHTS[lv])\n return FONT_WEIGHTS[lv];\n return castInt(value);\n};\nconst processFontWeight = (key, value) => {\n return { [key]: transformFontWeight(value) };\n};\nconst transformLineHeight = (value, styles, container) => {\n if (value === '')\n return value;\n const fontSize = transformUnit(container, styles.fontSize || 18);\n const lineHeight = transformUnit(container, value);\n // Percent values: use this number multiplied by the element's font size\n const { percent } = matchPercent(lineHeight) || {};\n if (percent)\n return percent * fontSize;\n // Unitless values: use this number multiplied by the element's font size\n return isNaN(value) ? lineHeight : lineHeight * fontSize;\n};\nconst processLineHeight = (key, value, container, styles) => {\n return {\n [key]: transformLineHeight(value, styles, container),\n };\n};\nconst handlers$2 = {\n direction: (processNoopValue),\n fontFamily: (processNoopValue),\n fontSize: (processUnitValue),\n fontStyle: (processNoopValue),\n fontWeight: (processFontWeight),\n letterSpacing: (processUnitValue),\n lineHeight: (processLineHeight),\n maxLines: (processNumberValue),\n textAlign: (processNoopValue),\n textDecoration: (processNoopValue),\n textDecorationColor: (processColorValue),\n textDecorationStyle: (processNoopValue),\n textIndent: (processNoopValue),\n textOverflow: (processNoopValue),\n textTransform: (processNoopValue),\n verticalAlign: (processNoopValue),\n};\n\nconst matchNumber = (value) => typeof value === 'string' && /^-?\\d*\\.?\\d*$/.test(value);\nconst castFloat = (value) => {\n if (typeof value !== 'string')\n return value;\n if (matchNumber(value))\n return parseFloat(value);\n return value;\n};\n\nconst parse = (transformString) => {\n const transforms = transformString.trim().split(/\\)[ ,]|\\)/);\n // Handle \"initial\", \"inherit\", \"unset\".\n if (transforms.length === 1) {\n return [[transforms[0], true]];\n }\n const parsed = [];\n for (let i = 0; i < transforms.length; i += 1) {\n const transform = transforms[i];\n if (transform) {\n const [name, rawValue] = transform.split('(');\n const splitChar = rawValue.indexOf(',') >= 0 ? ',' : ' ';\n const value = rawValue.split(splitChar).map((val) => val.trim());\n parsed.push({ operation: name.trim(), value });\n }\n }\n return parsed;\n};\nconst parseAngle = (value) => {\n const unitsRegexp = /(-?\\d*\\.?\\d*)(\\w*)?/i;\n const [, angle, unit] = unitsRegexp.exec(value);\n const number = Number.parseFloat(angle);\n return unit === 'rad' ? (number * 180) / Math.PI : number;\n};\nconst normalizeTransformOperation = ({ operation, value }) => {\n switch (operation) {\n case 'scale': {\n const [scaleX, scaleY = scaleX] = value.map((num) => Number.parseFloat(num));\n return { operation: 'scale', value: [scaleX, scaleY] };\n }\n case 'scaleX': {\n return { operation: 'scale', value: [Number.parseFloat(value), 1] };\n }\n case 'scaleY': {\n return { operation: 'scale', value: [1, Number.parseFloat(value)] };\n }\n case 'rotate': {\n return { operation: 'rotate', value: [parseAngle(value)] };\n }\n case 'translate': {\n return {\n operation: 'translate',\n value: value.map((num) => Number.parseFloat(num)),\n };\n }\n case 'translateX': {\n return {\n operation: 'translate',\n value: [Number.parseFloat(value), 0],\n };\n }\n case 'translateY': {\n return { operation: 'translate', value: [0, Number.parseFloat(value)] };\n }\n case 'skew': {\n return { operation: 'skew', value: value.map(parseAngle) };\n }\n case 'skewX': {\n return { operation: 'skew', value: [parseAngle(value), 0] };\n }\n case 'skewY': {\n return { operation: 'skew', value: [0, parseAngle(value)] };\n }\n default: {\n return { operation, value: value.map((num) => Number.parseFloat(num)) };\n }\n }\n};\nconst normalize = (operations) => {\n return operations.map((operation) => normalizeTransformOperation(operation));\n};\nconst processTransform = (key, value) => {\n if (typeof value !== 'string')\n return { [key]: value };\n return { [key]: normalize(parse(value)) };\n};\nconst Y_AXIS_SHORTHANDS = { top: true, bottom: true };\nconst sortTransformOriginPair = (a, b) => {\n if (Y_AXIS_SHORTHANDS[a])\n return 1;\n if (Y_AXIS_SHORTHANDS[b])\n return -1;\n return 0;\n};\nconst getTransformOriginPair = (values) => {\n if (!values || values.length === 0)\n return ['center', 'center'];\n const pair = values.length === 1 ? [values[0], 'center'] : values;\n return pair.sort(sortTransformOriginPair);\n};\n// Transforms shorthand transformOrigin values\nconst processTransformOriginShorthand = (key, value, container) => {\n const match = `${value}`.split(' ');\n const pair = getTransformOriginPair(match);\n const transformOriginX = transformUnit(container, pair[0]);\n const transformOriginY = transformUnit(container, pair[1]);\n return {\n transformOriginX: offsetKeyword(transformOriginX) || castFloat(transformOriginX),\n transformOriginY: offsetKeyword(transformOriginY) || castFloat(transformOriginY),\n };\n};\nconst processTransformOriginValue = (key, value, container) => {\n const v = transformUnit(container, value);\n return { [key]: offsetKeyword(v) || castFloat(v) };\n};\nconst handlers$1 = {\n transform: processTransform,\n gradientTransform: processTransform,\n transformOrigin: (processTransformOriginShorthand),\n transformOriginX: (processTransformOriginValue),\n transformOriginY: (processTransformOriginValue),\n};\n\nconst handlers = {\n fill: (processColorValue),\n stroke: (processColorValue),\n strokeDasharray: (processNoopValue),\n strokeWidth: (processUnitValue),\n fillOpacity: (processNumberValue),\n strokeOpacity: (processNumberValue),\n fillRule: (processNoopValue),\n textAnchor: (processNoopValue),\n strokeLinecap: (processNoopValue),\n strokeLinejoin: (processNoopValue),\n visibility: (processNoopValue),\n clipPath: (processNoopValue),\n dominantBaseline: (processNoopValue),\n};\n\nconst shorthands = {\n ...handlers$b,\n ...handlers$a,\n ...handlers$9,\n ...handlers$8,\n ...handlers$7,\n ...handlers$6,\n ...handlers$5,\n ...handlers$4,\n ...handlers$3,\n ...handlers$2,\n ...handlers$1,\n ...handlers,\n};\n/**\n * Expand the shorthand properties.\n *\n * @param style - Style object\n * @returns Expanded style object\n */\nconst resolve = (container) => (style) => {\n const propsArray = Object.keys(style);\n const resolvedStyle = {};\n for (let i = 0; i < propsArray.length; i += 1) {\n const key = propsArray[i];\n const value = style[key];\n if (!shorthands[key]) {\n resolvedStyle[key] = value;\n continue;\n }\n const resolved = shorthands[key](key, value, container, style);\n const keys = Object.keys(resolved);\n for (let j = 0; j < keys.length; j += 1) {\n const propName = keys[j];\n const propValue = resolved[propName];\n resolvedStyle[propName] = propValue;\n }\n }\n return resolvedStyle;\n};\n\n/**\n * Resolves styles\n *\n * @param container\n * @param style - Style\n * @returns Resolved style\n */\nconst resolveStyles = (container, style) => {\n const computeMediaQueries = (value) => resolveMediaQueries(container, value);\n return compose(resolve(container), computeMediaQueries, flatten)(style);\n};\n\nexport { resolveStyles as default, flatten, transformColor };\n","function bidiFactory() {\nvar bidi = (function (exports) {\n\n // Bidi character types data, auto generated\n var DATA = {\n \"R\": \"13k,1a,2,3,3,2+1j,ch+16,a+1,5+2,2+n,5,a,4,6+16,4+3,h+1b,4mo,179q,2+9,2+11,2i9+7y,2+68,4,3+4,5+13,4+3,2+4k,3+29,8+cf,1t+7z,w+17,3+3m,1t+3z,16o1+5r,8+30,8+mc,29+1r,29+4v,75+73\",\n \"EN\": \"1c+9,3d+1,6,187+9,513,4+5,7+9,sf+j,175h+9,qw+q,161f+1d,4xt+a,25i+9\",\n \"ES\": \"17,2,6dp+1,f+1,av,16vr,mx+1,4o,2\",\n \"ET\": \"z+2,3h+3,b+1,ym,3e+1,2o,p4+1,8,6u,7c,g6,1wc,1n9+4,30+1b,2n,6d,qhx+1,h0m,a+1,49+2,63+1,4+1,6bb+3,12jj\",\n \"AN\": \"16o+5,2j+9,2+1,35,ed,1ff2+9,87+u\",\n \"CS\": \"18,2+1,b,2u,12k,55v,l,17v0,2,3,53,2+1,b\",\n \"B\": \"a,3,f+2,2v,690\",\n \"S\": \"9,2,k\",\n \"WS\": \"c,k,4f4,1vk+a,u,1j,335\",\n \"ON\": \"x+1,4+4,h+5,r+5,r+3,z,5+3,2+1,2+1,5,2+2,3+4,o,w,ci+1,8+d,3+d,6+8,2+g,39+1,9,6+1,2,33,b8,3+1,3c+1,7+1,5r,b,7h+3,sa+5,2,3i+6,jg+3,ur+9,2v,ij+1,9g+9,7+a,8m,4+1,49+x,14u,2+2,c+2,e+2,e+2,e+1,i+n,e+e,2+p,u+2,e+2,36+1,2+3,2+1,b,2+2,6+5,2,2,2,h+1,5+4,6+3,3+f,16+2,5+3l,3+81,1y+p,2+40,q+a,m+13,2r+ch,2+9e,75+hf,3+v,2+2w,6e+5,f+6,75+2a,1a+p,2+2g,d+5x,r+b,6+3,4+o,g,6+1,6+2,2k+1,4,2j,5h+z,1m+1,1e+f,t+2,1f+e,d+3,4o+3,2s+1,w,535+1r,h3l+1i,93+2,2s,b+1,3l+x,2v,4g+3,21+3,kz+1,g5v+1,5a,j+9,n+v,2,3,2+8,2+1,3+2,2,3,46+1,4+4,h+5,r+5,r+a,3h+2,4+6,b+4,78,1r+24,4+c,4,1hb,ey+6,103+j,16j+c,1ux+7,5+g,fsh,jdq+1t,4,57+2e,p1,1m,1m,1m,1m,4kt+1,7j+17,5+2r,d+e,3+e,2+e,2+10,m+4,w,1n+5,1q,4z+5,4b+rb,9+c,4+c,4+37,d+2g,8+b,l+b,5+1j,9+9,7+13,9+t,3+1,27+3c,2+29,2+3q,d+d,3+4,4+2,6+6,a+o,8+6,a+2,e+6,16+42,2+1i\",\n \"BN\": \"0+8,6+d,2s+5,2+p,e,4m9,1kt+2,2b+5,5+5,17q9+v,7k,6p+8,6+1,119d+3,440+7,96s+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+75,6p+2rz,1ben+1,1ekf+1,1ekf+1\",\n \"NSM\": \"lc+33,7o+6,7c+18,2,2+1,2+1,2,21+a,1d+k,h,2u+6,3+5,3+1,2+3,10,v+q,2k+a,1n+8,a,p+3,2+8,2+2,2+4,18+2,3c+e,2+v,1k,2,5+7,5,4+6,b+1,u,1n,5+3,9,l+1,r,3+1,1m,5+1,5+1,3+2,4,v+1,4,c+1,1m,5+4,2+1,5,l+1,n+5,2,1n,3,2+3,9,8+1,c+1,v,1q,d,1f,4,1m+2,6+2,2+3,8+1,c+1,u,1n,g+1,l+1,t+1,1m+1,5+3,9,l+1,u,21,8+2,2,2j,3+6,d+7,2r,3+8,c+5,23+1,s,2,2,1k+d,2+4,2+1,6+a,2+z,a,2v+3,2+5,2+1,3+1,q+1,5+2,h+3,e,3+1,7,g,jk+2,qb+2,u+2,u+1,v+1,1t+1,2+6,9,3+a,a,1a+2,3c+1,z,3b+2,5+1,a,7+2,64+1,3,1n,2+6,2,2,3+7,7+9,3,1d+g,1s+3,1d,2+4,2,6,15+8,d+1,x+3,3+1,2+2,1l,2+1,4,2+2,1n+7,3+1,49+2,2+c,2+6,5,7,4+1,5j+1l,2+4,k1+w,2db+2,3y,2p+v,ff+3,30+1,n9x+3,2+9,x+1,29+1,7l,4,5,q+1,6,48+1,r+h,e,13+7,q+a,1b+2,1d,3+3,3+1,14,1w+5,3+1,3+1,d,9,1c,1g,2+2,3+1,6+1,2,17+1,9,6n,3,5,fn5,ki+f,h+f,r2,6b,46+4,1af+2,2+1,6+3,15+2,5,4m+1,fy+3,as+1,4a+a,4x,1j+e,1l+2,1e+3,3+1,1y+2,11+4,2+7,1r,d+1,1h+8,b+3,3,2o+2,3,2+1,7,4h,4+7,m+1,1m+1,4,12+6,4+4,5g+7,3+2,2,o,2d+5,2,5+1,2+1,6n+3,7+1,2+1,s+1,2e+7,3,2+1,2z,2,3+5,2,2u+2,3+3,2+4,78+8,2+1,75+1,2,5,41+3,3+1,5,x+5,3+1,15+5,3+3,9,a+5,3+2,1b+c,2+1,bb+6,2+5,2d+l,3+6,2+1,2+1,3f+5,4,2+1,2+6,2,21+1,4,2,9o+1,f0c+4,1o+6,t5,1s+3,2a,f5l+1,43t+2,i+7,3+6,v+3,45+2,1j0+1i,5+1d,9,f,n+4,2+e,11t+6,2+g,3+6,2+1,2+4,7a+6,c6+3,15t+6,32+6,gzhy+6n\",\n \"AL\": \"16w,3,2,e+1b,z+2,2+2s,g+1,8+1,b+m,2+t,s+2i,c+e,4h+f,1d+1e,1bwe+dp,3+3z,x+c,2+1,35+3y,2rm+z,5+7,b+5,dt+l,c+u,17nl+27,1t+27,4x+6n,3+d\",\n \"LRO\": \"6ct\",\n \"RLO\": \"6cu\",\n \"LRE\": \"6cq\",\n \"RLE\": \"6cr\",\n \"PDF\": \"6cs\",\n \"LRI\": \"6ee\",\n \"RLI\": \"6ef\",\n \"FSI\": \"6eg\",\n \"PDI\": \"6eh\"\n };\n\n var TYPES = {};\n var TYPES_TO_NAMES = {};\n TYPES.L = 1; //L is the default\n TYPES_TO_NAMES[1] = 'L';\n Object.keys(DATA).forEach(function (type, i) {\n TYPES[type] = 1 << (i + 1);\n TYPES_TO_NAMES[TYPES[type]] = type;\n });\n Object.freeze(TYPES);\n\n var ISOLATE_INIT_TYPES = TYPES.LRI | TYPES.RLI | TYPES.FSI;\n var STRONG_TYPES = TYPES.L | TYPES.R | TYPES.AL;\n var NEUTRAL_ISOLATE_TYPES = TYPES.B | TYPES.S | TYPES.WS | TYPES.ON | TYPES.FSI | TYPES.LRI | TYPES.RLI | TYPES.PDI;\n var BN_LIKE_TYPES = TYPES.BN | TYPES.RLE | TYPES.LRE | TYPES.RLO | TYPES.LRO | TYPES.PDF;\n var TRAILING_TYPES = TYPES.S | TYPES.WS | TYPES.B | ISOLATE_INIT_TYPES | TYPES.PDI | BN_LIKE_TYPES;\n\n var map = null;\n\n function parseData () {\n if (!map) {\n //const start = performance.now()\n map = new Map();\n var loop = function ( type ) {\n if (DATA.hasOwnProperty(type)) {\n var lastCode = 0;\n DATA[type].split(',').forEach(function (range) {\n var ref = range.split('+');\n var skip = ref[0];\n var step = ref[1];\n skip = parseInt(skip, 36);\n step = step ? parseInt(step, 36) : 0;\n map.set(lastCode += skip, TYPES[type]);\n for (var i = 0; i < step; i++) {\n map.set(++lastCode, TYPES[type]);\n }\n });\n }\n };\n\n for (var type in DATA) loop( type );\n //console.log(`char types parsed in ${performance.now() - start}ms`)\n }\n }\n\n /**\n * @param {string} char\n * @return {number}\n */\n function getBidiCharType (char) {\n parseData();\n return map.get(char.codePointAt(0)) || TYPES.L\n }\n\n function getBidiCharTypeName(char) {\n return TYPES_TO_NAMES[getBidiCharType(char)]\n }\n\n // Bidi bracket pairs data, auto generated\n var data$1 = {\n \"pairs\": \"14>1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1\",\n \"canonical\": \"6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye\"\n };\n\n /**\n * Parses an string that holds encoded codepoint mappings, e.g. for bracket pairs or\n * mirroring characters, as encoded by scripts/generateBidiData.js. Returns an object\n * holding the `map`, and optionally a `reverseMap` if `includeReverse:true`.\n * @param {string} encodedString\n * @param {boolean} includeReverse - true if you want reverseMap in the output\n * @return {{map: Map<number, number>, reverseMap?: Map<number, number>}}\n */\n function parseCharacterMap (encodedString, includeReverse) {\n var radix = 36;\n var lastCode = 0;\n var map = new Map();\n var reverseMap = includeReverse && new Map();\n var prevPair;\n encodedString.split(',').forEach(function visit(entry) {\n if (entry.indexOf('+') !== -1) {\n for (var i = +entry; i--;) {\n visit(prevPair);\n }\n } else {\n prevPair = entry;\n var ref = entry.split('>');\n var a = ref[0];\n var b = ref[1];\n a = String.fromCodePoint(lastCode += parseInt(a, radix));\n b = String.fromCodePoint(lastCode += parseInt(b, radix));\n map.set(a, b);\n includeReverse && reverseMap.set(b, a);\n }\n });\n return { map: map, reverseMap: reverseMap }\n }\n\n var openToClose, closeToOpen, canonical;\n\n function parse$1 () {\n if (!openToClose) {\n //const start = performance.now()\n var ref = parseCharacterMap(data$1.pairs, true);\n var map = ref.map;\n var reverseMap = ref.reverseMap;\n openToClose = map;\n closeToOpen = reverseMap;\n canonical = parseCharacterMap(data$1.canonical, false).map;\n //console.log(`brackets parsed in ${performance.now() - start}ms`)\n }\n }\n\n function openingToClosingBracket (char) {\n parse$1();\n return openToClose.get(char) || null\n }\n\n function closingToOpeningBracket (char) {\n parse$1();\n return closeToOpen.get(char) || null\n }\n\n function getCanonicalBracket (char) {\n parse$1();\n return canonical.get(char) || null\n }\n\n // Local type aliases\n var TYPE_L = TYPES.L;\n var TYPE_R = TYPES.R;\n var TYPE_EN = TYPES.EN;\n var TYPE_ES = TYPES.ES;\n var TYPE_ET = TYPES.ET;\n var TYPE_AN = TYPES.AN;\n var TYPE_CS = TYPES.CS;\n var TYPE_B = TYPES.B;\n var TYPE_S = TYPES.S;\n var TYPE_ON = TYPES.ON;\n var TYPE_BN = TYPES.BN;\n var TYPE_NSM = TYPES.NSM;\n var TYPE_AL = TYPES.AL;\n var TYPE_LRO = TYPES.LRO;\n var TYPE_RLO = TYPES.RLO;\n var TYPE_LRE = TYPES.LRE;\n var TYPE_RLE = TYPES.RLE;\n var TYPE_PDF = TYPES.PDF;\n var TYPE_LRI = TYPES.LRI;\n var TYPE_RLI = TYPES.RLI;\n var TYPE_FSI = TYPES.FSI;\n var TYPE_PDI = TYPES.PDI;\n\n /**\n * @typedef {object} GetEmbeddingLevelsResult\n * @property {{start, end, level}[]} paragraphs\n * @property {Uint8Array} levels\n */\n\n /**\n * This function applies the Bidirectional Algorithm to a string, returning the resolved embedding levels\n * in a single Uint8Array plus a list of objects holding each paragraph's start and end indices and resolved\n * base embedding level.\n *\n * @param {string} string - The input string\n * @param {\"ltr\"|\"rtl\"|\"auto\"} [baseDirection] - Use \"ltr\" or \"rtl\" to force a base paragraph direction,\n * otherwise a direction will be chosen automatically from each paragraph's contents.\n * @return {GetEmbeddingLevelsResult}\n */\n function getEmbeddingLevels (string, baseDirection) {\n var MAX_DEPTH = 125;\n\n // Start by mapping all characters to their unicode type, as a bitmask integer\n var charTypes = new Uint32Array(string.length);\n for (var i = 0; i < string.length; i++) {\n charTypes[i] = getBidiCharType(string[i]);\n }\n\n var charTypeCounts = new Map(); //will be cleared at start of each paragraph\n function changeCharType(i, type) {\n var oldType = charTypes[i];\n charTypes[i] = type;\n charTypeCounts.set(oldType, charTypeCounts.get(oldType) - 1);\n if (oldType & NEUTRAL_ISOLATE_TYPES) {\n charTypeCounts.set(NEUTRAL_ISOLATE_TYPES, charTypeCounts.get(NEUTRAL_ISOLATE_TYPES) - 1);\n }\n charTypeCounts.set(type, (charTypeCounts.get(type) || 0) + 1);\n if (type & NEUTRAL_ISOLATE_TYPES) {\n charTypeCounts.set(NEUTRAL_ISOLATE_TYPES, (charTypeCounts.get(NEUTRAL_ISOLATE_TYPES) || 0) + 1);\n }\n }\n\n var embedLevels = new Uint8Array(string.length);\n var isolationPairs = new Map(); //init->pdi and pdi->init\n\n // === 3.3.1 The Paragraph Level ===\n // 3.3.1 P1: Split the text into paragraphs\n var paragraphs = []; // [{start, end, level}, ...]\n var paragraph = null;\n for (var i$1 = 0; i$1 < string.length; i$1++) {\n if (!paragraph) {\n paragraphs.push(paragraph = {\n start: i$1,\n end: string.length - 1,\n // 3.3.1 P2-P3: Determine the paragraph level\n level: baseDirection === 'rtl' ? 1 : baseDirection === 'ltr' ? 0 : determineAutoEmbedLevel(i$1, false)\n });\n }\n if (charTypes[i$1] & TYPE_B) {\n paragraph.end = i$1;\n paragraph = null;\n }\n }\n\n var FORMATTING_TYPES = TYPE_RLE | TYPE_LRE | TYPE_RLO | TYPE_LRO | ISOLATE_INIT_TYPES | TYPE_PDI | TYPE_PDF | TYPE_B;\n var nextEven = function (n) { return n + ((n & 1) ? 1 : 2); };\n var nextOdd = function (n) { return n + ((n & 1) ? 2 : 1); };\n\n // Everything from here on will operate per paragraph.\n for (var paraIdx = 0; paraIdx < paragraphs.length; paraIdx++) {\n paragraph = paragraphs[paraIdx];\n var statusStack = [{\n _level: paragraph.level,\n _override: 0, //0=neutral, 1=L, 2=R\n _isolate: 0 //bool\n }];\n var stackTop = (void 0);\n var overflowIsolateCount = 0;\n var overflowEmbeddingCount = 0;\n var validIsolateCount = 0;\n charTypeCounts.clear();\n\n // === 3.3.2 Explicit Levels and Directions ===\n for (var i$2 = paragraph.start; i$2 <= paragraph.end; i$2++) {\n var charType = charTypes[i$2];\n stackTop = statusStack[statusStack.length - 1];\n\n // Set initial counts\n charTypeCounts.set(charType, (charTypeCounts.get(charType) || 0) + 1);\n if (charType & NEUTRAL_ISOLATE_TYPES) {\n charTypeCounts.set(NEUTRAL_ISOLATE_TYPES, (charTypeCounts.get(NEUTRAL_ISOLATE_TYPES) || 0) + 1);\n }\n\n // Explicit Embeddings: 3.3.2 X2 - X3\n if (charType & FORMATTING_TYPES) { //prefilter all formatters\n if (charType & (TYPE_RLE | TYPE_LRE)) {\n embedLevels[i$2] = stackTop._level; // 5.2\n var level = (charType === TYPE_RLE ? nextOdd : nextEven)(stackTop._level);\n if (level <= MAX_DEPTH && !overflowIsolateCount && !overflowEmbeddingCount) {\n statusStack.push({\n _level: level,\n _override: 0,\n _isolate: 0\n });\n } else if (!overflowIsolateCount) {\n overflowEmbeddingCount++;\n }\n }\n\n // Explicit Overrides: 3.3.2 X4 - X5\n else if (charType & (TYPE_RLO | TYPE_LRO)) {\n embedLevels[i$2] = stackTop._level; // 5.2\n var level$1 = (charType === TYPE_RLO ? nextOdd : nextEven)(stackTop._level);\n if (level$1 <= MAX_DEPTH && !overflowIsolateCount && !overflowEmbeddingCount) {\n statusStack.push({\n _level: level$1,\n _override: (charType & TYPE_RLO) ? TYPE_R : TYPE_L,\n _isolate: 0\n });\n } else if (!overflowIsolateCount) {\n overflowEmbeddingCount++;\n }\n }\n\n // Isolates: 3.3.2 X5a - X5c\n else if (charType & ISOLATE_INIT_TYPES) {\n // X5c - FSI becomes either RLI or LRI\n if (charType & TYPE_FSI) {\n charType = determineAutoEmbedLevel(i$2 + 1, true) === 1 ? TYPE_RLI : TYPE_LRI;\n }\n\n embedLevels[i$2] = stackTop._level;\n if (stackTop._override) {\n changeCharType(i$2, stackTop._override);\n }\n var level$2 = (charType === TYPE_RLI ? nextOdd : nextEven)(stackTop._level);\n if (level$2 <= MAX_DEPTH && overflowIsolateCount === 0 && overflowEmbeddingCount === 0) {\n validIsolateCount++;\n statusStack.push({\n _level: level$2,\n _override: 0,\n _isolate: 1,\n _isolInitIndex: i$2\n });\n } else {\n overflowIsolateCount++;\n }\n }\n\n // Terminating Isolates: 3.3.2 X6a\n else if (charType & TYPE_PDI) {\n if (overflowIsolateCount > 0) {\n overflowIsolateCount--;\n } else if (validIsolateCount > 0) {\n overflowEmbeddingCount = 0;\n while (!statusStack[statusStack.length - 1]._isolate) {\n statusStack.pop();\n }\n // Add to isolation pairs bidirectional mapping:\n var isolInitIndex = statusStack[statusStack.length - 1]._isolInitIndex;\n if (isolInitIndex != null) {\n isolationPairs.set(isolInitIndex, i$2);\n isolationPairs.set(i$2, isolInitIndex);\n }\n statusStack.pop();\n validIsolateCount--;\n }\n stackTop = statusStack[statusStack.length - 1];\n embedLevels[i$2] = stackTop._level;\n if (stackTop._override) {\n changeCharType(i$2, stackTop._override);\n }\n }\n\n\n // Terminating Embeddings and Overrides: 3.3.2 X7\n else if (charType & TYPE_PDF) {\n if (overflowIsolateCount === 0) {\n if (overflowEmbeddingCount > 0) {\n overflowEmbeddingCount--;\n } else if (!stackTop._isolate && statusStack.length > 1) {\n statusStack.pop();\n stackTop = statusStack[statusStack.length - 1];\n }\n }\n embedLevels[i$2] = stackTop._level; // 5.2\n }\n\n // End of Paragraph: 3.3.2 X8\n else if (charType & TYPE_B) {\n embedLevels[i$2] = paragraph.level;\n }\n }\n\n // Non-formatting characters: 3.3.2 X6\n else {\n embedLevels[i$2] = stackTop._level;\n // NOTE: This exclusion of BN seems to go against what section 5.2 says, but is required for test passage\n if (stackTop._override && charType !== TYPE_BN) {\n changeCharType(i$2, stackTop._override);\n }\n }\n }\n\n // === 3.3.3 Preparations for Implicit Processing ===\n\n // Remove all RLE, LRE, RLO, LRO, PDF, and BN characters: 3.3.3 X9\n // Note: Due to section 5.2, we won't remove them, but we'll use the BN_LIKE_TYPES bitset to\n // easily ignore them all from here on out.\n\n // 3.3.3 X10\n // Compute the set of isolating run sequences as specified by BD13\n var levelRuns = [];\n var currentRun = null;\n for (var i$3 = paragraph.start; i$3 <= paragraph.end; i$3++) {\n var charType$1 = charTypes[i$3];\n if (!(charType$1 & BN_LIKE_TYPES)) {\n var lvl = embedLevels[i$3];\n var isIsolInit = charType$1 & ISOLATE_INIT_TYPES;\n var isPDI = charType$1 === TYPE_PDI;\n if (currentRun && lvl === currentRun._level) {\n currentRun._end = i$3;\n currentRun._endsWithIsolInit = isIsolInit;\n } else {\n levelRuns.push(currentRun = {\n _start: i$3,\n _end: i$3,\n _level: lvl,\n _startsWithPDI: isPDI,\n _endsWithIsolInit: isIsolInit\n });\n }\n }\n }\n var isolatingRunSeqs = []; // [{seqIndices: [], sosType: L|R, eosType: L|R}]\n for (var runIdx = 0; runIdx < levelRuns.length; runIdx++) {\n var run = levelRuns[runIdx];\n if (!run._startsWithPDI || (run._startsWithPDI && !isolationPairs.has(run._start))) {\n var seqRuns = [currentRun = run];\n for (var pdiIndex = (void 0); currentRun && currentRun._endsWithIsolInit && (pdiIndex = isolationPairs.get(currentRun._end)) != null;) {\n for (var i$4 = runIdx + 1; i$4 < levelRuns.length; i$4++) {\n if (levelRuns[i$4]._start === pdiIndex) {\n seqRuns.push(currentRun = levelRuns[i$4]);\n break\n }\n }\n }\n // build flat list of indices across all runs:\n var seqIndices = [];\n for (var i$5 = 0; i$5 < seqRuns.length; i$5++) {\n var run$1 = seqRuns[i$5];\n for (var j = run$1._start; j <= run$1._end; j++) {\n seqIndices.push(j);\n }\n }\n // determine the sos/eos types:\n var firstLevel = embedLevels[seqIndices[0]];\n var prevLevel = paragraph.level;\n for (var i$6 = seqIndices[0] - 1; i$6 >= 0; i$6--) {\n if (!(charTypes[i$6] & BN_LIKE_TYPES)) { //5.2\n prevLevel = embedLevels[i$6];\n break\n }\n }\n var lastIndex = seqIndices[seqIndices.length - 1];\n var lastLevel = embedLevels[lastIndex];\n var nextLevel = paragraph.level;\n if (!(charTypes[lastIndex] & ISOLATE_INIT_TYPES)) {\n for (var i$7 = lastIndex + 1; i$7 <= paragraph.end; i$7++) {\n if (!(charTypes[i$7] & BN_LIKE_TYPES)) { //5.2\n nextLevel = embedLevels[i$7];\n break\n }\n }\n }\n isolatingRunSeqs.push({\n _seqIndices: seqIndices,\n _sosType: Math.max(prevLevel, firstLevel) % 2 ? TYPE_R : TYPE_L,\n _eosType: Math.max(nextLevel, lastLevel) % 2 ? TYPE_R : TYPE_L\n });\n }\n }\n\n // The next steps are done per isolating run sequence\n for (var seqIdx = 0; seqIdx < isolatingRunSeqs.length; seqIdx++) {\n var ref = isolatingRunSeqs[seqIdx];\n var seqIndices$1 = ref._seqIndices;\n var sosType = ref._sosType;\n var eosType = ref._eosType;\n /**\n * All the level runs in an isolating run sequence have the same embedding level.\n * \n * DO NOT change any `embedLevels[i]` within the current scope.\n */\n var embedDirection = ((embedLevels[seqIndices$1[0]]) & 1) ? TYPE_R : TYPE_L;\n\n // === 3.3.4 Resolving Weak Types ===\n\n // W1 + 5.2. Search backward from each NSM to the first character in the isolating run sequence whose\n // bidirectional type is not BN, and set the NSM to ON if it is an isolate initiator or PDI, and to its\n // type otherwise. If the NSM is the first non-BN character, change the NSM to the type of sos.\n if (charTypeCounts.get(TYPE_NSM)) {\n for (var si = 0; si < seqIndices$1.length; si++) {\n var i$8 = seqIndices$1[si];\n if (charTypes[i$8] & TYPE_NSM) {\n var prevType = sosType;\n for (var sj = si - 1; sj >= 0; sj--) {\n if (!(charTypes[seqIndices$1[sj]] & BN_LIKE_TYPES)) { //5.2 scan back to first non-BN\n prevType = charTypes[seqIndices$1[sj]];\n break\n }\n }\n changeCharType(i$8, (prevType & (ISOLATE_INIT_TYPES | TYPE_PDI)) ? TYPE_ON : prevType);\n }\n }\n }\n\n // W2. Search backward from each instance of a European number until the first strong type (R, L, AL, or sos)\n // is found. If an AL is found, change the type of the European number to Arabic number.\n if (charTypeCounts.get(TYPE_EN)) {\n for (var si$1 = 0; si$1 < seqIndices$1.length; si$1++) {\n var i$9 = seqIndices$1[si$1];\n if (charTypes[i$9] & TYPE_EN) {\n for (var sj$1 = si$1 - 1; sj$1 >= -1; sj$1--) {\n var prevCharType = sj$1 === -1 ? sosType : charTypes[seqIndices$1[sj$1]];\n if (prevCharType & STRONG_TYPES) {\n if (prevCharType === TYPE_AL) {\n changeCharType(i$9, TYPE_AN);\n }\n break\n }\n }\n }\n }\n }\n\n // W3. Change all ALs to R\n if (charTypeCounts.get(TYPE_AL)) {\n for (var si$2 = 0; si$2 < seqIndices$1.length; si$2++) {\n var i$10 = seqIndices$1[si$2];\n if (charTypes[i$10] & TYPE_AL) {\n changeCharType(i$10, TYPE_R);\n }\n }\n }\n\n // W4. A single European separator between two European numbers changes to a European number. A single common\n // separator between two numbers of the same type changes to that type.\n if (charTypeCounts.get(TYPE_ES) || charTypeCounts.get(TYPE_CS)) {\n for (var si$3 = 1; si$3 < seqIndices$1.length - 1; si$3++) {\n var i$11 = seqIndices$1[si$3];\n if (charTypes[i$11] & (TYPE_ES | TYPE_CS)) {\n var prevType$1 = 0, nextType = 0;\n for (var sj$2 = si$3 - 1; sj$2 >= 0; sj$2--) {\n prevType$1 = charTypes[seqIndices$1[sj$2]];\n if (!(prevType$1 & BN_LIKE_TYPES)) { //5.2\n break\n }\n }\n for (var sj$3 = si$3 + 1; sj$3 < seqIndices$1.length; sj$3++) {\n nextType = charTypes[seqIndices$1[sj$3]];\n if (!(nextType & BN_LIKE_TYPES)) { //5.2\n break\n }\n }\n if (prevType$1 === nextType && (charTypes[i$11] === TYPE_ES ? prevType$1 === TYPE_EN : (prevType$1 & (TYPE_EN | TYPE_AN)))) {\n changeCharType(i$11, prevType$1);\n }\n }\n }\n }\n\n // W5. A sequence of European terminators adjacent to European numbers changes to all European numbers.\n if (charTypeCounts.get(TYPE_EN)) {\n for (var si$4 = 0; si$4 < seqIndices$1.length; si$4++) {\n var i$12 = seqIndices$1[si$4];\n if (charTypes[i$12] & TYPE_EN) {\n for (var sj$4 = si$4 - 1; sj$4 >= 0 && (charTypes[seqIndices$1[sj$4]] & (TYPE_ET | BN_LIKE_TYPES)); sj$4--) {\n changeCharType(seqIndices$1[sj$4], TYPE_EN);\n }\n for (si$4++; si$4 < seqIndices$1.length && (charTypes[seqIndices$1[si$4]] & (TYPE_ET | BN_LIKE_TYPES | TYPE_EN)); si$4++) {\n if (charTypes[seqIndices$1[si$4]] !== TYPE_EN) {\n changeCharType(seqIndices$1[si$4], TYPE_EN);\n }\n }\n }\n }\n }\n\n // W6. Otherwise, separators and terminators change to Other Neutral.\n if (charTypeCounts.get(TYPE_ET) || charTypeCounts.get(TYPE_ES) || charTypeCounts.get(TYPE_CS)) {\n for (var si$5 = 0; si$5 < seqIndices$1.length; si$5++) {\n var i$13 = seqIndices$1[si$5];\n if (charTypes[i$13] & (TYPE_ET | TYPE_ES | TYPE_CS)) {\n changeCharType(i$13, TYPE_ON);\n // 5.2 transform adjacent BNs too:\n for (var sj$5 = si$5 - 1; sj$5 >= 0 && (charTypes[seqIndices$1[sj$5]] & BN_LIKE_TYPES); sj$5--) {\n changeCharType(seqIndices$1[sj$5], TYPE_ON);\n }\n for (var sj$6 = si$5 + 1; sj$6 < seqIndices$1.length && (charTypes[seqIndices$1[sj$6]] & BN_LIKE_TYPES); sj$6++) {\n changeCharType(seqIndices$1[sj$6], TYPE_ON);\n }\n }\n }\n }\n\n // W7. Search backward from each instance of a European number until the first strong type (R, L, or sos)\n // is found. If an L is found, then change the type of the European number to L.\n // NOTE: implemented in single forward pass for efficiency\n if (charTypeCounts.get(TYPE_EN)) {\n for (var si$6 = 0, prevStrongType = sosType; si$6 < seqIndices$1.length; si$6++) {\n var i$14 = seqIndices$1[si$6];\n var type = charTypes[i$14];\n if (type & TYPE_EN) {\n if (prevStrongType === TYPE_L) {\n changeCharType(i$14, TYPE_L);\n }\n } else if (type & STRONG_TYPES) {\n prevStrongType = type;\n }\n }\n }\n\n // === 3.3.5 Resolving Neutral and Isolate Formatting Types ===\n\n if (charTypeCounts.get(NEUTRAL_ISOLATE_TYPES)) {\n // N0. Process bracket pairs in an isolating run sequence sequentially in the logical order of the text\n // positions of the opening paired brackets using the logic given below. Within this scope, bidirectional\n // types EN and AN are treated as R.\n var R_TYPES_FOR_N_STEPS = (TYPE_R | TYPE_EN | TYPE_AN);\n var STRONG_TYPES_FOR_N_STEPS = R_TYPES_FOR_N_STEPS | TYPE_L;\n\n // * Identify the bracket pairs in the current isolating run sequence according to BD16.\n var bracketPairs = [];\n {\n var openerStack = [];\n for (var si$7 = 0; si$7 < seqIndices$1.length; si$7++) {\n // NOTE: for any potential bracket character we also test that it still carries a NI\n // type, as that may have been changed earlier. This doesn't seem to be explicitly\n // called out in the spec, but is required for passage of certain tests.\n if (charTypes[seqIndices$1[si$7]] & NEUTRAL_ISOLATE_TYPES) {\n var char = string[seqIndices$1[si$7]];\n var oppositeBracket = (void 0);\n // Opening bracket\n if (openingToClosingBracket(char) !== null) {\n if (openerStack.length < 63) {\n openerStack.push({ char: char, seqIndex: si$7 });\n } else {\n break\n }\n }\n // Closing bracket\n else if ((oppositeBracket = closingToOpeningBracket(char)) !== null) {\n for (var stackIdx = openerStack.length - 1; stackIdx >= 0; stackIdx--) {\n var stackChar = openerStack[stackIdx].char;\n if (stackChar === oppositeBracket ||\n stackChar === closingToOpeningBracket(getCanonicalBracket(char)) ||\n openingToClosingBracket(getCanonicalBracket(stackChar)) === char\n ) {\n bracketPairs.push([openerStack[stackIdx].seqIndex, si$7]);\n openerStack.length = stackIdx; //pop the matching bracket and all following\n break\n }\n }\n }\n }\n }\n bracketPairs.sort(function (a, b) { return a[0] - b[0]; });\n }\n // * For each bracket-pair element in the list of pairs of text positions\n for (var pairIdx = 0; pairIdx < bracketPairs.length; pairIdx++) {\n var ref$1 = bracketPairs[pairIdx];\n var openSeqIdx = ref$1[0];\n var closeSeqIdx = ref$1[1];\n // a. Inspect the bidirectional types of the characters enclosed within the bracket pair.\n // b. If any strong type (either L or R) matching the embedding direction is found, set the type for both\n // brackets in the pair to match the embedding direction.\n var foundStrongType = false;\n var useStrongType = 0;\n for (var si$8 = openSeqIdx + 1; si$8 < closeSeqIdx; si$8++) {\n var i$15 = seqIndices$1[si$8];\n if (charTypes[i$15] & STRONG_TYPES_FOR_N_STEPS) {\n foundStrongType = true;\n var lr = (charTypes[i$15] & R_TYPES_FOR_N_STEPS) ? TYPE_R : TYPE_L;\n if (lr === embedDirection) {\n useStrongType = lr;\n break\n }\n }\n }\n // c. Otherwise, if there is a strong type it must be opposite the embedding direction. Therefore, test\n // for an established context with a preceding strong type by checking backwards before the opening paired\n // bracket until the first strong type (L, R, or sos) is found.\n // 1. If the preceding strong type is also opposite the embedding direction, context is established, so\n // set the type for both brackets in the pair to that direction.\n // 2. Otherwise set the type for both brackets in the pair to the embedding direction.\n if (foundStrongType && !useStrongType) {\n useStrongType = sosType;\n for (var si$9 = openSeqIdx - 1; si$9 >= 0; si$9--) {\n var i$16 = seqIndices$1[si$9];\n if (charTypes[i$16] & STRONG_TYPES_FOR_N_STEPS) {\n var lr$1 = (charTypes[i$16] & R_TYPES_FOR_N_STEPS) ? TYPE_R : TYPE_L;\n if (lr$1 !== embedDirection) {\n useStrongType = lr$1;\n } else {\n useStrongType = embedDirection;\n }\n break\n }\n }\n }\n if (useStrongType) {\n charTypes[seqIndices$1[openSeqIdx]] = charTypes[seqIndices$1[closeSeqIdx]] = useStrongType;\n // * Any number of characters that had original bidirectional character type NSM prior to the application\n // of W1 that immediately follow a paired bracket which changed to L or R under N0 should change to match\n // the type of their preceding bracket.\n if (useStrongType !== embedDirection) {\n for (var si$10 = openSeqIdx + 1; si$10 < seqIndices$1.length; si$10++) {\n if (!(charTypes[seqIndices$1[si$10]] & BN_LIKE_TYPES)) {\n if (getBidiCharType(string[seqIndices$1[si$10]]) & TYPE_NSM) {\n charTypes[seqIndices$1[si$10]] = useStrongType;\n }\n break\n }\n }\n }\n if (useStrongType !== embedDirection) {\n for (var si$11 = closeSeqIdx + 1; si$11 < seqIndices$1.length; si$11++) {\n if (!(charTypes[seqIndices$1[si$11]] & BN_LIKE_TYPES)) {\n if (getBidiCharType(string[seqIndices$1[si$11]]) & TYPE_NSM) {\n charTypes[seqIndices$1[si$11]] = useStrongType;\n }\n break\n }\n }\n }\n }\n }\n\n // N1. A sequence of NIs takes the direction of the surrounding strong text if the text on both sides has the\n // same direction.\n // N2. Any remaining NIs take the embedding direction.\n for (var si$12 = 0; si$12 < seqIndices$1.length; si$12++) {\n if (charTypes[seqIndices$1[si$12]] & NEUTRAL_ISOLATE_TYPES) {\n var niRunStart = si$12, niRunEnd = si$12;\n var prevType$2 = sosType; //si === 0 ? sosType : (charTypes[seqIndices[si - 1]] & R_TYPES_FOR_N_STEPS) ? TYPE_R : TYPE_L\n for (var si2 = si$12 - 1; si2 >= 0; si2--) {\n if (charTypes[seqIndices$1[si2]] & BN_LIKE_TYPES) {\n niRunStart = si2; //5.2 treat BNs adjacent to NIs as NIs\n } else {\n prevType$2 = (charTypes[seqIndices$1[si2]] & R_TYPES_FOR_N_STEPS) ? TYPE_R : TYPE_L;\n break\n }\n }\n var nextType$1 = eosType;\n for (var si2$1 = si$12 + 1; si2$1 < seqIndices$1.length; si2$1++) {\n if (charTypes[seqIndices$1[si2$1]] & (NEUTRAL_ISOLATE_TYPES | BN_LIKE_TYPES)) {\n niRunEnd = si2$1;\n } else {\n nextType$1 = (charTypes[seqIndices$1[si2$1]] & R_TYPES_FOR_N_STEPS) ? TYPE_R : TYPE_L;\n break\n }\n }\n for (var sj$7 = niRunStart; sj$7 <= niRunEnd; sj$7++) {\n charTypes[seqIndices$1[sj$7]] = prevType$2 === nextType$1 ? prevType$2 : embedDirection;\n }\n si$12 = niRunEnd;\n }\n }\n }\n }\n\n // === 3.3.6 Resolving Implicit Levels ===\n\n for (var i$17 = paragraph.start; i$17 <= paragraph.end; i$17++) {\n var level$3 = embedLevels[i$17];\n var type$1 = charTypes[i$17];\n // I2. For all characters with an odd (right-to-left) embedding level, those of type L, EN or AN go up one level.\n if (level$3 & 1) {\n if (type$1 & (TYPE_L | TYPE_EN | TYPE_AN)) {\n embedLevels[i$17]++;\n }\n }\n // I1. For all characters with an even (left-to-right) embedding level, those of type R go up one level\n // and those of type AN or EN go up two levels.\n else {\n if (type$1 & TYPE_R) {\n embedLevels[i$17]++;\n } else if (type$1 & (TYPE_AN | TYPE_EN)) {\n embedLevels[i$17] += 2;\n }\n }\n\n // 5.2: Resolve any LRE, RLE, LRO, RLO, PDF, or BN to the level of the preceding character if there is one,\n // and otherwise to the base level.\n if (type$1 & BN_LIKE_TYPES) {\n embedLevels[i$17] = i$17 === 0 ? paragraph.level : embedLevels[i$17 - 1];\n }\n\n // 3.4 L1.1-4: Reset the embedding level of segment/paragraph separators, and any sequence of whitespace or\n // isolate formatting characters preceding them or the end of the paragraph, to the paragraph level.\n // NOTE: this will also need to be applied to each individual line ending after line wrapping occurs.\n if (i$17 === paragraph.end || getBidiCharType(string[i$17]) & (TYPE_S | TYPE_B)) {\n for (var j$1 = i$17; j$1 >= 0 && (getBidiCharType(string[j$1]) & TRAILING_TYPES); j$1--) {\n embedLevels[j$1] = paragraph.level;\n }\n }\n }\n }\n\n // DONE! The resolved levels can then be used, after line wrapping, to flip runs of characters\n // according to section 3.4 Reordering Resolved Levels\n return {\n levels: embedLevels,\n paragraphs: paragraphs\n }\n\n function determineAutoEmbedLevel (start, isFSI) {\n // 3.3.1 P2 - P3\n for (var i = start; i < string.length; i++) {\n var charType = charTypes[i];\n if (charType & (TYPE_R | TYPE_AL)) {\n return 1\n }\n if ((charType & (TYPE_B | TYPE_L)) || (isFSI && charType === TYPE_PDI)) {\n return 0\n }\n if (charType & ISOLATE_INIT_TYPES) {\n var pdi = indexOfMatchingPDI(i);\n i = pdi === -1 ? string.length : pdi;\n }\n }\n return 0\n }\n\n function indexOfMatchingPDI (isolateStart) {\n // 3.1.2 BD9\n var isolationLevel = 1;\n for (var i = isolateStart + 1; i < string.length; i++) {\n var charType = charTypes[i];\n if (charType & TYPE_B) {\n break\n }\n if (charType & TYPE_PDI) {\n if (--isolationLevel === 0) {\n return i\n }\n } else if (charType & ISOLATE_INIT_TYPES) {\n isolationLevel++;\n }\n }\n return -1\n }\n }\n\n // Bidi mirrored chars data, auto generated\n var data = \"14>1,j>2,t>2,u>2,1a>g,2v3>1,1>1,1ge>1,1wd>1,b>1,1j>1,f>1,ai>3,-2>3,+1,8>1k0,-1jq>1y7,-1y6>1hf,-1he>1h6,-1h5>1ha,-1h8>1qi,-1pu>1,6>3u,-3s>7,6>1,1>1,f>1,1>1,+2,3>1,1>1,+13,4>1,1>1,6>1eo,-1ee>1,3>1mg,-1me>1mk,-1mj>1mi,-1mg>1mi,-1md>1,1>1,+2,1>10k,-103>1,1>1,4>1,5>1,1>1,+10,3>1,1>8,-7>8,+1,-6>7,+1,a>1,1>1,u>1,u6>1,1>1,+5,26>1,1>1,2>1,2>2,8>1,7>1,4>1,1>1,+5,b8>1,1>1,+3,1>3,-2>1,2>1,1>1,+2,c>1,3>1,1>1,+2,h>1,3>1,a>1,1>1,2>1,3>1,1>1,d>1,f>1,3>1,1a>1,1>1,6>1,7>1,13>1,k>1,1>1,+19,4>1,1>1,+2,2>1,1>1,+18,m>1,a>1,1>1,lk>1,1>1,4>1,2>1,f>1,3>1,1>1,+3,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,6>1,4j>1,j>2,t>2,u>2,2>1,+1\";\n\n var mirrorMap;\n\n function parse () {\n if (!mirrorMap) {\n //const start = performance.now()\n var ref = parseCharacterMap(data, true);\n var map = ref.map;\n var reverseMap = ref.reverseMap;\n // Combine both maps into one\n reverseMap.forEach(function (value, key) {\n map.set(key, value);\n });\n mirrorMap = map;\n //console.log(`mirrored chars parsed in ${performance.now() - start}ms`)\n }\n }\n\n function getMirroredCharacter (char) {\n parse();\n return mirrorMap.get(char) || null\n }\n\n /**\n * Given a string and its resolved embedding levels, build a map of indices to replacement chars\n * for any characters in right-to-left segments that have defined mirrored characters.\n * @param string\n * @param embeddingLevels\n * @param [start]\n * @param [end]\n * @return {Map<number, string>}\n */\n function getMirroredCharactersMap(string, embeddingLevels, start, end) {\n var strLen = string.length;\n start = Math.max(0, start == null ? 0 : +start);\n end = Math.min(strLen - 1, end == null ? strLen - 1 : +end);\n\n var map = new Map();\n for (var i = start; i <= end; i++) {\n if (embeddingLevels[i] & 1) { //only odd (rtl) levels\n var mirror = getMirroredCharacter(string[i]);\n if (mirror !== null) {\n map.set(i, mirror);\n }\n }\n }\n return map\n }\n\n /**\n * Given a start and end denoting a single line within a string, and a set of precalculated\n * bidi embedding levels, produce a list of segments whose ordering should be flipped, in sequence.\n * @param {string} string - the full input string\n * @param {GetEmbeddingLevelsResult} embeddingLevelsResult - the result object from getEmbeddingLevels\n * @param {number} [start] - first character in a subset of the full string\n * @param {number} [end] - last character in a subset of the full string\n * @return {number[][]} - the list of start/end segments that should be flipped, in order.\n */\n function getReorderSegments(string, embeddingLevelsResult, start, end) {\n var strLen = string.length;\n start = Math.max(0, start == null ? 0 : +start);\n end = Math.min(strLen - 1, end == null ? strLen - 1 : +end);\n\n var segments = [];\n embeddingLevelsResult.paragraphs.forEach(function (paragraph) {\n var lineStart = Math.max(start, paragraph.start);\n var lineEnd = Math.min(end, paragraph.end);\n if (lineStart < lineEnd) {\n // Local slice for mutation\n var lineLevels = embeddingLevelsResult.levels.slice(lineStart, lineEnd + 1);\n\n // 3.4 L1.4: Reset any sequence of whitespace characters and/or isolate formatting characters at the\n // end of the line to the paragraph level.\n for (var i = lineEnd; i >= lineStart && (getBidiCharType(string[i]) & TRAILING_TYPES); i--) {\n lineLevels[i] = paragraph.level;\n }\n\n // L2. From the highest level found in the text to the lowest odd level on each line, including intermediate levels\n // not actually present in the text, reverse any contiguous sequence of characters that are at that level or higher.\n var maxLevel = paragraph.level;\n var minOddLevel = Infinity;\n for (var i$1 = 0; i$1 < lineLevels.length; i$1++) {\n var level = lineLevels[i$1];\n if (level > maxLevel) { maxLevel = level; }\n if (level < minOddLevel) { minOddLevel = level | 1; }\n }\n for (var lvl = maxLevel; lvl >= minOddLevel; lvl--) {\n for (var i$2 = 0; i$2 < lineLevels.length; i$2++) {\n if (lineLevels[i$2] >= lvl) {\n var segStart = i$2;\n while (i$2 + 1 < lineLevels.length && lineLevels[i$2 + 1] >= lvl) {\n i$2++;\n }\n if (i$2 > segStart) {\n segments.push([segStart + lineStart, i$2 + lineStart]);\n }\n }\n }\n }\n }\n });\n return segments\n }\n\n /**\n * @param {string} string\n * @param {GetEmbeddingLevelsResult} embedLevelsResult\n * @param {number} [start]\n * @param {number} [end]\n * @return {string} the new string with bidi segments reordered\n */\n function getReorderedString(string, embedLevelsResult, start, end) {\n var indices = getReorderedIndices(string, embedLevelsResult, start, end);\n var chars = [].concat( string );\n indices.forEach(function (charIndex, i) {\n chars[i] = (\n (embedLevelsResult.levels[charIndex] & 1) ? getMirroredCharacter(string[charIndex]) : null\n ) || string[charIndex];\n });\n return chars.join('')\n }\n\n /**\n * @param {string} string\n * @param {GetEmbeddingLevelsResult} embedLevelsResult\n * @param {number} [start]\n * @param {number} [end]\n * @return {number[]} an array with character indices in their new bidi order\n */\n function getReorderedIndices(string, embedLevelsResult, start, end) {\n var segments = getReorderSegments(string, embedLevelsResult, start, end);\n // Fill an array with indices\n var indices = [];\n for (var i = 0; i < string.length; i++) {\n indices[i] = i;\n }\n // Reverse each segment in order\n segments.forEach(function (ref) {\n var start = ref[0];\n var end = ref[1];\n\n var slice = indices.slice(start, end + 1);\n for (var i = slice.length; i--;) {\n indices[end - i] = slice[i];\n }\n });\n return indices\n }\n\n exports.closingToOpeningBracket = closingToOpeningBracket;\n exports.getBidiCharType = getBidiCharType;\n exports.getBidiCharTypeName = getBidiCharTypeName;\n exports.getCanonicalBracket = getCanonicalBracket;\n exports.getEmbeddingLevels = getEmbeddingLevels;\n exports.getMirroredCharacter = getMirroredCharacter;\n exports.getMirroredCharactersMap = getMirroredCharactersMap;\n exports.getReorderSegments = getReorderSegments;\n exports.getReorderedIndices = getReorderedIndices;\n exports.getReorderedString = getReorderedString;\n exports.openingToClosingBracket = openingToClosingBracket;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n}({}));\nreturn bidi}\n\nexport default bidiFactory;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","var TINF_OK = 0;\nvar TINF_DATA_ERROR = -3;\n\nfunction Tree() {\n this.table = new Uint16Array(16); /* table of code length counts */\n this.trans = new Uint16Array(288); /* code -> symbol translation table */\n}\n\nfunction Data(source, dest) {\n this.source = source;\n this.sourceIndex = 0;\n this.tag = 0;\n this.bitcount = 0;\n \n this.dest = dest;\n this.destLen = 0;\n \n this.ltree = new Tree(); /* dynamic length/symbol tree */\n this.dtree = new Tree(); /* dynamic distance tree */\n}\n\n/* --------------------------------------------------- *\n * -- uninitialized global data (static structures) -- *\n * --------------------------------------------------- */\n\nvar sltree = new Tree();\nvar sdtree = new Tree();\n\n/* extra bits and base tables for length codes */\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\n\n/* extra bits and base tables for distance codes */\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\n\n/* special ordering of code length codes */\nvar clcidx = new Uint8Array([\n 16, 17, 18, 0, 8, 7, 9, 6,\n 10, 5, 11, 4, 12, 3, 13, 2,\n 14, 1, 15\n]);\n\n/* used by tinf_decode_trees, avoids allocations every call */\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\n\n/* ----------------------- *\n * -- utility functions -- *\n * ----------------------- */\n\n/* build extra bits and base tables */\nfunction tinf_build_bits_base(bits, base, delta, first) {\n var i, sum;\n\n /* build bits table */\n for (i = 0; i < delta; ++i) bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i) bits[i + delta] = i / delta | 0;\n\n /* build base table */\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\n\n/* build the fixed huffman trees */\nfunction tinf_build_fixed_trees(lt, dt) {\n var i;\n\n /* build fixed length tree */\n for (i = 0; i < 7; ++i) lt.table[i] = 0;\n\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n\n for (i = 0; i < 24; ++i) lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i) lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i) lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i) lt.trans[24 + 144 + 8 + i] = 144 + i;\n\n /* build fixed distance tree */\n for (i = 0; i < 5; ++i) dt.table[i] = 0;\n\n dt.table[5] = 32;\n\n for (i = 0; i < 32; ++i) dt.trans[i] = i;\n}\n\n/* given an array of code lengths, build a tree */\nvar offs = new Uint16Array(16);\n\nfunction tinf_build_tree(t, lengths, off, num) {\n var i, sum;\n\n /* clear code length count table */\n for (i = 0; i < 16; ++i) t.table[i] = 0;\n\n /* scan symbol lengths, and sum code length counts */\n for (i = 0; i < num; ++i) t.table[lengths[off + i]]++;\n\n t.table[0] = 0;\n\n /* compute offset table for distribution sort */\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n\n /* create code->symbol translation table (symbols sorted by code) */\n for (i = 0; i < num; ++i) {\n if (lengths[off + i]) t.trans[offs[lengths[off + i]]++] = i;\n }\n}\n\n/* ---------------------- *\n * -- decode functions -- *\n * ---------------------- */\n\n/* get one bit from source stream */\nfunction tinf_getbit(d) {\n /* check if tag is empty */\n if (!d.bitcount--) {\n /* load next tag */\n d.tag = d.source[d.sourceIndex++];\n d.bitcount = 7;\n }\n\n /* shift bit out of tag */\n var bit = d.tag & 1;\n d.tag >>>= 1;\n\n return bit;\n}\n\n/* read a num bit value from a stream and add base */\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n\n var val = d.tag & (0xffff >>> (16 - num));\n d.tag >>>= num;\n d.bitcount -= num;\n return val + base;\n}\n\n/* given a data stream and a tree, decode a symbol */\nfunction tinf_decode_symbol(d, t) {\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n \n var sum = 0, cur = 0, len = 0;\n var tag = d.tag;\n\n /* get more bits while code value is above sum */\n do {\n cur = 2 * cur + (tag & 1);\n tag >>>= 1;\n ++len;\n\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n \n d.tag = tag;\n d.bitcount -= len;\n\n return t.trans[sum + cur];\n}\n\n/* given a data stream, decode dynamic trees from it */\nfunction tinf_decode_trees(d, lt, dt) {\n var hlit, hdist, hclen;\n var i, num, length;\n\n /* get 5 bits HLIT (257-286) */\n hlit = tinf_read_bits(d, 5, 257);\n\n /* get 5 bits HDIST (1-32) */\n hdist = tinf_read_bits(d, 5, 1);\n\n /* get 4 bits HCLEN (4-19) */\n hclen = tinf_read_bits(d, 4, 4);\n\n for (i = 0; i < 19; ++i) lengths[i] = 0;\n\n /* read code lengths for code length alphabet */\n for (i = 0; i < hclen; ++i) {\n /* get 3 bits code length (0-7) */\n var clen = tinf_read_bits(d, 3, 0);\n lengths[clcidx[i]] = clen;\n }\n\n /* build code length tree */\n tinf_build_tree(code_tree, lengths, 0, 19);\n\n /* decode code lengths for the dynamic trees */\n for (num = 0; num < hlit + hdist;) {\n var sym = tinf_decode_symbol(d, code_tree);\n\n switch (sym) {\n case 16:\n /* copy previous code length 3-6 times (read 2 bits) */\n var prev = lengths[num - 1];\n for (length = tinf_read_bits(d, 2, 3); length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n /* repeat code length 0 for 3-10 times (read 3 bits) */\n for (length = tinf_read_bits(d, 3, 3); length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n /* repeat code length 0 for 11-138 times (read 7 bits) */\n for (length = tinf_read_bits(d, 7, 11); length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n /* values 0-15 represent the actual code lengths */\n lengths[num++] = sym;\n break;\n }\n }\n\n /* build dynamic trees */\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\n\n/* ----------------------------- *\n * -- block inflate functions -- *\n * ----------------------------- */\n\n/* given a stream and two trees, inflate a block of data */\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n var sym = tinf_decode_symbol(d, lt);\n\n /* check for end of block */\n if (sym === 256) {\n return TINF_OK;\n }\n\n if (sym < 256) {\n d.dest[d.destLen++] = sym;\n } else {\n var length, dist, offs;\n var i;\n\n sym -= 257;\n\n /* possibly get more bits from length code */\n length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n\n dist = tinf_decode_symbol(d, dt);\n\n /* possibly get more bits from distance code */\n offs = d.destLen - tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n\n /* copy match */\n for (i = offs; i < offs + length; ++i) {\n d.dest[d.destLen++] = d.dest[i];\n }\n }\n }\n}\n\n/* inflate an uncompressed block of data */\nfunction tinf_inflate_uncompressed_block(d) {\n var length, invlength;\n var i;\n \n /* unread from bitbuffer */\n while (d.bitcount > 8) {\n d.sourceIndex--;\n d.bitcount -= 8;\n }\n\n /* get length */\n length = d.source[d.sourceIndex + 1];\n length = 256 * length + d.source[d.sourceIndex];\n\n /* get one's complement of length */\n invlength = d.source[d.sourceIndex + 3];\n invlength = 256 * invlength + d.source[d.sourceIndex + 2];\n\n /* check length */\n if (length !== (~invlength & 0x0000ffff))\n return TINF_DATA_ERROR;\n\n d.sourceIndex += 4;\n\n /* copy block */\n for (i = length; i; --i)\n d.dest[d.destLen++] = d.source[d.sourceIndex++];\n\n /* make sure we start next block on a byte boundary */\n d.bitcount = 0;\n\n return TINF_OK;\n}\n\n/* inflate stream from source to dest */\nfunction tinf_uncompress(source, dest) {\n var d = new Data(source, dest);\n var bfinal, btype, res;\n\n do {\n /* read final block flag */\n bfinal = tinf_getbit(d);\n\n /* read block type (2 bits) */\n btype = tinf_read_bits(d, 2, 0);\n\n /* decompress block */\n switch (btype) {\n case 0:\n /* decompress uncompressed block */\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n /* decompress block with fixed huffman trees */\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n /* decompress block with dynamic huffman trees */\n tinf_decode_trees(d, d.ltree, d.dtree);\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = TINF_DATA_ERROR;\n }\n\n if (res !== TINF_OK)\n throw new Error('Data error');\n\n } while (!bfinal);\n\n if (d.destLen < d.dest.length) {\n if (typeof d.dest.slice === 'function')\n return d.dest.slice(0, d.destLen);\n else\n return d.dest.subarray(0, d.destLen);\n }\n \n return d.dest;\n}\n\n/* -------------------- *\n * -- initialization -- *\n * -------------------- */\n\n/* build fixed huffman trees */\ntinf_build_fixed_trees(sltree, sdtree);\n\n/* build extra bits and base tables */\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\n\n/* fix a special case */\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\nmodule.exports = tinf_uncompress;\n","const isBigEndian = (new Uint8Array(new Uint32Array([0x12345678]).buffer)[0] === 0x12);\n\nconst swap = (b, n, m) => {\n let i = b[n];\n b[n] = b[m];\n b[m] = i;\n};\n\nconst swap32 = array => {\n const len = array.length;\n for (let i = 0; i < len; i += 4) {\n swap(array, i, i + 3);\n swap(array, i + 1, i + 2);\n }\n};\n\nconst swap32LE = array => {\n if (isBigEndian) {\n swap32(array);\n }\n};\n\nmodule.exports = {\n swap32LE: swap32LE\n};\n","const inflate = require('tiny-inflate');\nconst { swap32LE } = require('./swap');\n\n// Shift size for getting the index-1 table offset.\nconst SHIFT_1 = 6 + 5;\n\n// Shift size for getting the index-2 table offset.\nconst SHIFT_2 = 5;\n\n// Difference between the two shift sizes,\n// for getting an index-1 offset from an index-2 offset. 6=11-5\nconst SHIFT_1_2 = SHIFT_1 - SHIFT_2;\n\n// Number of index-1 entries for the BMP. 32=0x20\n// This part of the index-1 table is omitted from the serialized form.\nconst OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> SHIFT_1;\n\n// Number of entries in an index-2 block. 64=0x40\nconst INDEX_2_BLOCK_LENGTH = 1 << SHIFT_1_2;\n\n// Mask for getting the lower bits for the in-index-2-block offset. */\nconst INDEX_2_MASK = INDEX_2_BLOCK_LENGTH - 1;\n\n// Shift size for shifting left the index array values.\n// Increases possible data size with 16-bit index values at the cost\n// of compactability.\n// This requires data blocks to be aligned by DATA_GRANULARITY.\nconst INDEX_SHIFT = 2;\n\n// Number of entries in a data block. 32=0x20\nconst DATA_BLOCK_LENGTH = 1 << SHIFT_2;\n\n// Mask for getting the lower bits for the in-data-block offset.\nconst DATA_MASK = DATA_BLOCK_LENGTH - 1;\n\n// The part of the index-2 table for U+D800..U+DBFF stores values for\n// lead surrogate code _units_ not code _points_.\n// Values for lead surrogate code _points_ are indexed with this portion of the table.\n// Length=32=0x20=0x400>>SHIFT_2. (There are 1024=0x400 lead surrogates.)\nconst LSCP_INDEX_2_OFFSET = 0x10000 >> SHIFT_2;\nconst LSCP_INDEX_2_LENGTH = 0x400 >> SHIFT_2;\n\n// Count the lengths of both BMP pieces. 2080=0x820\nconst INDEX_2_BMP_LENGTH = LSCP_INDEX_2_OFFSET + LSCP_INDEX_2_LENGTH;\n\n// The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n// Length 32=0x20 for lead bytes C0..DF, regardless of SHIFT_2.\nconst UTF8_2B_INDEX_2_OFFSET = INDEX_2_BMP_LENGTH;\nconst UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; // U+0800 is the first code point after 2-byte UTF-8\n\n// The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n// Variable length, for code points up to highStart, where the last single-value range starts.\n// Maximum length 512=0x200=0x100000>>SHIFT_1.\n// (For 0x100000 supplementary code points U+10000..U+10ffff.)\n//\n// The part of the index-2 table for supplementary code points starts\n// after this index-1 table.\n//\n// Both the index-1 table and the following part of the index-2 table\n// are omitted completely if there is only BMP data.\nconst INDEX_1_OFFSET = UTF8_2B_INDEX_2_OFFSET + UTF8_2B_INDEX_2_LENGTH;\n\n// The alignment size of a data block. Also the granularity for compaction.\nconst DATA_GRANULARITY = 1 << INDEX_SHIFT;\n\nclass UnicodeTrie {\n constructor(data) {\n const isBuffer = (typeof data.readUInt32BE === 'function') && (typeof data.slice === 'function');\n\n if (isBuffer || data instanceof Uint8Array) {\n // read binary format\n let uncompressedLength;\n if (isBuffer) {\n this.highStart = data.readUInt32LE(0);\n this.errorValue = data.readUInt32LE(4);\n uncompressedLength = data.readUInt32LE(8);\n data = data.slice(12);\n } else {\n const view = new DataView(data.buffer);\n this.highStart = view.getUint32(0, true);\n this.errorValue = view.getUint32(4, true);\n uncompressedLength = view.getUint32(8, true);\n data = data.subarray(12);\n }\n\n // double inflate the actual trie data\n data = inflate(data, new Uint8Array(uncompressedLength));\n data = inflate(data, new Uint8Array(uncompressedLength));\n\n // swap bytes from little-endian\n swap32LE(data);\n\n this.data = new Uint32Array(data.buffer);\n\n } else {\n // pre-parsed data\n ({ data: this.data, highStart: this.highStart, errorValue: this.errorValue } = data);\n }\n }\n\n get(codePoint) {\n let index;\n if ((codePoint < 0) || (codePoint > 0x10ffff)) {\n return this.errorValue;\n }\n\n if ((codePoint < 0xd800) || ((codePoint > 0xdbff) && (codePoint <= 0xffff))) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the index.\n // data is stored in the index array itself.\n index = (this.data[codePoint >> SHIFT_2] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n index = (this.data[LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> SHIFT_2)] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n index = this.data[(INDEX_1_OFFSET - OMITTED_BMP_INDEX_1_LENGTH) + (codePoint >> SHIFT_1)];\n index = this.data[index + ((codePoint >> SHIFT_2) & INDEX_2_MASK)];\n index = (index << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n return this.data[this.data.length - DATA_GRANULARITY];\n }\n}\n\nmodule.exports = UnicodeTrie;","import $bdjGp$base64js from \"base64-js\";\nimport $bdjGp$unicodetrie from \"unicode-trie\";\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n\nvar $f4087201da764553$exports = {};\n$f4087201da764553$exports = JSON.parse('{\"categories\":[\"Cc\",\"Zs\",\"Po\",\"Sc\",\"Ps\",\"Pe\",\"Sm\",\"Pd\",\"Nd\",\"Lu\",\"Sk\",\"Pc\",\"Ll\",\"So\",\"Lo\",\"Pi\",\"Cf\",\"No\",\"Pf\",\"Lt\",\"Lm\",\"Mn\",\"Me\",\"Mc\",\"Nl\",\"Zl\",\"Zp\",\"Cs\",\"Co\"],\"combiningClasses\":[\"Not_Reordered\",\"Above\",\"Above_Right\",\"Below\",\"Attached_Above_Right\",\"Attached_Below\",\"Overlay\",\"Iota_Subscript\",\"Double_Below\",\"Double_Above\",\"Below_Right\",\"Above_Left\",\"CCC10\",\"CCC11\",\"CCC12\",\"CCC13\",\"CCC14\",\"CCC15\",\"CCC16\",\"CCC17\",\"CCC18\",\"CCC19\",\"CCC20\",\"CCC21\",\"CCC22\",\"CCC23\",\"CCC24\",\"CCC25\",\"CCC30\",\"CCC31\",\"CCC32\",\"CCC27\",\"CCC28\",\"CCC29\",\"CCC33\",\"CCC34\",\"CCC35\",\"CCC36\",\"Nukta\",\"Virama\",\"CCC84\",\"CCC91\",\"CCC103\",\"CCC107\",\"CCC118\",\"CCC122\",\"CCC129\",\"CCC130\",\"CCC132\",\"Attached_Above\",\"Below_Left\",\"Left\",\"Kana_Voicing\",\"CCC26\",\"Right\"],\"scripts\":[\"Common\",\"Latin\",\"Bopomofo\",\"Inherited\",\"Greek\",\"Coptic\",\"Cyrillic\",\"Armenian\",\"Hebrew\",\"Arabic\",\"Syriac\",\"Thaana\",\"Nko\",\"Samaritan\",\"Mandaic\",\"Devanagari\",\"Bengali\",\"Gurmukhi\",\"Gujarati\",\"Oriya\",\"Tamil\",\"Telugu\",\"Kannada\",\"Malayalam\",\"Sinhala\",\"Thai\",\"Lao\",\"Tibetan\",\"Myanmar\",\"Georgian\",\"Hangul\",\"Ethiopic\",\"Cherokee\",\"Canadian_Aboriginal\",\"Ogham\",\"Runic\",\"Tagalog\",\"Hanunoo\",\"Buhid\",\"Tagbanwa\",\"Khmer\",\"Mongolian\",\"Limbu\",\"Tai_Le\",\"New_Tai_Lue\",\"Buginese\",\"Tai_Tham\",\"Balinese\",\"Sundanese\",\"Batak\",\"Lepcha\",\"Ol_Chiki\",\"Braille\",\"Glagolitic\",\"Tifinagh\",\"Han\",\"Hiragana\",\"Katakana\",\"Yi\",\"Lisu\",\"Vai\",\"Bamum\",\"Syloti_Nagri\",\"Phags_Pa\",\"Saurashtra\",\"Kayah_Li\",\"Rejang\",\"Javanese\",\"Cham\",\"Tai_Viet\",\"Meetei_Mayek\",\"null\",\"Linear_B\",\"Lycian\",\"Carian\",\"Old_Italic\",\"Gothic\",\"Old_Permic\",\"Ugaritic\",\"Old_Persian\",\"Deseret\",\"Shavian\",\"Osmanya\",\"Osage\",\"Elbasan\",\"Caucasian_Albanian\",\"Linear_A\",\"Cypriot\",\"Imperial_Aramaic\",\"Palmyrene\",\"Nabataean\",\"Hatran\",\"Phoenician\",\"Lydian\",\"Meroitic_Hieroglyphs\",\"Meroitic_Cursive\",\"Kharoshthi\",\"Old_South_Arabian\",\"Old_North_Arabian\",\"Manichaean\",\"Avestan\",\"Inscriptional_Parthian\",\"Inscriptional_Pahlavi\",\"Psalter_Pahlavi\",\"Old_Turkic\",\"Old_Hungarian\",\"Hanifi_Rohingya\",\"Old_Sogdian\",\"Sogdian\",\"Elymaic\",\"Brahmi\",\"Kaithi\",\"Sora_Sompeng\",\"Chakma\",\"Mahajani\",\"Sharada\",\"Khojki\",\"Multani\",\"Khudawadi\",\"Grantha\",\"Newa\",\"Tirhuta\",\"Siddham\",\"Modi\",\"Takri\",\"Ahom\",\"Dogra\",\"Warang_Citi\",\"Nandinagari\",\"Zanabazar_Square\",\"Soyombo\",\"Pau_Cin_Hau\",\"Bhaiksuki\",\"Marchen\",\"Masaram_Gondi\",\"Gunjala_Gondi\",\"Makasar\",\"Cuneiform\",\"Egyptian_Hieroglyphs\",\"Anatolian_Hieroglyphs\",\"Mro\",\"Bassa_Vah\",\"Pahawh_Hmong\",\"Medefaidrin\",\"Miao\",\"Tangut\",\"Nushu\",\"Duployan\",\"SignWriting\",\"Nyiakeng_Puachue_Hmong\",\"Wancho\",\"Mende_Kikakui\",\"Adlam\"],\"eaw\":[\"N\",\"Na\",\"A\",\"W\",\"H\",\"F\"]}');\n\n\nconst $747425b437e121da$var$trie = new (0, $bdjGp$unicodetrie)((0, $bdjGp$base64js).toByteArray(\"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\"));\nconst $747425b437e121da$var$log2 = Math.log2 || ((n)=>Math.log(n) / Math.LN2);\nconst $747425b437e121da$var$bits = (n)=>$747425b437e121da$var$log2(n) + 1 | 0;\n// compute the number of bits stored for each field\nconst $747425b437e121da$var$CATEGORY_BITS = $747425b437e121da$var$bits((0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).categories.length - 1);\nconst $747425b437e121da$var$COMBINING_BITS = $747425b437e121da$var$bits((0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).combiningClasses.length - 1);\nconst $747425b437e121da$var$SCRIPT_BITS = $747425b437e121da$var$bits((0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).scripts.length - 1);\nconst $747425b437e121da$var$EAW_BITS = $747425b437e121da$var$bits((0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).eaw.length - 1);\nconst $747425b437e121da$var$NUMBER_BITS = 10;\n// compute shift and mask values for each field\nconst $747425b437e121da$var$CATEGORY_SHIFT = $747425b437e121da$var$COMBINING_BITS + $747425b437e121da$var$SCRIPT_BITS + $747425b437e121da$var$EAW_BITS + $747425b437e121da$var$NUMBER_BITS;\nconst $747425b437e121da$var$COMBINING_SHIFT = $747425b437e121da$var$SCRIPT_BITS + $747425b437e121da$var$EAW_BITS + $747425b437e121da$var$NUMBER_BITS;\nconst $747425b437e121da$var$SCRIPT_SHIFT = $747425b437e121da$var$EAW_BITS + $747425b437e121da$var$NUMBER_BITS;\nconst $747425b437e121da$var$EAW_SHIFT = $747425b437e121da$var$NUMBER_BITS;\nconst $747425b437e121da$var$CATEGORY_MASK = (1 << $747425b437e121da$var$CATEGORY_BITS) - 1;\nconst $747425b437e121da$var$COMBINING_MASK = (1 << $747425b437e121da$var$COMBINING_BITS) - 1;\nconst $747425b437e121da$var$SCRIPT_MASK = (1 << $747425b437e121da$var$SCRIPT_BITS) - 1;\nconst $747425b437e121da$var$EAW_MASK = (1 << $747425b437e121da$var$EAW_BITS) - 1;\nconst $747425b437e121da$var$NUMBER_MASK = (1 << $747425b437e121da$var$NUMBER_BITS) - 1;\nfunction $747425b437e121da$export$410364bbb673ddbc(codePoint) {\n const val = $747425b437e121da$var$trie.get(codePoint);\n return (0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).categories[val >> $747425b437e121da$var$CATEGORY_SHIFT & $747425b437e121da$var$CATEGORY_MASK];\n}\nfunction $747425b437e121da$export$c03b919c6651ed55(codePoint) {\n const val = $747425b437e121da$var$trie.get(codePoint);\n return (0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).combiningClasses[val >> $747425b437e121da$var$COMBINING_SHIFT & $747425b437e121da$var$COMBINING_MASK];\n}\nfunction $747425b437e121da$export$941569448d136665(codePoint) {\n const val = $747425b437e121da$var$trie.get(codePoint);\n return (0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).scripts[val >> $747425b437e121da$var$SCRIPT_SHIFT & $747425b437e121da$var$SCRIPT_MASK];\n}\nfunction $747425b437e121da$export$92f6187db8ca6d26(codePoint) {\n const val = $747425b437e121da$var$trie.get(codePoint);\n return (0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).eaw[val >> $747425b437e121da$var$EAW_SHIFT & $747425b437e121da$var$EAW_MASK];\n}\nfunction $747425b437e121da$export$7d1258ebb7625a0d(codePoint) {\n let val = $747425b437e121da$var$trie.get(codePoint);\n let num = val & $747425b437e121da$var$NUMBER_MASK;\n if (num === 0) return null;\n else if (num <= 50) return num - 1;\n else if (num < 0x1e0) {\n const numerator = (num >> 4) - 12;\n const denominator = (num & 0xf) + 1;\n return numerator / denominator;\n } else if (num < 0x300) {\n val = (num >> 5) - 14;\n let exp = (num & 0x1f) + 2;\n while(exp > 0){\n val *= 10;\n exp--;\n }\n return val;\n } else {\n val = (num >> 2) - 0xbf;\n let exp = (num & 3) + 1;\n while(exp > 0){\n val *= 60;\n exp--;\n }\n return val;\n }\n}\nfunction $747425b437e121da$export$52c8ea63abd07594(codePoint) {\n const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);\n return category === \"Lu\" || category === \"Ll\" || category === \"Lt\" || category === \"Lm\" || category === \"Lo\" || category === \"Nl\";\n}\nfunction $747425b437e121da$export$727d9dbc4fbb948f(codePoint) {\n return $747425b437e121da$export$410364bbb673ddbc(codePoint) === \"Nd\";\n}\nfunction $747425b437e121da$export$a5b49f4dc6a07d2c(codePoint) {\n const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);\n return category === \"Pc\" || category === \"Pd\" || category === \"Pe\" || category === \"Pf\" || category === \"Pi\" || category === \"Po\" || category === \"Ps\";\n}\nfunction $747425b437e121da$export$7b6804e8df61fcf5(codePoint) {\n return $747425b437e121da$export$410364bbb673ddbc(codePoint) === \"Ll\";\n}\nfunction $747425b437e121da$export$aebd617640818cda(codePoint) {\n return $747425b437e121da$export$410364bbb673ddbc(codePoint) === \"Lu\";\n}\nfunction $747425b437e121da$export$de8b4ee23b2cf823(codePoint) {\n return $747425b437e121da$export$410364bbb673ddbc(codePoint) === \"Lt\";\n}\nfunction $747425b437e121da$export$3c52dd84024ae72c(codePoint) {\n const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);\n return category === \"Zs\" || category === \"Zl\" || category === \"Zp\";\n}\nfunction $747425b437e121da$export$a11bdcffe109e74b(codePoint) {\n const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);\n return category === \"Nd\" || category === \"No\" || category === \"Nl\" || category === \"Lu\" || category === \"Ll\" || category === \"Lt\" || category === \"Lm\" || category === \"Lo\" || category === \"Me\" || category === \"Mc\";\n}\nfunction $747425b437e121da$export$e33ad6871e762338(codePoint) {\n const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);\n return category === \"Mn\" || category === \"Me\" || category === \"Mc\";\n}\nvar // Backwards compatibility.\n$747425b437e121da$export$2e2bcd8739ae039 = {\n getCategory: $747425b437e121da$export$410364bbb673ddbc,\n getCombiningClass: $747425b437e121da$export$c03b919c6651ed55,\n getScript: $747425b437e121da$export$941569448d136665,\n getEastAsianWidth: $747425b437e121da$export$92f6187db8ca6d26,\n getNumericValue: $747425b437e121da$export$7d1258ebb7625a0d,\n isAlphabetic: $747425b437e121da$export$52c8ea63abd07594,\n isDigit: $747425b437e121da$export$727d9dbc4fbb948f,\n isPunctuation: $747425b437e121da$export$a5b49f4dc6a07d2c,\n isLowerCase: $747425b437e121da$export$7b6804e8df61fcf5,\n isUpperCase: $747425b437e121da$export$aebd617640818cda,\n isTitleCase: $747425b437e121da$export$de8b4ee23b2cf823,\n isWhiteSpace: $747425b437e121da$export$3c52dd84024ae72c,\n isBaseForm: $747425b437e121da$export$a11bdcffe109e74b,\n isMark: $747425b437e121da$export$e33ad6871e762338\n};\n\n\nexport {$747425b437e121da$export$410364bbb673ddbc as getCategory, $747425b437e121da$export$c03b919c6651ed55 as getCombiningClass, $747425b437e121da$export$941569448d136665 as getScript, $747425b437e121da$export$92f6187db8ca6d26 as getEastAsianWidth, $747425b437e121da$export$7d1258ebb7625a0d as getNumericValue, $747425b437e121da$export$52c8ea63abd07594 as isAlphabetic, $747425b437e121da$export$727d9dbc4fbb948f as isDigit, $747425b437e121da$export$a5b49f4dc6a07d2c as isPunctuation, $747425b437e121da$export$7b6804e8df61fcf5 as isLowerCase, $747425b437e121da$export$aebd617640818cda as isUpperCase, $747425b437e121da$export$de8b4ee23b2cf823 as isTitleCase, $747425b437e121da$export$3c52dd84024ae72c as isWhiteSpace, $747425b437e121da$export$a11bdcffe109e74b as isBaseForm, $747425b437e121da$export$e33ad6871e762338 as isMark, $747425b437e121da$export$2e2bcd8739ae039 as default};\n//# sourceMappingURL=module.mjs.map\n","/** Text hyphenation in Javascript.\n * Copyright (C) 2021 Yevhen Tiurin (yevhentiurin@gmail.com)\n * https://github.com/ytiurin/hyphen\n *\n * Released under the ISC license\n * https://github.com/ytiurin/hyphen/blob/master/LICENSE\n */\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n // AMD. Register as an anonymous module.\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.createHyphenator = factory();\n }\n})(this, function () {\n var SETTING_DEFAULT_ASYNC = false,\n SETTING_DEFAULT_DEBUG = false,\n SETTING_DEFAULT_HTML = false,\n SETTING_DEFAULT_HYPH_CHAR = \"\\u00AD\",\n SETTING_DEFAULT_MIN_WORD_LENGTH = 5,\n SETTING_NAME_ASYNC = \"async\",\n SETTING_NAME_DEBUG = \"debug\",\n SETTING_NAME_HTML = \"html\",\n SETTING_NAME_HYPH_CHAR = \"hyphenChar\",\n SETTING_NAME_MIN_WORD_LENGTH = \"minWordLength\";\n\n var _global =\n typeof global === \"object\"\n ? global\n : typeof window === \"object\"\n ? window\n : typeof this === \"object\"\n ? this\n : {};\n\n function cloneObj(source) {\n var target = {};\n for (var key in source) {\n target[key] = source[key];\n }\n return target;\n }\n\n function keyOrDefault(object, key, defaultValue) {\n if (key in object) {\n return object[key];\n }\n return defaultValue;\n }\n\n function exceptionsFromDefinition(patternsDefinition, hyphenChar) {\n return patternsDefinition.exceptions.reduce(function (\n exceptions,\n exception\n ) {\n exceptions[exception.replace(/\\-/g, \"\")] = exception.replace(\n /\\-/g,\n hyphenChar\n );\n return exceptions;\n },\n {});\n }\n\n function createHyphenator(patternsDefinition, options) {\n options = options || {};\n var //\n asyncMode = keyOrDefault(\n options,\n SETTING_NAME_ASYNC,\n SETTING_DEFAULT_ASYNC\n ),\n caches = {},\n debug = keyOrDefault(options, SETTING_NAME_DEBUG, SETTING_DEFAULT_DEBUG),\n exceptions = {},\n hyphenChar = keyOrDefault(\n options,\n SETTING_NAME_HYPH_CHAR,\n SETTING_DEFAULT_HYPH_CHAR\n ),\n patterns = patternsDefinition.patterns.map(preprocessPattern),\n minWordLength =\n keyOrDefault(\n options,\n SETTING_NAME_MIN_WORD_LENGTH,\n SETTING_DEFAULT_MIN_WORD_LENGTH\n ) >> 0,\n skipHTML = keyOrDefault(options, SETTING_NAME_HTML, SETTING_DEFAULT_HTML);\n\n // Prepare cache\n var cacheKey = hyphenChar + minWordLength;\n exceptions[cacheKey] = exceptionsFromDefinition(\n patternsDefinition,\n hyphenChar\n );\n caches[cacheKey] = cloneObj(exceptions[cacheKey]);\n\n if (asyncMode && !(\"Promise\" in _global)) {\n throw new Error(\n \"Failed to create hyphenator: Could not find global Promise object, needed for hyphenator to work in async mode\"\n );\n }\n\n return function (text, options) {\n options = options || {};\n\n var localDebug = keyOrDefault(options, SETTING_NAME_DEBUG, debug),\n localHyphenChar = keyOrDefault(\n options,\n SETTING_NAME_HYPH_CHAR,\n hyphenChar\n ),\n localMinWordLength =\n keyOrDefault(options, SETTING_NAME_MIN_WORD_LENGTH, minWordLength) >>\n 0,\n cacheKey = localHyphenChar + localMinWordLength;\n\n if (!exceptions[cacheKey]) {\n exceptions[cacheKey] = exceptionsFromDefinition(\n patternsDefinition,\n localHyphenChar\n );\n }\n\n if (!caches[cacheKey]) {\n caches[cacheKey] = cloneObj(exceptions[cacheKey]);\n }\n\n return start(\n text,\n patterns,\n caches[cacheKey],\n localDebug,\n localHyphenChar,\n skipHTML,\n localMinWordLength,\n asyncMode\n );\n };\n }\n function createTextChunkReader(text, hyphenChar, skipHTML, minWordLength) {\n function readNextTextChunk() {\n var nextTextChunk = \"\";\n\n shouldHyphenate = void 0;\n\n chunkReader: while (nextCharIndex <= text.length) {\n var //\n nextChar = text.charAt(nextCharIndex++),\n charIsLetter =\n !!nextChar && !/\\s|[\\!-\\@\\[-\\`\\{-\\~\\u2013-\\u203C]/.test(nextChar),\n charIsAngleOpen = nextChar === \"<\",\n charIsAngleClose = nextChar === \">\",\n charIsHyphen = nextChar === hyphenChar;\n\n do {\n if (state === STATE_READ_TAG) {\n if (charIsAngleClose) {\n state = STATE_RETURN_UNTOUCHED;\n }\n break;\n }\n\n if (charIsHyphen) {\n shouldHyphenate = SHOULD_SKIP;\n state = STATE_READ_WORD;\n break;\n }\n\n if (charIsLetter) {\n state = STATE_READ_WORD;\n break;\n }\n\n if (state === STATE_READ_WORD) {\n state = STATE_RETURN_WORD;\n shouldHyphenate =\n shouldHyphenate ||\n (nextTextChunk.length >= minWordLength && SHOULD_HYPHENATE);\n break;\n }\n\n shouldHyphenate = SHOULD_SKIP;\n state = STATE_RETURN_UNTOUCHED;\n } while (0);\n\n if (\n charIsAngleOpen &&\n state !== STATE_RETURN_WORD &&\n skipHTML &&\n !isSpacelike(text.charAt(nextCharIndex))\n ) {\n shouldHyphenate = SHOULD_SKIP;\n state = STATE_READ_TAG;\n }\n\n switch (state) {\n case STATE_READ_TAG:\n nextTextChunk += nextChar;\n break;\n\n case STATE_READ_WORD:\n nextTextChunk += nextChar;\n break;\n\n case STATE_RETURN_UNTOUCHED:\n nextTextChunk += nextChar;\n break chunkReader;\n\n case STATE_RETURN_WORD:\n nextCharIndex--;\n break chunkReader;\n }\n }\n return nextTextChunk || void 0;\n }\n\n function shouldNextHyphenate() {\n return shouldHyphenate === SHOULD_HYPHENATE;\n }\n\n var isSpacelike = RegExp.prototype.test.bind(/\\s/);\n\n var //\n nextCharIndex = 0,\n SHOULD_HYPHENATE = 1,\n SHOULD_SKIP = 2,\n shouldHyphenate,\n STATE_READ_TAG = 1,\n STATE_READ_WORD = 2,\n STATE_RETURN_UNTOUCHED = 3,\n STATE_RETURN_WORD = 4,\n state;\n\n return [readNextTextChunk, shouldNextHyphenate];\n }\n function hyphenateWord(text, patterns, debug, hyphenChar) {\n var //\n levels = new Array(text.length + 1),\n loweredText = text.toLocaleLowerCase(),\n p = [],\n patternData,\n patternIndex = 0;\n\n for (var i = levels.length; i--; ) levels[i] = 0;\n\n while ((patternData = patterns[patternIndex++])) {\n var //\n fromChar = 0,\n endPattern = false;\n while (!endPattern) {\n var //\n patternEntityIndex = loweredText.indexOf(patternData.text, fromChar),\n patternFits =\n patternEntityIndex > -1 &&\n (patternData.stickToLeft ? patternEntityIndex === 0 : true) &&\n (patternData.stickToRight\n ? patternEntityIndex + patternData.text.length === text.length\n : true);\n\n if (patternFits) {\n p.push(patternData.pattern + \">\" + patternData.levels.join(\"\"));\n\n for (var i = 0; i < patternData.levels.length; i++)\n levels[patternEntityIndex + i] = Math.max(\n patternData.levels[i],\n levels[patternEntityIndex + i]\n );\n }\n if (patternEntityIndex > -1 && patternData.text.length > 0) {\n fromChar = patternEntityIndex + patternData.text.length + 1;\n } else {\n endPattern = true;\n }\n }\n }\n\n levels[0] = levels[1] = levels[levels.length - 1] = levels[\n levels.length - 2\n ] = 0;\n\n var //\n hyphenatedText = \"\",\n leveledText = \"\",\n debugHyphenatedText = \"\";\n\n for (var i = 0; i < levels.length; i++) {\n hyphenatedText +=\n (levels[i] % 2 === 1 ? hyphenChar : \"\") + text.charAt(i);\n debugHyphenatedText += (levels[i] % 2 === 1 ? \"-\" : \"\") + text.charAt(i);\n leveledText += (levels[i] > 0 ? levels[i] : \"\") + text.charAt(i);\n }\n\n if (debug)\n console.log.apply(\n console,\n [text, \"->\"]\n .concat(p)\n .concat([\"->\"])\n .concat(levels)\n .concat([\"->\", leveledText])\n .concat([\"->\", debugHyphenatedText])\n );\n\n return hyphenatedText;\n }\n function preprocessPattern(pattern) {\n var //\n patternCharIndex = 0,\n patternChar,\n patternData = {\n pattern: pattern,\n text: \"\",\n levels: [],\n stickToLeft: 0,\n stickToRight: 0\n },\n states = { alphabet: 1, level: 2, stickToLeft: 3, stickToRight: 4 };\n\n while ((patternChar = pattern.charAt(patternCharIndex++))) {\n var //\n charIsDot = patternChar === \".\",\n charIsNumber = !charIsDot && /\\d/.test(patternChar),\n state = charIsDot\n ? patternCharIndex - 1 === 0\n ? states.stickToLeft\n : states.stickToRight\n : charIsNumber\n ? states.level\n : states.alphabet;\n\n switch (state) {\n case states.alphabet:\n !prevCharIsNumber && patternData.levels.push(0);\n patternData.text += patternChar;\n break;\n\n case states.level:\n patternData.levels.push(parseInt(patternChar));\n break;\n\n case states.stickToLeft:\n patternData.stickToLeft = true;\n break;\n\n case states.stickToRight:\n patternData.stickToRight = true;\n break;\n }\n\n var prevCharIsNumber = charIsNumber;\n }\n\n return patternData;\n }\n function start(\n text,\n patterns,\n cache,\n debug,\n hyphenChar,\n skipHTML,\n minWordLength,\n isAsync\n ) {\n function done() {\n allTime = new Date() - allTime;\n resolveNewText(newText);\n\n if (debug) {\n console.log(\n \"----------------\\nHyphenation stats: \" +\n processedN +\n \" text chunks processed, \" +\n hyphenatedN +\n \" words hyphenated\"\n );\n console.log(\"Work time: \" + workTime / 1000);\n console.log(\"Wait time: \" + (allTime - workTime) / 1000);\n console.log(\"All time: \" + allTime / 1000);\n }\n }\n\n var //\n cacheKey,\n newText = \"\",\n textChunk,\n reader = createTextChunkReader(text, hyphenChar, skipHTML, minWordLength),\n readNextTextChunk = reader[0],\n shouldNextHyphenate = reader[1],\n processedN = 0,\n hyphenatedN = 0;\n\n var //\n allTime = new Date(),\n workTime = 0;\n\n var resolveNewText = function () {};\n\n function nextTick() {\n var loopStart = new Date();\n\n while (\n (!isAsync || new Date() - loopStart < 10) &&\n (textChunk = readNextTextChunk())\n ) {\n cacheKey = textChunk.length ? \"$\" + textChunk : \"\";\n\n if (shouldNextHyphenate()) {\n if (cache[cacheKey] === undefined) {\n cache[cacheKey] = hyphenateWord(\n textChunk,\n patterns,\n debug,\n hyphenChar\n );\n }\n\n if (textChunk !== cache[cacheKey]) {\n hyphenatedN++;\n }\n\n textChunk = cache[cacheKey];\n }\n\n newText += textChunk;\n processedN++;\n }\n\n workTime += new Date() - loopStart;\n\n if (!textChunk) {\n done();\n } else {\n setTimeout(nextTick);\n }\n }\n\n if (isAsync) {\n setTimeout(nextTick);\n return new Promise(function (resolve) {\n resolveNewText = resolve;\n });\n } else {\n nextTick();\n return newText;\n }\n }\n\n return createHyphenator;\n});\n","module.exports = require(\"./hyphen.js\");\r\n","(function (root, factory) {\r\n if (typeof define === \"function\" && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define([], factory);\r\n } else if (typeof module === \"object\" && module.exports) {\r\n // Node. Does not work with strict CommonJS, but\r\n // only CommonJS-like environments that support module.exports,\r\n // like Node.\r\n module.exports = factory();\r\n } else {\r\n // Browser globals (root is window)\r\n root.hyphenationPatternsEnUs = factory();\r\n }\r\n})(this, function () {\r\n var patterns = [],\r\n hyphenation = [];\r\n\r\n // title: Hyphenation patterns for American English\r\n // copyright: Copyright (C) 1990, 2004, 2005 Gerard D.C. Kuiken\r\n // notice: This file is part of the hyph-utf8 package.\r\n // See http://www.hyphenation.org/tex for more information.\r\n // language:\r\n // name: English, American spelling\r\n // tag: en-us\r\n // version: 2005-05-30\r\n // authors:\r\n // -\r\n // name: Gerard D.C. Kuiken\r\n // licence:\r\n // text: >\r\n // Copying and distribution of this file, with or without modification,\r\n // are permitted in any medium without royalty provided the copyright\r\n // notice and this notice are preserved.\r\n // changes:\r\n // March 1, 1990 Initial release\r\n // May 30, 2005 Added copyright notice, no patterns change.\r\n // ==========================================\r\n //\r\n // ushyphmax.tex -- patterns for more hyphenation pattern memory (12000+).\r\n // Also known as ushyphen.max.\r\n //\r\n // Needs extended pattern memory.\r\n // Hyphenation trie becomes 7283 with 377 ops.\r\n //\r\n // These patterns are based on the Hyphenation Exception Log\r\n // published in TUGboat, Volume 10 (1989), No. 3, pp. 337-341,\r\n // and a large number of incorrectly hyphenated words not yet published.\r\n // If added to Liang's before the closing bracket } of \\patterns,\r\n // the patterns run errorfree as far as known at this moment.\r\n //\r\n // These patterns find all admissible hyphens of the words in\r\n // the Exception Log. ushyph2.tex is a smaller set.\r\n //\r\n // Please send bugs or suggestions to tex-live (at) tug.org.\r\n //\r\n // 2005-05-30 (karl): in the past, ushyphmax.tex was a file containing\r\n // only the additional patterns, without the \\patterns command, etc.\r\n // This turned out not to be very useful, since in practice the TeX\r\n // distributions need one self-contained file for a language. Therefore,\r\n // ushyphmax.tex now contains both the additional patterns from\r\n // Dr. Kuiken, and the original patterns and hyphenations from Knuth's\r\n // hyphen.tex.\r\n //\r\n // The Plain TeX hyphenation tables.\r\n var patterns = [\r\n \" \", // just type <return> if you're not using INITEX\r\n \".ach4\",\r\n \".ad4der\",\r\n \".af1t\",\r\n \".al3t\",\r\n \".am5at\",\r\n \".an5c\",\r\n \".ang4\",\r\n \".ani5m\",\r\n \".ant4\",\r\n \".an3te\",\r\n \".anti5s\",\r\n \".ar5s\",\r\n \".ar4tie\",\r\n \".ar4ty\",\r\n \".as3c\",\r\n \".as1p\",\r\n \".as1s\",\r\n \".aster5\",\r\n \".atom5\",\r\n \".au1d\",\r\n \".av4i\",\r\n \".awn4\",\r\n \".ba4g\",\r\n \".ba5na\",\r\n \".bas4e\",\r\n \".ber4\",\r\n \".be5ra\",\r\n \".be3sm\",\r\n \".be5sto\",\r\n \".bri2\",\r\n \".but4ti\",\r\n \".cam4pe\",\r\n \".can5c\",\r\n \".capa5b\",\r\n \".car5ol\",\r\n \".ca4t\",\r\n \".ce4la\",\r\n \".ch4\",\r\n \".chill5i\",\r\n \".ci2\",\r\n \".cit5r\",\r\n \".co3e\",\r\n \".co4r\",\r\n \".cor5ner\",\r\n \".de4moi\",\r\n \".de3o\",\r\n \".de3ra\",\r\n \".de3ri\",\r\n \".des4c\",\r\n \".dictio5\",\r\n \".do4t\",\r\n \".du4c\",\r\n \".dumb5\",\r\n \".earth5\",\r\n \".eas3i\",\r\n \".eb4\",\r\n \".eer4\",\r\n \".eg2\",\r\n \".el5d\",\r\n \".el3em\",\r\n \".enam3\",\r\n \".en3g\",\r\n \".en3s\",\r\n \".eq5ui5t\",\r\n \".er4ri\",\r\n \".es3\",\r\n \".eu3\",\r\n \".eye5\",\r\n \".fes3\",\r\n \".for5mer\",\r\n \".ga2\",\r\n \".ge2\",\r\n \".gen3t4\",\r\n \".ge5og\",\r\n \".gi5a\",\r\n \".gi4b\",\r\n \".go4r\",\r\n \".hand5i\",\r\n \".han5k\",\r\n \".he2\",\r\n \".hero5i\",\r\n \".hes3\",\r\n \".het3\",\r\n \".hi3b\",\r\n \".hi3er\",\r\n \".hon5ey\",\r\n \".hon3o\",\r\n \".hov5\",\r\n \".id4l\",\r\n \".idol3\",\r\n \".im3m\",\r\n \".im5pin\",\r\n \".in1\",\r\n \".in3ci\",\r\n \".ine2\",\r\n \".in2k\",\r\n \".in3s\",\r\n \".ir5r\",\r\n \".is4i\",\r\n \".ju3r\",\r\n \".la4cy\",\r\n \".la4m\",\r\n \".lat5er\",\r\n \".lath5\",\r\n \".le2\",\r\n \".leg5e\",\r\n \".len4\",\r\n \".lep5\",\r\n \".lev1\",\r\n \".li4g\",\r\n \".lig5a\",\r\n \".li2n\",\r\n \".li3o\",\r\n \".li4t\",\r\n \".mag5a5\",\r\n \".mal5o\",\r\n \".man5a\",\r\n \".mar5ti\",\r\n \".me2\",\r\n \".mer3c\",\r\n \".me5ter\",\r\n \".mis1\",\r\n \".mist5i\",\r\n \".mon3e\",\r\n \".mo3ro\",\r\n \".mu5ta\",\r\n \".muta5b\",\r\n \".ni4c\",\r\n \".od2\",\r\n \".odd5\",\r\n \".of5te\",\r\n \".or5ato\",\r\n \".or3c\",\r\n \".or1d\",\r\n \".or3t\",\r\n \".os3\",\r\n \".os4tl\",\r\n \".oth3\",\r\n \".out3\",\r\n \".ped5al\",\r\n \".pe5te\",\r\n \".pe5tit\",\r\n \".pi4e\",\r\n \".pio5n\",\r\n \".pi2t\",\r\n \".pre3m\",\r\n \".ra4c\",\r\n \".ran4t\",\r\n \".ratio5na\",\r\n \".ree2\",\r\n \".re5mit\",\r\n \".res2\",\r\n \".re5stat\",\r\n \".ri4g\",\r\n \".rit5u\",\r\n \".ro4q\",\r\n \".ros5t\",\r\n \".row5d\",\r\n \".ru4d\",\r\n \".sci3e\",\r\n \".self5\",\r\n \".sell5\",\r\n \".se2n\",\r\n \".se5rie\",\r\n \".sh2\",\r\n \".si2\",\r\n \".sing4\",\r\n \".st4\",\r\n \".sta5bl\",\r\n \".sy2\",\r\n \".ta4\",\r\n \".te4\",\r\n \".ten5an\",\r\n \".th2\",\r\n \".ti2\",\r\n \".til4\",\r\n \".tim5o5\",\r\n \".ting4\",\r\n \".tin5k\",\r\n \".ton4a\",\r\n \".to4p\",\r\n \".top5i\",\r\n \".tou5s\",\r\n \".trib5ut\",\r\n \".un1a\",\r\n \".un3ce\",\r\n \".under5\",\r\n \".un1e\",\r\n \".un5k\",\r\n \".un5o\",\r\n \".un3u\",\r\n \".up3\",\r\n \".ure3\",\r\n \".us5a\",\r\n \".ven4de\",\r\n \".ve5ra\",\r\n \".wil5i\",\r\n \".ye4\",\r\n \"4ab.\",\r\n \"a5bal\",\r\n \"a5ban\",\r\n \"abe2\",\r\n \"ab5erd\",\r\n \"abi5a\",\r\n \"ab5it5ab\",\r\n \"ab5lat\",\r\n \"ab5o5liz\",\r\n \"4abr\",\r\n \"ab5rog\",\r\n \"ab3ul\",\r\n \"a4car\",\r\n \"ac5ard\",\r\n \"ac5aro\",\r\n \"a5ceou\",\r\n \"ac1er\",\r\n \"a5chet\",\r\n \"4a2ci\",\r\n \"a3cie\",\r\n \"ac1in\",\r\n \"a3cio\",\r\n \"ac5rob\",\r\n \"act5if\",\r\n \"ac3ul\",\r\n \"ac4um\",\r\n \"a2d\",\r\n \"ad4din\",\r\n \"ad5er.\",\r\n \"2adi\",\r\n \"a3dia\",\r\n \"ad3ica\",\r\n \"adi4er\",\r\n \"a3dio\",\r\n \"a3dit\",\r\n \"a5diu\",\r\n \"ad4le\",\r\n \"ad3ow\",\r\n \"ad5ran\",\r\n \"ad4su\",\r\n \"4adu\",\r\n \"a3duc\",\r\n \"ad5um\",\r\n \"ae4r\",\r\n \"aeri4e\",\r\n \"a2f\",\r\n \"aff4\",\r\n \"a4gab\",\r\n \"aga4n\",\r\n \"ag5ell\",\r\n \"age4o\",\r\n \"4ageu\",\r\n \"ag1i\",\r\n \"4ag4l\",\r\n \"ag1n\",\r\n \"a2go\",\r\n \"3agog\",\r\n \"ag3oni\",\r\n \"a5guer\",\r\n \"ag5ul\",\r\n \"a4gy\",\r\n \"a3ha\",\r\n \"a3he\",\r\n \"ah4l\",\r\n \"a3ho\",\r\n \"ai2\",\r\n \"a5ia\",\r\n \"a3ic.\",\r\n \"ai5ly\",\r\n \"a4i4n\",\r\n \"ain5in\",\r\n \"ain5o\",\r\n \"ait5en\",\r\n \"a1j\",\r\n \"ak1en\",\r\n \"al5ab\",\r\n \"al3ad\",\r\n \"a4lar\",\r\n \"4aldi\",\r\n \"2ale\",\r\n \"al3end\",\r\n \"a4lenti\",\r\n \"a5le5o\",\r\n \"al1i\",\r\n \"al4ia.\",\r\n \"ali4e\",\r\n \"al5lev\",\r\n \"4allic\",\r\n \"4alm\",\r\n \"a5log.\",\r\n \"a4ly.\",\r\n \"4alys\",\r\n \"5a5lyst\",\r\n \"5alyt\",\r\n \"3alyz\",\r\n \"4ama\",\r\n \"am5ab\",\r\n \"am3ag\",\r\n \"ama5ra\",\r\n \"am5asc\",\r\n \"a4matis\",\r\n \"a4m5ato\",\r\n \"am5era\",\r\n \"am3ic\",\r\n \"am5if\",\r\n \"am5ily\",\r\n \"am1in\",\r\n \"ami4no\",\r\n \"a2mo\",\r\n \"a5mon\",\r\n \"amor5i\",\r\n \"amp5en\",\r\n \"a2n\",\r\n \"an3age\",\r\n \"3analy\",\r\n \"a3nar\",\r\n \"an3arc\",\r\n \"anar4i\",\r\n \"a3nati\",\r\n \"4and\",\r\n \"ande4s\",\r\n \"an3dis\",\r\n \"an1dl\",\r\n \"an4dow\",\r\n \"a5nee\",\r\n \"a3nen\",\r\n \"an5est.\",\r\n \"a3neu\",\r\n \"2ang\",\r\n \"ang5ie\",\r\n \"an1gl\",\r\n \"a4n1ic\",\r\n \"a3nies\",\r\n \"an3i3f\",\r\n \"an4ime\",\r\n \"a5nimi\",\r\n \"a5nine\",\r\n \"an3io\",\r\n \"a3nip\",\r\n \"an3ish\",\r\n \"an3it\",\r\n \"a3niu\",\r\n \"an4kli\",\r\n \"5anniz\",\r\n \"ano4\",\r\n \"an5ot\",\r\n \"anoth5\",\r\n \"an2sa\",\r\n \"an4sco\",\r\n \"an4sn\",\r\n \"an2sp\",\r\n \"ans3po\",\r\n \"an4st\",\r\n \"an4sur\",\r\n \"antal4\",\r\n \"an4tie\",\r\n \"4anto\",\r\n \"an2tr\",\r\n \"an4tw\",\r\n \"an3ua\",\r\n \"an3ul\",\r\n \"a5nur\",\r\n \"4ao\",\r\n \"apar4\",\r\n \"ap5at\",\r\n \"ap5ero\",\r\n \"a3pher\",\r\n \"4aphi\",\r\n \"a4pilla\",\r\n \"ap5illar\",\r\n \"ap3in\",\r\n \"ap3ita\",\r\n \"a3pitu\",\r\n \"a2pl\",\r\n \"apoc5\",\r\n \"ap5ola\",\r\n \"apor5i\",\r\n \"apos3t\",\r\n \"aps5es\",\r\n \"a3pu\",\r\n \"aque5\",\r\n \"2a2r\",\r\n \"ar3act\",\r\n \"a5rade\",\r\n \"ar5adis\",\r\n \"ar3al\",\r\n \"a5ramete\",\r\n \"aran4g\",\r\n \"ara3p\",\r\n \"ar4at\",\r\n \"a5ratio\",\r\n \"ar5ativ\",\r\n \"a5rau\",\r\n \"ar5av4\",\r\n \"araw4\",\r\n \"arbal4\",\r\n \"ar4chan\",\r\n \"ar5dine\",\r\n \"ar4dr\",\r\n \"ar5eas\",\r\n \"a3ree\",\r\n \"ar3ent\",\r\n \"a5ress\",\r\n \"ar4fi\",\r\n \"ar4fl\",\r\n \"ar1i\",\r\n \"ar5ial\",\r\n \"ar3ian\",\r\n \"a3riet\",\r\n \"ar4im\",\r\n \"ar5inat\",\r\n \"ar3io\",\r\n \"ar2iz\",\r\n \"ar2mi\",\r\n \"ar5o5d\",\r\n \"a5roni\",\r\n \"a3roo\",\r\n \"ar2p\",\r\n \"ar3q\",\r\n \"arre4\",\r\n \"ar4sa\",\r\n \"ar2sh\",\r\n \"4as.\",\r\n \"as4ab\",\r\n \"as3ant\",\r\n \"ashi4\",\r\n \"a5sia.\",\r\n \"a3sib\",\r\n \"a3sic\",\r\n \"5a5si4t\",\r\n \"ask3i\",\r\n \"as4l\",\r\n \"a4soc\",\r\n \"as5ph\",\r\n \"as4sh\",\r\n \"as3ten\",\r\n \"as1tr\",\r\n \"asur5a\",\r\n \"a2ta\",\r\n \"at3abl\",\r\n \"at5ac\",\r\n \"at3alo\",\r\n \"at5ap\",\r\n \"ate5c\",\r\n \"at5ech\",\r\n \"at3ego\",\r\n \"at3en.\",\r\n \"at3era\",\r\n \"ater5n\",\r\n \"a5terna\",\r\n \"at3est\",\r\n \"at5ev\",\r\n \"4ath\",\r\n \"ath5em\",\r\n \"a5then\",\r\n \"at4ho\",\r\n \"ath5om\",\r\n \"4ati.\",\r\n \"a5tia\",\r\n \"at5i5b\",\r\n \"at1ic\",\r\n \"at3if\",\r\n \"ation5ar\",\r\n \"at3itu\",\r\n \"a4tog\",\r\n \"a2tom\",\r\n \"at5omiz\",\r\n \"a4top\",\r\n \"a4tos\",\r\n \"a1tr\",\r\n \"at5rop\",\r\n \"at4sk\",\r\n \"at4tag\",\r\n \"at5te\",\r\n \"at4th\",\r\n \"a2tu\",\r\n \"at5ua\",\r\n \"at5ue\",\r\n \"at3ul\",\r\n \"at3ura\",\r\n \"a2ty\",\r\n \"au4b\",\r\n \"augh3\",\r\n \"au3gu\",\r\n \"au4l2\",\r\n \"aun5d\",\r\n \"au3r\",\r\n \"au5sib\",\r\n \"aut5en\",\r\n \"au1th\",\r\n \"a2va\",\r\n \"av3ag\",\r\n \"a5van\",\r\n \"ave4no\",\r\n \"av3era\",\r\n \"av5ern\",\r\n \"av5ery\",\r\n \"av1i\",\r\n \"avi4er\",\r\n \"av3ig\",\r\n \"av5oc\",\r\n \"a1vor\",\r\n \"3away\",\r\n \"aw3i\",\r\n \"aw4ly\",\r\n \"aws4\",\r\n \"ax4ic\",\r\n \"ax4id\",\r\n \"ay5al\",\r\n \"aye4\",\r\n \"ays4\",\r\n \"azi4er\",\r\n \"azz5i\",\r\n \"5ba.\",\r\n \"bad5ger\",\r\n \"ba4ge\",\r\n \"bal1a\",\r\n \"ban5dag\",\r\n \"ban4e\",\r\n \"ban3i\",\r\n \"barbi5\",\r\n \"bari4a\",\r\n \"bas4si\",\r\n \"1bat\",\r\n \"ba4z\",\r\n \"2b1b\",\r\n \"b2be\",\r\n \"b3ber\",\r\n \"bbi4na\",\r\n \"4b1d\",\r\n \"4be.\",\r\n \"beak4\",\r\n \"beat3\",\r\n \"4be2d\",\r\n \"be3da\",\r\n \"be3de\",\r\n \"be3di\",\r\n \"be3gi\",\r\n \"be5gu\",\r\n \"1bel\",\r\n \"be1li\",\r\n \"be3lo\",\r\n \"4be5m\",\r\n \"be5nig\",\r\n \"be5nu\",\r\n \"4bes4\",\r\n \"be3sp\",\r\n \"be5str\",\r\n \"3bet\",\r\n \"bet5iz\",\r\n \"be5tr\",\r\n \"be3tw\",\r\n \"be3w\",\r\n \"be5yo\",\r\n \"2bf\",\r\n \"4b3h\",\r\n \"bi2b\",\r\n \"bi4d\",\r\n \"3bie\",\r\n \"bi5en\",\r\n \"bi4er\",\r\n \"2b3if\",\r\n \"1bil\",\r\n \"bi3liz\",\r\n \"bina5r4\",\r\n \"bin4d\",\r\n \"bi5net\",\r\n \"bi3ogr\",\r\n \"bi5ou\",\r\n \"bi2t\",\r\n \"3bi3tio\",\r\n \"bi3tr\",\r\n \"3bit5ua\",\r\n \"b5itz\",\r\n \"b1j\",\r\n \"bk4\",\r\n \"b2l2\",\r\n \"blath5\",\r\n \"b4le.\",\r\n \"blen4\",\r\n \"5blesp\",\r\n \"b3lis\",\r\n \"b4lo\",\r\n \"blun4t\",\r\n \"4b1m\",\r\n \"4b3n\",\r\n \"bne5g\",\r\n \"3bod\",\r\n \"bod3i\",\r\n \"bo4e\",\r\n \"bol3ic\",\r\n \"bom4bi\",\r\n \"bon4a\",\r\n \"bon5at\",\r\n \"3boo\",\r\n \"5bor.\",\r\n \"4b1ora\",\r\n \"bor5d\",\r\n \"5bore\",\r\n \"5bori\",\r\n \"5bos4\",\r\n \"b5ota\",\r\n \"both5\",\r\n \"bo4to\",\r\n \"bound3\",\r\n \"4bp\",\r\n \"4brit\",\r\n \"broth3\",\r\n \"2b5s2\",\r\n \"bsor4\",\r\n \"2bt\",\r\n \"bt4l\",\r\n \"b4to\",\r\n \"b3tr\",\r\n \"buf4fer\",\r\n \"bu4ga\",\r\n \"bu3li\",\r\n \"bumi4\",\r\n \"bu4n\",\r\n \"bunt4i\",\r\n \"bu3re\",\r\n \"bus5ie\",\r\n \"buss4e\",\r\n \"5bust\",\r\n \"4buta\",\r\n \"3butio\",\r\n \"b5uto\",\r\n \"b1v\",\r\n \"4b5w\",\r\n \"5by.\",\r\n \"bys4\",\r\n \"1ca\",\r\n \"cab3in\",\r\n \"ca1bl\",\r\n \"cach4\",\r\n \"ca5den\",\r\n \"4cag4\",\r\n \"2c5ah\",\r\n \"ca3lat\",\r\n \"cal4la\",\r\n \"call5in\",\r\n \"4calo\",\r\n \"can5d\",\r\n \"can4e\",\r\n \"can4ic\",\r\n \"can5is\",\r\n \"can3iz\",\r\n \"can4ty\",\r\n \"cany4\",\r\n \"ca5per\",\r\n \"car5om\",\r\n \"cast5er\",\r\n \"cas5tig\",\r\n \"4casy\",\r\n \"ca4th\",\r\n \"4cativ\",\r\n \"cav5al\",\r\n \"c3c\",\r\n \"ccha5\",\r\n \"cci4a\",\r\n \"ccompa5\",\r\n \"ccon4\",\r\n \"ccou3t\",\r\n \"2ce.\",\r\n \"4ced.\",\r\n \"4ceden\",\r\n \"3cei\",\r\n \"5cel.\",\r\n \"3cell\",\r\n \"1cen\",\r\n \"3cenc\",\r\n \"2cen4e\",\r\n \"4ceni\",\r\n \"3cent\",\r\n \"3cep\",\r\n \"ce5ram\",\r\n \"4cesa\",\r\n \"3cessi\",\r\n \"ces5si5b\",\r\n \"ces5t\",\r\n \"cet4\",\r\n \"c5e4ta\",\r\n \"cew4\",\r\n \"2ch\",\r\n \"4ch.\",\r\n \"4ch3ab\",\r\n \"5chanic\",\r\n \"ch5a5nis\",\r\n \"che2\",\r\n \"cheap3\",\r\n \"4ched\",\r\n \"che5lo\",\r\n \"3chemi\",\r\n \"ch5ene\",\r\n \"ch3er.\",\r\n \"ch3ers\",\r\n \"4ch1in\",\r\n \"5chine.\",\r\n \"ch5iness\",\r\n \"5chini\",\r\n \"5chio\",\r\n \"3chit\",\r\n \"chi2z\",\r\n \"3cho2\",\r\n \"ch4ti\",\r\n \"1ci\",\r\n \"3cia\",\r\n \"ci2a5b\",\r\n \"cia5r\",\r\n \"ci5c\",\r\n \"4cier\",\r\n \"5cific.\",\r\n \"4cii\",\r\n \"ci4la\",\r\n \"3cili\",\r\n \"2cim\",\r\n \"2cin\",\r\n \"c4ina\",\r\n \"3cinat\",\r\n \"cin3em\",\r\n \"c1ing\",\r\n \"c5ing.\",\r\n \"5cino\",\r\n \"cion4\",\r\n \"4cipe\",\r\n \"ci3ph\",\r\n \"4cipic\",\r\n \"4cista\",\r\n \"4cisti\",\r\n \"2c1it\",\r\n \"cit3iz\",\r\n \"5ciz\",\r\n \"ck1\",\r\n \"ck3i\",\r\n \"1c4l4\",\r\n \"4clar\",\r\n \"c5laratio\",\r\n \"5clare\",\r\n \"cle4m\",\r\n \"4clic\",\r\n \"clim4\",\r\n \"cly4\",\r\n \"c5n\",\r\n \"1co\",\r\n \"co5ag\",\r\n \"coe2\",\r\n \"2cog\",\r\n \"co4gr\",\r\n \"coi4\",\r\n \"co3inc\",\r\n \"col5i\",\r\n \"5colo\",\r\n \"col3or\",\r\n \"com5er\",\r\n \"con4a\",\r\n \"c4one\",\r\n \"con3g\",\r\n \"con5t\",\r\n \"co3pa\",\r\n \"cop3ic\",\r\n \"co4pl\",\r\n \"4corb\",\r\n \"coro3n\",\r\n \"cos4e\",\r\n \"cov1\",\r\n \"cove4\",\r\n \"cow5a\",\r\n \"coz5e\",\r\n \"co5zi\",\r\n \"c1q\",\r\n \"cras5t\",\r\n \"5crat.\",\r\n \"5cratic\",\r\n \"cre3at\",\r\n \"5cred\",\r\n \"4c3reta\",\r\n \"cre4v\",\r\n \"cri2\",\r\n \"cri5f\",\r\n \"c4rin\",\r\n \"cris4\",\r\n \"5criti\",\r\n \"cro4pl\",\r\n \"crop5o\",\r\n \"cros4e\",\r\n \"cru4d\",\r\n \"4c3s2\",\r\n \"2c1t\",\r\n \"cta4b\",\r\n \"ct5ang\",\r\n \"c5tant\",\r\n \"c2te\",\r\n \"c3ter\",\r\n \"c4ticu\",\r\n \"ctim3i\",\r\n \"ctu4r\",\r\n \"c4tw\",\r\n \"cud5\",\r\n \"c4uf\",\r\n \"c4ui\",\r\n \"cu5ity\",\r\n \"5culi\",\r\n \"cul4tis\",\r\n \"3cultu\",\r\n \"cu2ma\",\r\n \"c3ume\",\r\n \"cu4mi\",\r\n \"3cun\",\r\n \"cu3pi\",\r\n \"cu5py\",\r\n \"cur5a4b\",\r\n \"cu5ria\",\r\n \"1cus\",\r\n \"cuss4i\",\r\n \"3c4ut\",\r\n \"cu4tie\",\r\n \"4c5utiv\",\r\n \"4cutr\",\r\n \"1cy\",\r\n \"cze4\",\r\n \"1d2a\",\r\n \"5da.\",\r\n \"2d3a4b\",\r\n \"dach4\",\r\n \"4daf\",\r\n \"2dag\",\r\n \"da2m2\",\r\n \"dan3g\",\r\n \"dard5\",\r\n \"dark5\",\r\n \"4dary\",\r\n \"3dat\",\r\n \"4dativ\",\r\n \"4dato\",\r\n \"5dav4\",\r\n \"dav5e\",\r\n \"5day\",\r\n \"d1b\",\r\n \"d5c\",\r\n \"d1d4\",\r\n \"2de.\",\r\n \"deaf5\",\r\n \"deb5it\",\r\n \"de4bon\",\r\n \"decan4\",\r\n \"de4cil\",\r\n \"de5com\",\r\n \"2d1ed\",\r\n \"4dee.\",\r\n \"de5if\",\r\n \"deli4e\",\r\n \"del5i5q\",\r\n \"de5lo\",\r\n \"d4em\",\r\n \"5dem.\",\r\n \"3demic\",\r\n \"dem5ic.\",\r\n \"de5mil\",\r\n \"de4mons\",\r\n \"demor5\",\r\n \"1den\",\r\n \"de4nar\",\r\n \"de3no\",\r\n \"denti5f\",\r\n \"de3nu\",\r\n \"de1p\",\r\n \"de3pa\",\r\n \"depi4\",\r\n \"de2pu\",\r\n \"d3eq\",\r\n \"d4erh\",\r\n \"5derm\",\r\n \"dern5iz\",\r\n \"der5s\",\r\n \"des2\",\r\n \"d2es.\",\r\n \"de1sc\",\r\n \"de2s5o\",\r\n \"des3ti\",\r\n \"de3str\",\r\n \"de4su\",\r\n \"de1t\",\r\n \"de2to\",\r\n \"de1v\",\r\n \"dev3il\",\r\n \"4dey\",\r\n \"4d1f\",\r\n \"d4ga\",\r\n \"d3ge4t\",\r\n \"dg1i\",\r\n \"d2gy\",\r\n \"d1h2\",\r\n \"5di.\",\r\n \"1d4i3a\",\r\n \"dia5b\",\r\n \"di4cam\",\r\n \"d4ice\",\r\n \"3dict\",\r\n \"3did\",\r\n \"5di3en\",\r\n \"d1if\",\r\n \"di3ge\",\r\n \"di4lato\",\r\n \"d1in\",\r\n \"1dina\",\r\n \"3dine.\",\r\n \"5dini\",\r\n \"di5niz\",\r\n \"1dio\",\r\n \"dio5g\",\r\n \"di4pl\",\r\n \"dir2\",\r\n \"di1re\",\r\n \"dirt5i\",\r\n \"dis1\",\r\n \"5disi\",\r\n \"d4is3t\",\r\n \"d2iti\",\r\n \"1di1v\",\r\n \"d1j\",\r\n \"d5k2\",\r\n \"4d5la\",\r\n \"3dle.\",\r\n \"3dled\",\r\n \"3dles.\",\r\n \"4dless\",\r\n \"2d3lo\",\r\n \"4d5lu\",\r\n \"2dly\",\r\n \"d1m\",\r\n \"4d1n4\",\r\n \"1do\",\r\n \"3do.\",\r\n \"do5de\",\r\n \"5doe\",\r\n \"2d5of\",\r\n \"d4og\",\r\n \"do4la\",\r\n \"doli4\",\r\n \"do5lor\",\r\n \"dom5iz\",\r\n \"do3nat\",\r\n \"doni4\",\r\n \"doo3d\",\r\n \"dop4p\",\r\n \"d4or\",\r\n \"3dos\",\r\n \"4d5out\",\r\n \"do4v\",\r\n \"3dox\",\r\n \"d1p\",\r\n \"1dr\",\r\n \"drag5on\",\r\n \"4drai\",\r\n \"dre4\",\r\n \"drea5r\",\r\n \"5dren\",\r\n \"dri4b\",\r\n \"dril4\",\r\n \"dro4p\",\r\n \"4drow\",\r\n \"5drupli\",\r\n \"4dry\",\r\n \"2d1s2\",\r\n \"ds4p\",\r\n \"d4sw\",\r\n \"d4sy\",\r\n \"d2th\",\r\n \"1du\",\r\n \"d1u1a\",\r\n \"du2c\",\r\n \"d1uca\",\r\n \"duc5er\",\r\n \"4duct.\",\r\n \"4ducts\",\r\n \"du5el\",\r\n \"du4g\",\r\n \"d3ule\",\r\n \"dum4be\",\r\n \"du4n\",\r\n \"4dup\",\r\n \"du4pe\",\r\n \"d1v\",\r\n \"d1w\",\r\n \"d2y\",\r\n \"5dyn\",\r\n \"dy4se\",\r\n \"dys5p\",\r\n \"e1a4b\",\r\n \"e3act\",\r\n \"ead1\",\r\n \"ead5ie\",\r\n \"ea4ge\",\r\n \"ea5ger\",\r\n \"ea4l\",\r\n \"eal5er\",\r\n \"eal3ou\",\r\n \"eam3er\",\r\n \"e5and\",\r\n \"ear3a\",\r\n \"ear4c\",\r\n \"ear5es\",\r\n \"ear4ic\",\r\n \"ear4il\",\r\n \"ear5k\",\r\n \"ear2t\",\r\n \"eart3e\",\r\n \"ea5sp\",\r\n \"e3ass\",\r\n \"east3\",\r\n \"ea2t\",\r\n \"eat5en\",\r\n \"eath3i\",\r\n \"e5atif\",\r\n \"e4a3tu\",\r\n \"ea2v\",\r\n \"eav3en\",\r\n \"eav5i\",\r\n \"eav5o\",\r\n \"2e1b\",\r\n \"e4bel.\",\r\n \"e4bels\",\r\n \"e4ben\",\r\n \"e4bit\",\r\n \"e3br\",\r\n \"e4cad\",\r\n \"ecan5c\",\r\n \"ecca5\",\r\n \"e1ce\",\r\n \"ec5essa\",\r\n \"ec2i\",\r\n \"e4cib\",\r\n \"ec5ificat\",\r\n \"ec5ifie\",\r\n \"ec5ify\",\r\n \"ec3im\",\r\n \"eci4t\",\r\n \"e5cite\",\r\n \"e4clam\",\r\n \"e4clus\",\r\n \"e2col\",\r\n \"e4comm\",\r\n \"e4compe\",\r\n \"e4conc\",\r\n \"e2cor\",\r\n \"ec3ora\",\r\n \"eco5ro\",\r\n \"e1cr\",\r\n \"e4crem\",\r\n \"ec4tan\",\r\n \"ec4te\",\r\n \"e1cu\",\r\n \"e4cul\",\r\n \"ec3ula\",\r\n \"2e2da\",\r\n \"4ed3d\",\r\n \"e4d1er\",\r\n \"ede4s\",\r\n \"4edi\",\r\n \"e3dia\",\r\n \"ed3ib\",\r\n \"ed3ica\",\r\n \"ed3im\",\r\n \"ed1it\",\r\n \"edi5z\",\r\n \"4edo\",\r\n \"e4dol\",\r\n \"edon2\",\r\n \"e4dri\",\r\n \"e4dul\",\r\n \"ed5ulo\",\r\n \"ee2c\",\r\n \"eed3i\",\r\n \"ee2f\",\r\n \"eel3i\",\r\n \"ee4ly\",\r\n \"ee2m\",\r\n \"ee4na\",\r\n \"ee4p1\",\r\n \"ee2s4\",\r\n \"eest4\",\r\n \"ee4ty\",\r\n \"e5ex\",\r\n \"e1f\",\r\n \"e4f3ere\",\r\n \"1eff\",\r\n \"e4fic\",\r\n \"5efici\",\r\n \"efil4\",\r\n \"e3fine\",\r\n \"ef5i5nite\",\r\n \"3efit\",\r\n \"efor5es\",\r\n \"e4fuse.\",\r\n \"4egal\",\r\n \"eger4\",\r\n \"eg5ib\",\r\n \"eg4ic\",\r\n \"eg5ing\",\r\n \"e5git5\",\r\n \"eg5n\",\r\n \"e4go.\",\r\n \"e4gos\",\r\n \"eg1ul\",\r\n \"e5gur\",\r\n \"5egy\",\r\n \"e1h4\",\r\n \"eher4\",\r\n \"ei2\",\r\n \"e5ic\",\r\n \"ei5d\",\r\n \"eig2\",\r\n \"ei5gl\",\r\n \"e3imb\",\r\n \"e3inf\",\r\n \"e1ing\",\r\n \"e5inst\",\r\n \"eir4d\",\r\n \"eit3e\",\r\n \"ei3th\",\r\n \"e5ity\",\r\n \"e1j\",\r\n \"e4jud\",\r\n \"ej5udi\",\r\n \"eki4n\",\r\n \"ek4la\",\r\n \"e1la\",\r\n \"e4la.\",\r\n \"e4lac\",\r\n \"elan4d\",\r\n \"el5ativ\",\r\n \"e4law\",\r\n \"elaxa4\",\r\n \"e3lea\",\r\n \"el5ebra\",\r\n \"5elec\",\r\n \"e4led\",\r\n \"el3ega\",\r\n \"e5len\",\r\n \"e4l1er\",\r\n \"e1les\",\r\n \"el2f\",\r\n \"el2i\",\r\n \"e3libe\",\r\n \"e4l5ic.\",\r\n \"el3ica\",\r\n \"e3lier\",\r\n \"el5igib\",\r\n \"e5lim\",\r\n \"e4l3ing\",\r\n \"e3lio\",\r\n \"e2lis\",\r\n \"el5ish\",\r\n \"e3liv3\",\r\n \"4ella\",\r\n \"el4lab\",\r\n \"ello4\",\r\n \"e5loc\",\r\n \"el5og\",\r\n \"el3op.\",\r\n \"el2sh\",\r\n \"el4ta\",\r\n \"e5lud\",\r\n \"el5ug\",\r\n \"e4mac\",\r\n \"e4mag\",\r\n \"e5man\",\r\n \"em5ana\",\r\n \"em5b\",\r\n \"e1me\",\r\n \"e2mel\",\r\n \"e4met\",\r\n \"em3ica\",\r\n \"emi4e\",\r\n \"em5igra\",\r\n \"em1in2\",\r\n \"em5ine\",\r\n \"em3i3ni\",\r\n \"e4mis\",\r\n \"em5ish\",\r\n \"e5miss\",\r\n \"em3iz\",\r\n \"5emniz\",\r\n \"emo4g\",\r\n \"emoni5o\",\r\n \"em3pi\",\r\n \"e4mul\",\r\n \"em5ula\",\r\n \"emu3n\",\r\n \"e3my\",\r\n \"en5amo\",\r\n \"e4nant\",\r\n \"ench4er\",\r\n \"en3dic\",\r\n \"e5nea\",\r\n \"e5nee\",\r\n \"en3em\",\r\n \"en5ero\",\r\n \"en5esi\",\r\n \"en5est\",\r\n \"en3etr\",\r\n \"e3new\",\r\n \"en5ics\",\r\n \"e5nie\",\r\n \"e5nil\",\r\n \"e3nio\",\r\n \"en3ish\",\r\n \"en3it\",\r\n \"e5niu\",\r\n \"5eniz\",\r\n \"4enn\",\r\n \"4eno\",\r\n \"eno4g\",\r\n \"e4nos\",\r\n \"en3ov\",\r\n \"en4sw\",\r\n \"ent5age\",\r\n \"4enthes\",\r\n \"en3ua\",\r\n \"en5uf\",\r\n \"e3ny.\",\r\n \"4en3z\",\r\n \"e5of\",\r\n \"eo2g\",\r\n \"e4oi4\",\r\n \"e3ol\",\r\n \"eop3ar\",\r\n \"e1or\",\r\n \"eo3re\",\r\n \"eo5rol\",\r\n \"eos4\",\r\n \"e4ot\",\r\n \"eo4to\",\r\n \"e5out\",\r\n \"e5ow\",\r\n \"e2pa\",\r\n \"e3pai\",\r\n \"ep5anc\",\r\n \"e5pel\",\r\n \"e3pent\",\r\n \"ep5etitio\",\r\n \"ephe4\",\r\n \"e4pli\",\r\n \"e1po\",\r\n \"e4prec\",\r\n \"ep5reca\",\r\n \"e4pred\",\r\n \"ep3reh\",\r\n \"e3pro\",\r\n \"e4prob\",\r\n \"ep4sh\",\r\n \"ep5ti5b\",\r\n \"e4put\",\r\n \"ep5uta\",\r\n \"e1q\",\r\n \"equi3l\",\r\n \"e4q3ui3s\",\r\n \"er1a\",\r\n \"era4b\",\r\n \"4erand\",\r\n \"er3ar\",\r\n \"4erati.\",\r\n \"2erb\",\r\n \"er4bl\",\r\n \"er3ch\",\r\n \"er4che\",\r\n \"2ere.\",\r\n \"e3real\",\r\n \"ere5co\",\r\n \"ere3in\",\r\n \"er5el.\",\r\n \"er3emo\",\r\n \"er5ena\",\r\n \"er5ence\",\r\n \"4erene\",\r\n \"er3ent\",\r\n \"ere4q\",\r\n \"er5ess\",\r\n \"er3est\",\r\n \"eret4\",\r\n \"er1h\",\r\n \"er1i\",\r\n \"e1ria4\",\r\n \"5erick\",\r\n \"e3rien\",\r\n \"eri4er\",\r\n \"er3ine\",\r\n \"e1rio\",\r\n \"4erit\",\r\n \"er4iu\",\r\n \"eri4v\",\r\n \"e4riva\",\r\n \"er3m4\",\r\n \"er4nis\",\r\n \"4ernit\",\r\n \"5erniz\",\r\n \"er3no\",\r\n \"2ero\",\r\n \"er5ob\",\r\n \"e5roc\",\r\n \"ero4r\",\r\n \"er1ou\",\r\n \"er1s\",\r\n \"er3set\",\r\n \"ert3er\",\r\n \"4ertl\",\r\n \"er3tw\",\r\n \"4eru\",\r\n \"eru4t\",\r\n \"5erwau\",\r\n \"e1s4a\",\r\n \"e4sage.\",\r\n \"e4sages\",\r\n \"es2c\",\r\n \"e2sca\",\r\n \"es5can\",\r\n \"e3scr\",\r\n \"es5cu\",\r\n \"e1s2e\",\r\n \"e2sec\",\r\n \"es5ecr\",\r\n \"es5enc\",\r\n \"e4sert.\",\r\n \"e4serts\",\r\n \"e4serva\",\r\n \"4esh\",\r\n \"e3sha\",\r\n \"esh5en\",\r\n \"e1si\",\r\n \"e2sic\",\r\n \"e2sid\",\r\n \"es5iden\",\r\n \"es5igna\",\r\n \"e2s5im\",\r\n \"es4i4n\",\r\n \"esis4te\",\r\n \"esi4u\",\r\n \"e5skin\",\r\n \"es4mi\",\r\n \"e2sol\",\r\n \"es3olu\",\r\n \"e2son\",\r\n \"es5ona\",\r\n \"e1sp\",\r\n \"es3per\",\r\n \"es5pira\",\r\n \"es4pre\",\r\n \"2ess\",\r\n \"es4si4b\",\r\n \"estan4\",\r\n \"es3tig\",\r\n \"es5tim\",\r\n \"4es2to\",\r\n \"e3ston\",\r\n \"2estr\",\r\n \"e5stro\",\r\n \"estruc5\",\r\n \"e2sur\",\r\n \"es5urr\",\r\n \"es4w\",\r\n \"eta4b\",\r\n \"eten4d\",\r\n \"e3teo\",\r\n \"ethod3\",\r\n \"et1ic\",\r\n \"e5tide\",\r\n \"etin4\",\r\n \"eti4no\",\r\n \"e5tir\",\r\n \"e5titio\",\r\n \"et5itiv\",\r\n \"4etn\",\r\n \"et5ona\",\r\n \"e3tra\",\r\n \"e3tre\",\r\n \"et3ric\",\r\n \"et5rif\",\r\n \"et3rog\",\r\n \"et5ros\",\r\n \"et3ua\",\r\n \"et5ym\",\r\n \"et5z\",\r\n \"4eu\",\r\n \"e5un\",\r\n \"e3up\",\r\n \"eu3ro\",\r\n \"eus4\",\r\n \"eute4\",\r\n \"euti5l\",\r\n \"eu5tr\",\r\n \"eva2p5\",\r\n \"e2vas\",\r\n \"ev5ast\",\r\n \"e5vea\",\r\n \"ev3ell\",\r\n \"evel3o\",\r\n \"e5veng\",\r\n \"even4i\",\r\n \"ev1er\",\r\n \"e5verb\",\r\n \"e1vi\",\r\n \"ev3id\",\r\n \"evi4l\",\r\n \"e4vin\",\r\n \"evi4v\",\r\n \"e5voc\",\r\n \"e5vu\",\r\n \"e1wa\",\r\n \"e4wag\",\r\n \"e5wee\",\r\n \"e3wh\",\r\n \"ewil5\",\r\n \"ew3ing\",\r\n \"e3wit\",\r\n \"1exp\",\r\n \"5eyc\",\r\n \"5eye.\",\r\n \"eys4\",\r\n \"1fa\",\r\n \"fa3bl\",\r\n \"fab3r\",\r\n \"fa4ce\",\r\n \"4fag\",\r\n \"fain4\",\r\n \"fall5e\",\r\n \"4fa4ma\",\r\n \"fam5is\",\r\n \"5far\",\r\n \"far5th\",\r\n \"fa3ta\",\r\n \"fa3the\",\r\n \"4fato\",\r\n \"fault5\",\r\n \"4f5b\",\r\n \"4fd\",\r\n \"4fe.\",\r\n \"feas4\",\r\n \"feath3\",\r\n \"fe4b\",\r\n \"4feca\",\r\n \"5fect\",\r\n \"2fed\",\r\n \"fe3li\",\r\n \"fe4mo\",\r\n \"fen2d\",\r\n \"fend5e\",\r\n \"fer1\",\r\n \"5ferr\",\r\n \"fev4\",\r\n \"4f1f\",\r\n \"f4fes\",\r\n \"f4fie\",\r\n \"f5fin.\",\r\n \"f2f5is\",\r\n \"f4fly\",\r\n \"f2fy\",\r\n \"4fh\",\r\n \"1fi\",\r\n \"fi3a\",\r\n \"2f3ic.\",\r\n \"4f3ical\",\r\n \"f3ican\",\r\n \"4ficate\",\r\n \"f3icen\",\r\n \"fi3cer\",\r\n \"fic4i\",\r\n \"5ficia\",\r\n \"5ficie\",\r\n \"4fics\",\r\n \"fi3cu\",\r\n \"fi5del\",\r\n \"fight5\",\r\n \"fil5i\",\r\n \"fill5in\",\r\n \"4fily\",\r\n \"2fin\",\r\n \"5fina\",\r\n \"fin2d5\",\r\n \"fi2ne\",\r\n \"f1in3g\",\r\n \"fin4n\",\r\n \"fis4ti\",\r\n \"f4l2\",\r\n \"f5less\",\r\n \"flin4\",\r\n \"flo3re\",\r\n \"f2ly5\",\r\n \"4fm\",\r\n \"4fn\",\r\n \"1fo\",\r\n \"5fon\",\r\n \"fon4de\",\r\n \"fon4t\",\r\n \"fo2r\",\r\n \"fo5rat\",\r\n \"for5ay\",\r\n \"fore5t\",\r\n \"for4i\",\r\n \"fort5a\",\r\n \"fos5\",\r\n \"4f5p\",\r\n \"fra4t\",\r\n \"f5rea\",\r\n \"fres5c\",\r\n \"fri2\",\r\n \"fril4\",\r\n \"frol5\",\r\n \"2f3s\",\r\n \"2ft\",\r\n \"f4to\",\r\n \"f2ty\",\r\n \"3fu\",\r\n \"fu5el\",\r\n \"4fug\",\r\n \"fu4min\",\r\n \"fu5ne\",\r\n \"fu3ri\",\r\n \"fusi4\",\r\n \"fus4s\",\r\n \"4futa\",\r\n \"1fy\",\r\n \"1ga\",\r\n \"gaf4\",\r\n \"5gal.\",\r\n \"3gali\",\r\n \"ga3lo\",\r\n \"2gam\",\r\n \"ga5met\",\r\n \"g5amo\",\r\n \"gan5is\",\r\n \"ga3niz\",\r\n \"gani5za\",\r\n \"4gano\",\r\n \"gar5n4\",\r\n \"gass4\",\r\n \"gath3\",\r\n \"4gativ\",\r\n \"4gaz\",\r\n \"g3b\",\r\n \"gd4\",\r\n \"2ge.\",\r\n \"2ged\",\r\n \"geez4\",\r\n \"gel4in\",\r\n \"ge5lis\",\r\n \"ge5liz\",\r\n \"4gely\",\r\n \"1gen\",\r\n \"ge4nat\",\r\n \"ge5niz\",\r\n \"4geno\",\r\n \"4geny\",\r\n \"1geo\",\r\n \"ge3om\",\r\n \"g4ery\",\r\n \"5gesi\",\r\n \"geth5\",\r\n \"4geto\",\r\n \"ge4ty\",\r\n \"ge4v\",\r\n \"4g1g2\",\r\n \"g2ge\",\r\n \"g3ger\",\r\n \"gglu5\",\r\n \"ggo4\",\r\n \"gh3in\",\r\n \"gh5out\",\r\n \"gh4to\",\r\n \"5gi.\",\r\n \"1gi4a\",\r\n \"gia5r\",\r\n \"g1ic\",\r\n \"5gicia\",\r\n \"g4ico\",\r\n \"gien5\",\r\n \"5gies.\",\r\n \"gil4\",\r\n \"g3imen\",\r\n \"3g4in.\",\r\n \"gin5ge\",\r\n \"5g4ins\",\r\n \"5gio\",\r\n \"3gir\",\r\n \"gir4l\",\r\n \"g3isl\",\r\n \"gi4u\",\r\n \"5giv\",\r\n \"3giz\",\r\n \"gl2\",\r\n \"gla4\",\r\n \"glad5i\",\r\n \"5glas\",\r\n \"1gle\",\r\n \"gli4b\",\r\n \"g3lig\",\r\n \"3glo\",\r\n \"glo3r\",\r\n \"g1m\",\r\n \"g4my\",\r\n \"gn4a\",\r\n \"g4na.\",\r\n \"gnet4t\",\r\n \"g1ni\",\r\n \"g2nin\",\r\n \"g4nio\",\r\n \"g1no\",\r\n \"g4non\",\r\n \"1go\",\r\n \"3go.\",\r\n \"gob5\",\r\n \"5goe\",\r\n \"3g4o4g\",\r\n \"go3is\",\r\n \"gon2\",\r\n \"4g3o3na\",\r\n \"gondo5\",\r\n \"go3ni\",\r\n \"5goo\",\r\n \"go5riz\",\r\n \"gor5ou\",\r\n \"5gos.\",\r\n \"gov1\",\r\n \"g3p\",\r\n \"1gr\",\r\n \"4grada\",\r\n \"g4rai\",\r\n \"gran2\",\r\n \"5graph.\",\r\n \"g5rapher\",\r\n \"5graphic\",\r\n \"4graphy\",\r\n \"4gray\",\r\n \"gre4n\",\r\n \"4gress.\",\r\n \"4grit\",\r\n \"g4ro\",\r\n \"gruf4\",\r\n \"gs2\",\r\n \"g5ste\",\r\n \"gth3\",\r\n \"gu4a\",\r\n \"3guard\",\r\n \"2gue\",\r\n \"5gui5t\",\r\n \"3gun\",\r\n \"3gus\",\r\n \"4gu4t\",\r\n \"g3w\",\r\n \"1gy\",\r\n \"2g5y3n\",\r\n \"gy5ra\",\r\n \"h3ab4l\",\r\n \"hach4\",\r\n \"hae4m\",\r\n \"hae4t\",\r\n \"h5agu\",\r\n \"ha3la\",\r\n \"hala3m\",\r\n \"ha4m\",\r\n \"han4ci\",\r\n \"han4cy\",\r\n \"5hand.\",\r\n \"han4g\",\r\n \"hang5er\",\r\n \"hang5o\",\r\n \"h5a5niz\",\r\n \"han4k\",\r\n \"han4te\",\r\n \"hap3l\",\r\n \"hap5t\",\r\n \"ha3ran\",\r\n \"ha5ras\",\r\n \"har2d\",\r\n \"hard3e\",\r\n \"har4le\",\r\n \"harp5en\",\r\n \"har5ter\",\r\n \"has5s\",\r\n \"haun4\",\r\n \"5haz\",\r\n \"haz3a\",\r\n \"h1b\",\r\n \"1head\",\r\n \"3hear\",\r\n \"he4can\",\r\n \"h5ecat\",\r\n \"h4ed\",\r\n \"he5do5\",\r\n \"he3l4i\",\r\n \"hel4lis\",\r\n \"hel4ly\",\r\n \"h5elo\",\r\n \"hem4p\",\r\n \"he2n\",\r\n \"hena4\",\r\n \"hen5at\",\r\n \"heo5r\",\r\n \"hep5\",\r\n \"h4era\",\r\n \"hera3p\",\r\n \"her4ba\",\r\n \"here5a\",\r\n \"h3ern\",\r\n \"h5erou\",\r\n \"h3ery\",\r\n \"h1es\",\r\n \"he2s5p\",\r\n \"he4t\",\r\n \"het4ed\",\r\n \"heu4\",\r\n \"h1f\",\r\n \"h1h\",\r\n \"hi5an\",\r\n \"hi4co\",\r\n \"high5\",\r\n \"h4il2\",\r\n \"himer4\",\r\n \"h4ina\",\r\n \"hion4e\",\r\n \"hi4p\",\r\n \"hir4l\",\r\n \"hi3ro\",\r\n \"hir4p\",\r\n \"hir4r\",\r\n \"his3el\",\r\n \"his4s\",\r\n \"hith5er\",\r\n \"hi2v\",\r\n \"4hk\",\r\n \"4h1l4\",\r\n \"hlan4\",\r\n \"h2lo\",\r\n \"hlo3ri\",\r\n \"4h1m\",\r\n \"hmet4\",\r\n \"2h1n\",\r\n \"h5odiz\",\r\n \"h5ods\",\r\n \"ho4g\",\r\n \"hoge4\",\r\n \"hol5ar\",\r\n \"3hol4e\",\r\n \"ho4ma\",\r\n \"home3\",\r\n \"hon4a\",\r\n \"ho5ny\",\r\n \"3hood\",\r\n \"hoon4\",\r\n \"hor5at\",\r\n \"ho5ris\",\r\n \"hort3e\",\r\n \"ho5ru\",\r\n \"hos4e\",\r\n \"ho5sen\",\r\n \"hos1p\",\r\n \"1hous\",\r\n \"house3\",\r\n \"hov5el\",\r\n \"4h5p\",\r\n \"4hr4\",\r\n \"hree5\",\r\n \"hro5niz\",\r\n \"hro3po\",\r\n \"4h1s2\",\r\n \"h4sh\",\r\n \"h4tar\",\r\n \"ht1en\",\r\n \"ht5es\",\r\n \"h4ty\",\r\n \"hu4g\",\r\n \"hu4min\",\r\n \"hun5ke\",\r\n \"hun4t\",\r\n \"hus3t4\",\r\n \"hu4t\",\r\n \"h1w\",\r\n \"h4wart\",\r\n \"hy3pe\",\r\n \"hy3ph\",\r\n \"hy2s\",\r\n \"2i1a\",\r\n \"i2al\",\r\n \"iam4\",\r\n \"iam5ete\",\r\n \"i2an\",\r\n \"4ianc\",\r\n \"ian3i\",\r\n \"4ian4t\",\r\n \"ia5pe\",\r\n \"iass4\",\r\n \"i4ativ\",\r\n \"ia4tric\",\r\n \"i4atu\",\r\n \"ibe4\",\r\n \"ib3era\",\r\n \"ib5ert\",\r\n \"ib5ia\",\r\n \"ib3in\",\r\n \"ib5it.\",\r\n \"ib5ite\",\r\n \"i1bl\",\r\n \"ib3li\",\r\n \"i5bo\",\r\n \"i1br\",\r\n \"i2b5ri\",\r\n \"i5bun\",\r\n \"4icam\",\r\n \"5icap\",\r\n \"4icar\",\r\n \"i4car.\",\r\n \"i4cara\",\r\n \"icas5\",\r\n \"i4cay\",\r\n \"iccu4\",\r\n \"4iceo\",\r\n \"4ich\",\r\n \"2ici\",\r\n \"i5cid\",\r\n \"ic5ina\",\r\n \"i2cip\",\r\n \"ic3ipa\",\r\n \"i4cly\",\r\n \"i2c5oc\",\r\n \"4i1cr\",\r\n \"5icra\",\r\n \"i4cry\",\r\n \"ic4te\",\r\n \"ictu2\",\r\n \"ic4t3ua\",\r\n \"ic3ula\",\r\n \"ic4um\",\r\n \"ic5uo\",\r\n \"i3cur\",\r\n \"2id\",\r\n \"i4dai\",\r\n \"id5anc\",\r\n \"id5d\",\r\n \"ide3al\",\r\n \"ide4s\",\r\n \"i2di\",\r\n \"id5ian\",\r\n \"idi4ar\",\r\n \"i5die\",\r\n \"id3io\",\r\n \"idi5ou\",\r\n \"id1it\",\r\n \"id5iu\",\r\n \"i3dle\",\r\n \"i4dom\",\r\n \"id3ow\",\r\n \"i4dr\",\r\n \"i2du\",\r\n \"id5uo\",\r\n \"2ie4\",\r\n \"ied4e\",\r\n \"5ie5ga\",\r\n \"ield3\",\r\n \"ien5a4\",\r\n \"ien4e\",\r\n \"i5enn\",\r\n \"i3enti\",\r\n \"i1er.\",\r\n \"i3esc\",\r\n \"i1est\",\r\n \"i3et\",\r\n \"4if.\",\r\n \"if5ero\",\r\n \"iff5en\",\r\n \"if4fr\",\r\n \"4ific.\",\r\n \"i3fie\",\r\n \"i3fl\",\r\n \"4ift\",\r\n \"2ig\",\r\n \"iga5b\",\r\n \"ig3era\",\r\n \"ight3i\",\r\n \"4igi\",\r\n \"i3gib\",\r\n \"ig3il\",\r\n \"ig3in\",\r\n \"ig3it\",\r\n \"i4g4l\",\r\n \"i2go\",\r\n \"ig3or\",\r\n \"ig5ot\",\r\n \"i5gre\",\r\n \"igu5i\",\r\n \"ig1ur\",\r\n \"i3h\",\r\n \"4i5i4\",\r\n \"i3j\",\r\n \"4ik\",\r\n \"i1la\",\r\n \"il3a4b\",\r\n \"i4lade\",\r\n \"i2l5am\",\r\n \"ila5ra\",\r\n \"i3leg\",\r\n \"il1er\",\r\n \"ilev4\",\r\n \"il5f\",\r\n \"il1i\",\r\n \"il3ia\",\r\n \"il2ib\",\r\n \"il3io\",\r\n \"il4ist\",\r\n \"2ilit\",\r\n \"il2iz\",\r\n \"ill5ab\",\r\n \"4iln\",\r\n \"il3oq\",\r\n \"il4ty\",\r\n \"il5ur\",\r\n \"il3v\",\r\n \"i4mag\",\r\n \"im3age\",\r\n \"ima5ry\",\r\n \"imenta5r\",\r\n \"4imet\",\r\n \"im1i\",\r\n \"im5ida\",\r\n \"imi5le\",\r\n \"i5mini\",\r\n \"4imit\",\r\n \"im4ni\",\r\n \"i3mon\",\r\n \"i2mu\",\r\n \"im3ula\",\r\n \"2in.\",\r\n \"i4n3au\",\r\n \"4inav\",\r\n \"incel4\",\r\n \"in3cer\",\r\n \"4ind\",\r\n \"in5dling\",\r\n \"2ine\",\r\n \"i3nee\",\r\n \"iner4ar\",\r\n \"i5ness\",\r\n \"4inga\",\r\n \"4inge\",\r\n \"in5gen\",\r\n \"4ingi\",\r\n \"in5gling\",\r\n \"4ingo\",\r\n \"4ingu\",\r\n \"2ini\",\r\n \"i5ni.\",\r\n \"i4nia\",\r\n \"in3io\",\r\n \"in1is\",\r\n \"i5nite.\",\r\n \"5initio\",\r\n \"in3ity\",\r\n \"4ink\",\r\n \"4inl\",\r\n \"2inn\",\r\n \"2i1no\",\r\n \"i4no4c\",\r\n \"ino4s\",\r\n \"i4not\",\r\n \"2ins\",\r\n \"in3se\",\r\n \"insur5a\",\r\n \"2int.\",\r\n \"2in4th\",\r\n \"in1u\",\r\n \"i5nus\",\r\n \"4iny\",\r\n \"2io\",\r\n \"4io.\",\r\n \"ioge4\",\r\n \"io2gr\",\r\n \"i1ol\",\r\n \"io4m\",\r\n \"ion3at\",\r\n \"ion4ery\",\r\n \"ion3i\",\r\n \"io5ph\",\r\n \"ior3i\",\r\n \"i4os\",\r\n \"io5th\",\r\n \"i5oti\",\r\n \"io4to\",\r\n \"i4our\",\r\n \"2ip\",\r\n \"ipe4\",\r\n \"iphras4\",\r\n \"ip3i\",\r\n \"ip4ic\",\r\n \"ip4re4\",\r\n \"ip3ul\",\r\n \"i3qua\",\r\n \"iq5uef\",\r\n \"iq3uid\",\r\n \"iq3ui3t\",\r\n \"4ir\",\r\n \"i1ra\",\r\n \"ira4b\",\r\n \"i4rac\",\r\n \"ird5e\",\r\n \"ire4de\",\r\n \"i4ref\",\r\n \"i4rel4\",\r\n \"i4res\",\r\n \"ir5gi\",\r\n \"ir1i\",\r\n \"iri5de\",\r\n \"ir4is\",\r\n \"iri3tu\",\r\n \"5i5r2iz\",\r\n \"ir4min\",\r\n \"iro4g\",\r\n \"5iron.\",\r\n \"ir5ul\",\r\n \"2is.\",\r\n \"is5ag\",\r\n \"is3ar\",\r\n \"isas5\",\r\n \"2is1c\",\r\n \"is3ch\",\r\n \"4ise\",\r\n \"is3er\",\r\n \"3isf\",\r\n \"is5han\",\r\n \"is3hon\",\r\n \"ish5op\",\r\n \"is3ib\",\r\n \"isi4d\",\r\n \"i5sis\",\r\n \"is5itiv\",\r\n \"4is4k\",\r\n \"islan4\",\r\n \"4isms\",\r\n \"i2so\",\r\n \"iso5mer\",\r\n \"is1p\",\r\n \"is2pi\",\r\n \"is4py\",\r\n \"4is1s\",\r\n \"is4sal\",\r\n \"issen4\",\r\n \"is4ses\",\r\n \"is4ta.\",\r\n \"is1te\",\r\n \"is1ti\",\r\n \"ist4ly\",\r\n \"4istral\",\r\n \"i2su\",\r\n \"is5us\",\r\n \"4ita.\",\r\n \"ita4bi\",\r\n \"i4tag\",\r\n \"4ita5m\",\r\n \"i3tan\",\r\n \"i3tat\",\r\n \"2ite\",\r\n \"it3era\",\r\n \"i5teri\",\r\n \"it4es\",\r\n \"2ith\",\r\n \"i1ti\",\r\n \"4itia\",\r\n \"4i2tic\",\r\n \"it3ica\",\r\n \"5i5tick\",\r\n \"it3ig\",\r\n \"it5ill\",\r\n \"i2tim\",\r\n \"2itio\",\r\n \"4itis\",\r\n \"i4tism\",\r\n \"i2t5o5m\",\r\n \"4iton\",\r\n \"i4tram\",\r\n \"it5ry\",\r\n \"4itt\",\r\n \"it3uat\",\r\n \"i5tud\",\r\n \"it3ul\",\r\n \"4itz.\",\r\n \"i1u\",\r\n \"2iv\",\r\n \"iv3ell\",\r\n \"iv3en.\",\r\n \"i4v3er.\",\r\n \"i4vers.\",\r\n \"iv5il.\",\r\n \"iv5io\",\r\n \"iv1it\",\r\n \"i5vore\",\r\n \"iv3o3ro\",\r\n \"i4v3ot\",\r\n \"4i5w\",\r\n \"ix4o\",\r\n \"4iy\",\r\n \"4izar\",\r\n \"izi4\",\r\n \"5izont\",\r\n \"5ja\",\r\n \"jac4q\",\r\n \"ja4p\",\r\n \"1je\",\r\n \"jer5s\",\r\n \"4jestie\",\r\n \"4jesty\",\r\n \"jew3\",\r\n \"jo4p\",\r\n \"5judg\",\r\n \"3ka.\",\r\n \"k3ab\",\r\n \"k5ag\",\r\n \"kais4\",\r\n \"kal4\",\r\n \"k1b\",\r\n \"k2ed\",\r\n \"1kee\",\r\n \"ke4g\",\r\n \"ke5li\",\r\n \"k3en4d\",\r\n \"k1er\",\r\n \"kes4\",\r\n \"k3est.\",\r\n \"ke4ty\",\r\n \"k3f\",\r\n \"kh4\",\r\n \"k1i\",\r\n \"5ki.\",\r\n \"5k2ic\",\r\n \"k4ill\",\r\n \"kilo5\",\r\n \"k4im\",\r\n \"k4in.\",\r\n \"kin4de\",\r\n \"k5iness\",\r\n \"kin4g\",\r\n \"ki4p\",\r\n \"kis4\",\r\n \"k5ish\",\r\n \"kk4\",\r\n \"k1l\",\r\n \"4kley\",\r\n \"4kly\",\r\n \"k1m\",\r\n \"k5nes\",\r\n \"1k2no\",\r\n \"ko5r\",\r\n \"kosh4\",\r\n \"k3ou\",\r\n \"kro5n\",\r\n \"4k1s2\",\r\n \"k4sc\",\r\n \"ks4l\",\r\n \"k4sy\",\r\n \"k5t\",\r\n \"k1w\",\r\n \"lab3ic\",\r\n \"l4abo\",\r\n \"laci4\",\r\n \"l4ade\",\r\n \"la3dy\",\r\n \"lag4n\",\r\n \"lam3o\",\r\n \"3land\",\r\n \"lan4dl\",\r\n \"lan5et\",\r\n \"lan4te\",\r\n \"lar4g\",\r\n \"lar3i\",\r\n \"las4e\",\r\n \"la5tan\",\r\n \"4lateli\",\r\n \"4lativ\",\r\n \"4lav\",\r\n \"la4v4a\",\r\n \"2l1b\",\r\n \"lbin4\",\r\n \"4l1c2\",\r\n \"lce4\",\r\n \"l3ci\",\r\n \"2ld\",\r\n \"l2de\",\r\n \"ld4ere\",\r\n \"ld4eri\",\r\n \"ldi4\",\r\n \"ld5is\",\r\n \"l3dr\",\r\n \"l4dri\",\r\n \"le2a\",\r\n \"le4bi\",\r\n \"left5\",\r\n \"5leg.\",\r\n \"5legg\",\r\n \"le4mat\",\r\n \"lem5atic\",\r\n \"4len.\",\r\n \"3lenc\",\r\n \"5lene.\",\r\n \"1lent\",\r\n \"le3ph\",\r\n \"le4pr\",\r\n \"lera5b\",\r\n \"ler4e\",\r\n \"3lerg\",\r\n \"3l4eri\",\r\n \"l4ero\",\r\n \"les2\",\r\n \"le5sco\",\r\n \"5lesq\",\r\n \"3less\",\r\n \"5less.\",\r\n \"l3eva\",\r\n \"lev4er.\",\r\n \"lev4era\",\r\n \"lev4ers\",\r\n \"3ley\",\r\n \"4leye\",\r\n \"2lf\",\r\n \"l5fr\",\r\n \"4l1g4\",\r\n \"l5ga\",\r\n \"lgar3\",\r\n \"l4ges\",\r\n \"lgo3\",\r\n \"2l3h\",\r\n \"li4ag\",\r\n \"li2am\",\r\n \"liar5iz\",\r\n \"li4as\",\r\n \"li4ato\",\r\n \"li5bi\",\r\n \"5licio\",\r\n \"li4cor\",\r\n \"4lics\",\r\n \"4lict.\",\r\n \"l4icu\",\r\n \"l3icy\",\r\n \"l3ida\",\r\n \"lid5er\",\r\n \"3lidi\",\r\n \"lif3er\",\r\n \"l4iff\",\r\n \"li4fl\",\r\n \"5ligate\",\r\n \"3ligh\",\r\n \"li4gra\",\r\n \"3lik\",\r\n \"4l4i4l\",\r\n \"lim4bl\",\r\n \"lim3i\",\r\n \"li4mo\",\r\n \"l4im4p\",\r\n \"l4ina\",\r\n \"1l4ine\",\r\n \"lin3ea\",\r\n \"lin3i\",\r\n \"link5er\",\r\n \"li5og\",\r\n \"4l4iq\",\r\n \"lis4p\",\r\n \"l1it\",\r\n \"l2it.\",\r\n \"5litica\",\r\n \"l5i5tics\",\r\n \"liv3er\",\r\n \"l1iz\",\r\n \"4lj\",\r\n \"lka3\",\r\n \"l3kal\",\r\n \"lka4t\",\r\n \"l1l\",\r\n \"l4law\",\r\n \"l2le\",\r\n \"l5lea\",\r\n \"l3lec\",\r\n \"l3leg\",\r\n \"l3lel\",\r\n \"l3le4n\",\r\n \"l3le4t\",\r\n \"ll2i\",\r\n \"l2lin4\",\r\n \"l5lina\",\r\n \"ll4o\",\r\n \"lloqui5\",\r\n \"ll5out\",\r\n \"l5low\",\r\n \"2lm\",\r\n \"l5met\",\r\n \"lm3ing\",\r\n \"l4mod\",\r\n \"lmon4\",\r\n \"2l1n2\",\r\n \"3lo.\",\r\n \"lob5al\",\r\n \"lo4ci\",\r\n \"4lof\",\r\n \"3logic\",\r\n \"l5ogo\",\r\n \"3logu\",\r\n \"lom3er\",\r\n \"5long\",\r\n \"lon4i\",\r\n \"l3o3niz\",\r\n \"lood5\",\r\n \"5lope.\",\r\n \"lop3i\",\r\n \"l3opm\",\r\n \"lora4\",\r\n \"lo4rato\",\r\n \"lo5rie\",\r\n \"lor5ou\",\r\n \"5los.\",\r\n \"los5et\",\r\n \"5losophiz\",\r\n \"5losophy\",\r\n \"los4t\",\r\n \"lo4ta\",\r\n \"loun5d\",\r\n \"2lout\",\r\n \"4lov\",\r\n \"2lp\",\r\n \"lpa5b\",\r\n \"l3pha\",\r\n \"l5phi\",\r\n \"lp5ing\",\r\n \"l3pit\",\r\n \"l4pl\",\r\n \"l5pr\",\r\n \"4l1r\",\r\n \"2l1s2\",\r\n \"l4sc\",\r\n \"l2se\",\r\n \"l4sie\",\r\n \"4lt\",\r\n \"lt5ag\",\r\n \"ltane5\",\r\n \"l1te\",\r\n \"lten4\",\r\n \"ltera4\",\r\n \"lth3i\",\r\n \"l5ties.\",\r\n \"ltis4\",\r\n \"l1tr\",\r\n \"ltu2\",\r\n \"ltur3a\",\r\n \"lu5a\",\r\n \"lu3br\",\r\n \"luch4\",\r\n \"lu3ci\",\r\n \"lu3en\",\r\n \"luf4\",\r\n \"lu5id\",\r\n \"lu4ma\",\r\n \"5lumi\",\r\n \"l5umn.\",\r\n \"5lumnia\",\r\n \"lu3o\",\r\n \"luo3r\",\r\n \"4lup\",\r\n \"luss4\",\r\n \"lus3te\",\r\n \"1lut\",\r\n \"l5ven\",\r\n \"l5vet4\",\r\n \"2l1w\",\r\n \"1ly\",\r\n \"4lya\",\r\n \"4lyb\",\r\n \"ly5me\",\r\n \"ly3no\",\r\n \"2lys4\",\r\n \"l5yse\",\r\n \"1ma\",\r\n \"2mab\",\r\n \"ma2ca\",\r\n \"ma5chine\",\r\n \"ma4cl\",\r\n \"mag5in\",\r\n \"5magn\",\r\n \"2mah\",\r\n \"maid5\",\r\n \"4mald\",\r\n \"ma3lig\",\r\n \"ma5lin\",\r\n \"mal4li\",\r\n \"mal4ty\",\r\n \"5mania\",\r\n \"man5is\",\r\n \"man3iz\",\r\n \"4map\",\r\n \"ma5rine.\",\r\n \"ma5riz\",\r\n \"mar4ly\",\r\n \"mar3v\",\r\n \"ma5sce\",\r\n \"mas4e\",\r\n \"mas1t\",\r\n \"5mate\",\r\n \"math3\",\r\n \"ma3tis\",\r\n \"4matiza\",\r\n \"4m1b\",\r\n \"mba4t5\",\r\n \"m5bil\",\r\n \"m4b3ing\",\r\n \"mbi4v\",\r\n \"4m5c\",\r\n \"4me.\",\r\n \"2med\",\r\n \"4med.\",\r\n \"5media\",\r\n \"me3die\",\r\n \"m5e5dy\",\r\n \"me2g\",\r\n \"mel5on\",\r\n \"mel4t\",\r\n \"me2m\",\r\n \"mem1o3\",\r\n \"1men\",\r\n \"men4a\",\r\n \"men5ac\",\r\n \"men4de\",\r\n \"4mene\",\r\n \"men4i\",\r\n \"mens4\",\r\n \"mensu5\",\r\n \"3ment\",\r\n \"men4te\",\r\n \"me5on\",\r\n \"m5ersa\",\r\n \"2mes\",\r\n \"3mesti\",\r\n \"me4ta\",\r\n \"met3al\",\r\n \"me1te\",\r\n \"me5thi\",\r\n \"m4etr\",\r\n \"5metric\",\r\n \"me5trie\",\r\n \"me3try\",\r\n \"me4v\",\r\n \"4m1f\",\r\n \"2mh\",\r\n \"5mi.\",\r\n \"mi3a\",\r\n \"mid4a\",\r\n \"mid4g\",\r\n \"mig4\",\r\n \"3milia\",\r\n \"m5i5lie\",\r\n \"m4ill\",\r\n \"min4a\",\r\n \"3mind\",\r\n \"m5inee\",\r\n \"m4ingl\",\r\n \"min5gli\",\r\n \"m5ingly\",\r\n \"min4t\",\r\n \"m4inu\",\r\n \"miot4\",\r\n \"m2is\",\r\n \"mis4er.\",\r\n \"mis5l\",\r\n \"mis4ti\",\r\n \"m5istry\",\r\n \"4mith\",\r\n \"m2iz\",\r\n \"4mk\",\r\n \"4m1l\",\r\n \"m1m\",\r\n \"mma5ry\",\r\n \"4m1n\",\r\n \"mn4a\",\r\n \"m4nin\",\r\n \"mn4o\",\r\n \"1mo\",\r\n \"4mocr\",\r\n \"5mocratiz\",\r\n \"mo2d1\",\r\n \"mo4go\",\r\n \"mois2\",\r\n \"moi5se\",\r\n \"4mok\",\r\n \"mo5lest\",\r\n \"mo3me\",\r\n \"mon5et\",\r\n \"mon5ge\",\r\n \"moni3a\",\r\n \"mon4ism\",\r\n \"mon4ist\",\r\n \"mo3niz\",\r\n \"monol4\",\r\n \"mo3ny.\",\r\n \"mo2r\",\r\n \"4mora.\",\r\n \"mos2\",\r\n \"mo5sey\",\r\n \"mo3sp\",\r\n \"moth3\",\r\n \"m5ouf\",\r\n \"3mous\",\r\n \"mo2v\",\r\n \"4m1p\",\r\n \"mpara5\",\r\n \"mpa5rab\",\r\n \"mpar5i\",\r\n \"m3pet\",\r\n \"mphas4\",\r\n \"m2pi\",\r\n \"mpi4a\",\r\n \"mp5ies\",\r\n \"m4p1in\",\r\n \"m5pir\",\r\n \"mp5is\",\r\n \"mpo3ri\",\r\n \"mpos5ite\",\r\n \"m4pous\",\r\n \"mpov5\",\r\n \"mp4tr\",\r\n \"m2py\",\r\n \"4m3r\",\r\n \"4m1s2\",\r\n \"m4sh\",\r\n \"m5si\",\r\n \"4mt\",\r\n \"1mu\",\r\n \"mula5r4\",\r\n \"5mult\",\r\n \"multi3\",\r\n \"3mum\",\r\n \"mun2\",\r\n \"4mup\",\r\n \"mu4u\",\r\n \"4mw\",\r\n \"1na\",\r\n \"2n1a2b\",\r\n \"n4abu\",\r\n \"4nac.\",\r\n \"na4ca\",\r\n \"n5act\",\r\n \"nag5er.\",\r\n \"nak4\",\r\n \"na4li\",\r\n \"na5lia\",\r\n \"4nalt\",\r\n \"na5mit\",\r\n \"n2an\",\r\n \"nanci4\",\r\n \"nan4it\",\r\n \"nank4\",\r\n \"nar3c\",\r\n \"4nare\",\r\n \"nar3i\",\r\n \"nar4l\",\r\n \"n5arm\",\r\n \"n4as\",\r\n \"nas4c\",\r\n \"nas5ti\",\r\n \"n2at\",\r\n \"na3tal\",\r\n \"nato5miz\",\r\n \"n2au\",\r\n \"nau3se\",\r\n \"3naut\",\r\n \"nav4e\",\r\n \"4n1b4\",\r\n \"ncar5\",\r\n \"n4ces.\",\r\n \"n3cha\",\r\n \"n5cheo\",\r\n \"n5chil\",\r\n \"n3chis\",\r\n \"nc1in\",\r\n \"nc4it\",\r\n \"ncour5a\",\r\n \"n1cr\",\r\n \"n1cu\",\r\n \"n4dai\",\r\n \"n5dan\",\r\n \"n1de\",\r\n \"nd5est.\",\r\n \"ndi4b\",\r\n \"n5d2if\",\r\n \"n1dit\",\r\n \"n3diz\",\r\n \"n5duc\",\r\n \"ndu4r\",\r\n \"nd2we\",\r\n \"2ne.\",\r\n \"n3ear\",\r\n \"ne2b\",\r\n \"neb3u\",\r\n \"ne2c\",\r\n \"5neck\",\r\n \"2ned\",\r\n \"ne4gat\",\r\n \"neg5ativ\",\r\n \"5nege\",\r\n \"ne4la\",\r\n \"nel5iz\",\r\n \"ne5mi\",\r\n \"ne4mo\",\r\n \"1nen\",\r\n \"4nene\",\r\n \"3neo\",\r\n \"ne4po\",\r\n \"ne2q\",\r\n \"n1er\",\r\n \"nera5b\",\r\n \"n4erar\",\r\n \"n2ere\",\r\n \"n4er5i\",\r\n \"ner4r\",\r\n \"1nes\",\r\n \"2nes.\",\r\n \"4nesp\",\r\n \"2nest\",\r\n \"4nesw\",\r\n \"3netic\",\r\n \"ne4v\",\r\n \"n5eve\",\r\n \"ne4w\",\r\n \"n3f\",\r\n \"n4gab\",\r\n \"n3gel\",\r\n \"nge4n4e\",\r\n \"n5gere\",\r\n \"n3geri\",\r\n \"ng5ha\",\r\n \"n3gib\",\r\n \"ng1in\",\r\n \"n5git\",\r\n \"n4gla\",\r\n \"ngov4\",\r\n \"ng5sh\",\r\n \"n1gu\",\r\n \"n4gum\",\r\n \"n2gy\",\r\n \"4n1h4\",\r\n \"nha4\",\r\n \"nhab3\",\r\n \"nhe4\",\r\n \"3n4ia\",\r\n \"ni3an\",\r\n \"ni4ap\",\r\n \"ni3ba\",\r\n \"ni4bl\",\r\n \"ni4d\",\r\n \"ni5di\",\r\n \"ni4er\",\r\n \"ni2fi\",\r\n \"ni5ficat\",\r\n \"n5igr\",\r\n \"nik4\",\r\n \"n1im\",\r\n \"ni3miz\",\r\n \"n1in\",\r\n \"5nine.\",\r\n \"nin4g\",\r\n \"ni4o\",\r\n \"5nis.\",\r\n \"nis4ta\",\r\n \"n2it\",\r\n \"n4ith\",\r\n \"3nitio\",\r\n \"n3itor\",\r\n \"ni3tr\",\r\n \"n1j\",\r\n \"4nk2\",\r\n \"n5kero\",\r\n \"n3ket\",\r\n \"nk3in\",\r\n \"n1kl\",\r\n \"4n1l\",\r\n \"n5m\",\r\n \"nme4\",\r\n \"nmet4\",\r\n \"4n1n2\",\r\n \"nne4\",\r\n \"nni3al\",\r\n \"nni4v\",\r\n \"nob4l\",\r\n \"no3ble\",\r\n \"n5ocl\",\r\n \"4n3o2d\",\r\n \"3noe\",\r\n \"4nog\",\r\n \"noge4\",\r\n \"nois5i\",\r\n \"no5l4i\",\r\n \"5nologis\",\r\n \"3nomic\",\r\n \"n5o5miz\",\r\n \"no4mo\",\r\n \"no3my\",\r\n \"no4n\",\r\n \"non4ag\",\r\n \"non5i\",\r\n \"n5oniz\",\r\n \"4nop\",\r\n \"5nop5o5li\",\r\n \"nor5ab\",\r\n \"no4rary\",\r\n \"4nosc\",\r\n \"nos4e\",\r\n \"nos5t\",\r\n \"no5ta\",\r\n \"1nou\",\r\n \"3noun\",\r\n \"nov3el3\",\r\n \"nowl3\",\r\n \"n1p4\",\r\n \"npi4\",\r\n \"npre4c\",\r\n \"n1q\",\r\n \"n1r\",\r\n \"nru4\",\r\n \"2n1s2\",\r\n \"ns5ab\",\r\n \"nsati4\",\r\n \"ns4c\",\r\n \"n2se\",\r\n \"n4s3es\",\r\n \"nsid1\",\r\n \"nsig4\",\r\n \"n2sl\",\r\n \"ns3m\",\r\n \"n4soc\",\r\n \"ns4pe\",\r\n \"n5spi\",\r\n \"nsta5bl\",\r\n \"n1t\",\r\n \"nta4b\",\r\n \"nter3s\",\r\n \"nt2i\",\r\n \"n5tib\",\r\n \"nti4er\",\r\n \"nti2f\",\r\n \"n3tine\",\r\n \"n4t3ing\",\r\n \"nti4p\",\r\n \"ntrol5li\",\r\n \"nt4s\",\r\n \"ntu3me\",\r\n \"nu1a\",\r\n \"nu4d\",\r\n \"nu5en\",\r\n \"nuf4fe\",\r\n \"n3uin\",\r\n \"3nu3it\",\r\n \"n4um\",\r\n \"nu1me\",\r\n \"n5umi\",\r\n \"3nu4n\",\r\n \"n3uo\",\r\n \"nu3tr\",\r\n \"n1v2\",\r\n \"n1w4\",\r\n \"nym4\",\r\n \"nyp4\",\r\n \"4nz\",\r\n \"n3za\",\r\n \"4oa\",\r\n \"oad3\",\r\n \"o5a5les\",\r\n \"oard3\",\r\n \"oas4e\",\r\n \"oast5e\",\r\n \"oat5i\",\r\n \"ob3a3b\",\r\n \"o5bar\",\r\n \"obe4l\",\r\n \"o1bi\",\r\n \"o2bin\",\r\n \"ob5ing\",\r\n \"o3br\",\r\n \"ob3ul\",\r\n \"o1ce\",\r\n \"och4\",\r\n \"o3chet\",\r\n \"ocif3\",\r\n \"o4cil\",\r\n \"o4clam\",\r\n \"o4cod\",\r\n \"oc3rac\",\r\n \"oc5ratiz\",\r\n \"ocre3\",\r\n \"5ocrit\",\r\n \"octor5a\",\r\n \"oc3ula\",\r\n \"o5cure\",\r\n \"od5ded\",\r\n \"od3ic\",\r\n \"odi3o\",\r\n \"o2do4\",\r\n \"odor3\",\r\n \"od5uct.\",\r\n \"od5ucts\",\r\n \"o4el\",\r\n \"o5eng\",\r\n \"o3er\",\r\n \"oe4ta\",\r\n \"o3ev\",\r\n \"o2fi\",\r\n \"of5ite\",\r\n \"ofit4t\",\r\n \"o2g5a5r\",\r\n \"og5ativ\",\r\n \"o4gato\",\r\n \"o1ge\",\r\n \"o5gene\",\r\n \"o5geo\",\r\n \"o4ger\",\r\n \"o3gie\",\r\n \"1o1gis\",\r\n \"og3it\",\r\n \"o4gl\",\r\n \"o5g2ly\",\r\n \"3ogniz\",\r\n \"o4gro\",\r\n \"ogu5i\",\r\n \"1ogy\",\r\n \"2ogyn\",\r\n \"o1h2\",\r\n \"ohab5\",\r\n \"oi2\",\r\n \"oic3es\",\r\n \"oi3der\",\r\n \"oiff4\",\r\n \"oig4\",\r\n \"oi5let\",\r\n \"o3ing\",\r\n \"oint5er\",\r\n \"o5ism\",\r\n \"oi5son\",\r\n \"oist5en\",\r\n \"oi3ter\",\r\n \"o5j\",\r\n \"2ok\",\r\n \"o3ken\",\r\n \"ok5ie\",\r\n \"o1la\",\r\n \"o4lan\",\r\n \"olass4\",\r\n \"ol2d\",\r\n \"old1e\",\r\n \"ol3er\",\r\n \"o3lesc\",\r\n \"o3let\",\r\n \"ol4fi\",\r\n \"ol2i\",\r\n \"o3lia\",\r\n \"o3lice\",\r\n \"ol5id.\",\r\n \"o3li4f\",\r\n \"o5lil\",\r\n \"ol3ing\",\r\n \"o5lio\",\r\n \"o5lis.\",\r\n \"ol3ish\",\r\n \"o5lite\",\r\n \"o5litio\",\r\n \"o5liv\",\r\n \"olli4e\",\r\n \"ol5ogiz\",\r\n \"olo4r\",\r\n \"ol5pl\",\r\n \"ol2t\",\r\n \"ol3ub\",\r\n \"ol3ume\",\r\n \"ol3un\",\r\n \"o5lus\",\r\n \"ol2v\",\r\n \"o2ly\",\r\n \"om5ah\",\r\n \"oma5l\",\r\n \"om5atiz\",\r\n \"om2be\",\r\n \"om4bl\",\r\n \"o2me\",\r\n \"om3ena\",\r\n \"om5erse\",\r\n \"o4met\",\r\n \"om5etry\",\r\n \"o3mia\",\r\n \"om3ic.\",\r\n \"om3ica\",\r\n \"o5mid\",\r\n \"om1in\",\r\n \"o5mini\",\r\n \"5ommend\",\r\n \"omo4ge\",\r\n \"o4mon\",\r\n \"om3pi\",\r\n \"ompro5\",\r\n \"o2n\",\r\n \"on1a\",\r\n \"on4ac\",\r\n \"o3nan\",\r\n \"on1c\",\r\n \"3oncil\",\r\n \"2ond\",\r\n \"on5do\",\r\n \"o3nen\",\r\n \"on5est\",\r\n \"on4gu\",\r\n \"on1ic\",\r\n \"o3nio\",\r\n \"on1is\",\r\n \"o5niu\",\r\n \"on3key\",\r\n \"on4odi\",\r\n \"on3omy\",\r\n \"on3s\",\r\n \"onspi4\",\r\n \"onspir5a\",\r\n \"onsu4\",\r\n \"onten4\",\r\n \"on3t4i\",\r\n \"ontif5\",\r\n \"on5um\",\r\n \"onva5\",\r\n \"oo2\",\r\n \"ood5e\",\r\n \"ood5i\",\r\n \"oo4k\",\r\n \"oop3i\",\r\n \"o3ord\",\r\n \"oost5\",\r\n \"o2pa\",\r\n \"ope5d\",\r\n \"op1er\",\r\n \"3opera\",\r\n \"4operag\",\r\n \"2oph\",\r\n \"o5phan\",\r\n \"o5pher\",\r\n \"op3ing\",\r\n \"o3pit\",\r\n \"o5pon\",\r\n \"o4posi\",\r\n \"o1pr\",\r\n \"op1u\",\r\n \"opy5\",\r\n \"o1q\",\r\n \"o1ra\",\r\n \"o5ra.\",\r\n \"o4r3ag\",\r\n \"or5aliz\",\r\n \"or5ange\",\r\n \"ore5a\",\r\n \"o5real\",\r\n \"or3ei\",\r\n \"ore5sh\",\r\n \"or5est.\",\r\n \"orew4\",\r\n \"or4gu\",\r\n \"4o5ria\",\r\n \"or3ica\",\r\n \"o5ril\",\r\n \"or1in\",\r\n \"o1rio\",\r\n \"or3ity\",\r\n \"o3riu\",\r\n \"or2mi\",\r\n \"orn2e\",\r\n \"o5rof\",\r\n \"or3oug\",\r\n \"or5pe\",\r\n \"3orrh\",\r\n \"or4se\",\r\n \"ors5en\",\r\n \"orst4\",\r\n \"or3thi\",\r\n \"or3thy\",\r\n \"or4ty\",\r\n \"o5rum\",\r\n \"o1ry\",\r\n \"os3al\",\r\n \"os2c\",\r\n \"os4ce\",\r\n \"o3scop\",\r\n \"4oscopi\",\r\n \"o5scr\",\r\n \"os4i4e\",\r\n \"os5itiv\",\r\n \"os3ito\",\r\n \"os3ity\",\r\n \"osi4u\",\r\n \"os4l\",\r\n \"o2so\",\r\n \"os4pa\",\r\n \"os4po\",\r\n \"os2ta\",\r\n \"o5stati\",\r\n \"os5til\",\r\n \"os5tit\",\r\n \"o4tan\",\r\n \"otele4g\",\r\n \"ot3er.\",\r\n \"ot5ers\",\r\n \"o4tes\",\r\n \"4oth\",\r\n \"oth5esi\",\r\n \"oth3i4\",\r\n \"ot3ic.\",\r\n \"ot5ica\",\r\n \"o3tice\",\r\n \"o3tif\",\r\n \"o3tis\",\r\n \"oto5s\",\r\n \"ou2\",\r\n \"ou3bl\",\r\n \"ouch5i\",\r\n \"ou5et\",\r\n \"ou4l\",\r\n \"ounc5er\",\r\n \"oun2d\",\r\n \"ou5v\",\r\n \"ov4en\",\r\n \"over4ne\",\r\n \"over3s\",\r\n \"ov4ert\",\r\n \"o3vis\",\r\n \"oviti4\",\r\n \"o5v4ol\",\r\n \"ow3der\",\r\n \"ow3el\",\r\n \"ow5est\",\r\n \"ow1i\",\r\n \"own5i\",\r\n \"o4wo\",\r\n \"oy1a\",\r\n \"1pa\",\r\n \"pa4ca\",\r\n \"pa4ce\",\r\n \"pac4t\",\r\n \"p4ad\",\r\n \"5pagan\",\r\n \"p3agat\",\r\n \"p4ai\",\r\n \"pain4\",\r\n \"p4al\",\r\n \"pan4a\",\r\n \"pan3el\",\r\n \"pan4ty\",\r\n \"pa3ny\",\r\n \"pa1p\",\r\n \"pa4pu\",\r\n \"para5bl\",\r\n \"par5age\",\r\n \"par5di\",\r\n \"3pare\",\r\n \"par5el\",\r\n \"p4a4ri\",\r\n \"par4is\",\r\n \"pa2te\",\r\n \"pa5ter\",\r\n \"5pathic\",\r\n \"pa5thy\",\r\n \"pa4tric\",\r\n \"pav4\",\r\n \"3pay\",\r\n \"4p1b\",\r\n \"pd4\",\r\n \"4pe.\",\r\n \"3pe4a\",\r\n \"pear4l\",\r\n \"pe2c\",\r\n \"2p2ed\",\r\n \"3pede\",\r\n \"3pedi\",\r\n \"pedia4\",\r\n \"ped4ic\",\r\n \"p4ee\",\r\n \"pee4d\",\r\n \"pek4\",\r\n \"pe4la\",\r\n \"peli4e\",\r\n \"pe4nan\",\r\n \"p4enc\",\r\n \"pen4th\",\r\n \"pe5on\",\r\n \"p4era.\",\r\n \"pera5bl\",\r\n \"p4erag\",\r\n \"p4eri\",\r\n \"peri5st\",\r\n \"per4mal\",\r\n \"perme5\",\r\n \"p4ern\",\r\n \"per3o\",\r\n \"per3ti\",\r\n \"pe5ru\",\r\n \"per1v\",\r\n \"pe2t\",\r\n \"pe5ten\",\r\n \"pe5tiz\",\r\n \"4pf\",\r\n \"4pg\",\r\n \"4ph.\",\r\n \"phar5i\",\r\n \"phe3no\",\r\n \"ph4er\",\r\n \"ph4es.\",\r\n \"ph1ic\",\r\n \"5phie\",\r\n \"ph5ing\",\r\n \"5phisti\",\r\n \"3phiz\",\r\n \"ph2l\",\r\n \"3phob\",\r\n \"3phone\",\r\n \"5phoni\",\r\n \"pho4r\",\r\n \"4phs\",\r\n \"ph3t\",\r\n \"5phu\",\r\n \"1phy\",\r\n \"pi3a\",\r\n \"pian4\",\r\n \"pi4cie\",\r\n \"pi4cy\",\r\n \"p4id\",\r\n \"p5ida\",\r\n \"pi3de\",\r\n \"5pidi\",\r\n \"3piec\",\r\n \"pi3en\",\r\n \"pi4grap\",\r\n \"pi3lo\",\r\n \"pi2n\",\r\n \"p4in.\",\r\n \"pind4\",\r\n \"p4ino\",\r\n \"3pi1o\",\r\n \"pion4\",\r\n \"p3ith\",\r\n \"pi5tha\",\r\n \"pi2tu\",\r\n \"2p3k2\",\r\n \"1p2l2\",\r\n \"3plan\",\r\n \"plas5t\",\r\n \"pli3a\",\r\n \"pli5er\",\r\n \"4plig\",\r\n \"pli4n\",\r\n \"ploi4\",\r\n \"plu4m\",\r\n \"plum4b\",\r\n \"4p1m\",\r\n \"2p3n\",\r\n \"po4c\",\r\n \"5pod.\",\r\n \"po5em\",\r\n \"po3et5\",\r\n \"5po4g\",\r\n \"poin2\",\r\n \"5point\",\r\n \"poly5t\",\r\n \"po4ni\",\r\n \"po4p\",\r\n \"1p4or\",\r\n \"po4ry\",\r\n \"1pos\",\r\n \"pos1s\",\r\n \"p4ot\",\r\n \"po4ta\",\r\n \"5poun\",\r\n \"4p1p\",\r\n \"ppa5ra\",\r\n \"p2pe\",\r\n \"p4ped\",\r\n \"p5pel\",\r\n \"p3pen\",\r\n \"p3per\",\r\n \"p3pet\",\r\n \"ppo5site\",\r\n \"pr2\",\r\n \"pray4e\",\r\n \"5preci\",\r\n \"pre5co\",\r\n \"pre3em\",\r\n \"pref5ac\",\r\n \"pre4la\",\r\n \"pre3r\",\r\n \"p3rese\",\r\n \"3press\",\r\n \"pre5ten\",\r\n \"pre3v\",\r\n \"5pri4e\",\r\n \"prin4t3\",\r\n \"pri4s\",\r\n \"pris3o\",\r\n \"p3roca\",\r\n \"prof5it\",\r\n \"pro3l\",\r\n \"pros3e\",\r\n \"pro1t\",\r\n \"2p1s2\",\r\n \"p2se\",\r\n \"ps4h\",\r\n \"p4sib\",\r\n \"2p1t\",\r\n \"pt5a4b\",\r\n \"p2te\",\r\n \"p2th\",\r\n \"pti3m\",\r\n \"ptu4r\",\r\n \"p4tw\",\r\n \"pub3\",\r\n \"pue4\",\r\n \"puf4\",\r\n \"pul3c\",\r\n \"pu4m\",\r\n \"pu2n\",\r\n \"pur4r\",\r\n \"5pus\",\r\n \"pu2t\",\r\n \"5pute\",\r\n \"put3er\",\r\n \"pu3tr\",\r\n \"put4ted\",\r\n \"put4tin\",\r\n \"p3w\",\r\n \"qu2\",\r\n \"qua5v\",\r\n \"2que.\",\r\n \"3quer\",\r\n \"3quet\",\r\n \"2rab\",\r\n \"ra3bi\",\r\n \"rach4e\",\r\n \"r5acl\",\r\n \"raf5fi\",\r\n \"raf4t\",\r\n \"r2ai\",\r\n \"ra4lo\",\r\n \"ram3et\",\r\n \"r2ami\",\r\n \"rane5o\",\r\n \"ran4ge\",\r\n \"r4ani\",\r\n \"ra5no\",\r\n \"rap3er\",\r\n \"3raphy\",\r\n \"rar5c\",\r\n \"rare4\",\r\n \"rar5ef\",\r\n \"4raril\",\r\n \"r2as\",\r\n \"ration4\",\r\n \"rau4t\",\r\n \"ra5vai\",\r\n \"rav3el\",\r\n \"ra5zie\",\r\n \"r1b\",\r\n \"r4bab\",\r\n \"r4bag\",\r\n \"rbi2\",\r\n \"rbi4f\",\r\n \"r2bin\",\r\n \"r5bine\",\r\n \"rb5ing.\",\r\n \"rb4o\",\r\n \"r1c\",\r\n \"r2ce\",\r\n \"rcen4\",\r\n \"r3cha\",\r\n \"rch4er\",\r\n \"r4ci4b\",\r\n \"rc4it\",\r\n \"rcum3\",\r\n \"r4dal\",\r\n \"rd2i\",\r\n \"rdi4a\",\r\n \"rdi4er\",\r\n \"rdin4\",\r\n \"rd3ing\",\r\n \"2re.\",\r\n \"re1al\",\r\n \"re3an\",\r\n \"re5arr\",\r\n \"5reav\",\r\n \"re4aw\",\r\n \"r5ebrat\",\r\n \"rec5oll\",\r\n \"rec5ompe\",\r\n \"re4cre\",\r\n \"2r2ed\",\r\n \"re1de\",\r\n \"re3dis\",\r\n \"red5it\",\r\n \"re4fac\",\r\n \"re2fe\",\r\n \"re5fer.\",\r\n \"re3fi\",\r\n \"re4fy\",\r\n \"reg3is\",\r\n \"re5it\",\r\n \"re1li\",\r\n \"re5lu\",\r\n \"r4en4ta\",\r\n \"ren4te\",\r\n \"re1o\",\r\n \"re5pin\",\r\n \"re4posi\",\r\n \"re1pu\",\r\n \"r1er4\",\r\n \"r4eri\",\r\n \"rero4\",\r\n \"re5ru\",\r\n \"r4es.\",\r\n \"re4spi\",\r\n \"ress5ib\",\r\n \"res2t\",\r\n \"re5stal\",\r\n \"re3str\",\r\n \"re4ter\",\r\n \"re4ti4z\",\r\n \"re3tri\",\r\n \"reu2\",\r\n \"re5uti\",\r\n \"rev2\",\r\n \"re4val\",\r\n \"rev3el\",\r\n \"r5ev5er.\",\r\n \"re5vers\",\r\n \"re5vert\",\r\n \"re5vil\",\r\n \"rev5olu\",\r\n \"re4wh\",\r\n \"r1f\",\r\n \"rfu4\",\r\n \"r4fy\",\r\n \"rg2\",\r\n \"rg3er\",\r\n \"r3get\",\r\n \"r3gic\",\r\n \"rgi4n\",\r\n \"rg3ing\",\r\n \"r5gis\",\r\n \"r5git\",\r\n \"r1gl\",\r\n \"rgo4n\",\r\n \"r3gu\",\r\n \"rh4\",\r\n \"4rh.\",\r\n \"4rhal\",\r\n \"ri3a\",\r\n \"ria4b\",\r\n \"ri4ag\",\r\n \"r4ib\",\r\n \"rib3a\",\r\n \"ric5as\",\r\n \"r4ice\",\r\n \"4rici\",\r\n \"5ricid\",\r\n \"ri4cie\",\r\n \"r4ico\",\r\n \"rid5er\",\r\n \"ri3enc\",\r\n \"ri3ent\",\r\n \"ri1er\",\r\n \"ri5et\",\r\n \"rig5an\",\r\n \"5rigi\",\r\n \"ril3iz\",\r\n \"5riman\",\r\n \"rim5i\",\r\n \"3rimo\",\r\n \"rim4pe\",\r\n \"r2ina\",\r\n \"5rina.\",\r\n \"rin4d\",\r\n \"rin4e\",\r\n \"rin4g\",\r\n \"ri1o\",\r\n \"5riph\",\r\n \"riph5e\",\r\n \"ri2pl\",\r\n \"rip5lic\",\r\n \"r4iq\",\r\n \"r2is\",\r\n \"r4is.\",\r\n \"ris4c\",\r\n \"r3ish\",\r\n \"ris4p\",\r\n \"ri3ta3b\",\r\n \"r5ited.\",\r\n \"rit5er.\",\r\n \"rit5ers\",\r\n \"rit3ic\",\r\n \"ri2tu\",\r\n \"rit5ur\",\r\n \"riv5el\",\r\n \"riv3et\",\r\n \"riv3i\",\r\n \"r3j\",\r\n \"r3ket\",\r\n \"rk4le\",\r\n \"rk4lin\",\r\n \"r1l\",\r\n \"rle4\",\r\n \"r2led\",\r\n \"r4lig\",\r\n \"r4lis\",\r\n \"rl5ish\",\r\n \"r3lo4\",\r\n \"r1m\",\r\n \"rma5c\",\r\n \"r2me\",\r\n \"r3men\",\r\n \"rm5ers\",\r\n \"rm3ing\",\r\n \"r4ming.\",\r\n \"r4mio\",\r\n \"r3mit\",\r\n \"r4my\",\r\n \"r4nar\",\r\n \"r3nel\",\r\n \"r4ner\",\r\n \"r5net\",\r\n \"r3ney\",\r\n \"r5nic\",\r\n \"r1nis4\",\r\n \"r3nit\",\r\n \"r3niv\",\r\n \"rno4\",\r\n \"r4nou\",\r\n \"r3nu\",\r\n \"rob3l\",\r\n \"r2oc\",\r\n \"ro3cr\",\r\n \"ro4e\",\r\n \"ro1fe\",\r\n \"ro5fil\",\r\n \"rok2\",\r\n \"ro5ker\",\r\n \"5role.\",\r\n \"rom5ete\",\r\n \"rom4i\",\r\n \"rom4p\",\r\n \"ron4al\",\r\n \"ron4e\",\r\n \"ro5n4is\",\r\n \"ron4ta\",\r\n \"1room\",\r\n \"5root\",\r\n \"ro3pel\",\r\n \"rop3ic\",\r\n \"ror3i\",\r\n \"ro5ro\",\r\n \"ros5per\",\r\n \"ros4s\",\r\n \"ro4the\",\r\n \"ro4ty\",\r\n \"ro4va\",\r\n \"rov5el\",\r\n \"rox5\",\r\n \"r1p\",\r\n \"r4pea\",\r\n \"r5pent\",\r\n \"rp5er.\",\r\n \"r3pet\",\r\n \"rp4h4\",\r\n \"rp3ing\",\r\n \"r3po\",\r\n \"r1r4\",\r\n \"rre4c\",\r\n \"rre4f\",\r\n \"r4reo\",\r\n \"rre4st\",\r\n \"rri4o\",\r\n \"rri4v\",\r\n \"rron4\",\r\n \"rros4\",\r\n \"rrys4\",\r\n \"4rs2\",\r\n \"r1sa\",\r\n \"rsa5ti\",\r\n \"rs4c\",\r\n \"r2se\",\r\n \"r3sec\",\r\n \"rse4cr\",\r\n \"rs5er.\",\r\n \"rs3es\",\r\n \"rse5v2\",\r\n \"r1sh\",\r\n \"r5sha\",\r\n \"r1si\",\r\n \"r4si4b\",\r\n \"rson3\",\r\n \"r1sp\",\r\n \"r5sw\",\r\n \"rtach4\",\r\n \"r4tag\",\r\n \"r3teb\",\r\n \"rten4d\",\r\n \"rte5o\",\r\n \"r1ti\",\r\n \"rt5ib\",\r\n \"rti4d\",\r\n \"r4tier\",\r\n \"r3tig\",\r\n \"rtil3i\",\r\n \"rtil4l\",\r\n \"r4tily\",\r\n \"r4tist\",\r\n \"r4tiv\",\r\n \"r3tri\",\r\n \"rtroph4\",\r\n \"rt4sh\",\r\n \"ru3a\",\r\n \"ru3e4l\",\r\n \"ru3en\",\r\n \"ru4gl\",\r\n \"ru3in\",\r\n \"rum3pl\",\r\n \"ru2n\",\r\n \"runk5\",\r\n \"run4ty\",\r\n \"r5usc\",\r\n \"ruti5n\",\r\n \"rv4e\",\r\n \"rvel4i\",\r\n \"r3ven\",\r\n \"rv5er.\",\r\n \"r5vest\",\r\n \"r3vey\",\r\n \"r3vic\",\r\n \"rvi4v\",\r\n \"r3vo\",\r\n \"r1w\",\r\n \"ry4c\",\r\n \"5rynge\",\r\n \"ry3t\",\r\n \"sa2\",\r\n \"2s1ab\",\r\n \"5sack\",\r\n \"sac3ri\",\r\n \"s3act\",\r\n \"5sai\",\r\n \"salar4\",\r\n \"sal4m\",\r\n \"sa5lo\",\r\n \"sal4t\",\r\n \"3sanc\",\r\n \"san4de\",\r\n \"s1ap\",\r\n \"sa5ta\",\r\n \"5sa3tio\",\r\n \"sat3u\",\r\n \"sau4\",\r\n \"sa5vor\",\r\n \"5saw\",\r\n \"4s5b\",\r\n \"scan4t5\",\r\n \"sca4p\",\r\n \"scav5\",\r\n \"s4ced\",\r\n \"4scei\",\r\n \"s4ces\",\r\n \"sch2\",\r\n \"s4cho\",\r\n \"3s4cie\",\r\n \"5scin4d\",\r\n \"scle5\",\r\n \"s4cli\",\r\n \"scof4\",\r\n \"4scopy\",\r\n \"scour5a\",\r\n \"s1cu\",\r\n \"4s5d\",\r\n \"4se.\",\r\n \"se4a\",\r\n \"seas4\",\r\n \"sea5w\",\r\n \"se2c3o\",\r\n \"3sect\",\r\n \"4s4ed\",\r\n \"se4d4e\",\r\n \"s5edl\",\r\n \"se2g\",\r\n \"seg3r\",\r\n \"5sei\",\r\n \"se1le\",\r\n \"5self\",\r\n \"5selv\",\r\n \"4seme\",\r\n \"se4mol\",\r\n \"sen5at\",\r\n \"4senc\",\r\n \"sen4d\",\r\n \"s5ened\",\r\n \"sen5g\",\r\n \"s5enin\",\r\n \"4sentd\",\r\n \"4sentl\",\r\n \"sep3a3\",\r\n \"4s1er.\",\r\n \"s4erl\",\r\n \"ser4o\",\r\n \"4servo\",\r\n \"s1e4s\",\r\n \"se5sh\",\r\n \"ses5t\",\r\n \"5se5um\",\r\n \"5sev\",\r\n \"sev3en\",\r\n \"sew4i\",\r\n \"5sex\",\r\n \"4s3f\",\r\n \"2s3g\",\r\n \"s2h\",\r\n \"2sh.\",\r\n \"sh1er\",\r\n \"5shev\",\r\n \"sh1in\",\r\n \"sh3io\",\r\n \"3ship\",\r\n \"shiv5\",\r\n \"sho4\",\r\n \"sh5old\",\r\n \"shon3\",\r\n \"shor4\",\r\n \"short5\",\r\n \"4shw\",\r\n \"si1b\",\r\n \"s5icc\",\r\n \"3side.\",\r\n \"5sides\",\r\n \"5sidi\",\r\n \"si5diz\",\r\n \"4signa\",\r\n \"sil4e\",\r\n \"4sily\",\r\n \"2s1in\",\r\n \"s2ina\",\r\n \"5sine.\",\r\n \"s3ing\",\r\n \"1sio\",\r\n \"5sion\",\r\n \"sion5a\",\r\n \"si2r\",\r\n \"sir5a\",\r\n \"1sis\",\r\n \"3sitio\",\r\n \"5siu\",\r\n \"1siv\",\r\n \"5siz\",\r\n \"sk2\",\r\n \"4ske\",\r\n \"s3ket\",\r\n \"sk5ine\",\r\n \"sk5ing\",\r\n \"s1l2\",\r\n \"s3lat\",\r\n \"s2le\",\r\n \"slith5\",\r\n \"2s1m\",\r\n \"s3ma\",\r\n \"small3\",\r\n \"sman3\",\r\n \"smel4\",\r\n \"s5men\",\r\n \"5smith\",\r\n \"smol5d4\",\r\n \"s1n4\",\r\n \"1so\",\r\n \"so4ce\",\r\n \"soft3\",\r\n \"so4lab\",\r\n \"sol3d2\",\r\n \"so3lic\",\r\n \"5solv\",\r\n \"3som\",\r\n \"3s4on.\",\r\n \"sona4\",\r\n \"son4g\",\r\n \"s4op\",\r\n \"5sophic\",\r\n \"s5ophiz\",\r\n \"s5ophy\",\r\n \"sor5c\",\r\n \"sor5d\",\r\n \"4sov\",\r\n \"so5vi\",\r\n \"2spa\",\r\n \"5spai\",\r\n \"spa4n\",\r\n \"spen4d\",\r\n \"2s5peo\",\r\n \"2sper\",\r\n \"s2phe\",\r\n \"3spher\",\r\n \"spho5\",\r\n \"spil4\",\r\n \"sp5ing\",\r\n \"4spio\",\r\n \"s4ply\",\r\n \"s4pon\",\r\n \"spor4\",\r\n \"4spot\",\r\n \"squal4l\",\r\n \"s1r\",\r\n \"2ss\",\r\n \"s1sa\",\r\n \"ssas3\",\r\n \"s2s5c\",\r\n \"s3sel\",\r\n \"s5seng\",\r\n \"s4ses.\",\r\n \"s5set\",\r\n \"s1si\",\r\n \"s4sie\",\r\n \"ssi4er\",\r\n \"ss5ily\",\r\n \"s4sl\",\r\n \"ss4li\",\r\n \"s4sn\",\r\n \"sspend4\",\r\n \"ss2t\",\r\n \"ssur5a\",\r\n \"ss5w\",\r\n \"2st.\",\r\n \"s2tag\",\r\n \"s2tal\",\r\n \"stam4i\",\r\n \"5stand\",\r\n \"s4ta4p\",\r\n \"5stat.\",\r\n \"s4ted\",\r\n \"stern5i\",\r\n \"s5tero\",\r\n \"ste2w\",\r\n \"stew5a\",\r\n \"s3the\",\r\n \"st2i\",\r\n \"s4ti.\",\r\n \"s5tia\",\r\n \"s1tic\",\r\n \"5stick\",\r\n \"s4tie\",\r\n \"s3tif\",\r\n \"st3ing\",\r\n \"5stir\",\r\n \"s1tle\",\r\n \"5stock\",\r\n \"stom3a\",\r\n \"5stone\",\r\n \"s4top\",\r\n \"3store\",\r\n \"st4r\",\r\n \"s4trad\",\r\n \"5stratu\",\r\n \"s4tray\",\r\n \"s4trid\",\r\n \"4stry\",\r\n \"4st3w\",\r\n \"s2ty\",\r\n \"1su\",\r\n \"su1al\",\r\n \"su4b3\",\r\n \"su2g3\",\r\n \"su5is\",\r\n \"suit3\",\r\n \"s4ul\",\r\n \"su2m\",\r\n \"sum3i\",\r\n \"su2n\",\r\n \"su2r\",\r\n \"4sv\",\r\n \"sw2\",\r\n \"4swo\",\r\n \"s4y\",\r\n \"4syc\",\r\n \"3syl\",\r\n \"syn5o\",\r\n \"sy5rin\",\r\n \"1ta\",\r\n \"3ta.\",\r\n \"2tab\",\r\n \"ta5bles\",\r\n \"5taboliz\",\r\n \"4taci\",\r\n \"ta5do\",\r\n \"4taf4\",\r\n \"tai5lo\",\r\n \"ta2l\",\r\n \"ta5la\",\r\n \"tal5en\",\r\n \"tal3i\",\r\n \"4talk\",\r\n \"tal4lis\",\r\n \"ta5log\",\r\n \"ta5mo\",\r\n \"tan4de\",\r\n \"tanta3\",\r\n \"ta5per\",\r\n \"ta5pl\",\r\n \"tar4a\",\r\n \"4tarc\",\r\n \"4tare\",\r\n \"ta3riz\",\r\n \"tas4e\",\r\n \"ta5sy\",\r\n \"4tatic\",\r\n \"ta4tur\",\r\n \"taun4\",\r\n \"tav4\",\r\n \"2taw\",\r\n \"tax4is\",\r\n \"2t1b\",\r\n \"4tc\",\r\n \"t4ch\",\r\n \"tch5et\",\r\n \"4t1d\",\r\n \"4te.\",\r\n \"tead4i\",\r\n \"4teat\",\r\n \"tece4\",\r\n \"5tect\",\r\n \"2t1ed\",\r\n \"te5di\",\r\n \"1tee\",\r\n \"teg4\",\r\n \"te5ger\",\r\n \"te5gi\",\r\n \"3tel.\",\r\n \"teli4\",\r\n \"5tels\",\r\n \"te2ma2\",\r\n \"tem3at\",\r\n \"3tenan\",\r\n \"3tenc\",\r\n \"3tend\",\r\n \"4tenes\",\r\n \"1tent\",\r\n \"ten4tag\",\r\n \"1teo\",\r\n \"te4p\",\r\n \"te5pe\",\r\n \"ter3c\",\r\n \"5ter3d\",\r\n \"1teri\",\r\n \"ter5ies\",\r\n \"ter3is\",\r\n \"teri5za\",\r\n \"5ternit\",\r\n \"ter5v\",\r\n \"4tes.\",\r\n \"4tess\",\r\n \"t3ess.\",\r\n \"teth5e\",\r\n \"3teu\",\r\n \"3tex\",\r\n \"4tey\",\r\n \"2t1f\",\r\n \"4t1g\",\r\n \"2th.\",\r\n \"than4\",\r\n \"th2e\",\r\n \"4thea\",\r\n \"th3eas\",\r\n \"the5at\",\r\n \"the3is\",\r\n \"3thet\",\r\n \"th5ic.\",\r\n \"th5ica\",\r\n \"4thil\",\r\n \"5think\",\r\n \"4thl\",\r\n \"th5ode\",\r\n \"5thodic\",\r\n \"4thoo\",\r\n \"thor5it\",\r\n \"tho5riz\",\r\n \"2ths\",\r\n \"1tia\",\r\n \"ti4ab\",\r\n \"ti4ato\",\r\n \"2ti2b\",\r\n \"4tick\",\r\n \"t4ico\",\r\n \"t4ic1u\",\r\n \"5tidi\",\r\n \"3tien\",\r\n \"tif2\",\r\n \"ti5fy\",\r\n \"2tig\",\r\n \"5tigu\",\r\n \"till5in\",\r\n \"1tim\",\r\n \"4timp\",\r\n \"tim5ul\",\r\n \"2t1in\",\r\n \"t2ina\",\r\n \"3tine.\",\r\n \"3tini\",\r\n \"1tio\",\r\n \"ti5oc\",\r\n \"tion5ee\",\r\n \"5tiq\",\r\n \"ti3sa\",\r\n \"3tise\",\r\n \"tis4m\",\r\n \"ti5so\",\r\n \"tis4p\",\r\n \"5tistica\",\r\n \"ti3tl\",\r\n \"ti4u\",\r\n \"1tiv\",\r\n \"tiv4a\",\r\n \"1tiz\",\r\n \"ti3za\",\r\n \"ti3zen\",\r\n \"2tl\",\r\n \"t5la\",\r\n \"tlan4\",\r\n \"3tle.\",\r\n \"3tled\",\r\n \"3tles.\",\r\n \"t5let.\",\r\n \"t5lo\",\r\n \"4t1m\",\r\n \"tme4\",\r\n \"2t1n2\",\r\n \"1to\",\r\n \"to3b\",\r\n \"to5crat\",\r\n \"4todo\",\r\n \"2tof\",\r\n \"to2gr\",\r\n \"to5ic\",\r\n \"to2ma\",\r\n \"tom4b\",\r\n \"to3my\",\r\n \"ton4ali\",\r\n \"to3nat\",\r\n \"4tono\",\r\n \"4tony\",\r\n \"to2ra\",\r\n \"to3rie\",\r\n \"tor5iz\",\r\n \"tos2\",\r\n \"5tour\",\r\n \"4tout\",\r\n \"to3war\",\r\n \"4t1p\",\r\n \"1tra\",\r\n \"tra3b\",\r\n \"tra5ch\",\r\n \"traci4\",\r\n \"trac4it\",\r\n \"trac4te\",\r\n \"tras4\",\r\n \"tra5ven\",\r\n \"trav5es5\",\r\n \"tre5f\",\r\n \"tre4m\",\r\n \"trem5i\",\r\n \"5tria\",\r\n \"tri5ces\",\r\n \"5tricia\",\r\n \"4trics\",\r\n \"2trim\",\r\n \"tri4v\",\r\n \"tro5mi\",\r\n \"tron5i\",\r\n \"4trony\",\r\n \"tro5phe\",\r\n \"tro3sp\",\r\n \"tro3v\",\r\n \"tru5i\",\r\n \"trus4\",\r\n \"4t1s2\",\r\n \"t4sc\",\r\n \"tsh4\",\r\n \"t4sw\",\r\n \"4t3t2\",\r\n \"t4tes\",\r\n \"t5to\",\r\n \"ttu4\",\r\n \"1tu\",\r\n \"tu1a\",\r\n \"tu3ar\",\r\n \"tu4bi\",\r\n \"tud2\",\r\n \"4tue\",\r\n \"4tuf4\",\r\n \"5tu3i\",\r\n \"3tum\",\r\n \"tu4nis\",\r\n \"2t3up.\",\r\n \"3ture\",\r\n \"5turi\",\r\n \"tur3is\",\r\n \"tur5o\",\r\n \"tu5ry\",\r\n \"3tus\",\r\n \"4tv\",\r\n \"tw4\",\r\n \"4t1wa\",\r\n \"twis4\",\r\n \"4two\",\r\n \"1ty\",\r\n \"4tya\",\r\n \"2tyl\",\r\n \"type3\",\r\n \"ty5ph\",\r\n \"4tz\",\r\n \"tz4e\",\r\n \"4uab\",\r\n \"uac4\",\r\n \"ua5na\",\r\n \"uan4i\",\r\n \"uar5ant\",\r\n \"uar2d\",\r\n \"uar3i\",\r\n \"uar3t\",\r\n \"u1at\",\r\n \"uav4\",\r\n \"ub4e\",\r\n \"u4bel\",\r\n \"u3ber\",\r\n \"u4bero\",\r\n \"u1b4i\",\r\n \"u4b5ing\",\r\n \"u3ble.\",\r\n \"u3ca\",\r\n \"uci4b\",\r\n \"uc4it\",\r\n \"ucle3\",\r\n \"u3cr\",\r\n \"u3cu\",\r\n \"u4cy\",\r\n \"ud5d\",\r\n \"ud3er\",\r\n \"ud5est\",\r\n \"udev4\",\r\n \"u1dic\",\r\n \"ud3ied\",\r\n \"ud3ies\",\r\n \"ud5is\",\r\n \"u5dit\",\r\n \"u4don\",\r\n \"ud4si\",\r\n \"u4du\",\r\n \"u4ene\",\r\n \"uens4\",\r\n \"uen4te\",\r\n \"uer4il\",\r\n \"3ufa\",\r\n \"u3fl\",\r\n \"ugh3en\",\r\n \"ug5in\",\r\n \"2ui2\",\r\n \"uil5iz\",\r\n \"ui4n\",\r\n \"u1ing\",\r\n \"uir4m\",\r\n \"uita4\",\r\n \"uiv3\",\r\n \"uiv4er.\",\r\n \"u5j\",\r\n \"4uk\",\r\n \"u1la\",\r\n \"ula5b\",\r\n \"u5lati\",\r\n \"ulch4\",\r\n \"5ulche\",\r\n \"ul3der\",\r\n \"ul4e\",\r\n \"u1len\",\r\n \"ul4gi\",\r\n \"ul2i\",\r\n \"u5lia\",\r\n \"ul3ing\",\r\n \"ul5ish\",\r\n \"ul4lar\",\r\n \"ul4li4b\",\r\n \"ul4lis\",\r\n \"4ul3m\",\r\n \"u1l4o\",\r\n \"4uls\",\r\n \"uls5es\",\r\n \"ul1ti\",\r\n \"ultra3\",\r\n \"4ultu\",\r\n \"u3lu\",\r\n \"ul5ul\",\r\n \"ul5v\",\r\n \"um5ab\",\r\n \"um4bi\",\r\n \"um4bly\",\r\n \"u1mi\",\r\n \"u4m3ing\",\r\n \"umor5o\",\r\n \"um2p\",\r\n \"unat4\",\r\n \"u2ne\",\r\n \"un4er\",\r\n \"u1ni\",\r\n \"un4im\",\r\n \"u2nin\",\r\n \"un5ish\",\r\n \"uni3v\",\r\n \"un3s4\",\r\n \"un4sw\",\r\n \"unt3ab\",\r\n \"un4ter.\",\r\n \"un4tes\",\r\n \"unu4\",\r\n \"un5y\",\r\n \"un5z\",\r\n \"u4ors\",\r\n \"u5os\",\r\n \"u1ou\",\r\n \"u1pe\",\r\n \"uper5s\",\r\n \"u5pia\",\r\n \"up3ing\",\r\n \"u3pl\",\r\n \"up3p\",\r\n \"upport5\",\r\n \"upt5ib\",\r\n \"uptu4\",\r\n \"u1ra\",\r\n \"4ura.\",\r\n \"u4rag\",\r\n \"u4ras\",\r\n \"ur4be\",\r\n \"urc4\",\r\n \"ur1d\",\r\n \"ure5at\",\r\n \"ur4fer\",\r\n \"ur4fr\",\r\n \"u3rif\",\r\n \"uri4fic\",\r\n \"ur1in\",\r\n \"u3rio\",\r\n \"u1rit\",\r\n \"ur3iz\",\r\n \"ur2l\",\r\n \"url5ing.\",\r\n \"ur4no\",\r\n \"uros4\",\r\n \"ur4pe\",\r\n \"ur4pi\",\r\n \"urs5er\",\r\n \"ur5tes\",\r\n \"ur3the\",\r\n \"urti4\",\r\n \"ur4tie\",\r\n \"u3ru\",\r\n \"2us\",\r\n \"u5sad\",\r\n \"u5san\",\r\n \"us4ap\",\r\n \"usc2\",\r\n \"us3ci\",\r\n \"use5a\",\r\n \"u5sia\",\r\n \"u3sic\",\r\n \"us4lin\",\r\n \"us1p\",\r\n \"us5sl\",\r\n \"us5tere\",\r\n \"us1tr\",\r\n \"u2su\",\r\n \"usur4\",\r\n \"uta4b\",\r\n \"u3tat\",\r\n \"4ute.\",\r\n \"4utel\",\r\n \"4uten\",\r\n \"uten4i\",\r\n \"4u1t2i\",\r\n \"uti5liz\",\r\n \"u3tine\",\r\n \"ut3ing\",\r\n \"ution5a\",\r\n \"u4tis\",\r\n \"5u5tiz\",\r\n \"u4t1l\",\r\n \"ut5of\",\r\n \"uto5g\",\r\n \"uto5matic\",\r\n \"u5ton\",\r\n \"u4tou\",\r\n \"uts4\",\r\n \"u3u\",\r\n \"uu4m\",\r\n \"u1v2\",\r\n \"uxu3\",\r\n \"uz4e\",\r\n \"1va\",\r\n \"5va.\",\r\n \"2v1a4b\",\r\n \"vac5il\",\r\n \"vac3u\",\r\n \"vag4\",\r\n \"va4ge\",\r\n \"va5lie\",\r\n \"val5o\",\r\n \"val1u\",\r\n \"va5mo\",\r\n \"va5niz\",\r\n \"va5pi\",\r\n \"var5ied\",\r\n \"3vat\",\r\n \"4ve.\",\r\n \"4ved\",\r\n \"veg3\",\r\n \"v3el.\",\r\n \"vel3li\",\r\n \"ve4lo\",\r\n \"v4ely\",\r\n \"ven3om\",\r\n \"v5enue\",\r\n \"v4erd\",\r\n \"5vere.\",\r\n \"v4erel\",\r\n \"v3eren\",\r\n \"ver5enc\",\r\n \"v4eres\",\r\n \"ver3ie\",\r\n \"vermi4n\",\r\n \"3verse\",\r\n \"ver3th\",\r\n \"v4e2s\",\r\n \"4ves.\",\r\n \"ves4te\",\r\n \"ve4te\",\r\n \"vet3er\",\r\n \"ve4ty\",\r\n \"vi5ali\",\r\n \"5vian\",\r\n \"5vide.\",\r\n \"5vided\",\r\n \"4v3iden\",\r\n \"5vides\",\r\n \"5vidi\",\r\n \"v3if\",\r\n \"vi5gn\",\r\n \"vik4\",\r\n \"2vil\",\r\n \"5vilit\",\r\n \"v3i3liz\",\r\n \"v1in\",\r\n \"4vi4na\",\r\n \"v2inc\",\r\n \"vin5d\",\r\n \"4ving\",\r\n \"vio3l\",\r\n \"v3io4r\",\r\n \"vi1ou\",\r\n \"vi4p\",\r\n \"vi5ro\",\r\n \"vis3it\",\r\n \"vi3so\",\r\n \"vi3su\",\r\n \"4viti\",\r\n \"vit3r\",\r\n \"4vity\",\r\n \"3viv\",\r\n \"5vo.\",\r\n \"voi4\",\r\n \"3vok\",\r\n \"vo4la\",\r\n \"v5ole\",\r\n \"5volt\",\r\n \"3volv\",\r\n \"vom5i\",\r\n \"vor5ab\",\r\n \"vori4\",\r\n \"vo4ry\",\r\n \"vo4ta\",\r\n \"4votee\",\r\n \"4vv4\",\r\n \"v4y\",\r\n \"w5abl\",\r\n \"2wac\",\r\n \"wa5ger\",\r\n \"wag5o\",\r\n \"wait5\",\r\n \"w5al.\",\r\n \"wam4\",\r\n \"war4t\",\r\n \"was4t\",\r\n \"wa1te\",\r\n \"wa5ver\",\r\n \"w1b\",\r\n \"wea5rie\",\r\n \"weath3\",\r\n \"wed4n\",\r\n \"weet3\",\r\n \"wee5v\",\r\n \"wel4l\",\r\n \"w1er\",\r\n \"west3\",\r\n \"w3ev\",\r\n \"whi4\",\r\n \"wi2\",\r\n \"wil2\",\r\n \"will5in\",\r\n \"win4de\",\r\n \"win4g\",\r\n \"wir4\",\r\n \"3wise\",\r\n \"with3\",\r\n \"wiz5\",\r\n \"w4k\",\r\n \"wl4es\",\r\n \"wl3in\",\r\n \"w4no\",\r\n \"1wo2\",\r\n \"wom1\",\r\n \"wo5ven\",\r\n \"w5p\",\r\n \"wra4\",\r\n \"wri4\",\r\n \"writa4\",\r\n \"w3sh\",\r\n \"ws4l\",\r\n \"ws4pe\",\r\n \"w5s4t\",\r\n \"4wt\",\r\n \"wy4\",\r\n \"x1a\",\r\n \"xac5e\",\r\n \"x4ago\",\r\n \"xam3\",\r\n \"x4ap\",\r\n \"xas5\",\r\n \"x3c2\",\r\n \"x1e\",\r\n \"xe4cuto\",\r\n \"x2ed\",\r\n \"xer4i\",\r\n \"xe5ro\",\r\n \"x1h\",\r\n \"xhi2\",\r\n \"xhil5\",\r\n \"xhu4\",\r\n \"x3i\",\r\n \"xi5a\",\r\n \"xi5c\",\r\n \"xi5di\",\r\n \"x4ime\",\r\n \"xi5miz\",\r\n \"x3o\",\r\n \"x4ob\",\r\n \"x3p\",\r\n \"xpan4d\",\r\n \"xpecto5\",\r\n \"xpe3d\",\r\n \"x1t2\",\r\n \"x3ti\",\r\n \"x1u\",\r\n \"xu3a\",\r\n \"xx4\",\r\n \"y5ac\",\r\n \"3yar4\",\r\n \"y5at\",\r\n \"y1b\",\r\n \"y1c\",\r\n \"y2ce\",\r\n \"yc5er\",\r\n \"y3ch\",\r\n \"ych4e\",\r\n \"ycom4\",\r\n \"ycot4\",\r\n \"y1d\",\r\n \"y5ee\",\r\n \"y1er\",\r\n \"y4erf\",\r\n \"yes4\",\r\n \"ye4t\",\r\n \"y5gi\",\r\n \"4y3h\",\r\n \"y1i\",\r\n \"y3la\",\r\n \"ylla5bl\",\r\n \"y3lo\",\r\n \"y5lu\",\r\n \"ymbol5\",\r\n \"yme4\",\r\n \"ympa3\",\r\n \"yn3chr\",\r\n \"yn5d\",\r\n \"yn5g\",\r\n \"yn5ic\",\r\n \"5ynx\",\r\n \"y1o4\",\r\n \"yo5d\",\r\n \"y4o5g\",\r\n \"yom4\",\r\n \"yo5net\",\r\n \"y4ons\",\r\n \"y4os\",\r\n \"y4ped\",\r\n \"yper5\",\r\n \"yp3i\",\r\n \"y3po\",\r\n \"y4poc\",\r\n \"yp2ta\",\r\n \"y5pu\",\r\n \"yra5m\",\r\n \"yr5ia\",\r\n \"y3ro\",\r\n \"yr4r\",\r\n \"ys4c\",\r\n \"y3s2e\",\r\n \"ys3ica\",\r\n \"ys3io\",\r\n \"3ysis\",\r\n \"y4so\",\r\n \"yss4\",\r\n \"ys1t\",\r\n \"ys3ta\",\r\n \"ysur4\",\r\n \"y3thin\",\r\n \"yt3ic\",\r\n \"y1w\",\r\n \"za1\",\r\n \"z5a2b\",\r\n \"zar2\",\r\n \"4zb\",\r\n \"2ze\",\r\n \"ze4n\",\r\n \"ze4p\",\r\n \"z1er\",\r\n \"ze3ro\",\r\n \"zet4\",\r\n \"2z1i\",\r\n \"z4il\",\r\n \"z4is\",\r\n \"5zl\",\r\n \"4zm\",\r\n \"1zo\",\r\n \"zo4m\",\r\n \"zo5ol\",\r\n \"zte4\",\r\n \"4z1z2\",\r\n \"z4zy\",\r\n // hyphen.tex patterns end here, and additional patterns begin:\r\n \".con5gr\",\r\n \".de5riva\",\r\n \".dri5v4\",\r\n \".eth1y6l1\",\r\n \".eu4ler\",\r\n \".ev2\",\r\n \".ever5si5b\",\r\n \".ga4s1om1\",\r\n \".ge4ome\",\r\n \".ge5ot1\",\r\n \".he3mo1\",\r\n \".he3p6a\",\r\n \".he3roe\",\r\n \".in5u2t\",\r\n \".kil2n3i\",\r\n \".ko6r1te1\",\r\n \".le6ices\",\r\n \".me4ga1l\",\r\n \".met4ala\",\r\n \".mim5i2c1\",\r\n \".mi1s4ers\",\r\n \".ne6o3f\",\r\n \".noe1th\",\r\n \".non1e2m\",\r\n \".poly1s\",\r\n \".post1am\",\r\n \".pre1am\",\r\n \".rav5en1o\",\r\n \".semi5\",\r\n \".sem4ic\",\r\n \".semid6\",\r\n \".semip4\",\r\n \".semir4\",\r\n \".sem6is4\",\r\n \".semiv4\",\r\n \".sph6in1\",\r\n \".spin1o\",\r\n \".ta5pes1tr\",\r\n \".te3legr\",\r\n \".to6pog\",\r\n \".to2q\",\r\n \".un3at5t\",\r\n \".un5err5\",\r\n \".vi2c3ar\",\r\n \".we2b1l\",\r\n \".re1e4c\",\r\n \"a5bolic\",\r\n \"a2cabl\",\r\n \"af6fish\",\r\n \"am1en3ta5b\",\r\n \"anal6ys\",\r\n \"ano5a2c\",\r\n \"ans5gr\",\r\n \"ans3v\",\r\n \"anti1d\",\r\n \"an3ti1n2\",\r\n \"anti1re\",\r\n \"a4pe5able\",\r\n \"ar3che5t\",\r\n \"ar2range\",\r\n \"as5ymptot\",\r\n \"ath3er1o1s\",\r\n \"at6tes.\",\r\n \"augh4tl\",\r\n \"au5li5f\",\r\n \"av3iou\",\r\n \"back2er.\",\r\n \"ba6r1onie\",\r\n \"ba1thy\",\r\n \"bbi4t\",\r\n \"be2vie\",\r\n \"bi5d2if\",\r\n \"bil2lab\",\r\n \"bio5m\",\r\n \"bi1orb\",\r\n \"bio1rh\",\r\n \"b1i3tive\",\r\n \"blan2d1\",\r\n \"blin2d1\",\r\n \"blon2d2\",\r\n \"bor1no5\",\r\n \"bo2t1u1l\",\r\n \"brus4q\",\r\n \"bus6i2er\",\r\n \"bus6i2es\",\r\n \"buss4ing\",\r\n \"but2ed.\",\r\n \"but4ted\",\r\n \"cad5e1m\",\r\n \"cat1a1s2\",\r\n \"4chs.\",\r\n \"chs3hu\",\r\n \"chie5vo\",\r\n \"cig3a3r\",\r\n \"cin2q\",\r\n \"cle4ar\",\r\n \"co6ph1o3n\",\r\n \"cous2ti\",\r\n \"cri3tie\",\r\n \"croc1o1d\",\r\n \"cro5e2co\",\r\n \"c2tro3me6c\",\r\n \"1cu2r1ance\",\r\n \"2d3alone\",\r\n \"data1b\",\r\n \"dd5a5b\",\r\n \"d2d5ib\",\r\n \"de4als.\",\r\n \"de5clar1\",\r\n \"de2c5lina\",\r\n \"de3fin3iti\",\r\n \"de2mos\",\r\n \"des3ic\",\r\n \"de2tic\",\r\n \"dic1aid\",\r\n \"dif5fra\",\r\n \"3di1methy\",\r\n \"di2ren\",\r\n \"di2rer\",\r\n \"2d1lead\",\r\n \"2d1li2e\",\r\n \"3do5word\",\r\n \"dren1a5l\",\r\n \"drif2t1a\",\r\n \"d1ri3pleg5\",\r\n \"drom3e5d\",\r\n \"d3tab\",\r\n \"du2al.\",\r\n \"du1op1o1l\",\r\n \"ea4n3ies\",\r\n \"e3chas\",\r\n \"edg1l\",\r\n \"ed1uling\",\r\n \"eli2t1is\",\r\n \"e1loa\",\r\n \"en1dix\",\r\n \"eo3grap\",\r\n \"1e6p3i3neph1\",\r\n \"e2r3i4an.\",\r\n \"e3spac6i\",\r\n \"eth1y6l1ene\",\r\n \"5eu2clid1\",\r\n \"feb1rua\",\r\n \"fermi1o\",\r\n \"3fich\",\r\n \"fit5ted.\",\r\n \"fla1g6el\",\r\n \"flow2er.\",\r\n \"3fluor\",\r\n \"gen2cy.\",\r\n \"ge3o1d\",\r\n \"ght1we\",\r\n \"g1lead\",\r\n \"get2ic.\",\r\n \"4g1lish\",\r\n \"5glo5bin\",\r\n \"1g2nac\",\r\n \"gnet1ism\",\r\n \"gno5mo\",\r\n \"g2n1or.\",\r\n \"g2noresp\",\r\n \"2g1o4n3i1za\",\r\n \"graph5er.\",\r\n \"griev1\",\r\n \"g1utan\",\r\n \"hair1s\",\r\n \"ha2p3ar5r\",\r\n \"hatch1\",\r\n \"hex2a3\",\r\n \"hite3sid\",\r\n \"h3i5pel1a4\",\r\n \"hnau3z\",\r\n \"ho6r1ic.\",\r\n \"h2t1eou\",\r\n \"hypo1tha\",\r\n \"id4ios\",\r\n \"ifac1et\",\r\n \"ign4it\",\r\n \"ignit1er\",\r\n \"i4jk\",\r\n \"im3ped3a\",\r\n \"infra1s2\",\r\n \"i5nitely.\",\r\n \"irre6v3oc\",\r\n \"i1tesima\",\r\n \"ith5i2l\",\r\n \"itin5er5ar\",\r\n \"janu3a\",\r\n \"japan1e2s\",\r\n \"je1re1m\",\r\n \"1ke6ling\",\r\n \"1ki5netic\",\r\n \"1kovian\",\r\n \"k3sha\",\r\n \"la4c3i5e\",\r\n \"lai6n3ess\",\r\n \"lar5ce1n\",\r\n \"l3chai\",\r\n \"l3chil6d1\",\r\n \"lead6er.\",\r\n \"lea4s1a\",\r\n \"1lec3ta6b\",\r\n \"le3g6en2dre\",\r\n \"1le1noid\",\r\n \"lith1o5g\",\r\n \"ll1fl\",\r\n \"l2l3ish\",\r\n \"l5mo3nell\",\r\n \"lo1bot1o1\",\r\n \"lo2ges.\",\r\n \"load4ed.\",\r\n \"load6er.\",\r\n \"l3tea\",\r\n \"lth5i2ly\",\r\n \"lue1p\",\r\n \"1lunk3er\",\r\n \"1lum5bia.\",\r\n \"3lyg1a1mi\",\r\n \"ly5styr\",\r\n \"ma1la1p\",\r\n \"m2an.\",\r\n \"man3u1sc\",\r\n \"mar1gin1\",\r\n \"medi2c\",\r\n \"med3i3cin\",\r\n \"medio6c1\",\r\n \"me3gran3\",\r\n \"m2en.\",\r\n \"3mi3da5b\",\r\n \"3milita\",\r\n \"mil2l1ag\",\r\n \"mil5li5li\",\r\n \"mi6n3is.\",\r\n \"mi1n2ut1er\",\r\n \"mi1n2ut1est\",\r\n \"m3ma1b\",\r\n \"5maph1ro1\",\r\n \"5moc1ra1t\",\r\n \"mo5e2las\",\r\n \"mol1e5c\",\r\n \"mon4ey1l\",\r\n \"mono3ch\",\r\n \"mo4no1en\",\r\n \"moro6n5is\",\r\n \"mono1s6\",\r\n \"moth4et2\",\r\n \"m1ou3sin\",\r\n \"m5shack2\",\r\n \"mu2dro\",\r\n \"mul2ti5u\",\r\n \"n3ar4chs.\",\r\n \"n3ch2es1t\",\r\n \"ne3back\",\r\n \"2ne1ski\",\r\n \"n1dieck\",\r\n \"nd3thr\",\r\n \"nfi6n3ites\",\r\n \"4n5i4an.\",\r\n \"nge5nes\",\r\n \"ng1ho\",\r\n \"ng1spr\",\r\n \"nk3rup\",\r\n \"n5less\",\r\n \"5noc3er1os\",\r\n \"nom1a6l\",\r\n \"nom5e1no\",\r\n \"n1o1mist\",\r\n \"non1eq\",\r\n \"non1i4so\",\r\n \"5nop1oly.\",\r\n \"no1vemb\",\r\n \"ns5ceiv\",\r\n \"ns4moo\",\r\n \"ntre1p\",\r\n \"obli2g1\",\r\n \"o3chas\",\r\n \"odel3li\",\r\n \"odit1ic\",\r\n \"oerst2\",\r\n \"oke1st\",\r\n \"o3les3ter\",\r\n \"oli3gop1o1\",\r\n \"o1lo3n4om\",\r\n \"o3mecha6\",\r\n \"onom1ic\",\r\n \"o3norma\",\r\n \"o3no2t1o3n\",\r\n \"o3nou\",\r\n \"op1ism.\",\r\n \"or4tho3ni4t\",\r\n \"orth1ri\",\r\n \"or5tively\",\r\n \"o4s3pher\",\r\n \"o5test1er\",\r\n \"o5tes3tor\",\r\n \"oth3e1o1s\",\r\n \"ou3ba3do\",\r\n \"o6v3i4an.\",\r\n \"oxi6d1ic\",\r\n \"pal6mat\",\r\n \"parag6ra4\",\r\n \"par4a1le\",\r\n \"param4\",\r\n \"para3me\",\r\n \"pee2v1\",\r\n \"phi2l3ant\",\r\n \"phi5lat1e3l\",\r\n \"pi2c1a3d\",\r\n \"pli2c1ab\",\r\n \"pli5nar\",\r\n \"poin3ca\",\r\n \"1pole.\",\r\n \"poly1e\",\r\n \"po3lyph1ono\",\r\n \"1prema3c\",\r\n \"pre1neu\",\r\n \"pres2pli\",\r\n \"pro2cess\",\r\n \"proc3i3ty.\",\r\n \"pro2g1e\",\r\n \"3pseu2d\",\r\n \"pseu3d6o3d2\",\r\n \"pseu3d6o3f2\",\r\n \"pto3mat4\",\r\n \"p5trol3\",\r\n \"pu5bes5c\",\r\n \"quain2t1e\",\r\n \"qu6a3si3\",\r\n \"quasir6\",\r\n \"quasis6\",\r\n \"quin5tes5s\",\r\n \"qui3v4ar\",\r\n \"r1abolic\",\r\n \"3rab1o1loi\",\r\n \"ra3chu\",\r\n \"r3a3dig\",\r\n \"radi1o6g\",\r\n \"r2amen\",\r\n \"3ra4m5e1triz\",\r\n \"ra3mou\",\r\n \"ra5n2has\",\r\n \"ra1or\",\r\n \"r3bin1ge\",\r\n \"re2c3i1pr\",\r\n \"rec5t6ang\",\r\n \"re4t1ribu\",\r\n \"r3ial.\",\r\n \"riv1o1l\",\r\n \"6rk.\",\r\n \"rk1ho\",\r\n \"r1krau\",\r\n \"6rks.\",\r\n \"r5le5qu\",\r\n \"ro1bot1\",\r\n \"ro5e2las\",\r\n \"ro5epide1\",\r\n \"ro3mesh\",\r\n \"ro1tron\",\r\n \"r3pau5li\",\r\n \"rse1rad1i\",\r\n \"r1thou\",\r\n \"r1treu\",\r\n \"r1veil\",\r\n \"rz1sc\",\r\n \"sales3c\",\r\n \"sales5w\",\r\n \"5sa3par5il\",\r\n \"sca6p1er\",\r\n \"sca2t1ol\",\r\n \"s4chitz\",\r\n \"schro1ding1\",\r\n \"1sci2utt\",\r\n \"scrap4er.\",\r\n \"scy4th1\",\r\n \"sem1a1ph\",\r\n \"se3mes1t\",\r\n \"se1mi6t5ic\",\r\n \"sep3temb\",\r\n \"shoe1st\",\r\n \"sid2ed.\",\r\n \"side5st\",\r\n \"side5sw\",\r\n \"si5resid\",\r\n \"sky1sc\",\r\n \"3slova1kia\",\r\n \"3s2og1a1my\",\r\n \"so2lute\",\r\n \"3s2pace\",\r\n \"1s2pacin\",\r\n \"spe3cio\",\r\n \"spher1o\",\r\n \"spi2c1il\",\r\n \"spokes5w\",\r\n \"sports3c\",\r\n \"sports3w\",\r\n \"s3qui3to\",\r\n \"s2s1a3chu1\",\r\n \"ss3hat\",\r\n \"s2s3i4an.\",\r\n \"s5sign5a3b\",\r\n \"1s2tamp\",\r\n \"s2t1ant5shi\",\r\n \"star3tli\",\r\n \"sta1ti\",\r\n \"st5b\",\r\n \"1stor1ab\",\r\n \"strat1a1g\",\r\n \"strib5ut\",\r\n \"st5scr\",\r\n \"stu1pi4d1\",\r\n \"styl1is\",\r\n \"su2per1e6\",\r\n \"1sync\",\r\n \"1syth3i2\",\r\n \"swimm6\",\r\n \"5tab1o1lism\",\r\n \"ta3gon.\",\r\n \"talk1a5\",\r\n \"t1a1min\",\r\n \"t6ap6ath\",\r\n \"5tar2rh\",\r\n \"tch1c\",\r\n \"tch3i1er\",\r\n \"t1cr\",\r\n \"teach4er.\",\r\n \"tele2g\",\r\n \"tele1r6o\",\r\n \"3ter1gei\",\r\n \"ter2ic.\",\r\n \"t3ess2es\",\r\n \"tha4l1am\",\r\n \"tho3don\",\r\n \"th1o5gen1i\",\r\n \"tho1k2er\",\r\n \"thy4l1an\",\r\n \"thy3sc\",\r\n \"2t3i4an.\",\r\n \"ti2n3o1m\",\r\n \"t1li2er\",\r\n \"tolo2gy\",\r\n \"tot3ic\",\r\n \"trai3tor1\",\r\n \"tra1vers\",\r\n \"travers3a3b\",\r\n \"treach1e\",\r\n \"tr4ial.\",\r\n \"3tro1le1um\",\r\n \"trof4ic.\",\r\n \"tro3fit\",\r\n \"tro1p2is\",\r\n \"3trop1o5les\",\r\n \"3trop1o5lis\",\r\n \"t1ro1pol3it\",\r\n \"tsch3ie\",\r\n \"ttrib1ut1\",\r\n \"turn3ar\",\r\n \"t1wh\",\r\n \"ty2p5al\",\r\n \"ua3drati\",\r\n \"uad1ratu\",\r\n \"u5do3ny\",\r\n \"uea1m\",\r\n \"u2r1al.\",\r\n \"uri4al.\",\r\n \"us2er.\",\r\n \"v1ativ\",\r\n \"v1oir5du1\",\r\n \"va6guer\",\r\n \"vaude3v\",\r\n \"1verely.\",\r\n \"v1er1eig\",\r\n \"ves1tite\",\r\n \"vi1vip3a3r\",\r\n \"voice1p\",\r\n \"waste3w6a2\",\r\n \"wave1g4\",\r\n \"w3c\",\r\n \"week1n\",\r\n \"wide5sp\",\r\n \"wo4k1en\",\r\n \"wrap3aro\",\r\n \"writ6er.\",\r\n \"x1q\",\r\n \"xquis3\",\r\n \"y5che3d\",\r\n \"ym5e5try\",\r\n \"y1stro\",\r\n \"yes5ter1y\",\r\n \"z3ian.\",\r\n \"z3o1phr\",\r\n \"z2z3w\",\r\n // end of additional patterns.\r\n \"\"\r\n ];\r\n // DEK's hyphenation exception list, from hyphen.tex; not changed.\r\n var hyphenation = [\r\n \"as-so-ciate\",\r\n \"as-so-ciates\",\r\n \"dec-li-na-tion\",\r\n \"oblig-a-tory\",\r\n \"phil-an-thropic\",\r\n \"present\",\r\n \"presents\",\r\n \"project\",\r\n \"projects\",\r\n \"reci-procity\",\r\n \"re-cog-ni-zance\",\r\n \"ref-or-ma-tion\",\r\n \"ret-ri-bu-tion\",\r\n \"ta-ble\",\r\n \"\"\r\n ];\r\n\r\n return {\r\n patterns: patterns,\r\n exceptions: hyphenation\r\n };\r\n});\r\n","import { isNil, last, repeat, reverse, dropLast as dropLast$2, adjust, compose } from '@react-pdf/fns';\nimport bidiFactory from 'bidi-js';\nimport unicode from 'unicode-properties';\nimport hyphen from 'hyphen';\nimport pattern from 'hyphen/patterns/en-us.js';\n\n/**\n * Create attributed string from text fragments\n *\n * @param fragments - Fragments\n * @returns Attributed string\n */\nconst fromFragments = (fragments) => {\n let offset = 0;\n let string = '';\n const runs = [];\n fragments.forEach((fragment) => {\n string += fragment.string;\n runs.push({\n ...fragment,\n start: offset,\n end: offset + fragment.string.length,\n attributes: fragment.attributes || {},\n });\n offset += fragment.string.length;\n });\n return { string, runs };\n};\n\n/**\n * Default word hyphenation engine used when no one provided.\n * Does not perform word hyphenation at all\n *\n * @param word\n * @returns Same word\n */\nconst defaultHyphenationEngine = (word) => [word];\n/**\n * Wrap words of attribute string\n *\n * @param engines layout engines\n * @param options layout options\n */\nconst wrapWords = (engines = {}, options = {}) => {\n /**\n * @param attributedString - Attributed string\n * @returns Attributed string including syllables\n */\n return (attributedString) => {\n const syllables = [];\n const fragments = [];\n const hyphenateWord = options.hyphenationCallback ||\n engines.wordHyphenation?.() ||\n defaultHyphenationEngine;\n for (let i = 0; i < attributedString.runs.length; i += 1) {\n let string = '';\n const run = attributedString.runs[i];\n const words = attributedString.string\n .slice(run.start, run.end)\n .split(/([ ]+)/g)\n .filter(Boolean);\n for (let j = 0; j < words.length; j += 1) {\n const word = words[j];\n const parts = hyphenateWord(word);\n syllables.push(...parts);\n string += parts.join('');\n }\n fragments.push({ ...run, string });\n }\n const result = { ...fromFragments(fragments), syllables };\n return result;\n };\n};\n\n/**\n * Clone rect\n *\n * @param rect - Rect\n * @returns Cloned rect\n */\nconst copy = (rect) => {\n return Object.assign({}, rect);\n};\n\n/**\n * Partition rect in two in the vertical direction\n *\n * @param rect - Rect\n * @param height - Height\n * @returns Partitioned rects\n */\nconst partition = (rect, height) => {\n const a = Object.assign({}, rect, { height });\n const b = Object.assign({}, rect, {\n y: rect.y + height,\n height: rect.height - height,\n });\n return [a, b];\n};\n\n/**\n * Crop upper section of rect\n *\n * @param height - Height\n * @param rect - Rect\n * @returns Cropped rect\n */\nconst crop = (height, rect) => {\n const [, result] = partition(rect, height);\n return result;\n};\n\n/**\n * Get paragraph block height\n *\n * @param paragraph - Paragraph\n * @returns Paragraph block height\n */\nconst height$2 = (paragraph) => {\n return paragraph.reduce((acc, block) => acc + block.box.height, 0);\n};\n\n/**\n * Calculate run scale\n *\n * @param run - Run\n * @returns Scale\n */\nconst calculateScale = (run) => {\n const attributes = run.attributes || {};\n const fontSize = attributes.fontSize || 12;\n const font = attributes.font;\n const unitsPerEm = typeof font === 'string' ? null : font?.[0]?.unitsPerEm;\n return unitsPerEm ? fontSize / unitsPerEm : 0;\n};\n/**\n * Get run scale\n *\n * @param run\n * @returns Scale\n */\nconst scale = (run) => {\n return run.attributes?.scale || calculateScale(run);\n};\n\n/**\n * Get ligature offset by index\n *\n * Ex. ffi ligature\n *\n * glyphs: l o f f i m\n * glyphIndices: 0 1 2 2 2 3\n * offset: 0 0 0 1 2 0\n *\n * @param index\n * @param run - Run\n * @returns Ligature offset\n */\nconst offset = (index, run) => {\n if (!run)\n return 0;\n const glyphIndices = run.glyphIndices || [];\n const value = glyphIndices[index];\n return glyphIndices.slice(0, index).filter((i) => i === value).length;\n};\n\n/**\n * Get run font\n *\n * @param run - Run\n * @returns Font\n */\nconst getFont = (run) => {\n return run.attributes?.font?.[0] || null;\n};\n\n/**\n * Slice glyph between codePoints range\n * Util for breaking ligatures\n *\n * @param start - Start code point index\n * @param end - End code point index\n * @param font - Font to generate new glyph\n * @param glyph - Glyph to be sliced\n * @returns Sliced glyph parts\n */\nconst slice$2 = (start, end, font, glyph) => {\n if (!glyph)\n return [];\n if (start === end)\n return [];\n if (start === 0 && end === glyph.codePoints.length)\n return [glyph];\n const codePoints = glyph.codePoints.slice(start, end);\n const string = String.fromCodePoint(...codePoints);\n // passing LTR To force fontkit to not reverse the string\n return font\n ? font.layout(string, undefined, undefined, undefined, 'ltr').glyphs\n : [glyph];\n};\n\n/**\n * Return glyph index at string index, if glyph indices present.\n * Otherwise return string index\n *\n * @param index - Index\n * @param run - Run\n * @returns Glyph index\n */\nconst glyphIndexAt = (index, run) => {\n const result = run?.glyphIndices?.[index];\n return isNil(result) ? index : result;\n};\n\n/**\n * Returns new array starting with zero, and keeping same relation between consecutive values\n *\n * @param array - List\n * @returns Normalized array\n */\nconst normalize = (array) => {\n const head = array[0];\n return array.map((value) => value - head);\n};\n\n/**\n * Slice run between glyph indices range\n *\n * @param start - Glyph index\n * @param end - Glyph index\n * @param run - Run\n * @returns Sliced run\n */\nconst slice$1 = (start, end, run) => {\n const runScale = scale(run);\n const font = getFont(run);\n // Get glyph start and end indices\n const startIndex = glyphIndexAt(start, run);\n const endIndex = glyphIndexAt(end, run);\n // Get start and end glyph\n const startGlyph = run.glyphs?.[startIndex];\n const endGlyph = run.glyphs?.[endIndex];\n // Get start ligature chunks (if any)\n const startOffset = offset(start, run);\n const startGlyphs = startOffset > 0 ? slice$2(startOffset, Infinity, font, startGlyph) : [];\n // Get end ligature chunks (if any)\n const endOffset = offset(end, run);\n const endGlyphs = slice$2(0, endOffset, font, endGlyph);\n // Compute new glyphs\n const sliceStart = startIndex + Math.min(1, startOffset);\n const glyphs = (run.glyphs || []).slice(sliceStart, endIndex);\n // Compute new positions\n const glyphPosition = (g) => ({\n xAdvance: g.advanceWidth * runScale,\n yAdvance: 0,\n xOffset: 0,\n yOffset: 0,\n });\n const startPositions = startGlyphs.map(glyphPosition);\n const positions = (run.positions || []).slice(sliceStart, endIndex);\n const endPositions = endGlyphs.map(glyphPosition);\n return Object.assign({}, run, {\n start: run.start + start,\n end: Math.min(run.end, run.start + end),\n glyphIndices: normalize((run.glyphIndices || []).slice(start, end)),\n glyphs: [startGlyphs, glyphs, endGlyphs].flat(),\n positions: [startPositions, positions, endPositions].flat(),\n });\n};\n\n/**\n * Get run index that contains passed index\n *\n * @param index - Index\n * @param runs - Runs\n * @returns Run index\n */\nconst runIndexAt$1 = (index, runs) => {\n if (!runs)\n return -1;\n return runs.findIndex((run) => run.start <= index && index < run.end);\n};\n\n/**\n * Filter runs contained between start and end\n *\n * @param start\n * @param end\n * @param runs\n * @returns Filtered runs\n */\nconst filter = (start, end, runs) => {\n const startIndex = runIndexAt$1(start, runs);\n const endIndex = Math.max(runIndexAt$1(end - 1, runs), startIndex);\n return runs.slice(startIndex, endIndex + 1);\n};\n\n/**\n * Subtract scalar to run\n *\n * @param index - Scalar\n * @param run - Run\n * @returns Subtracted run\n */\nconst subtract = (index, run) => {\n const start = run.start - index;\n const end = run.end - index;\n return Object.assign({}, run, { start, end });\n};\n\n/**\n * Slice array of runs\n *\n * @param start - Offset\n * @param end - Offset\n * @param runs\n * @returns Sliced runs\n */\nconst sliceRuns = (start, end, runs) => {\n const sliceFirstRun = (a) => slice$1(start - a.start, end - a.start, a);\n const sliceLastRun = (a) => slice$1(0, end - a.start, a);\n return runs.map((run, i) => {\n let result = run;\n const isFirst = i === 0;\n const isLast = !isFirst && i === runs.length - 1;\n if (isFirst)\n result = sliceFirstRun(run);\n if (isLast)\n result = sliceLastRun(run);\n return subtract(start, result);\n });\n};\n/**\n * Slice attributed string between two indices\n *\n * @param start - Offset\n * @param end - Offset\n * @param attributedString - Attributed string\n * @returns Attributed string\n */\nconst slice = (start, end, attributedString) => {\n if (attributedString.string.length === 0)\n return attributedString;\n const string = attributedString.string.slice(start, end);\n const filteredRuns = filter(start, end, attributedString.runs);\n const slicedRuns = sliceRuns(start, end, filteredRuns);\n return Object.assign({}, attributedString, { string, runs: slicedRuns });\n};\n\nconst findCharIndex = (string) => {\n return string.search(/\\S/g);\n};\nconst findLastCharIndex = (string) => {\n const match = string.match(/\\S/g);\n return match ? string.lastIndexOf(match[match.length - 1]) : -1;\n};\n/**\n * Removes (strips) whitespace from both ends of the attributted string.\n *\n * @param attributedString - Attributed string\n * @returns Attributed string\n */\nconst trim = (attributedString) => {\n const start = findCharIndex(attributedString.string);\n const end = findLastCharIndex(attributedString.string);\n return slice(start, end + 1, attributedString);\n};\n\n/**\n * Returns empty run\n *\n * @returns Empty run\n */\nconst empty$1 = () => {\n return {\n start: 0,\n end: 0,\n glyphIndices: [],\n glyphs: [],\n positions: [],\n attributes: {},\n };\n};\n\n/**\n * Check if value is a number\n *\n * @param value - Value to check\n * @returns Whether value is a number\n */\nconst isNumber = (value) => {\n return typeof value === 'number';\n};\n\n/**\n * Append glyph indices with given length\n *\n * Ex. appendIndices(3, [0, 1, 2, 2]) => [0, 1, 2, 2, 3, 3, 3]\n *\n * @param length - Length\n * @param indices - Glyph indices\n * @returns Extended glyph indices\n */\nconst appendIndices = (length, indices) => {\n const lastIndex = last(indices);\n const value = isNil(lastIndex) ? 0 : lastIndex + 1;\n const newIndices = Array(length).fill(value);\n return indices.concat(newIndices);\n};\n\n/**\n * Get glyph for a given code point\n *\n * @param value - CodePoint\n * @param font - Font\n * @returns Glyph\n * */\nconst fromCodePoint = (value, font) => {\n if (typeof font === 'string')\n return null;\n return font && value ? font.glyphForCodePoint(value) : null;\n};\n\n/**\n * Append glyph to run\n *\n * @param glyph - Glyph\n * @param run - Run\n * @returns Run with glyph\n */\nconst appendGlyph = (glyph, run) => {\n const glyphLength = glyph.codePoints?.length || 0;\n const end = run.end + glyphLength;\n const glyphs = run.glyphs.concat(glyph);\n const glyphIndices = appendIndices(glyphLength, run.glyphIndices);\n if (!run.positions)\n return Object.assign({}, run, { end, glyphs, glyphIndices });\n const positions = run.positions.concat({\n xAdvance: glyph.advanceWidth * scale(run),\n yAdvance: 0,\n xOffset: 0,\n yOffset: 0,\n });\n return Object.assign({}, run, { end, glyphs, glyphIndices, positions });\n};\n/**\n * Append glyph or code point to run\n *\n * @param value - Glyph or codePoint\n * @param run - Run\n * @returns Run with glyph\n */\nconst append$1 = (value, run) => {\n if (!value)\n return run;\n const font = getFont(run);\n const glyph = isNumber(value) ? fromCodePoint(value, font) : value;\n return appendGlyph(glyph, run);\n};\n\n/**\n * Get string from array of code points\n *\n * @param codePoints - Points\n * @returns String\n */\nconst stringFromCodePoints = (codePoints) => {\n return String.fromCodePoint(...(codePoints || []));\n};\n\n/**\n * Append glyph into last run of attributed string\n *\n * @param glyph - Glyph or code point\n * @param attributedString - Attributed string\n * @returns Attributed string with new glyph\n */\nconst append = (glyph, attributedString) => {\n const codePoints = typeof glyph === 'number' ? [glyph] : glyph?.codePoints;\n const codePointsString = stringFromCodePoints(codePoints || []);\n const string = attributedString.string + codePointsString;\n const firstRuns = attributedString.runs.slice(0, -1);\n const lastRun = last(attributedString.runs) || empty$1();\n const runs = firstRuns.concat(append$1(glyph, lastRun));\n return Object.assign({}, attributedString, { string, runs });\n};\n\nconst ELLIPSIS_UNICODE = 8230;\nconst ELLIPSIS_STRING = String.fromCharCode(ELLIPSIS_UNICODE);\n/**\n * Get ellipsis codepoint. This may be different in standard and embedded fonts\n *\n * @param font\n * @returns Ellipsis codepoint\n */\nconst getEllipsisCodePoint = (font) => {\n if (!font.encode)\n return ELLIPSIS_UNICODE;\n const [codePoints] = font.encode(ELLIPSIS_STRING);\n return parseInt(codePoints[0], 16);\n};\n/**\n * Trucante block with ellipsis\n *\n * @param paragraph - Paragraph\n * @returns Sliced paragraph\n */\nconst truncate = (paragraph) => {\n const runs = last(paragraph)?.runs || [];\n const font = last(runs)?.attributes?.font[0];\n if (font) {\n const index = paragraph.length - 1;\n const codePoint = getEllipsisCodePoint(font);\n const glyph = font.glyphForCodePoint(codePoint);\n const lastBlock = append(glyph, trim(paragraph[index]));\n return Object.assign([], paragraph, { [index]: lastBlock });\n }\n return paragraph;\n};\n\n/**\n * Omit attribute from run\n *\n * @param value - Attribute key\n * @param run - Run\n * @returns Run without ommited attribute\n */\nconst omit = (value, run) => {\n const attributes = Object.assign({}, run.attributes);\n delete attributes[value];\n return Object.assign({}, run, { attributes });\n};\n\n/**\n * Get run ascent\n *\n * @param run - Run\n * @returns Ascent\n */\nconst ascent$1 = (run) => {\n const { font, attachment } = run.attributes;\n const attachmentHeight = attachment?.height || 0;\n const fontAscent = typeof font === 'string' ? 0 : font?.[0]?.ascent || 0;\n return Math.max(attachmentHeight, fontAscent * scale(run));\n};\n\n/**\n * Get run descent\n *\n * @param run - Run\n * @returns Descent\n */\nconst descent = (run) => {\n const font = run.attributes?.font;\n const fontDescent = typeof font === 'string' ? 0 : font?.[0]?.descent || 0;\n return scale(run) * fontDescent;\n};\n\n/**\n * Get run lineGap\n *\n * @param run - Run\n * @returns LineGap\n */\nconst lineGap = (run) => {\n const font = run.attributes?.font;\n const lineGap = typeof font === 'string' ? 0 : font?.[0]?.lineGap || 0;\n return lineGap * scale(run);\n};\n\n/**\n * Get run height\n *\n * @param run - Run\n * @returns Height\n */\nconst height$1 = (run) => {\n const lineHeight = run.attributes?.lineHeight;\n return lineHeight || lineGap(run) + ascent$1(run) - descent(run);\n};\n\n/**\n * Returns attributed string height\n *\n * @param attributedString - Attributed string\n * @returns Height\n */\nconst height = (attributedString) => {\n const reducer = (acc, run) => Math.max(acc, height$1(run));\n return attributedString.runs.reduce(reducer, 0);\n};\n\n/**\n * Checks if two rects intersect each other\n *\n * @param a - Rect A\n * @param b - Rect B\n * @returns Whether rects intersect\n */\nconst intersects = (a, b) => {\n const x = Math.max(a.x, b.x);\n const num1 = Math.min(a.x + a.width, b.x + b.width);\n const y = Math.max(a.y, b.y);\n const num2 = Math.min(a.y + a.height, b.y + b.height);\n return num1 >= x && num2 >= y;\n};\n\nconst getLineFragment = (lineRect, excludeRect) => {\n if (!intersects(excludeRect, lineRect))\n return [lineRect];\n const eStart = excludeRect.x;\n const eEnd = excludeRect.x + excludeRect.width;\n const lStart = lineRect.x;\n const lEnd = lineRect.x + lineRect.width;\n const a = Object.assign({}, lineRect, { width: eStart - lStart });\n const b = Object.assign({}, lineRect, { x: eEnd, width: lEnd - eEnd });\n return [a, b].filter((r) => r.width > 0);\n};\nconst getLineFragments = (rect, excludeRects) => {\n let fragments = [rect];\n for (let i = 0; i < excludeRects.length; i += 1) {\n const excludeRect = excludeRects[i];\n fragments = fragments.reduce((acc, fragment) => {\n const pieces = getLineFragment(fragment, excludeRect);\n return acc.concat(pieces);\n }, []);\n }\n return fragments;\n};\nconst generateLineRects = (container, height) => {\n const { excludeRects, ...rect } = container;\n if (!excludeRects)\n return [rect];\n const lineRects = [];\n const maxY = Math.max(...excludeRects.map((r) => r.y + r.height));\n let currentRect = rect;\n while (currentRect.y < maxY) {\n const [lineRect, rest] = partition(currentRect, height);\n const lineRectFragments = getLineFragments(lineRect, excludeRects);\n currentRect = rest;\n lineRects.push(...lineRectFragments);\n }\n return [...lineRects, currentRect];\n};\n\nconst ATTACHMENT_CODE$1 = '\\ufffc'; // 65532\n/**\n * Remove attachment attribute if no char present\n *\n * @param line - Line\n * @returns Line\n */\nconst purgeAttachments = (line) => {\n const shouldPurge = !line.string.includes(ATTACHMENT_CODE$1);\n if (!shouldPurge)\n return line;\n const runs = line.runs.map((run) => omit('attachment', run));\n return Object.assign({}, line, { runs });\n};\n/**\n * Layout paragraphs inside rectangle\n *\n * @param rects - Rects\n * @param lines - Attributed strings\n * @param indent\n * @returns layout blocks\n */\nconst layoutLines = (rects, lines, indent) => {\n let rect = rects.shift();\n let currentY = rect.y;\n return lines.map((line, i) => {\n const lineIndent = i === 0 ? indent : 0;\n const style = line.runs?.[0]?.attributes || {};\n const height$1 = Math.max(height(line), style.lineHeight);\n if (currentY + height$1 > rect.y + rect.height && rects.length > 0) {\n rect = rects.shift();\n currentY = rect.y;\n }\n const newLine = {\n string: line.string,\n runs: line.runs,\n box: {\n x: rect.x + lineIndent,\n y: currentY,\n width: rect.width - lineIndent,\n height: height$1,\n },\n };\n currentY += height$1;\n return purgeAttachments(newLine);\n });\n};\n/**\n * Performs line breaking and layout\n *\n * @param engines - Engines\n * @param options - Layout options\n */\nconst layoutParagraph = (engines, options = {}) => {\n /**\n * @param container - Container\n * @param paragraph - Attributed string\n * @returns Layout block\n */\n return (container, paragraph) => {\n const height$1 = height(paragraph);\n const indent = paragraph.runs?.[0]?.attributes?.indent || 0;\n const rects = generateLineRects(container, height$1);\n const availableWidths = rects.map((r) => r.width);\n availableWidths.unshift(availableWidths[0] - indent);\n const lines = engines.linebreaker(options)(paragraph, availableWidths);\n return layoutLines(rects, lines, indent);\n };\n};\n\n/**\n * Slice block at given height\n *\n * @param height - Height\n * @param paragraph - Paragraph\n * @returns Sliced paragraph\n */\nconst sliceAtHeight = (height, paragraph) => {\n const newBlock = [];\n let counter = 0;\n for (let i = 0; i < paragraph.length; i += 1) {\n const line = paragraph[i];\n counter += line.box.height;\n if (counter < height) {\n newBlock.push(line);\n }\n else {\n break;\n }\n }\n return newBlock;\n};\n\n/**\n * Layout paragraphs inside container until it does not\n * fit anymore, performing line wrapping in the process.\n *\n * @param engines - Engines\n * @param options - Layout options\n * @param container - Container\n */\nconst typesetter = (engines, options, container) => {\n /**\n * @param attributedStrings - Attributed strings (paragraphs)\n * @returns Paragraph blocks\n */\n return (attributedStrings) => {\n const result = [];\n const paragraphs = [...attributedStrings];\n const layout = layoutParagraph(engines, options);\n const maxLines = isNil(container.maxLines) ? Infinity : container.maxLines;\n const truncateEllipsis = container.truncateMode === 'ellipsis';\n let linesCount = maxLines;\n let paragraphRect = copy(container);\n let nextParagraph = paragraphs.shift();\n while (linesCount > 0 && nextParagraph) {\n const paragraph = layout(paragraphRect, nextParagraph);\n const slicedBlock = paragraph.slice(0, linesCount);\n const linesHeight = height$2(slicedBlock);\n const shouldTruncate = truncateEllipsis && paragraph.length !== slicedBlock.length;\n linesCount -= slicedBlock.length;\n if (paragraphRect.height >= linesHeight) {\n result.push(shouldTruncate ? truncate(slicedBlock) : slicedBlock);\n paragraphRect = crop(linesHeight, paragraphRect);\n nextParagraph = paragraphs.shift();\n }\n else {\n result.push(truncate(sliceAtHeight(paragraphRect.height, slicedBlock)));\n break;\n }\n }\n return result;\n };\n};\n\n/**\n * Get attributed string start value\n *\n * @param attributedString - Attributed string\n * @returns Start\n */\nconst start = (attributedString) => {\n const { runs } = attributedString;\n return runs.length === 0 ? 0 : runs[0].start;\n};\n\n/**\n * Get attributed string end value\n *\n * @param attributedString - Attributed string\n * @returns End\n */\nconst end = (attributedString) => {\n const { runs } = attributedString;\n return runs.length === 0 ? 0 : last(runs).end;\n};\n\n/**\n * Get attributed string length\n *\n * @param attributedString - Attributed string\n * @returns End\n */\nconst length$1 = (attributedString) => {\n return end(attributedString) - start(attributedString);\n};\n\nconst bidi$2 = bidiFactory();\nconst getBidiLevels$1 = (runs) => {\n return runs.reduce((acc, run) => {\n const length = run.end - run.start;\n const levels = repeat(run.attributes.bidiLevel, length);\n return acc.concat(levels);\n }, []);\n};\nconst getReorderedIndices = (string, segments) => {\n // Fill an array with indices\n const indices = [];\n for (let i = 0; i < string.length; i += 1) {\n indices[i] = i;\n }\n // Reverse each segment in order\n segments.forEach(([start, end]) => {\n const slice = indices.slice(start, end + 1);\n for (let i = slice.length - 1; i >= 0; i -= 1) {\n indices[end - i] = slice[i];\n }\n });\n return indices;\n};\nconst getItemAtIndex = (runs, objectName, index) => {\n for (let i = 0; i < runs.length; i += 1) {\n const run = runs[i];\n const updatedIndex = run.glyphIndices[index - run.start];\n if (index >= run.start && index < run.end) {\n return run[objectName][updatedIndex];\n }\n }\n throw new Error(`index ${index} out of range`);\n};\nconst reorderLine = (line) => {\n const levels = getBidiLevels$1(line.runs);\n const direction = line.runs[0]?.attributes.direction;\n const level = direction === 'rtl' ? 1 : 0;\n const end = length$1(line) - 1;\n const paragraphs = [{ start: 0, end, level }];\n const embeddingLevels = { paragraphs, levels };\n const segments = bidi$2.getReorderSegments(line.string, embeddingLevels);\n // No need for bidi reordering\n if (segments.length === 0)\n return line;\n const indices = getReorderedIndices(line.string, segments);\n const updatedString = bidi$2.getReorderedString(line.string, embeddingLevels);\n const updatedRuns = line.runs.map((run) => {\n const selectedIndices = indices.slice(run.start, run.end);\n const updatedGlyphs = [];\n const updatedPositions = [];\n const addedGlyphs = new Set();\n for (let i = 0; i < selectedIndices.length; i += 1) {\n const index = selectedIndices[i];\n const glyph = getItemAtIndex(line.runs, 'glyphs', index);\n if (addedGlyphs.has(glyph.id))\n continue;\n updatedGlyphs.push(glyph);\n updatedPositions.push(getItemAtIndex(line.runs, 'positions', index));\n if (glyph.isLigature) {\n addedGlyphs.add(glyph.id);\n }\n }\n return {\n ...run,\n glyphs: updatedGlyphs,\n positions: updatedPositions,\n };\n });\n return {\n box: line.box,\n runs: updatedRuns,\n string: updatedString,\n };\n};\nconst reorderParagraph = (paragraph) => paragraph.map(reorderLine);\n/**\n * Perform bidi reordering\n *\n * @returns Reordered paragraphs\n */\nconst bidiReordering = () => {\n /**\n * @param paragraphs - Paragraphs\n * @returns Reordered paragraphs\n */\n return (paragraphs) => paragraphs.map(reorderParagraph);\n};\n\nconst DUMMY_CODEPOINT = 123;\n/**\n * Resolve string indices based on glyphs code points\n *\n * @param glyphs\n * @returns Glyph indices\n */\nconst resolve = (glyphs = []) => {\n return glyphs.reduce((acc, glyph) => {\n const codePoints = glyph?.codePoints || [DUMMY_CODEPOINT];\n if (acc.length === 0)\n return codePoints.map(() => 0);\n const last = acc[acc.length - 1];\n const next = codePoints.map(() => last + 1);\n return [...acc, ...next];\n }, []);\n};\n\nconst getCharacterSpacing = (run) => {\n return run.attributes?.characterSpacing || 0;\n};\n/**\n * Scale run positions\n *\n * @param run\n * @param positions\n * @returns Scaled positions\n */\nconst scalePositions = (run, positions) => {\n const runScale = scale(run);\n const characterSpacing = getCharacterSpacing(run);\n return positions.map((position, i) => {\n const isLast = i === positions.length;\n const xSpacing = isLast ? 0 : characterSpacing;\n return Object.assign({}, position, {\n xAdvance: position.xAdvance * runScale + xSpacing,\n yAdvance: position.yAdvance * runScale,\n xOffset: position.xOffset * runScale,\n yOffset: position.yOffset * runScale,\n });\n });\n};\n/**\n * Create glyph run\n *\n * @param string string\n */\nconst layoutRun = (string) => {\n /**\n * @param run - Run\n * @returns Glyph run\n */\n return (run) => {\n const { start, end, attributes = {} } = run;\n const { font } = attributes;\n if (!font)\n return { ...run, glyphs: [], glyphIndices: [], positions: [] };\n const runString = string.slice(start, end);\n if (typeof font === 'string')\n throw new Error('Invalid font');\n // passing LTR To force fontkit to not reverse the string\n const glyphRun = font[0].layout(runString, undefined, undefined, undefined, 'ltr');\n const positions = scalePositions(run, glyphRun.positions);\n const glyphIndices = resolve(glyphRun.glyphs);\n const result = {\n ...run,\n positions,\n glyphIndices,\n glyphs: glyphRun.glyphs,\n };\n return result;\n };\n};\n/**\n * Generate glyphs for single attributed string\n */\nconst generateGlyphs = () => {\n /**\n * @param attributedString - Attributed string\n * @returns Attributed string with glyphs\n */\n return (attributedString) => {\n const runs = attributedString.runs.map(layoutRun(attributedString.string));\n const res = Object.assign({}, attributedString, { runs });\n return res;\n };\n};\n\n/**\n * Resolves yOffset for run\n *\n * @param run - Run\n * @returns Run\n */\nconst resolveRunYOffset = (run) => {\n if (!run.positions)\n return run;\n const unitsPerEm = run.attributes?.font?.[0]?.unitsPerEm || 0;\n const yOffset = (run.attributes?.yOffset || 0) * unitsPerEm;\n const positions = run.positions.map((p) => Object.assign({}, p, { yOffset }));\n return Object.assign({}, run, { positions });\n};\n/**\n * Resolves yOffset for multiple paragraphs\n */\nconst resolveYOffset = () => {\n /**\n * @param attributedString - Attributed string\n * @returns Attributed string\n */\n return (attributedString) => {\n const runs = attributedString.runs.map(resolveRunYOffset);\n const res = Object.assign({}, attributedString, { runs });\n return res;\n };\n};\n\n/**\n * Sort runs in ascending order\n *\n * @param runs\n * @returns Sorted runs\n */\nconst sort = (runs) => {\n return runs.sort((a, b) => a.start - b.start || a.end - b.end);\n};\n\n/**\n * Is run empty (start === end)\n *\n * @param run - Run\n * @returns Is run empty\n */\nconst isEmpty = (run) => {\n return run.start === run.end;\n};\n\n/**\n * Sort points in ascending order\n * @param a - First point\n * @param b - Second point\n * @returns Sort order\n */\nconst sortPoints = (a, b) => {\n return a[1] - b[1] || a[3] - b[3];\n};\n/**\n * @param runs\n * @returns Points\n */\nconst generatePoints = (runs) => {\n const result = runs.reduce((acc, run, i) => {\n return acc.concat([\n ['start', run.start, run.attributes, i],\n ['end', run.end, run.attributes, i],\n ]);\n }, []);\n return result.sort(sortPoints);\n};\n/**\n * @param runs\n * @returns Merged runs\n */\nconst mergeRuns = (runs) => {\n return runs.reduce((acc, run) => {\n const attributes = Object.assign({}, acc.attributes, run.attributes);\n return Object.assign({}, run, { attributes });\n }, {});\n};\n/**\n * @param runs\n * @returns Grouped runs\n */\nconst groupEmptyRuns = (runs) => {\n const groups = runs.reduce((acc, run) => {\n if (!acc[run.start])\n acc[run.start] = [];\n acc[run.start].push(run);\n return acc;\n }, []);\n return Object.values(groups);\n};\n/**\n * @param runs\n * @returns Flattened runs\n */\nconst flattenEmptyRuns = (runs) => {\n return groupEmptyRuns(runs).map(mergeRuns);\n};\n/**\n * @param runs\n * @returns Flattened runs\n */\nconst flattenRegularRuns = (runs) => {\n const res = [];\n const points = generatePoints(runs);\n let start = -1;\n let attrs = {};\n const stack = [];\n for (let i = 0; i < points.length; i += 1) {\n const [type, offset, attributes] = points[i];\n if (start !== -1 && start < offset) {\n res.push({\n start,\n end: offset,\n attributes: attrs,\n glyphIndices: [],\n glyphs: [],\n positions: [],\n });\n }\n if (type === 'start') {\n stack.push(attributes);\n attrs = Object.assign({}, attrs, attributes);\n }\n else {\n attrs = {};\n for (let j = 0; j < stack.length; j += 1) {\n if (stack[j] === attributes) {\n stack.splice(j--, 1);\n }\n else {\n attrs = Object.assign({}, attrs, stack[j]);\n }\n }\n }\n start = offset;\n }\n return res;\n};\n/**\n * Flatten many runs\n *\n * @param runs\n * @returns Flattened runs\n */\nconst flatten = (runs = []) => {\n const emptyRuns = flattenEmptyRuns(runs.filter((run) => isEmpty(run)));\n const regularRuns = flattenRegularRuns(runs.filter((run) => !isEmpty(run)));\n return sort(emptyRuns.concat(regularRuns));\n};\n\n/**\n * Returns empty attributed string\n *\n * @returns Empty attributed string\n */\nconst empty = () => ({ string: '', runs: [] });\n\n/**\n *\n * @param attributedString\n * @returns Attributed string without font\n */\nconst omitFont = (attributedString) => {\n const runs = attributedString.runs.map((run) => omit('font', run));\n return Object.assign({}, attributedString, { runs });\n};\n/**\n * Performs font substitution and script itemization on attributed string\n *\n * @param engines - engines\n */\nconst preprocessRuns = (engines) => {\n /**\n * @param attributedString - Attributed string\n * @returns Processed attributed string\n */\n return (attributedString) => {\n if (isNil(attributedString))\n return empty();\n const { string } = attributedString;\n const { fontSubstitution, scriptItemizer, bidi } = engines;\n const { runs: omittedFontRuns } = omitFont(attributedString);\n const { runs: itemizationRuns } = scriptItemizer()(attributedString);\n const { runs: substitutedRuns } = fontSubstitution()(attributedString);\n const { runs: bidiRuns } = bidi()(attributedString);\n const runs = bidiRuns\n .concat(substitutedRuns)\n .concat(itemizationRuns)\n .concat(omittedFontRuns);\n return { string, runs: flatten(runs) };\n };\n};\n\n/**\n * Breaks attributed string into paragraphs\n */\nconst splitParagraphs = () => {\n /**\n * @param attributedString - Attributed string\n * @returns Paragraphs attributed strings\n */\n return (attributedString) => {\n const paragraphs = [];\n let start = 0;\n let breakPoint = attributedString.string.indexOf('\\n') + 1;\n while (breakPoint > 0) {\n paragraphs.push(slice(start, breakPoint, attributedString));\n start = breakPoint;\n breakPoint = attributedString.string.indexOf('\\n', breakPoint) + 1;\n }\n if (start === 0) {\n paragraphs.push(attributedString);\n }\n else if (start < attributedString.string.length) {\n paragraphs.push(slice(start, length$1(attributedString), attributedString));\n }\n return paragraphs;\n };\n};\n\n/**\n * Return positions advance width\n *\n * @param positions - Positions\n * @returns {number} advance width\n */\nconst advanceWidth$2 = (positions) => {\n return positions.reduce((acc, pos) => acc + (pos.xAdvance || 0), 0);\n};\n\n/**\n * Return run advance width\n *\n * @param run - Run\n * @returns Advance width\n */\nconst advanceWidth$1 = (run) => {\n return advanceWidth$2(run.positions || []);\n};\n\n/**\n * Returns attributed string advancewidth\n *\n * @param attributedString - Attributed string\n * @returns Advance width\n */\nconst advanceWidth = (attributedString) => {\n const reducer = (acc, run) => acc + advanceWidth$1(run);\n return attributedString.runs.reduce(reducer, 0);\n};\n\nconst WHITE_SPACES_CODE = 32;\n/**\n * Check if glyph is white space\n *\n * @param glyph - Glyph\n * @returns Whether glyph is white space\n * */\nconst isWhiteSpace = (glyph) => {\n const codePoints = glyph?.codePoints || [];\n return codePoints.includes(WHITE_SPACES_CODE);\n};\n\n/**\n * Get white space leading positions\n *\n * @param run - Run\n * @returns White space leading positions\n */\nconst leadingPositions = (run) => {\n const glyphs = run.glyphs || [];\n const positions = run.positions || [];\n const leadingWhitespaces = glyphs.findIndex((g) => !isWhiteSpace(g));\n return positions.slice(0, leadingWhitespaces);\n};\n/**\n * Get run leading white space offset\n *\n * @param run - Run\n * @returns Leading white space offset\n */\nconst leadingOffset$1 = (run) => {\n const positions = leadingPositions(run);\n return positions.reduce((acc, pos) => acc + (pos.xAdvance || 0), 0);\n};\n\n/**\n * Get attributed string leading white space offset\n *\n * @param attributedString - Attributed string\n * @returns Leading white space offset\n */\nconst leadingOffset = (attributedString) => {\n const runs = attributedString.runs || [];\n return leadingOffset$1(runs[0]);\n};\n\n/**\n * Get white space trailing positions\n *\n * @param run run\n * @returns White space trailing positions\n */\nconst trailingPositions = (run) => {\n const glyphs = reverse(run.glyphs || []);\n const positions = reverse(run.positions || []);\n const leadingWhitespaces = glyphs.findIndex((g) => !isWhiteSpace(g));\n return positions.slice(0, leadingWhitespaces);\n};\n/**\n * Get run trailing white space offset\n *\n * @param run - Run\n * @returns Trailing white space offset\n */\nconst trailingOffset$1 = (run) => {\n const positions = trailingPositions(run);\n return positions.reduce((acc, pos) => acc + (pos.xAdvance || 0), 0);\n};\n\n/**\n * Get attributed string trailing white space offset\n *\n * @param attributedString - Attributed string\n * @returns Trailing white space offset\n */\nconst trailingOffset = (attributedString) => {\n const runs = attributedString.runs || [];\n return trailingOffset$1(last(runs));\n};\n\n/**\n * Drop last char of run\n *\n * @param run - Run\n * @returns Run without last char\n */\nconst dropLast$1 = (run) => {\n return slice$1(0, run.end - run.start - 1, run);\n};\n\n/**\n * Drop last glyph\n *\n * @param attributedString - Attributed string\n * @returns Attributed string with new glyph\n */\nconst dropLast = (attributedString) => {\n const string = dropLast$2(attributedString.string);\n const runs = adjust(-1, dropLast$1, attributedString.runs);\n return Object.assign({}, attributedString, { string, runs });\n};\n\nconst ALIGNMENT_FACTORS = { center: 0.5, right: 1 };\n/**\n * Remove new line char at the end of line if present\n *\n * @param line\n * @returns Line\n */\nconst removeNewLine = (line) => {\n return last(line.string) === '\\n' ? dropLast(line) : line;\n};\nconst getOverflowLeft = (line) => {\n return leadingOffset(line) + (line.overflowLeft || 0);\n};\nconst getOverflowRight = (line) => {\n return trailingOffset(line) + (line.overflowRight || 0);\n};\n/**\n * Ignore whitespace at the start and end of a line for alignment\n *\n * @param line\n * @returns Line\n */\nconst adjustOverflow = (line) => {\n const overflowLeft = getOverflowLeft(line);\n const overflowRight = getOverflowRight(line);\n const x = line.box.x - overflowLeft;\n const width = line.box.width + overflowLeft + overflowRight;\n const box = Object.assign({}, line.box, { x, width });\n return Object.assign({}, line, { box, overflowLeft, overflowRight });\n};\n/**\n * Performs line justification by calling appropiate engine\n *\n * @param engines - Engines\n * @param options - Layout options\n * @param align - Text align\n */\nconst justifyLine$1 = (engines, options, align) => {\n /**\n * @param line - Line\n * @returns Line\n */\n return (line) => {\n const lineWidth = advanceWidth(line);\n const alignFactor = ALIGNMENT_FACTORS[align] || 0;\n const remainingWidth = Math.max(0, line.box.width - lineWidth);\n const shouldJustify = align === 'justify' || lineWidth > line.box.width;\n const x = line.box.x + remainingWidth * alignFactor;\n const box = Object.assign({}, line.box, { x });\n const newLine = Object.assign({}, line, { box });\n return shouldJustify ? engines.justification(options)(newLine) : newLine;\n };\n};\nconst finalizeLine = (line) => {\n let lineAscent = 0;\n let lineDescent = 0;\n let lineHeight = 0;\n let lineXAdvance = 0;\n const runs = line.runs.map((run) => {\n const height = height$1(run);\n const ascent = ascent$1(run);\n const descent$1 = descent(run);\n const xAdvance = advanceWidth$1(run);\n lineHeight = Math.max(lineHeight, height);\n lineAscent = Math.max(lineAscent, ascent);\n lineDescent = Math.max(lineDescent, descent$1);\n lineXAdvance += xAdvance;\n return Object.assign({}, run, { height, ascent, descent: descent$1, xAdvance });\n });\n return Object.assign({}, line, {\n runs,\n height: lineHeight,\n ascent: lineAscent,\n descent: lineDescent,\n xAdvance: lineXAdvance,\n });\n};\n/**\n * Finalize line by performing line justification\n * and text decoration (using appropiate engines)\n *\n * @param engines - Engines\n * @param options - Layout options\n */\nconst finalizeBlock = (engines, options) => {\n /**\n * @param line - Line\n * @param i - Line index\n * @param lines - Total lines\n * @returns Line\n */\n return (line, index, lines) => {\n const isLastFragment = index === lines.length - 1;\n const style = line.runs?.[0]?.attributes || {};\n const align = isLastFragment ? style.alignLastLine : style.align;\n return compose(finalizeLine, engines.textDecoration(), justifyLine$1(engines, options, align), adjustOverflow, removeNewLine)(line);\n };\n};\n/**\n * Finalize line block by performing line justification\n * and text decoration (using appropiate engines)\n *\n * @param engines - Engines\n * @param options - Layout options\n */\nconst finalizeFragments = (engines, options) => {\n /**\n * @param paragraphs - Paragraphs\n * @returns Paragraphs\n */\n return (paragraphs) => {\n const blockFinalizer = finalizeBlock(engines, options);\n return paragraphs.map((paragraph) => paragraph.map(blockFinalizer));\n };\n};\n\nconst ATTACHMENT_CODE = 0xfffc; // 65532\nconst isReplaceGlyph = (glyph) => glyph.codePoints.includes(ATTACHMENT_CODE);\n/**\n * Resolve attachments of run\n *\n * @param run\n * @returns Run\n */\nconst resolveRunAttachments = (run) => {\n if (!run.positions)\n return run;\n const glyphs = run.glyphs || [];\n const attachment = run.attributes?.attachment;\n if (!attachment)\n return run;\n const positions = run.positions.map((position, i) => {\n const glyph = glyphs[i];\n if (attachment.width && isReplaceGlyph(glyph)) {\n return Object.assign({}, position, { xAdvance: attachment.width });\n }\n return Object.assign({}, position);\n });\n return Object.assign({}, run, { positions });\n};\n/**\n * Resolve attachments for multiple paragraphs\n */\nconst resolveAttachments = () => {\n /**\n * @param attributedString - Attributed string\n * @returns Attributed string\n */\n return (attributedString) => {\n const runs = attributedString.runs.map(resolveRunAttachments);\n const res = Object.assign({}, attributedString, { runs });\n return res;\n };\n};\n\n/**\n * @param attributes - Attributes\n * @returns Attributes with defaults\n */\nconst applyAttributes = (a) => {\n return {\n align: a.align || (a.direction === 'rtl' ? 'right' : 'left'),\n alignLastLine: a.alignLastLine || (a.align === 'justify' ? 'left' : a.align || 'left'),\n attachment: a.attachment || null,\n backgroundColor: a.backgroundColor || null,\n bullet: a.bullet || null,\n characterSpacing: a.characterSpacing || 0,\n color: a.color || 'black',\n direction: a.direction || 'ltr',\n features: a.features || [],\n fill: a.fill !== false,\n font: a.font || [],\n fontSize: a.fontSize || 12,\n hangingPunctuation: a.hangingPunctuation || false,\n hyphenationFactor: a.hyphenationFactor || 0,\n indent: a.indent || 0,\n justificationFactor: a.justificationFactor || 1,\n lineHeight: a.lineHeight || null,\n lineSpacing: a.lineSpacing || 0,\n link: a.link || null,\n marginLeft: a.marginLeft || a.margin || 0,\n marginRight: a.marginRight || a.margin || 0,\n opacity: a.opacity,\n paddingTop: a.paddingTop || a.padding || 0,\n paragraphSpacing: a.paragraphSpacing || 0,\n script: a.script || null,\n shrinkFactor: a.shrinkFactor || 0,\n strike: a.strike || false,\n strikeColor: a.strikeColor || a.color || 'black',\n strikeStyle: a.strikeStyle || 'solid',\n stroke: a.stroke || false,\n underline: a.underline || false,\n underlineColor: a.underlineColor || a.color || 'black',\n underlineStyle: a.underlineStyle || 'solid',\n verticalAlign: a.verticalAlign || null,\n wordSpacing: a.wordSpacing || 0,\n yOffset: a.yOffset || 0,\n };\n};\n/**\n * Apply default style to run\n *\n * @param run - Run\n * @returns Run with default styles\n */\nconst applyRunStyles = (run) => {\n const attributes = applyAttributes(run.attributes);\n return Object.assign({}, run, { attributes });\n};\n/**\n * Apply default attributes for an attributed string\n */\nconst applyDefaultStyles = () => {\n return (attributedString) => {\n const string = attributedString.string || '';\n const runs = (attributedString.runs || []).map(applyRunStyles);\n return { string, runs };\n };\n};\n\n/**\n * Apply scaling and yOffset for verticalAlign 'sub' and 'super'.\n */\nconst verticalAlignment = () => {\n /**\n * @param attributedString - Attributed string\n * @returns Attributed string\n */\n return (attributedString) => {\n attributedString.runs.forEach((run) => {\n const { attributes } = run;\n const { verticalAlign } = attributes;\n if (verticalAlign === 'sub') {\n attributes.yOffset = -0.2;\n }\n else if (verticalAlign === 'super') {\n attributes.yOffset = 0.4;\n }\n });\n return attributedString;\n };\n};\n\nconst bidi$1 = bidiFactory();\n/**\n * @param runs\n * @returns Bidi levels\n */\nconst getBidiLevels = (runs) => {\n return runs.reduce((acc, run) => {\n const length = run.end - run.start;\n const levels = repeat(run.attributes.bidiLevel, length);\n return acc.concat(levels);\n }, []);\n};\n/**\n * Perform bidi mirroring\n */\nconst mirrorString = () => {\n /**\n * @param attributedString - Attributed string\n * @returns Attributed string\n */\n return (attributedString) => {\n const levels = getBidiLevels(attributedString.runs);\n let updatedString = '';\n attributedString.string.split('').forEach((char, index) => {\n const isRTL = levels[index] % 2 === 1;\n const mirroredChar = isRTL\n ? bidi$1.getMirroredCharacter(attributedString.string.charAt(index))\n : null;\n updatedString += mirroredChar || char;\n });\n const result = {\n ...attributedString,\n string: updatedString,\n };\n return result;\n };\n};\n\n/**\n * A LayoutEngine is the main object that performs text layout.\n * It accepts an AttributedString and a Container object\n * to layout text into, and uses several helper objects to perform\n * various layout tasks. These objects can be overridden to customize\n * layout behavior.\n */\nconst layoutEngine = (engines) => {\n return (attributedString, container, options = {}) => {\n const processParagraph = compose(resolveYOffset(), resolveAttachments(), verticalAlignment(), wrapWords(engines, options), generateGlyphs(), mirrorString(), preprocessRuns(engines));\n const processParagraphs = (paragraphs) => paragraphs.map(processParagraph);\n return compose(finalizeFragments(engines, options), bidiReordering(), typesetter(engines, options, container), processParagraphs, splitParagraphs(), applyDefaultStyles())(attributedString);\n };\n};\n\nconst bidi = bidiFactory();\nconst bidiEngine = () => {\n /**\n * @param attributedString - Attributed string\n * @returns Attributed string\n */\n return (attributedString) => {\n const { string } = attributedString;\n const direction = attributedString.runs[0]?.attributes.direction;\n const { levels } = bidi.getEmbeddingLevels(string, direction);\n let lastLevel = null;\n let lastIndex = 0;\n let index = 0;\n const runs = [];\n for (let i = 0; i < levels.length; i += 1) {\n const level = levels[i];\n if (level !== lastLevel) {\n if (lastLevel !== null) {\n runs.push({\n start: lastIndex,\n end: index,\n attributes: { bidiLevel: lastLevel },\n });\n }\n lastIndex = index;\n lastLevel = level;\n }\n index += 1;\n }\n if (lastIndex < string.length) {\n runs.push({\n start: lastIndex,\n end: string.length,\n attributes: { bidiLevel: lastLevel },\n });\n }\n const result = { string, runs };\n return result;\n };\n};\n\nconst INFINITY = 10000;\nconst getNextBreakpoint = (subnodes, widths, lineNumber) => {\n let position = null;\n let minimumBadness = Infinity;\n const sum = { width: 0, stretch: 0, shrink: 0 };\n const lineLength = widths[Math.min(lineNumber, widths.length - 1)];\n const calculateRatio = (node) => {\n const stretch = 'stretch' in node ? node.stretch : null;\n if (sum.width < lineLength) {\n if (!stretch)\n return INFINITY;\n return sum.stretch - stretch > 0\n ? (lineLength - sum.width) / sum.stretch\n : INFINITY;\n }\n const shrink = 'shrink' in node ? node.shrink : null;\n if (sum.width > lineLength) {\n if (!shrink)\n return INFINITY;\n return sum.shrink - shrink > 0\n ? (lineLength - sum.width) / sum.shrink\n : INFINITY;\n }\n return 0;\n };\n for (let i = 0; i < subnodes.length; i += 1) {\n const node = subnodes[i];\n if (node.type === 'box') {\n sum.width += node.width;\n }\n if (node.type === 'glue') {\n sum.width += node.width;\n sum.stretch += node.stretch;\n sum.shrink += node.shrink;\n }\n if (sum.width - sum.shrink > lineLength) {\n if (position === null) {\n let j = i === 0 ? i + 1 : i;\n while (j < subnodes.length &&\n (subnodes[j].type === 'glue' || subnodes[j].type === 'penalty')) {\n j++;\n }\n position = j - 1;\n }\n break;\n }\n if (node.type === 'penalty' || node.type === 'glue') {\n const ratio = calculateRatio(node);\n const penalty = node.type === 'penalty' ? node.penalty : 0;\n const badness = 100 * Math.abs(ratio) ** 3 + penalty;\n if (minimumBadness >= badness) {\n position = i;\n minimumBadness = badness;\n }\n }\n }\n return sum.width - sum.shrink > lineLength ? position : null;\n};\nconst applyBestFit = (nodes, widths) => {\n let count = 0;\n let lineNumber = 0;\n let subnodes = nodes;\n const breakpoints = [0];\n while (subnodes.length > 0) {\n const breakpoint = getNextBreakpoint(subnodes, widths, lineNumber);\n if (breakpoint !== null) {\n count += breakpoint;\n breakpoints.push(count);\n subnodes = subnodes.slice(breakpoint + 1, subnodes.length);\n count++;\n lineNumber++;\n }\n else {\n subnodes = [];\n }\n }\n return breakpoints;\n};\n\n/* eslint-disable max-classes-per-file */\nclass LinkedListNode {\n data;\n prev;\n next;\n constructor(data) {\n this.data = data;\n this.prev = null;\n this.next = null;\n }\n}\nclass LinkedList {\n static Node = LinkedListNode;\n head;\n tail;\n listSize;\n listLength;\n constructor() {\n this.head = null;\n this.tail = null;\n this.listSize = 0;\n this.listLength = 0;\n }\n isLinked(node) {\n return !((node &&\n node.prev === null &&\n node.next === null &&\n this.tail !== node &&\n this.head !== node) ||\n this.isEmpty());\n }\n size() {\n return this.listSize;\n }\n isEmpty() {\n return this.listSize === 0;\n }\n first() {\n return this.head;\n }\n last() {\n return this.last;\n }\n forEach(callback) {\n let node = this.head;\n while (node !== null) {\n callback(node);\n node = node.next;\n }\n }\n at(i) {\n let node = this.head;\n let index = 0;\n if (i >= this.listLength || i < 0) {\n return null;\n }\n while (node !== null) {\n if (i === index) {\n return node;\n }\n node = node.next;\n index += 1;\n }\n return null;\n }\n insertAfter(node, newNode) {\n if (!this.isLinked(node))\n return this;\n newNode.prev = node;\n newNode.next = node.next;\n if (node.next === null) {\n this.tail = newNode;\n }\n else {\n node.next.prev = newNode;\n }\n node.next = newNode;\n this.listSize += 1;\n return this;\n }\n insertBefore(node, newNode) {\n if (!this.isLinked(node))\n return this;\n newNode.prev = node.prev;\n newNode.next = node;\n if (node.prev === null) {\n this.head = newNode;\n }\n else {\n node.prev.next = newNode;\n }\n node.prev = newNode;\n this.listSize += 1;\n return this;\n }\n push(node) {\n if (this.head === null) {\n this.unshift(node);\n }\n else {\n this.insertAfter(this.tail, node);\n }\n return this;\n }\n unshift(node) {\n if (this.head === null) {\n this.head = node;\n this.tail = node;\n node.prev = null;\n node.next = null;\n this.listSize += 1;\n }\n else {\n this.insertBefore(this.head, node);\n }\n return this;\n }\n remove(node) {\n if (!this.isLinked(node))\n return this;\n if (node.prev === null) {\n this.head = node.next;\n }\n else {\n node.prev.next = node.next;\n }\n if (node.next === null) {\n this.tail = node.prev;\n }\n else {\n node.next.prev = node.prev;\n }\n this.listSize -= 1;\n return this;\n }\n}\n\n/**\n * Licensed under the new BSD License.\n * Copyright 2009-2010, Bram Stein\n * All rights reserved.\n */\nfunction breakpoint(position, demerits, line, fitnessClass, totals, previous) {\n return {\n position,\n demerits,\n line,\n fitnessClass,\n totals: totals || {\n width: 0,\n stretch: 0,\n shrink: 0,\n },\n previous,\n };\n}\nfunction computeCost(nodes, lineLengths, sum, end, active, currentLine) {\n let width = sum.width - active.totals.width;\n let stretch = 0;\n let shrink = 0;\n // If the current line index is within the list of linelengths, use it, otherwise use\n // the last line length of the list.\n const lineLength = currentLine < lineLengths.length\n ? lineLengths[currentLine - 1]\n : lineLengths[lineLengths.length - 1];\n if (nodes[end].type === 'penalty') {\n width += nodes[end].width;\n }\n // Calculate the stretch ratio\n if (width < lineLength) {\n stretch = sum.stretch - active.totals.stretch;\n if (stretch > 0) {\n return (lineLength - width) / stretch;\n }\n return linebreak.infinity;\n }\n // Calculate the shrink ratio\n if (width > lineLength) {\n shrink = sum.shrink - active.totals.shrink;\n if (shrink > 0) {\n return (lineLength - width) / shrink;\n }\n return linebreak.infinity;\n }\n // perfect match\n return 0;\n}\n// Add width, stretch and shrink values from the current\n// break point up to the next box or forced penalty.\nfunction computeSum(nodes, sum, breakPointIndex) {\n const result = {\n width: sum.width,\n stretch: sum.stretch,\n shrink: sum.shrink,\n };\n for (let i = breakPointIndex; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.type === 'glue') {\n result.width += node.width;\n result.stretch += node.stretch;\n result.shrink += node.shrink;\n }\n else if (node.type === 'box' ||\n (node.type === 'penalty' &&\n node.penalty === -linebreak.infinity &&\n i > breakPointIndex)) {\n break;\n }\n }\n return result;\n}\nfunction findBestBreakpoints(activeNodes) {\n const breakpoints = [];\n if (activeNodes.size() === 0)\n return [];\n let tmp = { data: { demerits: Infinity } };\n // Find the best active node (the one with the least total demerits.)\n activeNodes.forEach((node) => {\n if (node.data.demerits < tmp.data.demerits) {\n tmp = node;\n }\n });\n while (tmp !== null) {\n breakpoints.push(tmp.data.position);\n tmp = tmp.data.previous;\n }\n return breakpoints.reverse();\n}\n/**\n * @param nodes\n * @param availableWidths\n * @param tolerance\n * @preserve Knuth and Plass line breaking algorithm in JavaScript\n */\nconst linebreak = (nodes, availableWidths, tolerance) => {\n // Demerits are used as a way to penalize bad line breaks\n // - line: applied to each line, depending on how much spaces need to stretch or shrink\n // - flagged: applied when consecutive lines end in hyphenation\n // - fitness: algorithm groups lines into fitness classes based on how loose or tight the spacing is.\n // if a paragraph has consecutive lines from different fitness classes,\n // a fitness demerit is applied to maintain visual consistency.\n const options = {\n demerits: { line: 10, flagged: 100, fitness: 3000 },\n tolerance: tolerance || 3,\n };\n const activeNodes = new LinkedList();\n const sum = { width: 0, stretch: 0, shrink: 0 };\n const lineLengths = availableWidths;\n // Add an active node for the start of the paragraph.\n activeNodes.push(new LinkedList.Node(breakpoint(0, 0, 0, 0, undefined, null)));\n // The main loop of the algorithm\n function mainLoop(node, index, nodes) {\n let active = activeNodes.first();\n // The inner loop iterates through all the active nodes with line < currentLine and then\n // breaks out to insert the new active node candidates before looking at the next active\n // nodes for the next lines. The result of this is that the active node list is always\n // sorted by line number.\n while (active !== null) {\n let currentLine = 0;\n // Candidates fo each fitness class\n const candidates = [\n { active: undefined, demerits: Infinity },\n { active: undefined, demerits: Infinity },\n { active: undefined, demerits: Infinity },\n { active: undefined, demerits: Infinity },\n ];\n // Iterate through the linked list of active nodes to find new potential active nodes and deactivate current active nodes.\n while (active !== null) {\n currentLine = active.data.line + 1;\n const ratio = computeCost(nodes, lineLengths, sum, index, active.data, currentLine);\n // Deactive nodes when the distance between the current active node and the\n // current node becomes too large (i.e. it exceeds the stretch limit and the stretch\n // ratio becomes negative) or when the current node is a forced break (i.e. the end\n // of the paragraph when we want to remove all active nodes, but possibly have a final\n // candidate active node---if the paragraph can be set using the given tolerance value.)\n if (ratio < -1 ||\n (node.type === 'penalty' && node.penalty === -linebreak.infinity)) {\n activeNodes.remove(active);\n }\n // If the ratio is within the valid range of -1 <= ratio <= tolerance calculate the\n // total demerits and record a candidate active node.\n if (ratio >= -1 && ratio <= options.tolerance) {\n const badness = 100 * Math.pow(Math.abs(ratio), 3);\n let demerits = 0;\n // Positive penalty\n if (node.type === 'penalty' && node.penalty >= 0) {\n demerits =\n Math.pow(options.demerits.line + badness, 2) +\n Math.pow(node.penalty, 2);\n // Negative penalty but not a forced break\n }\n else if (node.type === 'penalty' &&\n node.penalty !== -linebreak.infinity) {\n demerits =\n Math.pow(options.demerits.line + badness, 2) -\n Math.pow(node.penalty, 2);\n // All other cases\n }\n else {\n demerits = Math.pow(options.demerits.line + badness, 2);\n }\n if (node.type === 'penalty' &&\n nodes[active.data.position].type === 'penalty') {\n demerits +=\n options.demerits.flagged *\n node.flagged *\n // @ts-expect-error node is penalty here\n nodes[active.data.position].flagged;\n }\n // Calculate the fitness class for this candidate active node.\n let currentClass;\n if (ratio < -0.5) {\n currentClass = 0;\n }\n else if (ratio <= 0.5) {\n currentClass = 1;\n }\n else if (ratio <= 1) {\n currentClass = 2;\n }\n else {\n currentClass = 3;\n }\n // Add a fitness penalty to the demerits if the fitness classes of two adjacent lines differ too much.\n if (Math.abs(currentClass - active.data.fitnessClass) > 1) {\n demerits += options.demerits.fitness;\n }\n // Add the total demerits of the active node to get the total demerits of this candidate node.\n demerits += active.data.demerits;\n // Only store the best candidate for each fitness class\n if (demerits < candidates[currentClass].demerits) {\n candidates[currentClass] = { active, demerits };\n }\n }\n active = active.next;\n // Stop iterating through active nodes to insert new candidate active nodes in the active list\n // before moving on to the active nodes for the next line.\n // TODO: The Knuth and Plass paper suggests a conditional for currentLine < j0. This means paragraphs\n // with identical line lengths will not be sorted by line number. Find out if that is a desirable outcome.\n // For now I left this out, as it only adds minimal overhead to the algorithm and keeping the active node\n // list sorted has a higher priority.\n if (active !== null && active.data.line >= currentLine) {\n break;\n }\n }\n const tmpSum = computeSum(nodes, sum, index);\n for (let fitnessClass = 0; fitnessClass < candidates.length; fitnessClass += 1) {\n const candidate = candidates[fitnessClass];\n if (candidate.demerits === Infinity)\n continue;\n const newNode = new LinkedList.Node(breakpoint(index, candidate.demerits, candidate.active.data.line + 1, fitnessClass, tmpSum, candidate.active));\n if (active !== null) {\n activeNodes.insertBefore(active, newNode);\n }\n else {\n activeNodes.push(newNode);\n }\n }\n }\n }\n nodes.forEach((node, index, nodes) => {\n if (node.type === 'box') {\n sum.width += node.width;\n return;\n }\n if (node.type === 'glue') {\n const precedesBox = index > 0 && nodes[index - 1].type === 'box';\n if (precedesBox)\n mainLoop(node, index, nodes);\n sum.width += node.width;\n sum.stretch += node.stretch;\n sum.shrink += node.shrink;\n return;\n }\n if (node.type === 'penalty' && node.penalty !== linebreak.infinity) {\n mainLoop(node, index, nodes);\n }\n });\n return findBestBreakpoints(activeNodes);\n};\nlinebreak.infinity = 10000;\nlinebreak.glue = (width, start, end, stretch, shrink) => ({\n type: 'glue',\n start,\n end,\n width,\n stretch,\n shrink,\n});\nlinebreak.box = (width, start, end, hyphenated = false) => ({\n type: 'box',\n width,\n start,\n end,\n hyphenated,\n});\nlinebreak.penalty = (width, penalty, flagged) => ({\n type: 'penalty',\n width,\n penalty,\n flagged,\n});\n\n/**\n * Add scalar to run\n *\n * @param index - Scalar\n * @param run - Run\n * @returns Added run\n */\nconst add = (index, run) => {\n const start = run.start + index;\n const end = run.end + index;\n return Object.assign({}, run, { start, end });\n};\n\n/**\n * Get run length\n *\n * @param run - Run\n * @returns Length\n */\nconst length = (run) => {\n return run.end - run.start;\n};\n\n/**\n * Concats two runs into one\n *\n * @param runA - First run\n * @param runB - Second run\n * @returns Concatenated run\n */\nconst concat = (runA, runB) => {\n const end = runA.end + length(runB);\n const glyphs = (runA.glyphs || []).concat(runB.glyphs || []);\n const positions = (runA.positions || []).concat(runB.positions || []);\n const attributes = Object.assign({}, runA.attributes, runB.attributes);\n const runAIndices = runA.glyphIndices || [];\n const runALastIndex = last(runAIndices) || 0;\n const runBIndices = (runB.glyphIndices || []).map((i) => i + runALastIndex + 1);\n const glyphIndices = normalize(runAIndices.concat(runBIndices));\n return Object.assign({}, runA, {\n end,\n glyphs,\n positions,\n attributes,\n glyphIndices,\n });\n};\n\n/**\n * Insert glyph to run in the given index\n *\n * @param index - Index\n * @param glyph - Glyph\n * @param run - Run\n * @returns Run with glyph\n */\nconst insertGlyph$1 = (index, glyph, run) => {\n if (!glyph)\n return run;\n // Split resolves ligature splitting in case new glyph breaks some\n const leadingRun = slice$1(0, index, run);\n const trailingRun = slice$1(index, Infinity, run);\n return concat(append$1(glyph, leadingRun), trailingRun);\n};\n/**\n * Insert either glyph or code point to run in the given index\n *\n * @param index - Index\n * @param value - Glyph or codePoint\n * @param run - Run\n * @returns Run with glyph\n */\nconst insert = (index, value, run) => {\n const font = getFont(run);\n const glyph = isNumber(value) ? fromCodePoint(value, font) : value;\n return insertGlyph$1(index, glyph, run);\n};\n\n/**\n * Get run index at char index\n *\n * @param index - Char index\n * @param attributedString - Attributed string\n * @returns Run index\n */\nconst runIndexAt = (index, attributedString) => {\n return runIndexAt$1(index, attributedString.runs);\n};\n\n/**\n * Insert glyph into attributed string\n *\n * @param index - Index\n * @param glyph - Glyph or code point\n * @param attributedString - Attributed string\n * @returns Attributed string with new glyph\n */\nconst insertGlyph = (index, glyph, attributedString) => {\n const runIndex = runIndexAt(index, attributedString);\n // Add glyph to the end if run index invalid\n if (runIndex === -1)\n return append(glyph, attributedString);\n const codePoints = [glyph] ;\n const string = attributedString.string.slice(0, index) +\n stringFromCodePoints(codePoints) +\n attributedString.string.slice(index);\n const runs = attributedString.runs.map((run, i) => {\n if (i === runIndex)\n return insert(index - run.start, glyph, run);\n if (i > runIndex)\n return add(codePoints.length, run);\n return run;\n });\n return Object.assign({}, attributedString, { string, runs });\n};\n\n/**\n * Advance width between two string indices\n *\n * @param start - Glyph index\n * @param end - Glyph index\n * @param run - Run\n * @returns Advanced width run\n */\nconst advanceWidthBetween$1 = (start, end, run) => {\n const runStart = run.start || 0;\n const glyphStartIndex = Math.max(0, glyphIndexAt(start - runStart, run));\n const glyphEndIndex = Math.max(0, glyphIndexAt(end - runStart, run));\n const positions = (run.positions || []).slice(glyphStartIndex, glyphEndIndex);\n return advanceWidth$2(positions);\n};\n\n/**\n * Advance width between start and end\n * Does not consider ligature splitting for the moment.\n * Check performance impact on supporting this\n *\n * @param start - Start offset\n * @param end - End offset\n * @param attributedString\n * @returns Advance width\n */\nconst advanceWidthBetween = (start, end, attributedString) => {\n const runs = filter(start, end, attributedString.runs);\n return runs.reduce((acc, run) => acc + advanceWidthBetween$1(start, end, run), 0);\n};\n\nconst HYPHEN = 0x002d;\nconst TOLERANCE_STEPS = 5;\nconst TOLERANCE_LIMIT = 50;\nconst opts = {\n width: 3,\n stretch: 6,\n shrink: 9,\n};\n/**\n * Slice attributed string to many lines\n *\n * @param attributedString - Attributed string\n * @param nodes\n * @param breaks\n * @returns Attributed strings\n */\nconst breakLines = (attributedString, nodes, breaks) => {\n let start = 0;\n let end = null;\n const lines = breaks.reduce((acc, breakPoint) => {\n const node = nodes[breakPoint];\n const prevNode = nodes[breakPoint - 1];\n // Last breakpoint corresponds to K&P mandatory final glue\n if (breakPoint === nodes.length - 1)\n return acc;\n let line;\n if (node.type === 'penalty') {\n // @ts-expect-error penalty node will always preceed box or glue node\n end = prevNode.end;\n line = slice(start, end, attributedString);\n line = insertGlyph(line.string.length, HYPHEN, line);\n }\n else {\n end = node.end;\n line = slice(start, end, attributedString);\n }\n start = end;\n return [...acc, line];\n }, []);\n // Last line\n lines.push(slice(start, attributedString.string.length, attributedString));\n return lines;\n};\n/**\n * Return Knuth & Plass nodes based on line and previously calculated syllables\n *\n * @param attributedString - Attributed string\n * @param attributes - Attributes\n * @param options - Layout options\n * @returns ?\n */\nconst getNodes = (attributedString, { align }, options) => {\n let start = 0;\n const hyphenWidth = 5;\n const { syllables } = attributedString;\n const hyphenPenalty = options.hyphenationPenalty || (align === 'justify' ? 100 : 600);\n const result = syllables.reduce((acc, s, index) => {\n const width = advanceWidthBetween(start, start + s.length, attributedString);\n if (s.trim() === '') {\n const stretch = (width * opts.width) / opts.stretch;\n const shrink = (width * opts.width) / opts.shrink;\n const end = start + s.length;\n // Add glue node. Glue nodes are used to fill the space between words.\n acc.push(linebreak.glue(width, start, end, stretch, shrink));\n }\n else {\n const hyphenated = syllables[index + 1] !== ' ';\n const end = start + s.length;\n // Add box node. Box nodes are used to represent words.\n acc.push(linebreak.box(width, start, end, hyphenated));\n if (syllables[index + 1] && hyphenated) {\n // Add penalty node. Penalty nodes are used to represent hyphenation points.\n acc.push(linebreak.penalty(hyphenWidth, hyphenPenalty, 1));\n }\n }\n start += s.length;\n return acc;\n }, []);\n // Add mandatory final glue\n result.push(linebreak.glue(0, start, start, linebreak.infinity, 0));\n result.push(linebreak.penalty(0, -linebreak.infinity, 1));\n return result;\n};\n/**\n * @param attributedString - Attributed string\n * @returns Attributes\n */\nconst getAttributes = (attributedString) => {\n return attributedString.runs?.[0]?.attributes || {};\n};\n/**\n * Performs Knuth & Plass line breaking algorithm\n * Fallbacks to best fit algorithm if latter not successful\n *\n * @param options - Layout options\n */\nconst linebreaker = (options) => {\n /**\n * @param attributedString - Attributed string\n * @param availableWidths - Available widths\n * @returns Attributed string\n */\n return (attributedString, availableWidths) => {\n let tolerance = options.tolerance || 4;\n const attributes = getAttributes(attributedString);\n const nodes = getNodes(attributedString, attributes, options);\n let breaks = linebreak(nodes, availableWidths, tolerance);\n // Try again with a higher tolerance if the line breaking failed.\n while (breaks.length === 0 && tolerance < TOLERANCE_LIMIT) {\n tolerance += TOLERANCE_STEPS;\n breaks = linebreak(nodes, availableWidths, tolerance);\n }\n if (breaks.length === 0 || (breaks.length === 1 && breaks[0] === 0)) {\n breaks = applyBestFit(nodes, availableWidths);\n }\n return breakLines(attributedString, nodes, breaks.slice(1));\n };\n};\n\nvar Direction;\n(function (Direction) {\n Direction[Direction[\"GROW\"] = 0] = \"GROW\";\n Direction[Direction[\"SHRINK\"] = 1] = \"SHRINK\";\n})(Direction || (Direction = {}));\nconst WHITESPACE_PRIORITY = 1;\nconst LETTER_PRIORITY = 2;\nconst EXPAND_WHITESPACE_FACTOR = {\n before: 0.5,\n after: 0.5,\n priority: WHITESPACE_PRIORITY,\n unconstrained: false,\n};\nconst EXPAND_CHAR_FACTOR = {\n before: 0.14453125, // 37/256\n after: 0.14453125,\n priority: LETTER_PRIORITY,\n unconstrained: false,\n};\nconst SHRINK_WHITESPACE_FACTOR = {\n before: -0.04296875, // -11/256\n after: -0.04296875,\n priority: WHITESPACE_PRIORITY,\n unconstrained: false,\n};\nconst SHRINK_CHAR_FACTOR = {\n before: -0.04296875,\n after: -0.04296875,\n priority: LETTER_PRIORITY,\n unconstrained: false,\n};\nconst getCharFactor = (direction, options) => {\n const expandCharFactor = options.expandCharFactor || {};\n const shrinkCharFactor = options.shrinkCharFactor || {};\n return direction === Direction.GROW\n ? Object.assign({}, EXPAND_CHAR_FACTOR, expandCharFactor)\n : Object.assign({}, SHRINK_CHAR_FACTOR, shrinkCharFactor);\n};\nconst getWhitespaceFactor = (direction, options) => {\n const expandWhitespaceFactor = options.expandWhitespaceFactor || {};\n const shrinkWhitespaceFactor = options.shrinkWhitespaceFactor || {};\n return direction === Direction.GROW\n ? Object.assign({}, EXPAND_WHITESPACE_FACTOR, expandWhitespaceFactor)\n : Object.assign({}, SHRINK_WHITESPACE_FACTOR, shrinkWhitespaceFactor);\n};\nconst factor = (direction, options) => (glyphs) => {\n const charFactor = getCharFactor(direction, options);\n const whitespaceFactor = getWhitespaceFactor(direction, options);\n const factors = [];\n for (let index = 0; index < glyphs.length; index += 1) {\n let f;\n const glyph = glyphs[index];\n if (isWhiteSpace(glyph)) {\n f = Object.assign({}, whitespaceFactor);\n if (index === glyphs.length - 1) {\n f.before = 0;\n if (index > 0) {\n factors[index - 1].after = 0;\n }\n }\n }\n else if (glyph.isMark && index > 0) {\n f = Object.assign({}, factors[index - 1]);\n f.before = 0;\n factors[index - 1].after = 0;\n }\n else {\n f = Object.assign({}, charFactor);\n }\n factors.push(f);\n }\n return factors;\n};\nconst getFactors = (gap, line, options) => {\n const direction = gap > 0 ? Direction.GROW : Direction.SHRINK;\n const getFactor = factor(direction, options);\n const factors = line.runs.reduce((acc, run) => {\n return acc.concat(getFactor(run.glyphs));\n }, []);\n factors[0].before = 0;\n factors[factors.length - 1].after = 0;\n return factors;\n};\n\nconst KASHIDA_PRIORITY = 0;\nconst NULL_PRIORITY = 3;\nconst getDistances = (gap, factors) => {\n let total = 0;\n const priorities = [];\n const unconstrained = [];\n for (let priority = KASHIDA_PRIORITY; priority <= NULL_PRIORITY; priority += 1) {\n priorities[priority] = unconstrained[priority] = 0;\n }\n // sum the factors at each priority\n for (let j = 0; j < factors.length; j += 1) {\n const f = factors[j];\n const sum = f.before + f.after;\n total += sum;\n priorities[f.priority] += sum;\n if (f.unconstrained) {\n unconstrained[f.priority] += sum;\n }\n }\n // choose the priorities that need to be applied\n let highestPriority = -1;\n let highestPrioritySum = 0;\n let remainingGap = gap;\n let priority;\n for (priority = KASHIDA_PRIORITY; priority <= NULL_PRIORITY; priority += 1) {\n const prioritySum = priorities[priority];\n if (prioritySum !== 0) {\n if (highestPriority === -1) {\n highestPriority = priority;\n highestPrioritySum = prioritySum;\n }\n // if this priority covers the remaining gap, we're done\n if (Math.abs(remainingGap) <= Math.abs(prioritySum)) {\n priorities[priority] = remainingGap / prioritySum;\n unconstrained[priority] = 0;\n remainingGap = 0;\n break;\n }\n // mark that we need to use 100% of the adjustment from\n // this priority, and subtract the space that it consumes\n priorities[priority] = 1;\n remainingGap -= prioritySum;\n // if this priority has unconstrained glyphs, let them consume the remaining space\n if (unconstrained[priority] !== 0) {\n unconstrained[priority] = remainingGap / unconstrained[priority];\n remainingGap = 0;\n break;\n }\n }\n }\n // zero out remaining priorities (if any)\n for (let p = priority + 1; p <= NULL_PRIORITY; p += 1) {\n priorities[p] = 0;\n unconstrained[p] = 0;\n }\n // if there is still space left over, assign it to the highest priority that we saw.\n // this violates their factors, but it only happens in extreme cases\n if (remainingGap > 0 && highestPriority > -1) {\n priorities[highestPriority] =\n (highestPrioritySum + (gap - total)) / highestPrioritySum;\n }\n // create and return an array of distances to add to each glyph's advance\n const distances = [];\n for (let index = 0; index < factors.length; index += 1) {\n // the distance to add to this glyph is the sum of the space to add\n // after this glyph, and the space to add before the next glyph\n const f = factors[index];\n const next = factors[index + 1];\n let dist = f.after * priorities[f.priority];\n if (next) {\n dist += next.before * priorities[next.priority];\n }\n // if this glyph is unconstrained, add the unconstrained distance as well\n if (f.unconstrained) {\n dist += f.after * unconstrained[f.priority];\n if (next) {\n dist += next.before * unconstrained[next.priority];\n }\n }\n distances.push(dist);\n }\n return distances;\n};\n\n/**\n * Adjust run positions by given distances\n *\n * @param distances\n * @param line\n * @returns Line\n */\nconst justifyLine = (distances, line) => {\n let index = 0;\n for (const run of line.runs) {\n for (const position of run.positions) {\n position.xAdvance += distances[index++];\n }\n }\n return line;\n};\n/**\n * A JustificationEngine is used by a Typesetter to perform line fragment\n * justification. This implementation is based on a description of Apple's\n * justification algorithm from a PDF in the Apple Font Tools package.\n *\n * @param options - Layout options\n */\nconst justification = (options) => {\n /**\n * @param line\n * @returns Line\n */\n return (line) => {\n const gap = line.box.width - advanceWidth(line);\n if (gap === 0)\n return line; // Exact fit\n const factors = getFactors(gap, line, options);\n const distances = getDistances(gap, factors);\n return justifyLine(distances, line);\n };\n};\n\n/**\n * Returns attributed string ascent\n *\n * @param attributedString - Attributed string\n * @returns Ascent\n */\nconst ascent = (attributedString) => {\n const reducer = (acc, run) => Math.max(acc, ascent$1(run));\n return attributedString.runs.reduce(reducer, 0);\n};\n\n// The base font size used for calculating underline thickness.\nconst BASE_FONT_SIZE = 12;\n/**\n * A TextDecorationEngine is used by a Typesetter to generate\n * DecorationLines for a line fragment, including underlines\n * and strikes.\n */\nconst textDecoration = () => (line) => {\n let x = line.overflowLeft || 0;\n const overflowRight = line.overflowRight || 0;\n const maxX = advanceWidth(line) - overflowRight;\n line.decorationLines = [];\n for (let i = 0; i < line.runs.length; i += 1) {\n const run = line.runs[i];\n const width = Math.min(maxX - x, advanceWidth$1(run));\n const thickness = Math.max(0.5, Math.floor(run.attributes.fontSize / BASE_FONT_SIZE));\n if (run.attributes.underline) {\n const rect = {\n x,\n y: ascent(line) + thickness * 2,\n width,\n height: thickness,\n };\n const decorationLine = {\n rect,\n opacity: run.attributes.opacity,\n color: run.attributes.underlineColor || 'black',\n style: run.attributes.underlineStyle || 'solid',\n };\n line.decorationLines.push(decorationLine);\n }\n if (run.attributes.strike) {\n const y = ascent(line) - ascent$1(run) / 3;\n const rect = { x, y, width, height: thickness };\n const decorationLine = {\n rect,\n opacity: run.attributes.opacity,\n color: run.attributes.strikeColor || 'black',\n style: run.attributes.strikeStyle || 'solid',\n };\n line.decorationLines.push(decorationLine);\n }\n x += width;\n }\n return line;\n};\n\nconst ignoredScripts = ['Common', 'Inherited', 'Unknown'];\n/**\n * Resolves unicode script in runs, grouping equal runs together\n */\nconst scriptItemizer = () => {\n /**\n * @param attributedString - Attributed string\n * @returns Attributed string\n */\n return (attributedString) => {\n const { string } = attributedString;\n let lastScript = 'Unknown';\n let lastIndex = 0;\n let index = 0;\n const runs = [];\n if (!string)\n return empty();\n for (let i = 0; i < string.length; i += 1) {\n const char = string[i];\n const codePoint = char.codePointAt(0);\n const script = unicode.getScript(codePoint);\n if (script !== lastScript && !ignoredScripts.includes(script)) {\n if (lastScript !== 'Unknown') {\n runs.push({\n start: lastIndex,\n end: index,\n attributes: { script: lastScript },\n });\n }\n lastIndex = index;\n lastScript = script;\n }\n index += char.length;\n }\n if (lastIndex < string.length) {\n runs.push({\n start: lastIndex,\n end: string.length,\n attributes: { script: lastScript },\n });\n }\n const result = { string, runs: runs };\n return result;\n };\n};\n\nconst SOFT_HYPHEN = '\\u00ad';\nconst hyphenator = hyphen(pattern);\n/**\n * @param word\n * @returns Word parts\n */\nconst splitHyphen = (word) => {\n return word.split(SOFT_HYPHEN);\n};\nconst cache = {};\n/**\n * @param word\n * @returns Word parts\n */\nconst getParts = (word) => {\n const base = word.includes(SOFT_HYPHEN) ? word : hyphenator(word);\n return splitHyphen(base);\n};\nconst wordHyphenation = () => {\n /**\n * @param word - Word\n * @returns Word parts\n */\n return (word) => {\n const cacheKey = `_${word}`;\n if (isNil(word))\n return [];\n if (cache[cacheKey])\n return cache[cacheKey];\n cache[cacheKey] = getParts(word);\n return cache[cacheKey];\n };\n};\n\nconst IGNORED_CODE_POINTS = [173];\nconst getFontSize = (run) => run.attributes.fontSize || 12;\nconst pickFontFromFontStack = (codePoint, fontStack, lastFont) => {\n const fontStackWithFallback = [...fontStack, lastFont];\n for (let i = 0; i < fontStackWithFallback.length; i += 1) {\n const font = fontStackWithFallback[i];\n if (!IGNORED_CODE_POINTS.includes(codePoint) &&\n font &&\n font.hasGlyphForCodePoint &&\n font.hasGlyphForCodePoint(codePoint)) {\n return font;\n }\n }\n return fontStack.at(-1);\n};\nconst fontSubstitution = () => ({ string, runs }) => {\n let lastFont = null;\n let lastFontSize = null;\n let lastIndex = 0;\n let index = 0;\n const res = [];\n for (let i = 0; i < runs.length; i += 1) {\n const run = runs[i];\n if (string.length === 0) {\n res.push({\n start: 0,\n end: 0,\n attributes: { font: run.attributes.font },\n });\n break;\n }\n const chars = string.slice(run.start, run.end);\n for (let j = 0; j < chars.length; j += 1) {\n const char = chars[j];\n const codePoint = char.codePointAt(0);\n // If the default font does not have a glyph and the fallback font does, we use it\n const font = pickFontFromFontStack(codePoint, run.attributes.font, lastFont);\n const fontSize = getFontSize(run);\n // If anything that would impact res has changed, update it\n if (font !== lastFont ||\n fontSize !== lastFontSize ||\n font.unitsPerEm !== lastFont.unitsPerEm) {\n if (lastFont) {\n res.push({\n start: lastIndex,\n end: index,\n attributes: {\n font: [lastFont],\n scale: lastFontSize / lastFont.unitsPerEm,\n },\n });\n }\n lastFont = font;\n lastFontSize = fontSize;\n lastIndex = index;\n }\n index += char.length;\n }\n }\n if (lastIndex < string.length) {\n const fontSize = getFontSize(last(runs));\n res.push({\n start: lastIndex,\n end: string.length,\n attributes: {\n font: [lastFont],\n scale: fontSize / lastFont.unitsPerEm,\n },\n });\n }\n return { string, runs: res };\n};\n\nexport { bidiEngine as bidi, layoutEngine as default, fontSubstitution, fromFragments, justification, linebreaker, scriptItemizer, textDecoration, wordHyphenation };\n","\nvar loadYoga = (() => {\n var _scriptDir = import.meta.url;\n \n return (\nfunction(loadYoga) {\n loadYoga = loadYoga || {};\n\n\nvar h;h||(h=typeof loadYoga !== 'undefined' ? loadYoga : {});var aa,ca;h.ready=new Promise(function(a,b){aa=a;ca=b});var da=Object.assign({},h),q=\"\";\"undefined\"!=typeof document&&document.currentScript&&(q=document.currentScript.src);_scriptDir&&(q=_scriptDir);0!==q.indexOf(\"blob:\")?q=q.substr(0,q.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):q=\"\";var ea=h.print||console.log.bind(console),v=h.printErr||console.warn.bind(console);Object.assign(h,da);da=null;var w;h.wasmBinary&&(w=h.wasmBinary);\nvar noExitRuntime=h.noExitRuntime||!0;\"object\"!=typeof WebAssembly&&x(\"no native wasm support detected\");var fa,ha=!1;function z(a,b,c){c=b+c;for(var d=\"\";!(b>=c);){var e=a[b++];if(!e)break;if(e&128){var f=a[b++]&63;if(192==(e&224))d+=String.fromCharCode((e&31)<<6|f);else{var g=a[b++]&63;e=224==(e&240)?(e&15)<<12|f<<6|g:(e&7)<<18|f<<12|g<<6|a[b++]&63;65536>e?d+=String.fromCharCode(e):(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023))}}else d+=String.fromCharCode(e)}return d}\nvar ia,ja,A,C,ka,D,E,la,ma;function na(){var a=fa.buffer;ia=a;h.HEAP8=ja=new Int8Array(a);h.HEAP16=C=new Int16Array(a);h.HEAP32=D=new Int32Array(a);h.HEAPU8=A=new Uint8Array(a);h.HEAPU16=ka=new Uint16Array(a);h.HEAPU32=E=new Uint32Array(a);h.HEAPF32=la=new Float32Array(a);h.HEAPF64=ma=new Float64Array(a)}var oa,pa=[],qa=[],ra=[];function sa(){var a=h.preRun.shift();pa.unshift(a)}var F=0,ta=null,G=null;\nfunction x(a){if(h.onAbort)h.onAbort(a);a=\"Aborted(\"+a+\")\";v(a);ha=!0;a=new WebAssembly.RuntimeError(a+\". Build with -sASSERTIONS for more info.\");ca(a);throw a;}function ua(a){return a.startsWith(\"data:application/octet-stream;base64,\")}var H;H=\"data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAH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IQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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\";if(!ua(H)){var va=H;H=h.locateFile?h.locateFile(va,q):q+va}\nfunction wa(){var a=H;try{if(a==H&&w)return new Uint8Array(w);if(ua(a))try{var b=xa(a.slice(37)),c=new Uint8Array(b.length);for(a=0;a<b.length;++a)c[a]=b.charCodeAt(a);var d=c}catch(f){throw Error(\"Converting base64 string to bytes failed.\");}else d=void 0;var e=d;if(e)return e;throw\"both async and sync fetching of the wasm failed\";}catch(f){x(f)}}\nfunction ya(){return w||\"function\"!=typeof fetch?Promise.resolve().then(function(){return wa()}):fetch(H,{credentials:\"same-origin\"}).then(function(a){if(!a.ok)throw\"failed to load wasm binary file at '\"+H+\"'\";return a.arrayBuffer()}).catch(function(){return wa()})}function za(a){for(;0<a.length;)a.shift()(h)}function Aa(a){if(void 0===a)return\"_unknown\";a=a.replace(/[^a-zA-Z0-9_]/g,\"$\");var b=a.charCodeAt(0);return 48<=b&&57>=b?\"_\"+a:a}\nfunction Ba(a,b){a=Aa(a);return function(){return b.apply(this,arguments)}}var J=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Ca=[];function Da(a){var b=Error,c=Ba(a,function(d){this.name=a;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+\"\\n\"+d.replace(/^Error(:[^\\n]*)?\\n/,\"\"))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+\": \"+this.message};return c}var K=void 0;\nfunction L(a){throw new K(a);}var M=a=>{a||L(\"Cannot use deleted val. handle = \"+a);return J[a].value},Ea=a=>{switch(a){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:var b=Ca.length?Ca.pop():J.length;J[b]={ga:1,value:a};return b}},Fa=void 0,Ga=void 0;function N(a){for(var b=\"\";A[a];)b+=Ga[A[a++]];return b}var O=[];function Ha(){for(;O.length;){var a=O.pop();a.M.$=!1;a[\"delete\"]()}}var P=void 0,Q={};\nfunction Ia(a,b){for(void 0===b&&L(\"ptr should not be undefined\");a.R;)b=a.ba(b),a=a.R;return b}var R={};function Ja(a){a=Ka(a);var b=N(a);S(a);return b}function La(a,b){var c=R[a];void 0===c&&L(b+\" has unknown type \"+Ja(a));return c}function Ma(){}var Na=!1;function Oa(a){--a.count.value;0===a.count.value&&(a.T?a.U.W(a.T):a.P.N.W(a.O))}function Pa(a,b,c){if(b===c)return a;if(void 0===c.R)return null;a=Pa(a,b,c.R);return null===a?null:c.na(a)}var Qa={};function Ra(a,b){b=Ia(a,b);return Q[b]}\nvar Sa=void 0;function Ta(a){throw new Sa(a);}function Ua(a,b){b.P&&b.O||Ta(\"makeClassHandle requires ptr and ptrType\");!!b.U!==!!b.T&&Ta(\"Both smartPtrType and smartPtr must be specified\");b.count={value:1};return T(Object.create(a,{M:{value:b}}))}function T(a){if(\"undefined\"===typeof FinalizationRegistry)return T=b=>b,a;Na=new FinalizationRegistry(b=>{Oa(b.M)});T=b=>{var c=b.M;c.T&&Na.register(b,{M:c},b);return b};Ma=b=>{Na.unregister(b)};return T(a)}var Va={};\nfunction Wa(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function Xa(a){return this.fromWireType(D[a>>2])}var U={},Ya={};function V(a,b,c){function d(k){k=c(k);k.length!==a.length&&Ta(\"Mismatched type converter count\");for(var m=0;m<a.length;++m)W(a[m],k[m])}a.forEach(function(k){Ya[k]=b});var e=Array(b.length),f=[],g=0;b.forEach((k,m)=>{R.hasOwnProperty(k)?e[m]=R[k]:(f.push(k),U.hasOwnProperty(k)||(U[k]=[]),U[k].push(()=>{e[m]=R[k];++g;g===f.length&&d(e)}))});0===f.length&&d(e)}\nfunction Za(a){switch(a){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+a);}}\nfunction W(a,b,c={}){if(!(\"argPackAdvance\"in b))throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");var d=b.name;a||L('type \"'+d+'\" must have a positive integer typeid pointer');if(R.hasOwnProperty(a)){if(c.ua)return;L(\"Cannot register type '\"+d+\"' twice\")}R[a]=b;delete Ya[a];U.hasOwnProperty(a)&&(b=U[a],delete U[a],b.forEach(e=>e()))}function $a(a){L(a.M.P.N.name+\" instance already deleted\")}function X(){}\nfunction ab(a,b,c){if(void 0===a[b].S){var d=a[b];a[b]=function(){a[b].S.hasOwnProperty(arguments.length)||L(\"Function '\"+c+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+a[b].S+\")!\");return a[b].S[arguments.length].apply(this,arguments)};a[b].S=[];a[b].S[d.Z]=d}}\nfunction bb(a,b){h.hasOwnProperty(a)?(L(\"Cannot register public name '\"+a+\"' twice\"),ab(h,a,a),h.hasOwnProperty(void 0)&&L(\"Cannot register multiple overloads of a function with the same number of arguments (undefined)!\"),h[a].S[void 0]=b):h[a]=b}function cb(a,b,c,d,e,f,g,k){this.name=a;this.constructor=b;this.X=c;this.W=d;this.R=e;this.pa=f;this.ba=g;this.na=k;this.ja=[]}\nfunction db(a,b,c){for(;b!==c;)b.ba||L(\"Expected null or instance of \"+c.name+\", got an instance of \"+b.name),a=b.ba(a),b=b.R;return a}function eb(a,b){if(null===b)return this.ea&&L(\"null is not a valid \"+this.name),0;b.M||L('Cannot pass \"'+fb(b)+'\" as a '+this.name);b.M.O||L(\"Cannot pass deleted object as a pointer of type \"+this.name);return db(b.M.O,b.M.P.N,this.N)}\nfunction gb(a,b){if(null===b){this.ea&&L(\"null is not a valid \"+this.name);if(this.da){var c=this.fa();null!==a&&a.push(this.W,c);return c}return 0}b.M||L('Cannot pass \"'+fb(b)+'\" as a '+this.name);b.M.O||L(\"Cannot pass deleted object as a pointer of type \"+this.name);!this.ca&&b.M.P.ca&&L(\"Cannot convert argument of type \"+(b.M.U?b.M.U.name:b.M.P.name)+\" to parameter type \"+this.name);c=db(b.M.O,b.M.P.N,this.N);if(this.da)switch(void 0===b.M.T&&L(\"Passing raw pointer to smart pointer is illegal\"),\nthis.Ba){case 0:b.M.U===this?c=b.M.T:L(\"Cannot convert argument of type \"+(b.M.U?b.M.U.name:b.M.P.name)+\" to parameter type \"+this.name);break;case 1:c=b.M.T;break;case 2:if(b.M.U===this)c=b.M.T;else{var d=b.clone();c=this.xa(c,Ea(function(){d[\"delete\"]()}));null!==a&&a.push(this.W,c)}break;default:L(\"Unsupporting sharing policy\")}return c}\nfunction hb(a,b){if(null===b)return this.ea&&L(\"null is not a valid \"+this.name),0;b.M||L('Cannot pass \"'+fb(b)+'\" as a '+this.name);b.M.O||L(\"Cannot pass deleted object as a pointer of type \"+this.name);b.M.P.ca&&L(\"Cannot convert argument of type \"+b.M.P.name+\" to parameter type \"+this.name);return db(b.M.O,b.M.P.N,this.N)}\nfunction Y(a,b,c,d){this.name=a;this.N=b;this.ea=c;this.ca=d;this.da=!1;this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0;void 0!==b.R?this.toWireType=gb:(this.toWireType=d?eb:hb,this.V=null)}function ib(a,b){h.hasOwnProperty(a)||Ta(\"Replacing nonexistant public symbol\");h[a]=b;h[a].Z=void 0}\nfunction jb(a,b){var c=[];return function(){c.length=0;Object.assign(c,arguments);if(a.includes(\"j\")){var d=h[\"dynCall_\"+a];d=c&&c.length?d.apply(null,[b].concat(c)):d.call(null,b)}else d=oa.get(b).apply(null,c);return d}}function Z(a,b){a=N(a);var c=a.includes(\"j\")?jb(a,b):oa.get(b);\"function\"!=typeof c&&L(\"unknown function pointer with signature \"+a+\": \"+b);return c}var mb=void 0;\nfunction nb(a,b){function c(f){e[f]||R[f]||(Ya[f]?Ya[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new mb(a+\": \"+d.map(Ja).join([\", \"]));}\nfunction ob(a,b,c,d,e){var f=b.length;2>f&&L(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");var g=null!==b[1]&&null!==c,k=!1;for(c=1;c<b.length;++c)if(null!==b[c]&&void 0===b[c].V){k=!0;break}var m=\"void\"!==b[0].name,l=f-2,n=Array(l),p=[],r=[];return function(){arguments.length!==l&&L(\"function \"+a+\" called with \"+arguments.length+\" arguments, expected \"+l+\" args!\");r.length=0;p.length=g?2:1;p[0]=e;if(g){var u=b[1].toWireType(r,this);p[1]=u}for(var t=0;t<l;++t)n[t]=\nb[t+2].toWireType(r,arguments[t]),p.push(n[t]);t=d.apply(null,p);if(k)Wa(r);else for(var y=g?1:2;y<b.length;y++){var B=1===y?u:n[y-2];null!==b[y].V&&b[y].V(B)}u=m?b[0].fromWireType(t):void 0;return u}}function pb(a,b){for(var c=[],d=0;d<a;d++)c.push(E[b+4*d>>2]);return c}function qb(a){4<a&&0===--J[a].ga&&(J[a]=void 0,Ca.push(a))}function fb(a){if(null===a)return\"null\";var b=typeof a;return\"object\"===b||\"array\"===b||\"function\"===b?a.toString():\"\"+a}\nfunction rb(a,b){switch(b){case 2:return function(c){return this.fromWireType(la[c>>2])};case 3:return function(c){return this.fromWireType(ma[c>>3])};default:throw new TypeError(\"Unknown float type: \"+a);}}\nfunction sb(a,b,c){switch(b){case 0:return c?function(d){return ja[d]}:function(d){return A[d]};case 1:return c?function(d){return C[d>>1]}:function(d){return ka[d>>1]};case 2:return c?function(d){return D[d>>2]}:function(d){return E[d>>2]};default:throw new TypeError(\"Unknown integer type: \"+a);}}function tb(a,b){for(var c=\"\",d=0;!(d>=b/2);++d){var e=C[a+2*d>>1];if(0==e)break;c+=String.fromCharCode(e)}return c}\nfunction ub(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e<c;++e)C[b>>1]=a.charCodeAt(e),b+=2;C[b>>1]=0;return b-d}function vb(a){return 2*a.length}function wb(a,b){for(var c=0,d=\"\";!(c>=b/4);){var e=D[a+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e)}return d}\nfunction xb(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e<a.length;++e){var f=a.charCodeAt(e);if(55296<=f&&57343>=f){var g=a.charCodeAt(++e);f=65536+((f&1023)<<10)|g&1023}D[b>>2]=f;b+=4;if(b+4>c)break}D[b>>2]=0;return b-d}function yb(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&++c;b+=4}return b}var zb={};function Ab(a){var b=zb[a];return void 0===b?N(a):b}var Bb=[];function Cb(a){var b=Bb.length;Bb.push(a);return b}\nfunction Db(a,b){for(var c=Array(a),d=0;d<a;++d)c[d]=La(E[b+4*d>>2],\"parameter \"+d);return c}var Eb=[],Fb=[null,[],[]];K=h.BindingError=Da(\"BindingError\");h.count_emval_handles=function(){for(var a=0,b=5;b<J.length;++b)void 0!==J[b]&&++a;return a};h.get_first_emval=function(){for(var a=5;a<J.length;++a)if(void 0!==J[a])return J[a];return null};Fa=h.PureVirtualError=Da(\"PureVirtualError\");for(var Gb=Array(256),Hb=0;256>Hb;++Hb)Gb[Hb]=String.fromCharCode(Hb);Ga=Gb;h.getInheritedInstanceCount=function(){return Object.keys(Q).length};\nh.getLiveInheritedInstances=function(){var a=[],b;for(b in Q)Q.hasOwnProperty(b)&&a.push(Q[b]);return a};h.flushPendingDeletes=Ha;h.setDelayFunction=function(a){P=a;O.length&&P&&P(Ha)};Sa=h.InternalError=Da(\"InternalError\");X.prototype.isAliasOf=function(a){if(!(this instanceof X&&a instanceof X))return!1;var b=this.M.P.N,c=this.M.O,d=a.M.P.N;for(a=a.M.O;b.R;)c=b.ba(c),b=b.R;for(;d.R;)a=d.ba(a),d=d.R;return b===d&&c===a};\nX.prototype.clone=function(){this.M.O||$a(this);if(this.M.aa)return this.M.count.value+=1,this;var a=T,b=Object,c=b.create,d=Object.getPrototypeOf(this),e=this.M;a=a(c.call(b,d,{M:{value:{count:e.count,$:e.$,aa:e.aa,O:e.O,P:e.P,T:e.T,U:e.U}}}));a.M.count.value+=1;a.M.$=!1;return a};X.prototype[\"delete\"]=function(){this.M.O||$a(this);this.M.$&&!this.M.aa&&L(\"Object already scheduled for deletion\");Ma(this);Oa(this.M);this.M.aa||(this.M.T=void 0,this.M.O=void 0)};X.prototype.isDeleted=function(){return!this.M.O};\nX.prototype.deleteLater=function(){this.M.O||$a(this);this.M.$&&!this.M.aa&&L(\"Object already scheduled for deletion\");O.push(this);1===O.length&&P&&P(Ha);this.M.$=!0;return this};Y.prototype.qa=function(a){this.ka&&(a=this.ka(a));return a};Y.prototype.ha=function(a){this.W&&this.W(a)};Y.prototype.argPackAdvance=8;Y.prototype.readValueFromPointer=Xa;Y.prototype.deleteObject=function(a){if(null!==a)a[\"delete\"]()};\nY.prototype.fromWireType=function(a){function b(){return this.da?Ua(this.N.X,{P:this.wa,O:c,U:this,T:a}):Ua(this.N.X,{P:this,O:a})}var c=this.qa(a);if(!c)return this.ha(a),null;var d=Ra(this.N,c);if(void 0!==d){if(0===d.M.count.value)return d.M.O=c,d.M.T=a,d.clone();d=d.clone();this.ha(a);return d}d=this.N.pa(c);d=Qa[d];if(!d)return b.call(this);d=this.ca?d.la:d.pointerType;var e=Pa(c,this.N,d.N);return null===e?b.call(this):this.da?Ua(d.N.X,{P:d,O:e,U:this,T:a}):Ua(d.N.X,{P:d,O:e})};\nmb=h.UnboundTypeError=Da(\"UnboundTypeError\");\nvar xa=\"function\"==typeof atob?atob:function(a){var b=\"\",c=0;a=a.replace(/[^A-Za-z0-9\\+\\/=]/g,\"\");do{var d=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(a.charAt(c++));var e=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(a.charAt(c++));var f=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(a.charAt(c++));var g=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(a.charAt(c++));d=d<<2|e>>4;\ne=(e&15)<<4|f>>2;var k=(f&3)<<6|g;b+=String.fromCharCode(d);64!==f&&(b+=String.fromCharCode(e));64!==g&&(b+=String.fromCharCode(k))}while(c<a.length);return b},Jb={l:function(a,b,c,d){x(\"Assertion failed: \"+(a?z(A,a):\"\")+\", at: \"+[b?b?z(A,b):\"\":\"unknown filename\",c,d?d?z(A,d):\"\":\"unknown function\"])},q:function(a,b,c){a=N(a);b=La(b,\"wrapper\");c=M(c);var d=[].slice,e=b.N,f=e.X,g=e.R.X,k=e.R.constructor;a=Ba(a,function(){e.R.ja.forEach(function(l){if(this[l]===g[l])throw new Fa(\"Pure virtual function \"+\nl+\" must be implemented in JavaScript\");}.bind(this));Object.defineProperty(this,\"__parent\",{value:f});this.__construct.apply(this,d.call(arguments))});f.__construct=function(){this===f&&L(\"Pass correct 'this' to __construct\");var l=k.implement.apply(void 0,[this].concat(d.call(arguments)));Ma(l);var n=l.M;l.notifyOnDestruction();n.aa=!0;Object.defineProperties(this,{M:{value:n}});T(this);l=n.O;l=Ia(e,l);Q.hasOwnProperty(l)?L(\"Tried to register registered instance: \"+l):Q[l]=this};f.__destruct=function(){this===\nf&&L(\"Pass correct 'this' to __destruct\");Ma(this);var l=this.M.O;l=Ia(e,l);Q.hasOwnProperty(l)?delete Q[l]:L(\"Tried to unregister unregistered instance: \"+l)};a.prototype=Object.create(f);for(var m in c)a.prototype[m]=c[m];return Ea(a)},j:function(a){var b=Va[a];delete Va[a];var c=b.fa,d=b.W,e=b.ia,f=e.map(g=>g.ta).concat(e.map(g=>g.za));V([a],f,g=>{var k={};e.forEach((m,l)=>{var n=g[l],p=m.ra,r=m.sa,u=g[l+e.length],t=m.ya,y=m.Aa;k[m.oa]={read:B=>n.fromWireType(p(r,B)),write:(B,ba)=>{var I=[];t(y,\nB,u.toWireType(I,ba));Wa(I)}}});return[{name:b.name,fromWireType:function(m){var l={},n;for(n in k)l[n]=k[n].read(m);d(m);return l},toWireType:function(m,l){for(var n in k)if(!(n in l))throw new TypeError('Missing field: \"'+n+'\"');var p=c();for(n in k)k[n].write(p,l[n]);null!==m&&m.push(d,p);return p},argPackAdvance:8,readValueFromPointer:Xa,V:d}]})},v:function(){},B:function(a,b,c,d,e){var f=Za(c);b=N(b);W(a,{name:b,fromWireType:function(g){return!!g},toWireType:function(g,k){return k?d:e},argPackAdvance:8,\nreadValueFromPointer:function(g){if(1===c)var k=ja;else if(2===c)k=C;else if(4===c)k=D;else throw new TypeError(\"Unknown boolean type size: \"+b);return this.fromWireType(k[g>>f])},V:null})},f:function(a,b,c,d,e,f,g,k,m,l,n,p,r){n=N(n);f=Z(e,f);k&&(k=Z(g,k));l&&(l=Z(m,l));r=Z(p,r);var u=Aa(n);bb(u,function(){nb(\"Cannot construct \"+n+\" due to unbound types\",[d])});V([a,b,c],d?[d]:[],function(t){t=t[0];if(d){var y=t.N;var B=y.X}else B=X.prototype;t=Ba(u,function(){if(Object.getPrototypeOf(this)!==ba)throw new K(\"Use 'new' to construct \"+\nn);if(void 0===I.Y)throw new K(n+\" has no accessible constructor\");var kb=I.Y[arguments.length];if(void 0===kb)throw new K(\"Tried to invoke ctor of \"+n+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(I.Y).toString()+\") parameters instead!\");return kb.apply(this,arguments)});var ba=Object.create(B,{constructor:{value:t}});t.prototype=ba;var I=new cb(n,t,ba,r,y,f,k,l);y=new Y(n,I,!0,!1);B=new Y(n+\"*\",I,!1,!1);var lb=new Y(n+\" const*\",I,!1,!0);Qa[a]={pointerType:B,\nla:lb};ib(u,t);return[y,B,lb]})},d:function(a,b,c,d,e,f,g){var k=pb(c,d);b=N(b);f=Z(e,f);V([],[a],function(m){function l(){nb(\"Cannot call \"+n+\" due to unbound types\",k)}m=m[0];var n=m.name+\".\"+b;b.startsWith(\"@@\")&&(b=Symbol[b.substring(2)]);var p=m.N.constructor;void 0===p[b]?(l.Z=c-1,p[b]=l):(ab(p,b,n),p[b].S[c-1]=l);V([],k,function(r){r=ob(n,[r[0],null].concat(r.slice(1)),null,f,g);void 0===p[b].S?(r.Z=c-1,p[b]=r):p[b].S[c-1]=r;return[]});return[]})},p:function(a,b,c,d,e,f){0<b||x();var g=pb(b,\nc);e=Z(d,e);V([],[a],function(k){k=k[0];var m=\"constructor \"+k.name;void 0===k.N.Y&&(k.N.Y=[]);if(void 0!==k.N.Y[b-1])throw new K(\"Cannot register multiple constructors with identical number of parameters (\"+(b-1)+\") for class '\"+k.name+\"'! Overload resolution is currently only performed using the parameter count, not actual type info!\");k.N.Y[b-1]=()=>{nb(\"Cannot construct \"+k.name+\" due to unbound types\",g)};V([],g,function(l){l.splice(1,0,null);k.N.Y[b-1]=ob(m,l,null,e,f);return[]});return[]})},\na:function(a,b,c,d,e,f,g,k){var m=pb(c,d);b=N(b);f=Z(e,f);V([],[a],function(l){function n(){nb(\"Cannot call \"+p+\" due to unbound types\",m)}l=l[0];var p=l.name+\".\"+b;b.startsWith(\"@@\")&&(b=Symbol[b.substring(2)]);k&&l.N.ja.push(b);var r=l.N.X,u=r[b];void 0===u||void 0===u.S&&u.className!==l.name&&u.Z===c-2?(n.Z=c-2,n.className=l.name,r[b]=n):(ab(r,b,p),r[b].S[c-2]=n);V([],m,function(t){t=ob(p,t,l,f,g);void 0===r[b].S?(t.Z=c-2,r[b]=t):r[b].S[c-2]=t;return[]});return[]})},A:function(a,b){b=N(b);W(a,\n{name:b,fromWireType:function(c){var d=M(c);qb(c);return d},toWireType:function(c,d){return Ea(d)},argPackAdvance:8,readValueFromPointer:Xa,V:null})},n:function(a,b,c){c=Za(c);b=N(b);W(a,{name:b,fromWireType:function(d){return d},toWireType:function(d,e){return e},argPackAdvance:8,readValueFromPointer:rb(b,c),V:null})},e:function(a,b,c,d,e){b=N(b);-1===e&&(e=4294967295);e=Za(c);var f=k=>k;if(0===d){var g=32-8*c;f=k=>k<<g>>>g}c=b.includes(\"unsigned\")?function(k,m){return m>>>0}:function(k,m){return m};\nW(a,{name:b,fromWireType:f,toWireType:c,argPackAdvance:8,readValueFromPointer:sb(b,e,0!==d),V:null})},b:function(a,b,c){function d(f){f>>=2;var g=E;return new e(ia,g[f+1],g[f])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=N(c);W(a,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{ua:!0})},o:function(a,b){b=N(b);var c=\"std::string\"===b;W(a,{name:b,fromWireType:function(d){var e=E[d>>2],f=d+4;if(c)for(var g=f,k=0;k<=e;++k){var m=\nf+k;if(k==e||0==A[m]){g=g?z(A,g,m-g):\"\";if(void 0===l)var l=g;else l+=String.fromCharCode(0),l+=g;g=m+1}}else{l=Array(e);for(k=0;k<e;++k)l[k]=String.fromCharCode(A[f+k]);l=l.join(\"\")}S(d);return l},toWireType:function(d,e){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var f,g=\"string\"==typeof e;g||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||L(\"Cannot pass non-string to std::string\");if(c&&g){var k=0;for(f=0;f<e.length;++f){var m=e.charCodeAt(f);127>=m?k++:2047>=\nm?k+=2:55296<=m&&57343>=m?(k+=4,++f):k+=3}f=k}else f=e.length;k=Ib(4+f+1);m=k+4;E[k>>2]=f;if(c&&g){if(g=m,m=f+1,f=A,0<m){m=g+m-1;for(var l=0;l<e.length;++l){var n=e.charCodeAt(l);if(55296<=n&&57343>=n){var p=e.charCodeAt(++l);n=65536+((n&1023)<<10)|p&1023}if(127>=n){if(g>=m)break;f[g++]=n}else{if(2047>=n){if(g+1>=m)break;f[g++]=192|n>>6}else{if(65535>=n){if(g+2>=m)break;f[g++]=224|n>>12}else{if(g+3>=m)break;f[g++]=240|n>>18;f[g++]=128|n>>12&63}f[g++]=128|n>>6&63}f[g++]=128|n&63}}f[g]=0}}else if(g)for(g=\n0;g<f;++g)l=e.charCodeAt(g),255<l&&(S(m),L(\"String has UTF-16 code units that do not fit in 8 bits\")),A[m+g]=l;else for(g=0;g<f;++g)A[m+g]=e[g];null!==d&&d.push(S,k);return k},argPackAdvance:8,readValueFromPointer:Xa,V:function(d){S(d)}})},i:function(a,b,c){c=N(c);if(2===b){var d=tb;var e=ub;var f=vb;var g=()=>ka;var k=1}else 4===b&&(d=wb,e=xb,f=yb,g=()=>E,k=2);W(a,{name:c,fromWireType:function(m){for(var l=E[m>>2],n=g(),p,r=m+4,u=0;u<=l;++u){var t=m+4+u*b;if(u==l||0==n[t>>k])r=d(r,t-r),void 0===\np?p=r:(p+=String.fromCharCode(0),p+=r),r=t+b}S(m);return p},toWireType:function(m,l){\"string\"!=typeof l&&L(\"Cannot pass non-string to C++ string type \"+c);var n=f(l),p=Ib(4+n+b);E[p>>2]=n>>k;e(l,p+4,n+b);null!==m&&m.push(S,p);return p},argPackAdvance:8,readValueFromPointer:Xa,V:function(m){S(m)}})},k:function(a,b,c,d,e,f){Va[a]={name:N(b),fa:Z(c,d),W:Z(e,f),ia:[]}},h:function(a,b,c,d,e,f,g,k,m,l){Va[a].ia.push({oa:N(b),ta:c,ra:Z(d,e),sa:f,za:g,ya:Z(k,m),Aa:l})},C:function(a,b){b=N(b);W(a,{va:!0,name:b,\nargPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(a,b,c,d,e){a=Bb[a];b=M(b);c=Ab(c);var f=[];E[d>>2]=Ea(f);return a(b,c,f,e)},t:function(a,b,c,d){a=Bb[a];b=M(b);c=Ab(c);a(b,c,null,d)},g:qb,m:function(a,b){var c=Db(a,b),d=c[0];b=d.name+\"_$\"+c.slice(1).map(function(g){return g.name}).join(\"_\")+\"$\";var e=Eb[b];if(void 0!==e)return e;var f=Array(a-1);e=Cb((g,k,m,l)=>{for(var n=0,p=0;p<a-1;++p)f[p]=c[p+1].readValueFromPointer(l+n),n+=c[p+1].argPackAdvance;g=g[k].apply(g,\nf);for(p=0;p<a-1;++p)c[p+1].ma&&c[p+1].ma(f[p]);if(!d.va)return d.toWireType(m,g)});return Eb[b]=e},D:function(a){4<a&&(J[a].ga+=1)},r:function(a){var b=M(a);Wa(b);qb(a)},c:function(){x(\"\")},x:function(a,b,c){A.copyWithin(a,b,b+c)},w:function(a){var b=A.length;a>>>=0;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);var e=Math;d=Math.max(a,d);e=e.min.call(e,2147483648,d+(65536-d%65536)%65536);a:{try{fa.grow(e-ia.byteLength+65535>>>16);na();var f=1;break a}catch(g){}f=\nvoid 0}if(f)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(a,b,c,d){for(var e=0,f=0;f<c;f++){var g=E[b>>2],k=E[b+4>>2];b+=8;for(var m=0;m<k;m++){var l=A[g+m],n=Fb[a];0===l||10===l?((1===a?ea:v)(z(n,0)),n.length=0):n.push(l)}e+=k}E[d>>2]=e;return 0}};\n(function(){function a(e){h.asm=e.exports;fa=h.asm.E;na();oa=h.asm.J;qa.unshift(h.asm.F);F--;h.monitorRunDependencies&&h.monitorRunDependencies(F);0==F&&(null!==ta&&(clearInterval(ta),ta=null),G&&(e=G,G=null,e()))}function b(e){a(e.instance)}function c(e){return ya().then(function(f){return WebAssembly.instantiate(f,d)}).then(function(f){return f}).then(e,function(f){v(\"failed to asynchronously prepare wasm: \"+f);x(f)})}var d={a:Jb};F++;h.monitorRunDependencies&&h.monitorRunDependencies(F);if(h.instantiateWasm)try{return h.instantiateWasm(d,\na)}catch(e){v(\"Module.instantiateWasm callback failed with error: \"+e),ca(e)}(function(){return w||\"function\"!=typeof WebAssembly.instantiateStreaming||ua(H)||\"function\"!=typeof fetch?c(b):fetch(H,{credentials:\"same-origin\"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,function(f){v(\"wasm streaming compile failed: \"+f);v(\"falling back to ArrayBuffer instantiation\");return c(b)})})})().catch(ca);return{}})();\nh.___wasm_call_ctors=function(){return(h.___wasm_call_ctors=h.asm.F).apply(null,arguments)};var Ka=h.___getTypeName=function(){return(Ka=h.___getTypeName=h.asm.G).apply(null,arguments)};h.__embind_initialize_bindings=function(){return(h.__embind_initialize_bindings=h.asm.H).apply(null,arguments)};var Ib=h._malloc=function(){return(Ib=h._malloc=h.asm.I).apply(null,arguments)},S=h._free=function(){return(S=h._free=h.asm.K).apply(null,arguments)};\nh.dynCall_jiji=function(){return(h.dynCall_jiji=h.asm.L).apply(null,arguments)};var Kb;G=function Lb(){Kb||Mb();Kb||(G=Lb)};\nfunction Mb(){function a(){if(!Kb&&(Kb=!0,h.calledRun=!0,!ha)){za(qa);aa(h);if(h.onRuntimeInitialized)h.onRuntimeInitialized();if(h.postRun)for(\"function\"==typeof h.postRun&&(h.postRun=[h.postRun]);h.postRun.length;){var b=h.postRun.shift();ra.unshift(b)}za(ra)}}if(!(0<F)){if(h.preRun)for(\"function\"==typeof h.preRun&&(h.preRun=[h.preRun]);h.preRun.length;)sa();za(pa);0<F||(h.setStatus?(h.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){h.setStatus(\"\")},1);a()},1)):a())}}\nif(h.preInit)for(\"function\"==typeof h.preInit&&(h.preInit=[h.preInit]);0<h.preInit.length;)h.preInit.pop()();Mb();\n\n\n return loadYoga.ready\n}\n);\n})();\nexport default loadYoga;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// @generated by enums.py\n\nexport let Align = /*#__PURE__*/function (Align) {\n Align[Align[\"Auto\"] = 0] = \"Auto\";\n Align[Align[\"FlexStart\"] = 1] = \"FlexStart\";\n Align[Align[\"Center\"] = 2] = \"Center\";\n Align[Align[\"FlexEnd\"] = 3] = \"FlexEnd\";\n Align[Align[\"Stretch\"] = 4] = \"Stretch\";\n Align[Align[\"Baseline\"] = 5] = \"Baseline\";\n Align[Align[\"SpaceBetween\"] = 6] = \"SpaceBetween\";\n Align[Align[\"SpaceAround\"] = 7] = \"SpaceAround\";\n Align[Align[\"SpaceEvenly\"] = 8] = \"SpaceEvenly\";\n return Align;\n}({});\nexport let BoxSizing = /*#__PURE__*/function (BoxSizing) {\n BoxSizing[BoxSizing[\"BorderBox\"] = 0] = \"BorderBox\";\n BoxSizing[BoxSizing[\"ContentBox\"] = 1] = \"ContentBox\";\n return BoxSizing;\n}({});\nexport let Dimension = /*#__PURE__*/function (Dimension) {\n Dimension[Dimension[\"Width\"] = 0] = \"Width\";\n Dimension[Dimension[\"Height\"] = 1] = \"Height\";\n return Dimension;\n}({});\nexport let Direction = /*#__PURE__*/function (Direction) {\n Direction[Direction[\"Inherit\"] = 0] = \"Inherit\";\n Direction[Direction[\"LTR\"] = 1] = \"LTR\";\n Direction[Direction[\"RTL\"] = 2] = \"RTL\";\n return Direction;\n}({});\nexport let Display = /*#__PURE__*/function (Display) {\n Display[Display[\"Flex\"] = 0] = \"Flex\";\n Display[Display[\"None\"] = 1] = \"None\";\n Display[Display[\"Contents\"] = 2] = \"Contents\";\n return Display;\n}({});\nexport let Edge = /*#__PURE__*/function (Edge) {\n Edge[Edge[\"Left\"] = 0] = \"Left\";\n Edge[Edge[\"Top\"] = 1] = \"Top\";\n Edge[Edge[\"Right\"] = 2] = \"Right\";\n Edge[Edge[\"Bottom\"] = 3] = \"Bottom\";\n Edge[Edge[\"Start\"] = 4] = \"Start\";\n Edge[Edge[\"End\"] = 5] = \"End\";\n Edge[Edge[\"Horizontal\"] = 6] = \"Horizontal\";\n Edge[Edge[\"Vertical\"] = 7] = \"Vertical\";\n Edge[Edge[\"All\"] = 8] = \"All\";\n return Edge;\n}({});\nexport let Errata = /*#__PURE__*/function (Errata) {\n Errata[Errata[\"None\"] = 0] = \"None\";\n Errata[Errata[\"StretchFlexBasis\"] = 1] = \"StretchFlexBasis\";\n Errata[Errata[\"AbsolutePositionWithoutInsetsExcludesPadding\"] = 2] = \"AbsolutePositionWithoutInsetsExcludesPadding\";\n Errata[Errata[\"AbsolutePercentAgainstInnerSize\"] = 4] = \"AbsolutePercentAgainstInnerSize\";\n Errata[Errata[\"All\"] = 2147483647] = \"All\";\n Errata[Errata[\"Classic\"] = 2147483646] = \"Classic\";\n return Errata;\n}({});\nexport let ExperimentalFeature = /*#__PURE__*/function (ExperimentalFeature) {\n ExperimentalFeature[ExperimentalFeature[\"WebFlexBasis\"] = 0] = \"WebFlexBasis\";\n return ExperimentalFeature;\n}({});\nexport let FlexDirection = /*#__PURE__*/function (FlexDirection) {\n FlexDirection[FlexDirection[\"Column\"] = 0] = \"Column\";\n FlexDirection[FlexDirection[\"ColumnReverse\"] = 1] = \"ColumnReverse\";\n FlexDirection[FlexDirection[\"Row\"] = 2] = \"Row\";\n FlexDirection[FlexDirection[\"RowReverse\"] = 3] = \"RowReverse\";\n return FlexDirection;\n}({});\nexport let Gutter = /*#__PURE__*/function (Gutter) {\n Gutter[Gutter[\"Column\"] = 0] = \"Column\";\n Gutter[Gutter[\"Row\"] = 1] = \"Row\";\n Gutter[Gutter[\"All\"] = 2] = \"All\";\n return Gutter;\n}({});\nexport let Justify = /*#__PURE__*/function (Justify) {\n Justify[Justify[\"FlexStart\"] = 0] = \"FlexStart\";\n Justify[Justify[\"Center\"] = 1] = \"Center\";\n Justify[Justify[\"FlexEnd\"] = 2] = \"FlexEnd\";\n Justify[Justify[\"SpaceBetween\"] = 3] = \"SpaceBetween\";\n Justify[Justify[\"SpaceAround\"] = 4] = \"SpaceAround\";\n Justify[Justify[\"SpaceEvenly\"] = 5] = \"SpaceEvenly\";\n return Justify;\n}({});\nexport let LogLevel = /*#__PURE__*/function (LogLevel) {\n LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\n LogLevel[LogLevel[\"Warn\"] = 1] = \"Warn\";\n LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\n LogLevel[LogLevel[\"Debug\"] = 3] = \"Debug\";\n LogLevel[LogLevel[\"Verbose\"] = 4] = \"Verbose\";\n LogLevel[LogLevel[\"Fatal\"] = 5] = \"Fatal\";\n return LogLevel;\n}({});\nexport let MeasureMode = /*#__PURE__*/function (MeasureMode) {\n MeasureMode[MeasureMode[\"Undefined\"] = 0] = \"Undefined\";\n MeasureMode[MeasureMode[\"Exactly\"] = 1] = \"Exactly\";\n MeasureMode[MeasureMode[\"AtMost\"] = 2] = \"AtMost\";\n return MeasureMode;\n}({});\nexport let NodeType = /*#__PURE__*/function (NodeType) {\n NodeType[NodeType[\"Default\"] = 0] = \"Default\";\n NodeType[NodeType[\"Text\"] = 1] = \"Text\";\n return NodeType;\n}({});\nexport let Overflow = /*#__PURE__*/function (Overflow) {\n Overflow[Overflow[\"Visible\"] = 0] = \"Visible\";\n Overflow[Overflow[\"Hidden\"] = 1] = \"Hidden\";\n Overflow[Overflow[\"Scroll\"] = 2] = \"Scroll\";\n return Overflow;\n}({});\nexport let PositionType = /*#__PURE__*/function (PositionType) {\n PositionType[PositionType[\"Static\"] = 0] = \"Static\";\n PositionType[PositionType[\"Relative\"] = 1] = \"Relative\";\n PositionType[PositionType[\"Absolute\"] = 2] = \"Absolute\";\n return PositionType;\n}({});\nexport let Unit = /*#__PURE__*/function (Unit) {\n Unit[Unit[\"Undefined\"] = 0] = \"Undefined\";\n Unit[Unit[\"Point\"] = 1] = \"Point\";\n Unit[Unit[\"Percent\"] = 2] = \"Percent\";\n Unit[Unit[\"Auto\"] = 3] = \"Auto\";\n return Unit;\n}({});\nexport let Wrap = /*#__PURE__*/function (Wrap) {\n Wrap[Wrap[\"NoWrap\"] = 0] = \"NoWrap\";\n Wrap[Wrap[\"Wrap\"] = 1] = \"Wrap\";\n Wrap[Wrap[\"WrapReverse\"] = 2] = \"WrapReverse\";\n return Wrap;\n}({});\nconst constants = {\n ALIGN_AUTO: Align.Auto,\n ALIGN_FLEX_START: Align.FlexStart,\n ALIGN_CENTER: Align.Center,\n ALIGN_FLEX_END: Align.FlexEnd,\n ALIGN_STRETCH: Align.Stretch,\n ALIGN_BASELINE: Align.Baseline,\n ALIGN_SPACE_BETWEEN: Align.SpaceBetween,\n ALIGN_SPACE_AROUND: Align.SpaceAround,\n ALIGN_SPACE_EVENLY: Align.SpaceEvenly,\n BOX_SIZING_BORDER_BOX: BoxSizing.BorderBox,\n BOX_SIZING_CONTENT_BOX: BoxSizing.ContentBox,\n DIMENSION_WIDTH: Dimension.Width,\n DIMENSION_HEIGHT: Dimension.Height,\n DIRECTION_INHERIT: Direction.Inherit,\n DIRECTION_LTR: Direction.LTR,\n DIRECTION_RTL: Direction.RTL,\n DISPLAY_FLEX: Display.Flex,\n DISPLAY_NONE: Display.None,\n DISPLAY_CONTENTS: Display.Contents,\n EDGE_LEFT: Edge.Left,\n EDGE_TOP: Edge.Top,\n EDGE_RIGHT: Edge.Right,\n EDGE_BOTTOM: Edge.Bottom,\n EDGE_START: Edge.Start,\n EDGE_END: Edge.End,\n EDGE_HORIZONTAL: Edge.Horizontal,\n EDGE_VERTICAL: Edge.Vertical,\n EDGE_ALL: Edge.All,\n ERRATA_NONE: Errata.None,\n ERRATA_STRETCH_FLEX_BASIS: Errata.StretchFlexBasis,\n ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING: Errata.AbsolutePositionWithoutInsetsExcludesPadding,\n ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE: Errata.AbsolutePercentAgainstInnerSize,\n ERRATA_ALL: Errata.All,\n ERRATA_CLASSIC: Errata.Classic,\n EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS: ExperimentalFeature.WebFlexBasis,\n FLEX_DIRECTION_COLUMN: FlexDirection.Column,\n FLEX_DIRECTION_COLUMN_REVERSE: FlexDirection.ColumnReverse,\n FLEX_DIRECTION_ROW: FlexDirection.Row,\n FLEX_DIRECTION_ROW_REVERSE: FlexDirection.RowReverse,\n GUTTER_COLUMN: Gutter.Column,\n GUTTER_ROW: Gutter.Row,\n GUTTER_ALL: Gutter.All,\n JUSTIFY_FLEX_START: Justify.FlexStart,\n JUSTIFY_CENTER: Justify.Center,\n JUSTIFY_FLEX_END: Justify.FlexEnd,\n JUSTIFY_SPACE_BETWEEN: Justify.SpaceBetween,\n JUSTIFY_SPACE_AROUND: Justify.SpaceAround,\n JUSTIFY_SPACE_EVENLY: Justify.SpaceEvenly,\n LOG_LEVEL_ERROR: LogLevel.Error,\n LOG_LEVEL_WARN: LogLevel.Warn,\n LOG_LEVEL_INFO: LogLevel.Info,\n LOG_LEVEL_DEBUG: LogLevel.Debug,\n LOG_LEVEL_VERBOSE: LogLevel.Verbose,\n LOG_LEVEL_FATAL: LogLevel.Fatal,\n MEASURE_MODE_UNDEFINED: MeasureMode.Undefined,\n MEASURE_MODE_EXACTLY: MeasureMode.Exactly,\n MEASURE_MODE_AT_MOST: MeasureMode.AtMost,\n NODE_TYPE_DEFAULT: NodeType.Default,\n NODE_TYPE_TEXT: NodeType.Text,\n OVERFLOW_VISIBLE: Overflow.Visible,\n OVERFLOW_HIDDEN: Overflow.Hidden,\n OVERFLOW_SCROLL: Overflow.Scroll,\n POSITION_TYPE_STATIC: PositionType.Static,\n POSITION_TYPE_RELATIVE: PositionType.Relative,\n POSITION_TYPE_ABSOLUTE: PositionType.Absolute,\n UNIT_UNDEFINED: Unit.Undefined,\n UNIT_POINT: Unit.Point,\n UNIT_PERCENT: Unit.Percent,\n UNIT_AUTO: Unit.Auto,\n WRAP_NO_WRAP: Wrap.NoWrap,\n WRAP_WRAP: Wrap.Wrap,\n WRAP_WRAP_REVERSE: Wrap.WrapReverse\n};\nexport default constants;\n//# sourceMappingURL=YGEnums.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n// @ts-nocheck\n\nimport { Unit, Direction } from \"./generated/YGEnums.js\";\nimport YGEnums from \"./generated/YGEnums.js\";\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport default function wrapAssembly(lib) {\n function patch(prototype, name, fn) {\n const original = prototype[name];\n prototype[name] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return fn.call(this, original, ...args);\n };\n }\n for (const fnName of ['setPosition', 'setMargin', 'setFlexBasis', 'setWidth', 'setHeight', 'setMinWidth', 'setMinHeight', 'setMaxWidth', 'setMaxHeight', 'setPadding', 'setGap']) {\n const methods = {\n [Unit.Point]: lib.Node.prototype[fnName],\n [Unit.Percent]: lib.Node.prototype[`${fnName}Percent`],\n [Unit.Auto]: lib.Node.prototype[`${fnName}Auto`]\n };\n patch(lib.Node.prototype, fnName, function (original) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n // We patch all these functions to add support for the following calls:\n // .setWidth(100) / .setWidth(\"100%\") / .setWidth(.getWidth()) / .setWidth(\"auto\")\n\n const value = args.pop();\n let unit, asNumber;\n if (value === 'auto') {\n unit = Unit.Auto;\n asNumber = undefined;\n } else if (typeof value === 'object') {\n unit = value.unit;\n asNumber = value.valueOf();\n } else {\n unit = typeof value === 'string' && value.endsWith('%') ? Unit.Percent : Unit.Point;\n asNumber = parseFloat(value);\n if (value !== undefined && !Number.isNaN(value) && Number.isNaN(asNumber)) {\n throw new Error(`Invalid value ${value} for ${fnName}`);\n }\n }\n if (!methods[unit]) throw new Error(`Failed to execute \"${fnName}\": Unsupported unit '${value}'`);\n if (asNumber !== undefined) {\n return methods[unit].call(this, ...args, asNumber);\n } else {\n return methods[unit].call(this, ...args);\n }\n });\n }\n function wrapMeasureFunction(measureFunction) {\n return lib.MeasureCallback.implement({\n measure: function () {\n const {\n width,\n height\n } = measureFunction(...arguments);\n return {\n width: width ?? NaN,\n height: height ?? NaN\n };\n }\n });\n }\n patch(lib.Node.prototype, 'setMeasureFunc', function (original, measureFunc) {\n // This patch is just a convenience patch, since it helps write more\n // idiomatic source code (such as .setMeasureFunc(null))\n if (measureFunc) {\n return original.call(this, wrapMeasureFunction(measureFunc));\n } else {\n return this.unsetMeasureFunc();\n }\n });\n function wrapDirtiedFunc(dirtiedFunction) {\n return lib.DirtiedCallback.implement({\n dirtied: dirtiedFunction\n });\n }\n patch(lib.Node.prototype, 'setDirtiedFunc', function (original, dirtiedFunc) {\n original.call(this, wrapDirtiedFunc(dirtiedFunc));\n });\n patch(lib.Config.prototype, 'free', function () {\n // Since we handle the memory allocation ourselves (via lib.Config.create),\n // we also need to handle the deallocation\n lib.Config.destroy(this);\n });\n patch(lib.Node, 'create', (_, config) => {\n // We decide the constructor we want to call depending on the parameters\n return config ? lib.Node.createWithConfig(config) : lib.Node.createDefault();\n });\n patch(lib.Node.prototype, 'free', function () {\n // Since we handle the memory allocation ourselves (via lib.Node.create),\n // we also need to handle the deallocation\n lib.Node.destroy(this);\n });\n patch(lib.Node.prototype, 'freeRecursive', function () {\n for (let t = 0, T = this.getChildCount(); t < T; ++t) {\n this.getChild(0).freeRecursive();\n }\n this.free();\n });\n patch(lib.Node.prototype, 'calculateLayout', function (original) {\n let width = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;\n let height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : NaN;\n let direction = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Direction.LTR;\n // Just a small patch to add support for the function default parameters\n return original.call(this, width, height, direction);\n });\n return {\n Config: lib.Config,\n Node: lib.Node,\n ...YGEnums\n };\n}\n//# sourceMappingURL=wrapAssembly.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n// @ts-ignore untyped from Emscripten\nimport loadYogaImpl from '../binaries/yoga-wasm-base64-esm.js';\nimport wrapAssembly from \"./wrapAssembly.js\";\nexport async function loadYoga() {\n return wrapAssembly(await loadYogaImpl());\n}\nexport * from \"./generated/YGEnums.js\";\n//# sourceMappingURL=load.js.map","const r = String.raw;\nconst seq = r`(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})`;\nconst sTags = r`\\u{E0061}-\\u{E007A}`;\nexport default () => new RegExp(r`[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[${sTags}]{2}[\\u{E0030}-\\u{E0039}${sTags}]{1,3}\\u{E007F}|${seq}(?:\\u200D${seq})*`, 'gu');\n","import fs from 'fs';\nimport zlib from 'zlib';\n\nclass PNG {\n static decode(path, fn) {\n {\n return fs.readFile(path, (err, file) => {\n const png = new PNG(file);\n return png.decode(pixels => fn(pixels));\n });\n }\n }\n static load(path) {\n {\n const file = fs.readFileSync(path);\n return new PNG(file);\n }\n }\n constructor(data) {\n let i;\n this.data = data;\n this.pos = 8; // Skip the default header\n\n this.palette = [];\n this.imgData = [];\n this.transparency = {};\n this.text = {};\n while (true) {\n const chunkSize = this.readUInt32();\n let section = '';\n for (i = 0; i < 4; i++) {\n section += String.fromCharCode(this.data[this.pos++]);\n }\n switch (section) {\n case 'IHDR':\n // we can grab interesting values from here (like width, height, etc)\n this.width = this.readUInt32();\n this.height = this.readUInt32();\n this.bits = this.data[this.pos++];\n this.colorType = this.data[this.pos++];\n this.compressionMethod = this.data[this.pos++];\n this.filterMethod = this.data[this.pos++];\n this.interlaceMethod = this.data[this.pos++];\n break;\n case 'PLTE':\n this.palette = this.read(chunkSize);\n break;\n case 'IDAT':\n for (i = 0; i < chunkSize; i++) {\n this.imgData.push(this.data[this.pos++]);\n }\n break;\n case 'tRNS':\n // This chunk can only occur once and it must occur after the\n // PLTE chunk and before the IDAT chunk.\n this.transparency = {};\n switch (this.colorType) {\n case 3:\n // Indexed color, RGB. Each byte in this chunk is an alpha for\n // the palette index in the PLTE (\"palette\") chunk up until the\n // last non-opaque entry. Set up an array, stretching over all\n // palette entries which will be 0 (opaque) or 1 (transparent).\n this.transparency.indexed = this.read(chunkSize);\n var short = 255 - this.transparency.indexed.length;\n if (short > 0) {\n for (i = 0; i < short; i++) {\n this.transparency.indexed.push(255);\n }\n }\n break;\n case 0:\n // Greyscale. Corresponding to entries in the PLTE chunk.\n // Grey is two bytes, range 0 .. (2 ^ bit-depth) - 1\n this.transparency.grayscale = this.read(chunkSize)[0];\n break;\n case 2:\n // True color with proper alpha channel.\n this.transparency.rgb = this.read(chunkSize);\n break;\n }\n break;\n case 'tEXt':\n var text = this.read(chunkSize);\n var index = text.indexOf(0);\n var key = String.fromCharCode.apply(String, text.slice(0, index));\n this.text[key] = String.fromCharCode.apply(String, text.slice(index + 1));\n break;\n case 'IEND':\n // we've got everything we need!\n switch (this.colorType) {\n case 0:\n case 3:\n case 4:\n this.colors = 1;\n break;\n case 2:\n case 6:\n this.colors = 3;\n break;\n }\n this.hasAlphaChannel = [4, 6].includes(this.colorType);\n var colors = this.colors + (this.hasAlphaChannel ? 1 : 0);\n this.pixelBitlength = this.bits * colors;\n switch (this.colors) {\n case 1:\n this.colorSpace = 'DeviceGray';\n break;\n case 3:\n this.colorSpace = 'DeviceRGB';\n break;\n }\n this.imgData = Buffer.from(this.imgData);\n return;\n default:\n // unknown (or unimportant) section, skip it\n this.pos += chunkSize;\n }\n this.pos += 4; // Skip the CRC\n\n if (this.pos > this.data.length) {\n throw new Error('Incomplete or corrupt PNG file');\n }\n }\n }\n read(bytes) {\n const result = new Array(bytes);\n for (let i = 0; i < bytes; i++) {\n result[i] = this.data[this.pos++];\n }\n return result;\n }\n readUInt32() {\n const b1 = this.data[this.pos++] << 24;\n const b2 = this.data[this.pos++] << 16;\n const b3 = this.data[this.pos++] << 8;\n const b4 = this.data[this.pos++];\n return b1 | b2 | b3 | b4;\n }\n readUInt16() {\n const b1 = this.data[this.pos++] << 8;\n const b2 = this.data[this.pos++];\n return b1 | b2;\n }\n decodePixels(fn) {\n return zlib.inflate(this.imgData, (err, data) => {\n if (err) throw err;\n var pos = 0;\n const {\n width,\n height\n } = this;\n var pixelBytes = this.pixelBitlength / 8;\n const pixels = Buffer.alloc(width * height * pixelBytes);\n function pass(x0, y0, dx, dy, singlePass) {\n if (singlePass === void 0) {\n singlePass = false;\n }\n const w = Math.ceil((width - x0) / dx);\n const h = Math.ceil((height - y0) / dy);\n const scanlineLength = pixelBytes * w;\n const buffer = singlePass ? pixels : Buffer.alloc(scanlineLength * h);\n let row = 0;\n let c = 0;\n while (row < h && pos < data.length) {\n var byte;\n var col;\n var i;\n var left;\n var upper;\n switch (data[pos++]) {\n case 0:\n // None\n for (i = 0; i < scanlineLength; i++) {\n buffer[c++] = data[pos++];\n }\n break;\n case 1:\n // Sub\n for (i = 0; i < scanlineLength; i++) {\n byte = data[pos++];\n left = i < pixelBytes ? 0 : buffer[c - pixelBytes];\n buffer[c++] = (byte + left) % 256;\n }\n break;\n case 2:\n // Up\n for (i = 0; i < scanlineLength; i++) {\n byte = data[pos++];\n col = (i - i % pixelBytes) / pixelBytes;\n upper = row && buffer[(row - 1) * scanlineLength + col * pixelBytes + i % pixelBytes];\n buffer[c++] = (upper + byte) % 256;\n }\n break;\n case 3:\n // Average\n for (i = 0; i < scanlineLength; i++) {\n byte = data[pos++];\n col = (i - i % pixelBytes) / pixelBytes;\n left = i < pixelBytes ? 0 : buffer[c - pixelBytes];\n upper = row && buffer[(row - 1) * scanlineLength + col * pixelBytes + i % pixelBytes];\n buffer[c++] = (byte + Math.floor((left + upper) / 2)) % 256;\n }\n break;\n case 4:\n // Paeth\n for (i = 0; i < scanlineLength; i++) {\n var paeth;\n var upperLeft;\n byte = data[pos++];\n col = (i - i % pixelBytes) / pixelBytes;\n left = i < pixelBytes ? 0 : buffer[c - pixelBytes];\n if (row === 0) {\n upper = upperLeft = 0;\n } else {\n upper = buffer[(row - 1) * scanlineLength + col * pixelBytes + i % pixelBytes];\n upperLeft = col && buffer[(row - 1) * scanlineLength + (col - 1) * pixelBytes + i % pixelBytes];\n }\n const p = left + upper - upperLeft;\n const pa = Math.abs(p - left);\n const pb = Math.abs(p - upper);\n const pc = Math.abs(p - upperLeft);\n if (pa <= pb && pa <= pc) {\n paeth = left;\n } else if (pb <= pc) {\n paeth = upper;\n } else {\n paeth = upperLeft;\n }\n buffer[c++] = (byte + paeth) % 256;\n }\n break;\n default:\n throw new Error(`Invalid filter algorithm: ${data[pos - 1]}`);\n }\n if (!singlePass) {\n let pixelsPos = ((y0 + row * dy) * width + x0) * pixelBytes;\n let bufferPos = row * scanlineLength;\n for (i = 0; i < w; i++) {\n for (let j = 0; j < pixelBytes; j++) pixels[pixelsPos++] = buffer[bufferPos++];\n pixelsPos += (dx - 1) * pixelBytes;\n }\n }\n row++;\n }\n }\n if (this.interlaceMethod === 1) {\n /*\n 1 6 4 6 2 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n 3 6 4 6 3 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n */\n pass(0, 0, 8, 8); // 1\n pass(4, 0, 8, 8); // 2\n pass(0, 4, 4, 8); // 3\n pass(2, 0, 4, 4); // 4\n pass(0, 2, 2, 4); // 5\n pass(1, 0, 2, 2); // 6\n pass(0, 1, 1, 2); // 7\n } else {\n pass(0, 0, 1, 1, true);\n }\n return fn(pixels);\n });\n }\n decodePalette() {\n const {\n palette\n } = this;\n const {\n length\n } = palette;\n const transparency = this.transparency.indexed || [];\n const ret = Buffer.alloc(transparency.length + length);\n let pos = 0;\n let c = 0;\n for (let i = 0; i < length; i += 3) {\n var left;\n ret[pos++] = palette[i];\n ret[pos++] = palette[i + 1];\n ret[pos++] = palette[i + 2];\n ret[pos++] = (left = transparency[c++]) != null ? left : 255;\n }\n return ret;\n }\n copyToImageData(imageData, pixels) {\n let j;\n var k;\n let {\n colors\n } = this;\n let palette = null;\n let alpha = this.hasAlphaChannel;\n if (this.palette.length) {\n palette = this._decodedPalette || (this._decodedPalette = this.decodePalette());\n colors = 4;\n alpha = true;\n }\n const data = imageData.data || imageData;\n const {\n length\n } = data;\n const input = palette || pixels;\n let i = j = 0;\n if (colors === 1) {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n const v = input[k++];\n data[i++] = v;\n data[i++] = v;\n data[i++] = v;\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n } else {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n }\n }\n decode(fn) {\n const ret = Buffer.alloc(this.width * this.height * 4);\n return this.decodePixels(pixels => {\n this.copyToImageData(ret, pixels);\n return fn(ret);\n });\n }\n}\n\nexport { PNG as default };\n","// Node back-compat.\nconst ENCODING_MAPPING = {\n utf16le: 'utf-16le',\n ucs2: 'utf-16le',\n utf16be: 'utf-16be'\n}\n\nexport class DecodeStream {\n constructor(buffer) {\n this.buffer = buffer;\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n this.pos = 0;\n this.length = this.buffer.length;\n }\n\n readString(length, encoding = 'ascii') {\n encoding = ENCODING_MAPPING[encoding] || encoding;\n\n let buf = this.readBuffer(length);\n try {\n let decoder = new TextDecoder(encoding);\n return decoder.decode(buf);\n } catch (err) {\n return buf;\n }\n }\n\n readBuffer(length) {\n return this.buffer.slice(this.pos, (this.pos += length));\n }\n\n readUInt24BE() {\n return (this.readUInt16BE() << 8) + this.readUInt8();\n }\n\n readUInt24LE() {\n return this.readUInt16LE() + (this.readUInt8() << 16);\n }\n\n readInt24BE() {\n return (this.readInt16BE() << 8) + this.readUInt8();\n }\n\n readInt24LE() {\n return this.readUInt16LE() + (this.readInt8() << 16);\n }\n}\n\nDecodeStream.TYPES = {\n UInt8: 1,\n UInt16: 2,\n UInt24: 3,\n UInt32: 4,\n Int8: 1,\n Int16: 2,\n Int24: 3,\n Int32: 4,\n Float: 4,\n Double: 8\n};\n\nfor (let key of Object.getOwnPropertyNames(DataView.prototype)) {\n if (key.slice(0, 3) === 'get') {\n let type = key.slice(3).replace('Ui', 'UI');\n if (type === 'Float32') {\n type = 'Float';\n } else if (type === 'Float64') {\n type = 'Double';\n }\n let bytes = DecodeStream.TYPES[type];\n DecodeStream.prototype['read' + type + (bytes === 1 ? '' : 'BE')] = function () {\n const ret = this.view[key](this.pos, false);\n this.pos += bytes;\n return ret;\n };\n\n if (bytes !== 1) {\n DecodeStream.prototype['read' + type + 'LE'] = function () {\n const ret = this.view[key](this.pos, true);\n this.pos += bytes;\n return ret;\n };\n }\n }\n}\n","import {DecodeStream} from './DecodeStream.js';\n\nconst textEncoder = new TextEncoder();\nconst isBigEndian = new Uint8Array(new Uint16Array([0x1234]).buffer)[0] == 0x12;\n\nexport class EncodeStream {\n constructor(buffer) {\n this.buffer = buffer;\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n this.pos = 0;\n }\n\n writeBuffer(buffer) {\n this.buffer.set(buffer, this.pos);\n this.pos += buffer.length;\n }\n\n writeString(string, encoding = 'ascii') {\n let buf;\n switch (encoding) {\n case 'utf16le':\n case 'utf16-le':\n case 'ucs2': // node treats this the same as utf16.\n buf = stringToUtf16(string, isBigEndian);\n break;\n\n case 'utf16be':\n case 'utf16-be':\n buf = stringToUtf16(string, !isBigEndian);\n break;\n\n case 'utf8':\n buf = textEncoder.encode(string);\n break;\n\n case 'ascii':\n buf = stringToAscii(string);\n break;\n\n default:\n throw new Error(`Unsupported encoding: ${encoding}`);\n }\n\n this.writeBuffer(buf);\n }\n\n writeUInt24BE(val) {\n this.buffer[this.pos++] = (val >>> 16) & 0xff;\n this.buffer[this.pos++] = (val >>> 8) & 0xff;\n this.buffer[this.pos++] = val & 0xff;\n }\n\n writeUInt24LE(val) {\n this.buffer[this.pos++] = val & 0xff;\n this.buffer[this.pos++] = (val >>> 8) & 0xff;\n this.buffer[this.pos++] = (val >>> 16) & 0xff;\n }\n\n writeInt24BE(val) {\n if (val >= 0) {\n this.writeUInt24BE(val);\n } else {\n this.writeUInt24BE(val + 0xffffff + 1);\n }\n }\n\n writeInt24LE(val) {\n if (val >= 0) {\n this.writeUInt24LE(val);\n } else {\n this.writeUInt24LE(val + 0xffffff + 1);\n }\n }\n\n fill(val, length) {\n if (length < this.buffer.length) {\n this.buffer.fill(val, this.pos, this.pos + length);\n this.pos += length;\n } else {\n const buf = new Uint8Array(length);\n buf.fill(val);\n this.writeBuffer(buf);\n }\n }\n}\n\nfunction stringToUtf16(string, swap) {\n let buf = new Uint16Array(string.length);\n for (let i = 0; i < string.length; i++) {\n let code = string.charCodeAt(i);\n if (swap) {\n code = (code >> 8) | ((code & 0xff) << 8);\n }\n buf[i] = code;\n }\n return new Uint8Array(buf.buffer);\n}\n\nfunction stringToAscii(string) {\n let buf = new Uint8Array(string.length);\n for (let i = 0; i < string.length; i++) {\n // Match node.js behavior - encoding allows 8-bit rather than 7-bit.\n buf[i] = string.charCodeAt(i);\n }\n return buf;\n}\n\nfor (let key of Object.getOwnPropertyNames(DataView.prototype)) {\n if (key.slice(0, 3) === 'set') {\n let type = key.slice(3).replace('Ui', 'UI');\n if (type === 'Float32') {\n type = 'Float';\n } else if (type === 'Float64') {\n type = 'Double';\n }\n let bytes = DecodeStream.TYPES[type];\n EncodeStream.prototype['write' + type + (bytes === 1 ? '' : 'BE')] = function (value) {\n this.view[key](this.pos, value, false);\n this.pos += bytes;\n };\n\n if (bytes !== 1) {\n EncodeStream.prototype['write' + type + 'LE'] = function (value) {\n this.view[key](this.pos, value, true);\n this.pos += bytes;\n };\n }\n }\n}\n","import {DecodeStream} from './DecodeStream.js';\nimport {EncodeStream} from './EncodeStream.js';\n\nexport class Base {\n fromBuffer(buffer) {\n let stream = new DecodeStream(buffer);\n return this.decode(stream);\n }\n\n toBuffer(value) {\n let size = this.size(value);\n let buffer = new Uint8Array(size);\n let stream = new EncodeStream(buffer);\n this.encode(stream, value);\n return buffer;\n }\n}\n","import {DecodeStream} from './DecodeStream.js';\nimport {Base} from './Base.js';\n\nclass NumberT extends Base {\n constructor(type, endian = 'BE') {\n super();\n this.type = type;\n this.endian = endian;\n this.fn = this.type;\n if (this.type[this.type.length - 1] !== '8') {\n this.fn += this.endian;\n }\n }\n\n size() {\n return DecodeStream.TYPES[this.type];\n }\n\n decode(stream) {\n return stream[`read${this.fn}`]();\n }\n\n encode(stream, val) {\n return stream[`write${this.fn}`](val);\n }\n}\n\nexport {NumberT as Number};\n\nexport const uint8 = new NumberT('UInt8');\nexport const uint16be = new NumberT('UInt16', 'BE');\nexport const uint16 = uint16be;\nexport const uint16le = new NumberT('UInt16', 'LE');\nexport const uint24be = new NumberT('UInt24', 'BE');\nexport const uint24 = uint24be;\nexport const uint24le = new NumberT('UInt24', 'LE');\nexport const uint32be = new NumberT('UInt32', 'BE');\nexport const uint32 = uint32be;\nexport const uint32le = new NumberT('UInt32', 'LE');\nexport const int8 = new NumberT('Int8');\nexport const int16be = new NumberT('Int16', 'BE');\nexport const int16 = int16be;\nexport const int16le = new NumberT('Int16', 'LE');\nexport const int24be = new NumberT('Int24', 'BE');\nexport const int24 = int24be;\nexport const int24le = new NumberT('Int24', 'LE');\nexport const int32be = new NumberT('Int32', 'BE');\nexport const int32 = int32be;\nexport const int32le = new NumberT('Int32', 'LE');\nexport const floatbe = new NumberT('Float', 'BE');\nexport const float = floatbe;\nexport const floatle = new NumberT('Float', 'LE');\nexport const doublebe = new NumberT('Double', 'BE');\nexport const double = doublebe;\nexport const doublele = new NumberT('Double', 'LE');\n\nexport class Fixed extends NumberT {\n constructor(size, endian, fracBits = size >> 1) {\n super(`Int${size}`, endian);\n this._point = 1 << fracBits;\n }\n\n decode(stream) {\n return super.decode(stream) / this._point;\n }\n\n encode(stream, val) {\n return super.encode(stream, (val * this._point) | 0);\n }\n}\n\nexport const fixed16be = new Fixed(16, 'BE');\nexport const fixed16 = fixed16be;\nexport const fixed16le = new Fixed(16, 'LE');\nexport const fixed32be = new Fixed(32, 'BE');\nexport const fixed32 = fixed32be;\nexport const fixed32le = new Fixed(32, 'LE');\n","import {Number as NumberT} from './Number.js';\n\nexport function resolveLength(length, stream, parent) {\n let res;\n if (typeof length === 'number') {\n res = length;\n\n } else if (typeof length === 'function') {\n res = length.call(parent, parent);\n\n } else if (parent && (typeof length === 'string')) {\n res = parent[length];\n\n } else if (stream && length instanceof NumberT) {\n res = length.decode(stream);\n }\n\n if (isNaN(res)) {\n throw new Error('Not a fixed size');\n }\n\n return res;\n};\n\nexport class PropertyDescriptor {\n constructor(opts = {}) {\n this.enumerable = true;\n this.configurable = true;\n\n for (let key in opts) {\n const val = opts[key];\n this[key] = val;\n }\n }\n}\n","import {Base} from './Base.js';\nimport {Number as NumberT} from './Number.js';\nimport * as utils from './utils.js';\n\nclass ArrayT extends Base {\n constructor(type, length, lengthType = 'count') {\n super();\n this.type = type;\n this.length = length;\n this.lengthType = lengthType;\n }\n\n decode(stream, parent) {\n let length;\n const { pos } = stream;\n\n const res = [];\n let ctx = parent;\n\n if (this.length != null) {\n length = utils.resolveLength(this.length, stream, parent);\n }\n\n if (this.length instanceof NumberT) {\n // define hidden properties\n Object.defineProperties(res, {\n parent: { value: parent },\n _startOffset: { value: pos },\n _currentOffset: { value: 0, writable: true },\n _length: { value: length }\n });\n\n ctx = res;\n }\n\n if ((length == null) || (this.lengthType === 'bytes')) {\n const target = (length != null) ?\n stream.pos + length\n : (parent != null ? parent._length : undefined) ?\n parent._startOffset + parent._length\n :\n stream.length;\n\n while (stream.pos < target) {\n res.push(this.type.decode(stream, ctx));\n }\n\n } else {\n for (let i = 0, end = length; i < end; i++) {\n res.push(this.type.decode(stream, ctx));\n }\n }\n\n return res;\n }\n\n size(array, ctx, includePointers = true) {\n if (!array) {\n return this.type.size(null, ctx) * utils.resolveLength(this.length, null, ctx);\n }\n\n let size = 0;\n if (this.length instanceof NumberT) {\n size += this.length.size();\n ctx = {parent: ctx, pointerSize: 0};\n }\n\n for (let item of array) {\n size += this.type.size(item, ctx);\n }\n\n if (ctx && includePointers && this.length instanceof NumberT) {\n size += ctx.pointerSize;\n }\n \n return size;\n }\n\n encode(stream, array, parent) {\n let ctx = parent;\n if (this.length instanceof NumberT) {\n ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent\n };\n\n ctx.pointerOffset = stream.pos + this.size(array, ctx, false);\n this.length.encode(stream, array.length);\n }\n\n for (let item of array) {\n this.type.encode(stream, item, ctx);\n }\n\n if (this.length instanceof NumberT) {\n let i = 0;\n while (i < ctx.pointers.length) {\n const ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n }\n }\n}\n\nexport {ArrayT as Array};\n","import {Base} from './Base.js';\nimport {Number as NumberT} from './Number.js';\nimport * as utils from './utils.js';\n\nexport class BufferT extends Base {\n constructor(length) {\n super();\n this.length = length;\n }\n \n decode(stream, parent) {\n const length = utils.resolveLength(this.length, stream, parent);\n return stream.readBuffer(length);\n }\n\n size(val, parent) {\n if (!val) {\n return utils.resolveLength(this.length, null, parent);\n }\n\n let len = val.length;\n if (this.length instanceof NumberT) {\n len += this.length.size();\n }\n\n return len;\n }\n\n encode(stream, buf, parent) {\n if (this.length instanceof NumberT) {\n this.length.encode(stream, buf.length);\n }\n\n return stream.writeBuffer(buf);\n }\n}\n\nexport {BufferT as Buffer};\n","import {Base} from './Base.js';\nimport * as utils from './utils.js';\n\nexport class Reserved extends Base {\n constructor(type, count = 1) {\n super();\n this.type = type;\n this.count = count;\n }\n decode(stream, parent) {\n stream.pos += this.size(null, parent);\n return undefined;\n }\n\n size(data, parent) {\n const count = utils.resolveLength(this.count, null, parent);\n return this.type.size() * count;\n }\n\n encode(stream, val, parent) {\n return stream.fill(0, this.size(val, parent));\n }\n}\n","import {Base} from './Base.js';\nimport {Number as NumberT} from './Number.js';\nimport * as utils from './utils.js';\n\nclass StringT extends Base {\n constructor(length, encoding = 'ascii') {\n super();\n this.length = length;\n this.encoding = encoding;\n }\n\n decode(stream, parent) {\n let length, pos;\n\n if (this.length != null) {\n length = utils.resolveLength(this.length, stream, parent);\n } else {\n let buffer;\n ({buffer, length, pos} = stream);\n\n while ((pos < length) && (buffer[pos] !== 0x00)) {\n ++pos;\n }\n\n length = pos - stream.pos;\n }\n\n let { encoding } = this;\n if (typeof encoding === 'function') {\n encoding = encoding.call(parent, parent) || 'ascii';\n }\n\n const string = stream.readString(length, encoding);\n\n if ((this.length == null) && (stream.pos < stream.length)) {\n stream.pos++;\n }\n\n return string;\n }\n\n size(val, parent) {\n // Use the defined value if no value was given\n if (!val) {\n return utils.resolveLength(this.length, null, parent);\n }\n\n let { encoding } = this;\n if (typeof encoding === 'function') {\n encoding = encoding.call(parent != null ? parent.val : undefined, parent != null ? parent.val : undefined) || 'ascii';\n }\n\n if (encoding === 'utf16be') {\n encoding = 'utf16le';\n }\n\n let size = byteLength(val, encoding);\n if (this.length instanceof NumberT) {\n size += this.length.size();\n }\n\n if ((this.length == null)) {\n size++;\n }\n\n return size;\n }\n\n encode(stream, val, parent) {\n let { encoding } = this;\n if (typeof encoding === 'function') {\n encoding = encoding.call(parent != null ? parent.val : undefined, parent != null ? parent.val : undefined) || 'ascii';\n }\n\n if (this.length instanceof NumberT) {\n this.length.encode(stream, byteLength(val, encoding));\n }\n\n stream.writeString(val, encoding);\n\n if ((this.length == null)) {\n return stream.writeUInt8(0x00);\n }\n }\n}\n\nfunction byteLength(string, encoding) {\n switch (encoding) {\n case 'ascii':\n return string.length;\n case 'utf8':\n let len = 0;\n for (let i = 0; i < string.length; i++) {\n let c = string.charCodeAt(i);\n\n if (c >= 0xd800 && c <= 0xdbff && i < string.length - 1) {\n let c2 = string.charCodeAt(++i);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = ((c & 0x3ff) << 10) + (c2 & 0x3ff) + 0x10000;\n } else {\n // unmatched surrogate.\n i--;\n }\n }\n\n if ((c & 0xffffff80) === 0) {\n len++;\n } else if ((c & 0xfffff800) === 0) {\n len += 2;\n } else if ((c & 0xffff0000) === 0) {\n len += 3;\n } else if ((c & 0xffe00000) === 0) {\n len += 4;\n }\n }\n return len;\n case 'utf16le':\n case 'utf16-le':\n case 'utf16be':\n case 'utf16-be':\n case 'ucs2':\n return string.length * 2;\n default:\n throw new Error('Unknown encoding ' + encoding);\n }\n}\n\nexport {StringT as String};\n","import {Base} from './Base.js';\nimport * as utils from './utils.js';\n\nexport class Struct extends Base {\n constructor(fields = {}) {\n super();\n this.fields = fields;\n }\n\n decode(stream, parent, length = 0) {\n const res = this._setup(stream, parent, length);\n this._parseFields(stream, res, this.fields);\n\n if (this.process != null) {\n this.process.call(res, stream);\n }\n return res;\n }\n\n _setup(stream, parent, length) {\n const res = {};\n\n // define hidden properties\n Object.defineProperties(res, {\n parent: { value: parent },\n _startOffset: { value: stream.pos },\n _currentOffset: { value: 0, writable: true },\n _length: { value: length }\n });\n\n return res;\n }\n\n _parseFields(stream, res, fields) {\n for (let key in fields) {\n var val;\n const type = fields[key];\n if (typeof type === 'function') {\n val = type.call(res, res);\n } else {\n val = type.decode(stream, res);\n }\n\n if (val !== undefined) {\n if (val instanceof utils.PropertyDescriptor) {\n Object.defineProperty(res, key, val);\n } else {\n res[key] = val;\n }\n }\n\n res._currentOffset = stream.pos - res._startOffset;\n }\n\n }\n\n size(val, parent, includePointers = true) {\n if (val == null) { val = {}; }\n const ctx = {\n parent,\n val,\n pointerSize: 0\n };\n\n if (this.preEncode != null) {\n this.preEncode.call(val);\n }\n\n let size = 0;\n for (let key in this.fields) {\n const type = this.fields[key];\n if (type.size != null) {\n size += type.size(val[key], ctx);\n }\n }\n\n if (includePointers) {\n size += ctx.pointerSize;\n }\n\n return size;\n }\n\n encode(stream, val, parent) {\n let type;\n if (this.preEncode != null) {\n this.preEncode.call(val, stream);\n }\n\n const ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent,\n val,\n pointerSize: 0\n };\n\n ctx.pointerOffset = stream.pos + this.size(val, ctx, false);\n\n for (let key in this.fields) {\n type = this.fields[key];\n if (type.encode != null) {\n type.encode(stream, val[key], ctx);\n }\n }\n\n let i = 0;\n while (i < ctx.pointers.length) {\n const ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n }\n}\n","import {Struct} from './Struct.js';\n\nconst getPath = (object, pathArray) => {\n return pathArray.reduce((prevObj, key) => prevObj && prevObj[key], object);\n};\n\nexport class VersionedStruct extends Struct {\n constructor(type, versions = {}) {\n super();\n this.type = type;\n this.versions = versions;\n if (typeof type === 'string') {\n this.versionPath = type.split('.');\n }\n }\n\n decode(stream, parent, length = 0) {\n const res = this._setup(stream, parent, length);\n\n if (typeof this.type === 'string') {\n res.version = getPath(parent, this.versionPath);\n } else {\n res.version = this.type.decode(stream);\n }\n\n if (this.versions.header) {\n this._parseFields(stream, res, this.versions.header);\n }\n\n const fields = this.versions[res.version];\n if ((fields == null)) {\n throw new Error(`Unknown version ${res.version}`);\n }\n\n if (fields instanceof VersionedStruct) {\n return fields.decode(stream, parent);\n }\n\n this._parseFields(stream, res, fields);\n\n if (this.process != null) {\n this.process.call(res, stream);\n }\n return res;\n }\n\n size(val, parent, includePointers = true) {\n let key, type;\n if (!val) {\n throw new Error('Not a fixed size');\n }\n\n if (this.preEncode != null) {\n this.preEncode.call(val);\n }\n\n const ctx = {\n parent,\n val,\n pointerSize: 0\n };\n\n let size = 0;\n if (typeof this.type !== 'string') {\n size += this.type.size(val.version, ctx);\n }\n\n if (this.versions.header) {\n for (key in this.versions.header) {\n type = this.versions.header[key];\n if (type.size != null) {\n size += type.size(val[key], ctx);\n }\n }\n }\n\n const fields = this.versions[val.version];\n if ((fields == null)) {\n throw new Error(`Unknown version ${val.version}`);\n }\n\n for (key in fields) {\n type = fields[key];\n if (type.size != null) {\n size += type.size(val[key], ctx);\n }\n }\n\n if (includePointers) {\n size += ctx.pointerSize;\n }\n\n return size;\n }\n\n encode(stream, val, parent) {\n let key, type;\n if (this.preEncode != null) {\n this.preEncode.call(val, stream);\n }\n\n const ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent,\n val,\n pointerSize: 0\n };\n\n ctx.pointerOffset = stream.pos + this.size(val, ctx, false);\n\n if (typeof this.type !== 'string') {\n this.type.encode(stream, val.version);\n }\n\n if (this.versions.header) {\n for (key in this.versions.header) {\n type = this.versions.header[key];\n if (type.encode != null) {\n type.encode(stream, val[key], ctx);\n }\n }\n }\n\n const fields = this.versions[val.version];\n for (key in fields) {\n type = fields[key];\n if (type.encode != null) {\n type.encode(stream, val[key], ctx);\n }\n }\n\n let i = 0;\n while (i < ctx.pointers.length) {\n const ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n }\n}\n","import * as r from \"restructure\";\n\nconst DACTable = new r.Struct({\n identifier: new r.Buffer(1),\n value: new r.Buffer(1),\n});\n\nconst DACMarker = {\n name: () => \"DAC\",\n length: r.uint16be,\n tables: new r.Array(DACTable, (parent) => parent.length / 2),\n};\n\nexport default DACMarker;\n","export const readUInt8 = (array, offset) => {\n return array[offset];\n};\n\nexport const readUInt16BE = (array, offset) => {\n return (array[offset] << 8) | array[offset + 1];\n};\n\nexport const readUInt16LE = (array, offset) => {\n return array[offset] | (array[offset + 1] << 8);\n};\n\nexport const readUInt32BE = (array, offset) => {\n return readInt32BE(array, offset) >>> 0;\n};\n\nexport const readUInt32LE = (array, offset) => {\n return readInt32LE(array, offset) >>> 0;\n};\n\nexport const uint8ArrayToHexString = (uint8Array) => {\n return Array.from(uint8Array, (byte) =>\n byte.toString(16).padStart(2, \"0\"),\n ).join(\"\");\n};\n\nconst decoder = new TextDecoder(\"utf-8\");\n\nexport const uint8ArrayToString = (uint8Array) => {\n return decoder.decode(uint8Array);\n};\n\nexport const concatenateUint8Arrays = (arrays) => {\n const totalLength = arrays.reduce((length, arr) => length + arr.length, 0);\n const concatenatedArray = new Uint8Array(totalLength);\n\n let offset = 0;\n\n arrays.forEach((arr) => {\n concatenatedArray.set(arr, offset);\n offset += arr.length;\n });\n\n return concatenatedArray;\n};\n\nexport const readInt32BE = (array, offset) => {\n return (\n (array[offset] << 24) |\n (array[offset + 1] << 16) |\n (array[offset + 2] << 8) |\n array[offset + 3]\n );\n};\n\nexport const readInt32LE = (array, offset) => {\n return (\n array[offset] |\n (array[offset + 1] << 8) |\n (array[offset + 2] << 16) |\n (array[offset + 3] << 24)\n );\n};\n","import * as r from \"restructure\";\nimport { concatenateUint8Arrays, readUInt8 } from \"./utils.js\";\n\nclass HuffmanTableElements {\n decode(stream, parent) {\n const tables = {};\n\n let buffer = stream.buffer.slice(\n stream.pos,\n stream.pos + parent.length - 2,\n );\n\n while (buffer.length > 0) {\n let offset = 1;\n\n const elements = [];\n const identifier = readUInt8(buffer, 0);\n const lengths = buffer.slice(offset, offset + 16);\n\n offset += 16;\n\n for (const length of lengths) {\n elements.push(buffer.slice(offset, offset + length));\n offset += length;\n }\n\n buffer = buffer.slice(offset);\n\n tables[identifier] = concatenateUint8Arrays(elements);\n }\n\n stream.pos += parent.length - 2;\n\n return tables;\n }\n}\n\nconst DefineHuffmanTableMarker = {\n name: () => \"DHT\",\n length: r.uint16be,\n tables: new HuffmanTableElements(),\n};\n\nexport default DefineHuffmanTableMarker;\n","import * as r from \"restructure\";\n\nconst DQTMarker = {\n name: () => \"DQT\",\n length: r.uint16be,\n tables: new r.Array(\n new r.Struct({\n identifier: new r.Buffer(1),\n data: new r.Buffer(64),\n }),\n (parent) => (parent.length - 2) / 65,\n ),\n};\n\nexport default DQTMarker;\n","import * as r from \"restructure\";\n\nconst DRIMarker = {\n name: () => \"DRI\",\n length: r.uint16be,\n restartInterval: r.uint16be,\n};\n\nexport default DRIMarker;\n","import * as r from \"restructure\";\n\nconst EndOfImageMarker = {\n name: () => \"EOI\",\n afterEOI: new r.Reserved(r.uint8, Infinity),\n};\n\nexport default EndOfImageMarker;\n","import * as r from \"restructure\";\nimport {\n readUInt8,\n readUInt16BE,\n readUInt16LE,\n readUInt32BE,\n readUInt32LE,\n uint8ArrayToHexString,\n uint8ArrayToString,\n readInt32BE,\n readInt32LE,\n} from \"./utils.js\";\n\nconst tags = {\n ifd: {\n \"010e\": \"imageDescription\",\n \"010f\": \"make\",\n \"011a\": \"xResolution\",\n \"011b\": \"yResolution\",\n \"011c\": \"planarConfiguration\",\n \"012d\": \"transferFunction\",\n \"013b\": \"artist\",\n \"013e\": \"whitePoint\",\n \"013f\": \"primaryChromaticities\",\n \"0100\": \"imageWidth\",\n \"0101\": \"imageHeight\",\n \"0102\": \"bitsPerSample\",\n \"0103\": \"compression\",\n \"0106\": \"photometricInterpretation\",\n \"0110\": \"model\",\n \"0111\": \"stripOffsets\",\n \"0112\": \"orientation\",\n \"0115\": \"samplesPerPixel\",\n \"0116\": \"rowsPerStrip\",\n \"0117\": \"stripByteCounts\",\n \"0128\": \"resolutionUnit\",\n \"0131\": \"software\",\n \"0132\": \"dateTime\",\n \"0201\": \"jpegInterchangeFormat\",\n \"0202\": \"jpegInterchangeFormatLength\",\n \"0211\": \"ycbCrCoefficients\",\n \"0212\": \"ycbCrSubSampling\",\n \"0213\": \"ycbCrPositioning\",\n \"0214\": \"referenceBlackWhite\",\n \"829a\": \"exposureTime\",\n \"829d\": \"fNumber\",\n \"920a\": \"focalLength\",\n \"927c\": \"makerNote\",\n 8298: \"copyright\",\n 8769: \"exifIFDPointer\",\n 8822: \"exposureProgram\",\n 8824: \"spectralSensitivity\",\n 8825: \"gpsInfoIFDPointer\",\n 8827: \"photographicSensitivity\",\n 8828: \"oecf\",\n 8830: \"sensitivityType\",\n 8831: \"standardOutputSensitivity\",\n 8832: \"recommendedExposureIndex\",\n 8833: \"isoSpeed\",\n 8834: \"isoSpeedLatitudeyyy\",\n 8835: \"isoSpeedLatitudezzz\",\n 9000: \"exifVersion\",\n 9003: \"dateTimeOriginal\",\n 9004: \"dateTimeDigitized\",\n 9101: \"componentsConfiguration\",\n 9102: \"compressedBitsPerPixel\",\n 9201: \"shutterSpeedValue\",\n 9202: \"apertureValue\",\n 9203: \"brightnessValue\",\n 9204: \"exposureBiasValue\",\n 9205: \"maxApertureValue\",\n 9206: \"subjectDistance\",\n 9207: \"meteringMode\",\n 9208: \"lightSource\",\n 9209: \"flash\",\n 9214: \"subjectArea\",\n 9286: \"userComment\",\n 9290: \"subSecTime\",\n 9291: \"subSecTimeOriginal\",\n 9292: \"subSecTimeDigitized\",\n a000: \"flashpixVersion\",\n a001: \"colorSpace\",\n a002: \"pixelXDimension\",\n a003: \"pixelYDimension\",\n a004: \"relatedSoundFile\",\n a005: \"interoperabilityIFDPointer\",\n a20b: \"flashEnergy\",\n a20c: \"spatialFrequencyResponse\",\n a20e: \"focalPlaneXResolution\",\n a20f: \"focalPlaneYResolution\",\n a40a: \"sharpness\",\n a40b: \"deviceSettingDescription\",\n a40c: \"subjectDistanceRange\",\n a210: \"focalPlaneResolutionUnit\",\n a214: \"subjectLocation\",\n a215: \"exposureIndex\",\n a217: \"sensingMethod\",\n a300: \"fileSource\",\n a301: \"sceneType\",\n a302: \"cfaPattern\",\n a401: \"customRendered\",\n a402: \"exposureMode\",\n a403: \"whiteBalance\",\n a404: \"digitalZoomRatio\",\n a405: \"focalLengthIn35mmFilm\",\n a406: \"sceneCaptureType\",\n a407: \"gainControl\",\n a408: \"contrast\",\n a409: \"saturation\",\n a420: \"imageUniqueID\",\n a430: \"cameraOwnerName\",\n a431: \"bodySerialNumber\",\n a432: \"lensSpecification\",\n a433: \"lensMake\",\n a434: \"lensModel\",\n a435: \"lensSerialNumber\",\n a500: \"gamma\",\n },\n gps: {\n \"0000\": \"gpsVersionID\",\n \"0001\": \"gpsLatitudeRef\",\n \"0002\": \"gpsLatitude\",\n \"0003\": \"gpsLongitudeRef\",\n \"0004\": \"gpsLongitude\",\n \"0005\": \"gpsAltitudeRef\",\n \"0006\": \"gpsAltitude\",\n \"0007\": \"gpsTimeStamp\",\n \"0008\": \"gpsSatellites\",\n \"0009\": \"gpsStatus\",\n \"000a\": \"gpsMeasureMode\",\n \"000b\": \"gpsDOP\",\n \"000c\": \"gpsSpeedRef\",\n \"000d\": \"gpsSpeed\",\n \"000e\": \"gpsTrackRef\",\n \"000f\": \"gpsTrack\",\n \"0010\": \"gpsImgDirectionRef\",\n \"0011\": \"gpsImgDirection\",\n \"0012\": \"gpsMapDatum\",\n \"0013\": \"gpsDestLatitudeRef\",\n \"0014\": \"gpsDestLatitude\",\n \"0015\": \"gpsDestLongitudeRef\",\n \"0016\": \"gpsDestLongitude\",\n \"0017\": \"gpsDestBearingRef\",\n \"0018\": \"gpsDestBearing\",\n \"0019\": \"gpsDestDistanceRef\",\n \"001a\": \"gpsDestDistance\",\n \"001b\": \"gpsProcessingMethod\",\n \"001c\": \"gpsAreaInformation\",\n \"001d\": \"gpsDateStamp\",\n \"001e\": \"gpsDifferential\",\n \"001f\": \"gpsHPositioningError\",\n },\n};\n\nclass IDFEntries {\n constructor(bigEndian) {\n this.bigEndian = bigEndian;\n this.bytes = [0, 1, 1, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8];\n }\n\n _getTagValue(dataValue, dataFormat, componentsNumber) {\n switch (dataFormat) {\n case 2:\n return dataValue.toString(\"ascii\").replace(/\\0+$/, \"\");\n case 129:\n return dataValue.toString(\"utf8\").replace(/\\0+$/, \"\");\n case 7:\n return \"0x\" + dataValue.toString(\"hex\");\n default:\n return this._getTagValueForNumericalData(dataValue, dataFormat, componentsNumber);\n }\n }\n\n _getTagValueForNumericalData(dataValue, dataFormat, componentsNumber) {\n const tagValue = [];\n const componentsBytes = this.bytes[dataFormat];\n for (let i = 0; i < componentsNumber; i += 1) {\n tagValue.push(this._getSingleTagValueForNumericalData(dataValue, dataFormat, i * componentsBytes));\n }\n return tagValue.length === 1 ? tagValue[0] : tagValue;\n }\n\n _getSingleTagValueForNumericalData(dataValue, dataFormat, pos) {\n const uint16 = (pos) =>\n this.bigEndian\n ? readUInt16BE(dataValue, pos)\n : readUInt16LE(dataValue, pos);\n\n const uint32 = (pos) =>\n this.bigEndian\n ? readUInt32BE(dataValue, pos)\n : readUInt32LE(dataValue, pos);\n\n const int32 = (pos) =>\n this.bigEndian\n ? readInt32BE(dataValue, pos)\n : readInt32LE(dataValue, pos);\n\n switch (dataFormat) {\n case 1:\n return readUInt8(dataValue, pos)\n case 3:\n return uint16(pos);\n case 4:\n return uint32(pos);\n case 5:\n return uint32(pos) / uint32(pos + 4);\n case 9:\n return int32(pos);\n case 10: {\n return int32(pos) / int32(pos + 4);\n }\n }\n }\n\n _decodeIDFEntries(buffer, tags, offset, log = false) {\n let pos = 2 + offset;\n\n const entries = {};\n\n const uint16 = (pos) =>\n this.bigEndian ? readUInt16BE(buffer, pos) : readUInt16LE(buffer, pos);\n\n const uint32 = (pos) =>\n this.bigEndian ? readUInt32BE(buffer, pos) : readUInt32LE(buffer, pos);\n\n const numberOfEntries = uint16(offset);\n\n for (let i = 0; i < numberOfEntries; i++) {\n const tagAddress = buffer.slice(pos, pos + 2);\n const dataFormat = uint16(pos + 2);\n const componentsNumber = uint32(pos + 4);\n const componentsBytes = this.bytes[dataFormat];\n const dataLength = componentsNumber * componentsBytes;\n\n let dataValue = buffer.slice(pos + 8, pos + 12);\n\n if (dataLength > 4) {\n const dataOffset = this.bigEndian\n ? readUInt32BE(dataValue, 0)\n : readUInt32LE(dataValue, 0);\n\n dataValue = buffer.slice(dataOffset, dataOffset + dataLength);\n }\n\n const tagValue = this._getTagValue(dataValue, dataFormat, componentsNumber);\n\n const tagNumber = this.bigEndian\n ? uint8ArrayToHexString(tagAddress)\n : uint8ArrayToHexString(tagAddress.reverse());\n\n const tagName = tags[tagNumber];\n\n entries[tagName] = tagValue;\n\n pos += 12;\n }\n\n return entries;\n }\n\n decode(stream, parent) {\n const buffer = stream.buffer.slice(stream.pos - 8);\n const offsetToFirstIFD = parent.offsetToFirstIFD;\n\n if (offsetToFirstIFD > buffer.length) {\n stream.pos += parent.parent.length - 16;\n return {};\n }\n\n const entries = this._decodeIDFEntries(buffer, tags.ifd, offsetToFirstIFD);\n const { exifIFDPointer, gpsInfoIFDPointer } = entries;\n\n if (exifIFDPointer) {\n entries.subExif = this._decodeIDFEntries(\n buffer,\n tags.ifd,\n exifIFDPointer,\n );\n }\n\n if (gpsInfoIFDPointer) {\n const gps = gpsInfoIFDPointer;\n entries.gpsInfo = this._decodeIDFEntries(buffer, tags.gps, gps, true);\n }\n\n stream.pos += parent.parent.length - 16;\n\n return entries;\n }\n}\n\nconst IFDData = (bigEndian) => {\n const uint16 = bigEndian ? r.uint16be : r.uint16le;\n const uint32 = bigEndian ? r.uint32be : r.uint32le;\n\n return new r.Struct({\n fortyTwo: uint16,\n offsetToFirstIFD: uint32,\n entries: new IDFEntries(bigEndian),\n });\n};\n\nclass TIFFHeader {\n decode(stream, parent) {\n const byteOrder = uint8ArrayToString(\n stream.buffer.slice(stream.pos, stream.pos + 2),\n );\n\n const bigEndian = byteOrder === \"MM\";\n\n stream.pos += 2;\n\n const data = IFDData(bigEndian).decode(stream, parent);\n\n return data.entries;\n }\n}\n\nconst EXIFMarker = {\n name: () => \"EXIF\",\n length: r.uint16be,\n identifier: new r.String(6),\n entries: new TIFFHeader(),\n};\n\nexport default EXIFMarker;\n","import * as r from \"restructure\";\n\nconst JFIFMarker = {\n name: () => \"JFIF\",\n length: r.uint16be,\n identifier: new r.String(5),\n version: r.uint16be,\n units: r.uint8,\n xDensity: r.uint16be,\n yDensity: r.uint16be,\n thumbnailWidth: r.uint8,\n thumbnailHeight: r.uint8,\n};\n\nexport default JFIFMarker;\n","import * as r from \"restructure\";\n\nclass ImageData {\n decode(stream) {\n const buffer = stream.buffer.slice(stream.pos);\n\n let length = 0;\n let i = buffer.indexOf(0xff);\n\n while (i !== -1) {\n length = i;\n\n const nextByte = buffer[length + 1];\n const comesRestart = nextByte >= 0xd0 && nextByte <= 0xd7;\n\n if (nextByte !== 0x00 && !comesRestart) break;\n\n i = buffer.indexOf(0xff, i + 1);\n }\n\n stream.pos += length;\n\n return buffer.slice(0, length);\n }\n}\n\nconst SOSComponentSpecification = new r.Struct({\n scanComponentSelector: r.uint8,\n entropyCodingTable: new r.Buffer(1),\n});\n\nconst SOSMarker = {\n name: () => \"SOS\",\n length: r.uint16be,\n numberOfImageComponents: r.uint8,\n componentSpecifications: new r.Array(\n SOSComponentSpecification,\n (parent) => parent.numberOfImageComponents,\n ),\n startOfSpectral: r.uint8,\n endOfSpectral: r.uint8,\n successiveApproximationBit: new r.Buffer(1),\n data: new ImageData(),\n};\n\nexport default SOSMarker;\n","import * as r from \"restructure\";\n\nconst FrameColorComponent = new r.Struct({\n id: r.uint8,\n samplingFactors: r.uint8,\n quantizationTableId: r.uint8,\n});\n\nconst StartOfFrameMarker = {\n name: () => \"SOF\",\n length: r.uint16be,\n precision: r.uint8,\n height: r.uint16be,\n width: r.uint16be,\n numberOfComponents: r.uint8,\n components: new r.Array(\n FrameColorComponent,\n (parent) => parent.numberOfComponents,\n ),\n};\n\nexport default StartOfFrameMarker;\n","const StartOfImageMarker = {\n name: () => \"SOI\",\n};\n\nexport default StartOfImageMarker;\n","import * as r from \"restructure\";\n\nimport DACMarker from \"./markers/dac.js\";\nimport DefineHuffmanTableMarker from \"./markers/dht.js\";\nimport DQTMarker from \"./markers/dqt.js\";\nimport DRIMarker from \"./markers/dri.js\";\nimport EndOfImageMarker from \"./markers/eoi.js\";\nimport EXIFMarker from \"./markers/exif.js\";\nimport JFIFMarker from \"./markers/jfif.js\";\nimport SOSMarker from \"./markers/sos.js\";\nimport StartOfFrameMarker from \"./markers/sof.js\";\nimport StartOfImageMarker from \"./markers/soi.js\";\n\nconst UnknownMarker = {\n length: r.uint16be,\n buf: new r.Buffer((parent) => parent.length - 2),\n};\n\nconst unknownMarkers = Array(63)\n .fill(0)\n .reduce((acc, v, i) => ({ ...acc, [i + 0xffc0]: UnknownMarker }), {});\n\nconst Marker = new r.VersionedStruct(r.uint16be, {\n ...unknownMarkers,\n 0xffc0: StartOfFrameMarker,\n 0xffc1: StartOfFrameMarker,\n 0xffc2: StartOfFrameMarker,\n 0xffc3: StartOfFrameMarker,\n 0xffc4: DefineHuffmanTableMarker,\n 0xffc5: StartOfFrameMarker,\n 0xffc6: StartOfFrameMarker,\n 0xffc7: StartOfFrameMarker,\n 0xffc9: StartOfFrameMarker,\n 0xffca: StartOfFrameMarker,\n 0xffcb: StartOfFrameMarker,\n 0xffcc: DACMarker,\n 0xffcd: StartOfFrameMarker,\n 0xffce: StartOfFrameMarker,\n 0xffcf: StartOfFrameMarker,\n 0xffd8: StartOfImageMarker,\n 0xffd9: EndOfImageMarker,\n 0xffda: SOSMarker,\n 0xffdb: DQTMarker,\n 0xffdd: DRIMarker,\n 0xffe0: JFIFMarker,\n 0xffe1: EXIFMarker,\n});\n\nconst JPEG = new r.Array(Marker);\n\nconst decode = (buffer) => {\n const markers = JPEG.fromBuffer(buffer);\n return markers.map(({ version, ...rest }) => ({ type: version, ...rest }));\n};\n\nexport default { decode };\n","import fs from 'fs';\nimport url from 'url';\nimport path from 'path';\nimport _PNG from '@react-pdf/png-js';\nimport _JPEG from 'jay-peg';\n\nclass PNG {\n data;\n width;\n height;\n format;\n constructor(data) {\n const png = new _PNG(data);\n this.data = data;\n this.width = png.width;\n this.height = png.height;\n this.format = 'png';\n }\n static isValid(data) {\n try {\n return !!new PNG(data);\n }\n catch {\n return false;\n }\n }\n}\n\nclass JPEG {\n data;\n width;\n height;\n format;\n constructor(data) {\n this.data = data;\n this.format = 'jpeg';\n this.width = 0;\n this.height = 0;\n if (data.readUInt16BE(0) !== 0xffd8) {\n throw new Error('SOI not found in JPEG');\n }\n const markers = _JPEG.decode(this.data);\n let orientation;\n for (let i = 0; i < markers.length; i += 1) {\n const marker = markers[i];\n if (marker.name === 'EXIF' && marker.entries.orientation) {\n orientation = marker.entries.orientation;\n }\n if (marker.name === 'SOF') {\n this.width ||= marker.width;\n this.height ||= marker.height;\n }\n }\n if (orientation > 4) {\n [this.width, this.height] = [this.height, this.width];\n }\n }\n static isValid(data) {\n return data && Buffer.isBuffer(data) && data.readUInt16BE(0) === 0xffd8;\n }\n}\n\nconst createCache = ({ limit = 100 } = {}) => {\n let cache = {};\n let keys = [];\n return {\n get: (key) => (key ? cache[key] : null),\n set: (key, value) => {\n keys.push(key);\n if (keys.length > limit) {\n delete cache[keys.shift()];\n }\n cache[key] = value;\n },\n reset: () => {\n cache = {};\n keys = [];\n },\n length: () => keys.length,\n };\n};\n\nconst IMAGE_CACHE = createCache({ limit: 30 });\nconst isBuffer = Buffer.isBuffer;\nconst isBlob = (src) => {\n return typeof Blob !== 'undefined' && src instanceof Blob;\n};\nconst isDataImageSrc = (src) => {\n return 'data' in src;\n};\nconst isBase64Src = (imageSrc) => 'uri' in imageSrc &&\n /^data:image\\/[a-zA-Z]*;base64,[^\"]*/g.test(imageSrc.uri);\nconst getAbsoluteLocalPath = (src) => {\n const { protocol, auth, host, port, hostname, path: pathname, } = url.parse(src);\n const absolutePath = pathname ? path.resolve(pathname) : undefined;\n if ((protocol && protocol !== 'file:') || auth || host || port || hostname) {\n return undefined;\n }\n return absolutePath;\n};\nconst fetchLocalFile = (src) => new Promise((resolve, reject) => {\n try {\n if (false) ;\n const absolutePath = getAbsoluteLocalPath(src.uri);\n if (!absolutePath) {\n reject(new Error(`Cannot fetch non-local path: ${src}`));\n return;\n }\n fs.readFile(absolutePath, (err, data) => err ? reject(err) : resolve(data));\n }\n catch (err) {\n reject(err);\n }\n});\nconst fetchRemoteFile = async (src) => {\n const { method = 'GET', headers, body, credentials } = src;\n const response = await fetch(src.uri, {\n method,\n headers,\n body,\n credentials,\n });\n const buffer = await response.arrayBuffer();\n return Buffer.from(buffer);\n};\nconst isValidFormat = (format) => {\n const lower = format.toLowerCase();\n return lower === 'jpg' || lower === 'jpeg' || lower === 'png';\n};\nconst guessFormat = (buffer) => {\n let format;\n if (JPEG.isValid(buffer)) {\n format = 'jpg';\n }\n else if (PNG.isValid(buffer)) {\n format = 'png';\n }\n return format;\n};\nfunction getImage(body, format) {\n switch (format.toLowerCase()) {\n case 'jpg':\n case 'jpeg':\n return new JPEG(body);\n case 'png':\n return new PNG(body);\n default:\n return null;\n }\n}\nconst resolveBase64Image = async ({ uri }) => {\n const match = /^data:image\\/([a-zA-Z]*);base64,([^\"]*)/g.exec(uri);\n if (!match)\n throw new Error(`Invalid base64 image: ${uri}`);\n const format = match[1];\n const data = match[2];\n if (!isValidFormat(format))\n throw new Error(`Base64 image invalid format: ${format}`);\n return getImage(Buffer.from(data, 'base64'), format);\n};\nconst resolveImageFromData = async (src) => {\n if (src.data && src.format) {\n return getImage(src.data, src.format);\n }\n throw new Error(`Invalid data given for local file: ${JSON.stringify(src)}`);\n};\nconst resolveBufferImage = async (buffer) => {\n const format = guessFormat(buffer);\n if (format) {\n return getImage(buffer, format);\n }\n return null;\n};\nconst resolveBlobImage = async (blob) => {\n const { type } = blob;\n if (!type || type === 'application/octet-stream') {\n const arrayBuffer = await blob.arrayBuffer();\n const buffer = Buffer.from(arrayBuffer);\n return resolveBufferImage(buffer);\n }\n if (!type.startsWith('image/')) {\n throw new Error(`Invalid blob type: ${type}`);\n }\n const format = type.replace('image/', '');\n if (!isValidFormat(format)) {\n throw new Error(`Invalid blob type: ${type}`);\n }\n const buffer = await blob.arrayBuffer();\n return getImage(Buffer.from(buffer), format);\n};\nconst getImageFormat = (body) => {\n const isPng = body[0] === 137 &&\n body[1] === 80 &&\n body[2] === 78 &&\n body[3] === 71 &&\n body[4] === 13 &&\n body[5] === 10 &&\n body[6] === 26 &&\n body[7] === 10;\n const isJpg = body[0] === 255 && body[1] === 216 && body[2] === 255;\n let extension = '';\n if (isPng) {\n extension = 'png';\n }\n else if (isJpg) {\n extension = 'jpg';\n }\n else {\n throw new Error('Not valid image extension');\n }\n return extension;\n};\nconst resolveImageFromUrl = async (src) => {\n const data = getAbsoluteLocalPath(src.uri)\n ? await fetchLocalFile(src)\n : await fetchRemoteFile(src);\n const format = getImageFormat(data);\n return getImage(data, format);\n};\nconst getCacheKey = (src) => {\n if (isBlob(src) || isBuffer(src))\n return null;\n if (isDataImageSrc(src))\n return src.data.toString();\n return src.uri;\n};\nconst resolveImage = (src, { cache = true } = {}) => {\n let image;\n const cacheKey = getCacheKey(src);\n if (isBlob(src)) {\n image = resolveBlobImage(src);\n }\n else if (isBuffer(src)) {\n image = resolveBufferImage(src);\n }\n else if (cache && IMAGE_CACHE.get(cacheKey)) {\n return IMAGE_CACHE.get(cacheKey);\n }\n else if (isBase64Src(src)) {\n image = resolveBase64Image(src);\n }\n else if (isDataImageSrc(src)) {\n image = resolveImageFromData(src);\n }\n else {\n image = resolveImageFromUrl(src);\n }\n if (!image) {\n throw new Error('Cannot resolve image');\n }\n if (cache && cacheKey) {\n IMAGE_CACHE.set(cacheKey, image);\n }\n return image;\n};\n\nexport { resolveImage as default };\n","import { upperFirst, capitalize, parseFloat as parseFloat$1, without, pick, compose, evolve, mapValues, matchPercent, castArray, isNil, omit, asyncCompose } from '@react-pdf/fns';\nimport * as P from '@react-pdf/primitives';\nimport resolveStyle, { transformColor, flatten } from '@react-pdf/stylesheet';\nimport layoutEngine, { fontSubstitution, wordHyphenation, scriptItemizer, textDecoration, justification, linebreaker, bidi, fromFragments } from '@react-pdf/textkit';\nimport * as Yoga from 'yoga-layout/load';\nimport { loadYoga as loadYoga$1 } from 'yoga-layout/load';\nimport emojiRegex from 'emoji-regex-xs';\nimport resolveImage from '@react-pdf/image';\n\n/**\n * Apply transformation to text string\n *\n * @param {string} text\n * @param {string} transformation type\n * @returns {string} transformed text\n */\nconst transformText = (text, transformation) => {\n switch (transformation) {\n case 'uppercase':\n return text.toUpperCase();\n case 'lowercase':\n return text.toLowerCase();\n case 'capitalize':\n return capitalize(text);\n case 'upperfirst':\n return upperFirst(text);\n default:\n return text;\n }\n};\n\nconst isTspan = (node) => node.type === P.Tspan;\nconst isTextInstance$4 = (node) => node.type === P.TextInstance;\nconst engines$1 = {\n bidi,\n linebreaker,\n justification,\n textDecoration,\n scriptItemizer,\n wordHyphenation,\n fontSubstitution,\n};\nconst engine$1 = layoutEngine(engines$1);\nconst getFragments$1 = (fontStore, instance) => {\n if (!instance)\n return [{ string: '' }];\n const fragments = [];\n const { fill = 'black', fontFamily = 'Helvetica', fontWeight, fontStyle, fontSize = 18, textDecorationColor, textDecorationStyle, textTransform, opacity, } = instance.props;\n const _textDecoration = instance.props.textDecoration;\n const fontFamilies = typeof fontFamily === 'string' ? [fontFamily] : [...(fontFamily || [])];\n // Fallback font\n fontFamilies.push('Helvetica');\n const font = fontFamilies.map((fontFamilyName) => {\n const opts = { fontFamily: fontFamilyName, fontWeight, fontStyle };\n const obj = fontStore.getFont(opts);\n return obj?.data;\n });\n const attributes = {\n font,\n opacity,\n fontSize,\n color: fill,\n underlineStyle: textDecorationStyle,\n underline: _textDecoration === 'underline' ||\n _textDecoration === 'underline line-through' ||\n _textDecoration === 'line-through underline',\n underlineColor: textDecorationColor || fill,\n strike: _textDecoration === 'line-through' ||\n _textDecoration === 'underline line-through' ||\n _textDecoration === 'line-through underline',\n strikeStyle: textDecorationStyle,\n strikeColor: textDecorationColor || fill,\n };\n for (let i = 0; i < instance.children.length; i += 1) {\n const child = instance.children[i];\n if (isTextInstance$4(child)) {\n fragments.push({\n string: transformText(child.value, textTransform),\n attributes,\n });\n }\n else if (child) {\n fragments.push(...getFragments$1(fontStore, child));\n }\n }\n return fragments;\n};\nconst getAttributedString$1 = (fontStore, instance) => fromFragments(getFragments$1(fontStore, instance));\nconst AlmostInfinity = 999999999999;\nconst shrinkWhitespaceFactor = { before: -0.5, after: -0.5 };\nconst layoutTspan = (fontStore) => (node, xOffset) => {\n const attributedString = getAttributedString$1(fontStore, node);\n const x = node.props.x === undefined ? xOffset : node.props.x;\n const y = node.props?.y || 0;\n const container = { x, y, width: AlmostInfinity, height: AlmostInfinity };\n const hyphenationCallback = node.props.hyphenationCallback ||\n fontStore?.getHyphenationCallback() ||\n null;\n const layoutOptions = { hyphenationCallback, shrinkWhitespaceFactor };\n const lines = engine$1(attributedString, container, layoutOptions).flat();\n return Object.assign({}, node, { lines });\n};\n// Consecutive TSpan elements should be joined with a space\nconst joinTSpanLines = (node) => {\n const children = node.children.map((child, index) => {\n if (!isTspan(child))\n return child;\n const textInstance = child.children[0];\n if (child.props.x === undefined &&\n index < node.children.length - 1 &&\n textInstance?.value) {\n return Object.assign({}, child, {\n children: [{ ...textInstance, value: `${textInstance.value} ` }],\n });\n }\n return child;\n }, []);\n return Object.assign({}, node, { children });\n};\nconst layoutText$1 = (fontStore, node) => {\n if (!node.children)\n return node;\n let currentXOffset = node.props?.x || 0;\n const layoutFn = layoutTspan(fontStore);\n const joinedNode = joinTSpanLines(node);\n const children = joinedNode.children.map((child) => {\n const childWithLayout = layoutFn(child, currentXOffset);\n currentXOffset += childWithLayout.lines[0].xAdvance;\n return childWithLayout;\n });\n return Object.assign({}, node, { children });\n};\n\nconst isDefs = (node) => node.type === P.Defs;\nconst getDefs = (node) => {\n const children = node.children || [];\n const defs = children.find(isDefs);\n const values = defs?.children || [];\n return values.reduce((acc, value) => {\n const id = value.props?.id;\n if (id)\n acc[id] = value;\n return acc;\n }, {});\n};\n\nconst isNotDefs = (node) => node.type !== P.Defs;\nconst detachDefs = (node) => {\n if (!node.children)\n return node;\n const children = node.children.filter(isNotDefs);\n return Object.assign({}, node, { children });\n};\nconst URL_REGEX = /url\\(['\"]?#([^'\"]+)['\"]?\\)/;\nconst replaceDef = (defs, value) => {\n if (!value)\n return undefined;\n if (!URL_REGEX.test(value))\n return value;\n const match = value.match(URL_REGEX);\n return defs[match[1]];\n};\nconst parseNodeDefs = (defs) => (node) => {\n const props = node.props;\n const fill = `fill` in props ? replaceDef(defs, props?.fill) : undefined;\n const clipPath = `clipPath` in props\n ? replaceDef(defs, props?.clipPath)\n : undefined;\n const newProps = Object.assign({}, node.props, { fill, clipPath });\n const children = node.children\n ? node.children.map(parseNodeDefs(defs))\n : undefined;\n return Object.assign({}, node, { props: newProps, children });\n};\nconst parseDefs = (root) => {\n if (!root.children)\n return root;\n const defs = getDefs(root);\n const children = root.children.map(parseNodeDefs(defs));\n return Object.assign({}, root, { children });\n};\nconst replaceDefs = (node) => {\n return detachDefs(parseDefs(node));\n};\n\nconst parseViewbox = (value) => {\n if (!value)\n return null;\n if (typeof value !== 'string')\n return value;\n const values = value.split(/[,\\s]+/).map(parseFloat$1);\n if (values.length !== 4)\n return null;\n return { minX: values[0], minY: values[1], maxX: values[2], maxY: values[3] };\n};\n\nconst getContainer$1 = (node) => {\n const viewbox = parseViewbox(node.props.viewBox);\n if (viewbox) {\n return { width: viewbox.maxX, height: viewbox.maxY };\n }\n if (node.props.width && node.props.height) {\n return {\n width: parseFloat$1(node.props.width),\n height: parseFloat$1(node.props.height),\n };\n }\n return { width: 0, height: 0 };\n};\n\nconst BASE_SVG_INHERITED_PROPS = [\n 'x',\n 'y',\n 'clipPath',\n 'clipRule',\n 'opacity',\n 'fill',\n 'fillOpacity',\n 'fillRule',\n 'stroke',\n 'strokeLinecap',\n 'strokeLinejoin',\n 'strokeOpacity',\n 'strokeWidth',\n 'textAnchor',\n 'dominantBaseline',\n 'color',\n 'fontFamily',\n 'fontSize',\n 'fontStyle',\n 'fontWeight',\n 'letterSpacing',\n 'opacity',\n 'textDecoration',\n 'lineHeight',\n 'textAlign',\n 'visibility',\n 'wordSpacing',\n];\n// Do not inherit \"x\" for <tspan> elements from <text> parent\nconst TEXT_SVG_INHERITED_PROPS = without(['x'], BASE_SVG_INHERITED_PROPS);\nconst SVG_INHERITED_PROPS = {\n [P.Text]: TEXT_SVG_INHERITED_PROPS,\n};\nconst getInheritProps = (node) => {\n const props = node.props || {};\n const svgInheritedProps = SVG_INHERITED_PROPS[node.type] ?? BASE_SVG_INHERITED_PROPS;\n return pick(svgInheritedProps, props);\n};\nconst inheritProps = (node) => {\n if (!node.children)\n return node;\n const inheritedProps = getInheritProps(node);\n const children = node.children.map((child) => {\n const props = Object.assign({}, inheritedProps, child.props || {});\n const newChild = Object.assign({}, child, { props });\n return inheritProps(newChild);\n });\n return Object.assign({}, node, { children });\n};\n\nconst parseAspectRatio = (value) => {\n if (typeof value !== 'string')\n return value;\n const match = value\n .replace(/[\\s\\r\\t\\n]+/gm, ' ')\n .replace(/^defer\\s/, '')\n .split(' ');\n const align = (match[0] || 'xMidYMid');\n const meetOrSlice = (match[1] ||\n 'meet');\n return { align, meetOrSlice };\n};\n\nconst STYLE_PROPS = [\n 'width',\n 'height',\n 'color',\n 'stroke',\n 'strokeWidth',\n 'opacity',\n 'fillOpacity',\n 'strokeOpacity',\n 'fill',\n 'fillRule',\n 'clipPath',\n 'offset',\n 'transform',\n 'strokeLinejoin',\n 'strokeLinecap',\n 'strokeDasharray',\n 'gradientUnits',\n 'gradientTransform',\n];\nconst VERTICAL_PROPS = ['y', 'y1', 'y2', 'height', 'cy', 'ry'];\nconst HORIZONTAL_PROPS = ['x', 'x1', 'x2', 'width', 'cx', 'rx'];\nconst isSvg$3 = (node) => node.type === P.Svg;\nconst isText$5 = (node) => node.type === P.Text;\nconst isTextInstance$3 = (node) => node.type === P.TextInstance;\nconst transformPercent = (container) => (props) => mapValues(props, (value, key) => {\n const match = matchPercent(value);\n if (match && VERTICAL_PROPS.includes(key)) {\n return match.percent * container.height;\n }\n if (match && HORIZONTAL_PROPS.includes(key)) {\n return match.percent * container.width;\n }\n return value;\n});\nconst parsePercent = (value) => {\n const match = matchPercent(value);\n return match ? match.percent : parseFloat$1(value);\n};\nconst parseTransform = (container) => (value) => {\n return resolveStyle(container, { transform: value }).transform;\n};\nconst parseProps = (container) => (node) => {\n let props = transformPercent(container)(node.props);\n props = evolve({\n x: parseFloat$1,\n x1: parseFloat$1,\n x2: parseFloat$1,\n y: parseFloat$1,\n y1: parseFloat$1,\n y2: parseFloat$1,\n r: parseFloat$1,\n rx: parseFloat$1,\n ry: parseFloat$1,\n cx: parseFloat$1,\n cy: parseFloat$1,\n width: parseFloat$1,\n height: parseFloat$1,\n offset: parsePercent,\n fill: transformColor,\n opacity: parsePercent,\n stroke: transformColor,\n stopOpacity: parsePercent,\n stopColor: transformColor,\n transform: parseTransform(container),\n gradientTransform: parseTransform(container),\n }, props);\n return Object.assign({}, node, { props });\n};\nconst mergeStyles$1 = (node) => {\n const style = node.style || {};\n const props = Object.assign({}, style, node.props);\n return Object.assign({}, node, { props });\n};\nconst removeNoneValues = (node) => {\n const removeNone = (value) => (value === 'none' ? null : value);\n const props = mapValues(node.props, removeNone);\n return Object.assign({}, node, { props });\n};\nconst pickStyleProps = (node) => {\n const props = node.props || {};\n const styleProps = pick(STYLE_PROPS, props);\n const style = Object.assign({}, styleProps, node.style || {});\n return Object.assign({}, node, { style });\n};\nconst parseSvgProps = (node) => {\n const props = evolve({\n width: parseFloat$1,\n height: parseFloat$1,\n viewBox: parseViewbox,\n preserveAspectRatio: parseAspectRatio,\n }, node.props);\n return Object.assign({}, node, { props });\n};\nconst wrapBetweenTspan = (node) => ({\n type: P.Tspan,\n props: {},\n style: {},\n children: [node],\n});\nconst addMissingTspan = (node) => {\n if (!isText$5(node))\n return node;\n if (!node.children)\n return node;\n const resolveChild = (child) => isTextInstance$3(child) ? wrapBetweenTspan(child) : child;\n const children = node.children.map(resolveChild);\n return Object.assign({}, node, { children });\n};\nconst parseText = (fontStore) => (node) => {\n if (isText$5(node))\n return layoutText$1(fontStore, node);\n if (!node.children)\n return node;\n const children = node.children.map(parseText(fontStore));\n return Object.assign({}, node, { children });\n};\nconst resolveSvgNode = (container) => compose(parseProps(container), addMissingTspan, removeNoneValues, mergeStyles$1);\nconst resolveChildren = (container) => (node) => {\n if (!node.children)\n return node;\n const resolveChild = compose(resolveChildren(container), resolveSvgNode(container));\n const children = node.children.map(resolveChild);\n return Object.assign({}, node, { children });\n};\nconst buildXLinksIndex = (node) => {\n const idIndex = {};\n const listToExplore = node.children?.slice(0) || [];\n while (listToExplore.length > 0) {\n const child = listToExplore.shift();\n if (child.props && 'id' in child.props) {\n idIndex[child.props.id] = child;\n }\n if (child.children)\n listToExplore.push(...child.children);\n }\n return idIndex;\n};\nconst replaceXLinks = (node, idIndex) => {\n if (node.props && 'xlinkHref' in node.props) {\n const linkedNode = idIndex[node.props.xlinkHref.replace(/^#/, '')];\n // No node to extend from\n if (!linkedNode)\n return node;\n const newProps = Object.assign({}, linkedNode.props, node.props);\n delete newProps.xlinkHref;\n return Object.assign({}, linkedNode, { props: newProps });\n }\n const children = node.children?.map((child) => replaceXLinks(child, idIndex));\n return Object.assign({}, node, { children });\n};\nconst resolveXLinks = (node) => {\n const idIndex = buildXLinksIndex(node);\n return replaceXLinks(node, idIndex);\n};\nconst resolveSvgRoot = (node, fontStore) => {\n const container = getContainer$1(node);\n return compose(replaceDefs, parseText(fontStore), parseSvgProps, pickStyleProps, inheritProps, resolveChildren(container), resolveXLinks)(node);\n};\n/**\n * Pre-process SVG nodes so they can be rendered in the next steps\n *\n * @param node - Root node\n * @param fontStore - Font store\n * @returns Root node\n */\nconst resolveSvg = (node, fontStore) => {\n if (!('children' in node))\n return node;\n const resolveChild = (child) => resolveSvg(child, fontStore);\n const root = isSvg$3(node) ? resolveSvgRoot(node, fontStore) : node;\n const children = root.children?.map(resolveChild);\n return Object.assign({}, root, { children });\n};\n\nlet instancePromise;\nconst loadYoga = async () => {\n // Yoga WASM binaries must be asynchronously compiled and loaded\n // to prevent Event emitter memory leak warnings, Yoga must be loaded only once\n const instance = await (instancePromise ??= loadYoga$1());\n const config = instance.Config.create();\n config.setPointScaleFactor(0);\n const node = { create: () => instance.Node.createWithConfig(config) };\n return { node };\n};\n\nconst resolveYoga = async (root) => {\n const yoga = await loadYoga();\n return Object.assign({}, root, { yoga });\n};\n\nconst getZIndex = (node) => node.style.zIndex;\nconst shouldSort = (node) => node.type !== P.Document && node.type !== P.Svg;\nconst sortZIndex = (a, b) => {\n const za = getZIndex(a);\n const zb = getZIndex(b);\n if (!za && !zb)\n return 0;\n if (!za)\n return 1;\n if (!zb)\n return -1;\n return zb - za;\n};\n/**\n * Sort children by zIndex value\n *\n * @param node\n * @returns Node\n */\nconst resolveNodeZIndex = (node) => {\n if (!node.children)\n return node;\n const sortedChildren = shouldSort(node)\n ? node.children.sort(sortZIndex)\n : node.children;\n const children = sortedChildren.map(resolveNodeZIndex);\n return Object.assign({}, node, { children });\n};\n/**\n * Sort children by zIndex value\n *\n * @param node\n * @returns Node\n */\nconst resolveZIndex = (root) => resolveNodeZIndex(root);\n\n/* eslint-disable no-console */\n// Caches emoji images data\nconst emojis = {};\nconst regex = emojiRegex();\n/**\n * When an emoji as no variations, it might still have 2 parts,\n * the canonical emoji and an empty string.\n * ex.\n * (no color) Array.from('❤️') => [\"❤\", \"️\"]\n * (w/ color) Array.from('👍🏿') => [\"👍\", \"🏿\"]\n *\n * The empty string needs to be removed otherwise the generated\n * url will be incorect.\n */\nconst removeVariationSelectors = (x) => x !== '️';\nconst getCodePoints = (string, withVariationSelectors = false) => Array.from(string)\n .filter(withVariationSelectors ? () => true : removeVariationSelectors)\n .map((char) => char.codePointAt(0).toString(16))\n .join('-');\nconst buildEmojiUrl = (emoji, source) => {\n if ('builder' in source) {\n return source.builder(getCodePoints(emoji, source.withVariationSelectors));\n }\n const { url, format = 'png', withVariationSelectors } = source;\n return `${url}${getCodePoints(emoji, withVariationSelectors)}.${format}`;\n};\nconst fetchEmojis = (string, source) => {\n if (!source)\n return [];\n const promises = [];\n Array.from(string.matchAll(regex)).forEach((match) => {\n const emoji = match[0];\n if (!emojis[emoji] || emojis[emoji].loading) {\n const emojiUrl = buildEmojiUrl(emoji, source);\n emojis[emoji] = { loading: true };\n promises.push(resolveImage({ uri: emojiUrl })\n .then((image) => {\n emojis[emoji].loading = false;\n emojis[emoji].data = image.data;\n })\n .catch((e) => {\n console.warn(e, 'Failed to load emoji image');\n emojis[emoji].loading = false;\n }));\n }\n });\n return promises;\n};\nconst embedEmojis = (fragments) => {\n const result = [];\n for (let i = 0; i < fragments.length; i += 1) {\n const fragment = fragments[i];\n let lastIndex = 0;\n Array.from(fragment.string.matchAll(regex)).forEach((match) => {\n const { index } = match;\n const emoji = match[0];\n const emojiSize = fragment.attributes.fontSize;\n const chunk = fragment.string.slice(lastIndex, index + match[0].length);\n // If emoji image was found, we create a new fragment with the\n // correct attachment and object substitution character;\n if (emojis[emoji] && emojis[emoji].data) {\n result.push({\n string: chunk.replace(match[0], String.fromCharCode(0xfffc)),\n attributes: {\n ...fragment.attributes,\n attachment: {\n width: emojiSize,\n height: emojiSize,\n yOffset: Math.floor(emojiSize * 0.1),\n image: emojis[emoji].data,\n },\n },\n });\n }\n else {\n // If no emoji data, we try to use emojis in the font\n result.push({\n string: chunk,\n attributes: fragment.attributes,\n });\n }\n lastIndex = index + emoji.length;\n });\n if (lastIndex < fragment.string.length) {\n result.push({\n string: fragment.string.slice(lastIndex),\n attributes: fragment.attributes,\n });\n }\n }\n return result;\n};\n\n/**\n * Get image source\n *\n * @param node - Image node\n * @returns Image src\n */\nconst getSource = (node) => {\n if (node.props.src)\n return node.props.src;\n if (node.props.source)\n return node.props.source;\n};\n\n/**\n * Resolves `src` to `@react-pdf/image` interface.\n *\n * Also it handles factories and async sources.\n *\n * @param src\n * @returns Resolved src\n */\nconst resolveSource = async (src) => {\n const source = typeof src === 'function' ? await src() : await src;\n return typeof source === 'string' ? { uri: source } : source;\n};\n\n/**\n * Fetches image and append data to node\n * Ideally this fn should be immutable.\n *\n * @param node\n */\nconst fetchImage = async (node) => {\n const src = getSource(node);\n const { cache } = node.props;\n if (!src) {\n console.warn(false, 'Image should receive either a \"src\" or \"source\" prop');\n return;\n }\n try {\n const source = await resolveSource(src);\n if (!source) {\n throw new Error(`Image's \"src\" or \"source\" prop returned ${source}`);\n }\n node.image = await resolveImage(source, { cache });\n if (Buffer.isBuffer(source) || source instanceof Blob)\n return;\n node.image.key = 'data' in source ? source.data.toString() : source.uri;\n }\n catch (e) {\n console.warn(e.message);\n }\n};\n\nconst isImage$2 = (node) => node.type === P.Image;\n/**\n * Get all asset promises that need to be resolved\n *\n * @param fontStore - Font store\n * @param node - Root node\n * @returns Asset promises\n */\nconst fetchAssets = (fontStore, node) => {\n const promises = [];\n const listToExplore = node.children?.slice(0) || [];\n const emojiSource = fontStore ? fontStore.getEmojiSource() : null;\n while (listToExplore.length > 0) {\n const n = listToExplore.shift();\n if (isImage$2(n)) {\n promises.push(fetchImage(n));\n }\n if (fontStore && n.style?.fontFamily) {\n const fontFamilies = castArray(n.style.fontFamily);\n promises.push(...fontFamilies.map((fontFamily) => fontStore.load({\n fontFamily,\n fontStyle: n.style.fontStyle,\n fontWeight: n.style.fontWeight,\n })));\n }\n if (typeof n === 'string') {\n promises.push(...fetchEmojis(n, emojiSource));\n }\n if ('value' in n && typeof n.value === 'string') {\n promises.push(...fetchEmojis(n.value, emojiSource));\n }\n if (n.children) {\n n.children.forEach((childNode) => {\n listToExplore.push(childNode);\n });\n }\n }\n return promises;\n};\n/**\n * Fetch image, font and emoji assets in parallel.\n * Layout process will not be resumed until promise resolves.\n *\n * @param node root node\n * @param fontStore font store\n * @returns Root node\n */\nconst resolveAssets = async (node, fontStore) => {\n const promises = fetchAssets(fontStore, node);\n await Promise.all(promises);\n return node;\n};\n\nconst isLink$1 = (node) => node.type === P.Link;\nconst DEFAULT_LINK_STYLES = {\n color: 'blue',\n textDecoration: 'underline',\n};\n/**\n * Computes styles using stylesheet\n *\n * @param container\n * @param node - Document node\n * @returns Computed styles\n */\nconst computeStyle = (container, node) => {\n let baseStyle = [node.style];\n if (isLink$1(node)) {\n baseStyle = Array.isArray(node.style)\n ? [DEFAULT_LINK_STYLES, ...node.style]\n : [DEFAULT_LINK_STYLES, node.style];\n }\n return resolveStyle(container, baseStyle);\n};\n/**\n * Resolves node styles\n *\n * @param container\n * @returns Resolve node styles\n */\nconst resolveNodeStyles = (container) => (node) => {\n const style = computeStyle(container, node);\n if (!node.children)\n return Object.assign({}, node, { style });\n const children = node.children.map(resolveNodeStyles(container));\n return Object.assign({}, node, { style, children });\n};\n/**\n * Resolves page styles\n *\n * @param page Document page\n * @returns Document page with resolved styles\n */\nconst resolvePageStyles = (page) => {\n const dpi = page.props?.dpi || 72;\n const style = page.style;\n const width = page.box?.width || style.width;\n const height = page.box?.height || style.height;\n const orientation = page.props?.orientation || 'portrait';\n const remBase = style?.fontSize || 18;\n const container = { width, height, orientation, dpi, remBase };\n return resolveNodeStyles(container)(page);\n};\n/**\n * Resolves document styles\n *\n * @param root - Document root\n * @returns Document root with resolved styles\n */\nconst resolveStyles = (root) => {\n if (!root.children)\n return root;\n const children = root.children.map(resolvePageStyles);\n return Object.assign({}, root, { children });\n};\n\nconst getTransformStyle = (s) => (node) => isNil(node.style?.[s]) ? '50%' : node.style?.[s] ?? null;\n/**\n * Get node origin\n *\n * @param node\n * @returns {{ left?: number, top?: number }} node origin\n */\nconst getOrigin = (node) => {\n if (!node.box)\n return null;\n const { left, top, width, height } = node.box;\n const transformOriginX = getTransformStyle('transformOriginX')(node);\n const transformOriginY = getTransformStyle('transformOriginY')(node);\n const percentX = matchPercent(transformOriginX);\n const percentY = matchPercent(transformOriginY);\n const offsetX = percentX ? width * percentX.percent : transformOriginX;\n const offsetY = percentY ? height * percentY.percent : transformOriginY;\n if (isNil(offsetX) || typeof offsetX === 'string')\n throw new Error(`Invalid origin offsetX: ${offsetX}`);\n if (isNil(offsetY) || typeof offsetY === 'string')\n throw new Error(`Invalid origin offsetY: ${offsetY}`);\n return { left: left + offsetX, top: top + offsetY };\n};\n\n/**\n * Resolve node origin\n *\n * @param node\n * @returns Node with origin attribute\n */\nconst resolveNodeOrigin = (node) => {\n const origin = getOrigin(node);\n const newNode = Object.assign({}, node, { origin });\n if (!node.children)\n return newNode;\n const children = node.children.map(resolveNodeOrigin);\n return Object.assign({}, newNode, { children });\n};\n/**\n * Resolve document origins\n *\n * @param root - Document root\n * @returns Document root\n */\nconst resolveOrigin = (root) => {\n if (!root.children)\n return root;\n const children = root.children.map(resolveNodeOrigin);\n return Object.assign({}, root, { children });\n};\n\nconst getBookmarkValue = (bookmark) => {\n return typeof bookmark === 'string'\n ? { title: bookmark, fit: false, expanded: false }\n : bookmark;\n};\nconst resolveBookmarks = (node) => {\n let refs = 0;\n const children = (node.children || []).slice(0);\n const listToExplore = children.map((value) => ({\n value,\n parent: null,\n }));\n while (listToExplore.length > 0) {\n const element = listToExplore.shift();\n if (!element)\n break;\n const child = element.value;\n let parent = element.parent;\n if (child.props && 'bookmark' in child.props && child.props.bookmark) {\n const bookmark = getBookmarkValue(child.props.bookmark);\n const ref = refs++;\n const newHierarchy = { ref, parent: parent?.ref, ...bookmark };\n child.props.bookmark = newHierarchy;\n parent = newHierarchy;\n }\n if (child.children) {\n child.children.forEach((childNode) => {\n listToExplore.push({ value: childNode, parent });\n });\n }\n }\n return node;\n};\n\nconst VALID_ORIENTATIONS = ['portrait', 'landscape'];\n/**\n * Get page orientation. Defaults to portrait\n *\n * @param page - Page object\n * @returns Page orientation\n */\nconst getOrientation = (page) => {\n const value = page.props?.orientation || 'portrait';\n return VALID_ORIENTATIONS.includes(value) ? value : 'portrait';\n};\n\n/**\n * Return true if page is landscape\n *\n * @param page - Page instance\n * @returns Is page landscape\n */\nconst isLandscape = (page) => getOrientation(page) === 'landscape';\n\n// Page sizes for 72dpi. 72dpi is used internally by pdfkit.\nconst PAGE_SIZES = {\n '4A0': [4767.87, 6740.79],\n '2A0': [3370.39, 4767.87],\n A0: [2383.94, 3370.39],\n A1: [1683.78, 2383.94],\n A2: [1190.55, 1683.78],\n A3: [841.89, 1190.55],\n A4: [595.28, 841.89],\n A5: [419.53, 595.28],\n A6: [297.64, 419.53],\n A7: [209.76, 297.64],\n A8: [147.4, 209.76],\n A9: [104.88, 147.4],\n A10: [73.7, 104.88],\n B0: [2834.65, 4008.19],\n B1: [2004.09, 2834.65],\n B2: [1417.32, 2004.09],\n B3: [1000.63, 1417.32],\n B4: [708.66, 1000.63],\n B5: [498.9, 708.66],\n B6: [354.33, 498.9],\n B7: [249.45, 354.33],\n B8: [175.75, 249.45],\n B9: [124.72, 175.75],\n B10: [87.87, 124.72],\n C0: [2599.37, 3676.54],\n C1: [1836.85, 2599.37],\n C2: [1298.27, 1836.85],\n C3: [918.43, 1298.27],\n C4: [649.13, 918.43],\n C5: [459.21, 649.13],\n C6: [323.15, 459.21],\n C7: [229.61, 323.15],\n C8: [161.57, 229.61],\n C9: [113.39, 161.57],\n C10: [79.37, 113.39],\n RA0: [2437.8, 3458.27],\n RA1: [1729.13, 2437.8],\n RA2: [1218.9, 1729.13],\n RA3: [864.57, 1218.9],\n RA4: [609.45, 864.57],\n SRA0: [2551.18, 3628.35],\n SRA1: [1814.17, 2551.18],\n SRA2: [1275.59, 1814.17],\n SRA3: [907.09, 1275.59],\n SRA4: [637.8, 907.09],\n EXECUTIVE: [521.86, 756.0],\n FOLIO: [612.0, 936.0],\n LEGAL: [612.0, 1008.0],\n LETTER: [612.0, 792.0],\n TABLOID: [792.0, 1224.0],\n ID1: [153, 243],\n};\n/**\n * Parses scalar value in value and unit pairs\n *\n * @param value - Scalar value\n * @returns Parsed value\n */\nconst parseValue = (value) => {\n if (typeof value === 'number')\n return { value, unit: undefined };\n const match = /^(-?\\d*\\.?\\d+)(in|mm|cm|pt|px)?$/g.exec(value);\n return match\n ? { value: parseFloat(match[1]), unit: match[2] || 'pt' }\n : { value, unit: undefined };\n};\n/**\n * Transform given scalar value to 72dpi equivalent of size\n *\n * @param value - Styles value\n * @param inputDpi - User defined dpi\n * @returns Transformed value\n */\nconst transformUnit = (value, inputDpi) => {\n if (!value)\n return 0;\n const scalar = parseValue(value);\n const outputDpi = 72;\n const mmFactor = (1 / 25.4) * outputDpi;\n const cmFactor = (1 / 2.54) * outputDpi;\n if (typeof scalar.value === 'string')\n throw new Error(`Invalid page size: ${value}`);\n switch (scalar.unit) {\n case 'in':\n return scalar.value * outputDpi;\n case 'mm':\n return scalar.value * mmFactor;\n case 'cm':\n return scalar.value * cmFactor;\n case 'px':\n return Math.round(scalar.value * (outputDpi / inputDpi));\n default:\n return scalar.value;\n }\n};\nconst transformUnits = ({ width, height }, dpi) => ({\n width: transformUnit(width, dpi),\n height: transformUnit(height, dpi),\n});\n/**\n * Transforms array into size object\n *\n * @param v - Values array\n * @returns Size object with width and height\n */\nconst toSizeObject = (v) => ({\n width: v[0],\n height: v[1],\n});\n/**\n * Flip size object\n *\n * @param v - Size object\n * @returns Flipped size object\n */\nconst flipSizeObject = (v) => ({\n width: v.height,\n height: v.width,\n});\n/**\n * Returns size object from a given string\n *\n * @param v - Page size string\n * @returns Size object with width and height\n */\nconst getStringSize = (v) => {\n return toSizeObject(PAGE_SIZES[v.toUpperCase()]);\n};\n/**\n * Returns size object from a single number\n *\n * @param n - Page size number\n * @returns Size object with width and height\n */\nconst getNumberSize = (n) => toSizeObject([n, n]);\n/**\n * Return page size in an object { width, height }\n *\n * @param page - Page node\n * @returns Size object with width and height\n */\nconst getSize = (page) => {\n const value = page.props?.size || 'A4';\n const dpi = page.props?.dpi || 72;\n let size;\n if (typeof value === 'string') {\n size = getStringSize(value);\n }\n else if (Array.isArray(value)) {\n size = transformUnits(toSizeObject(value), dpi);\n }\n else if (typeof value === 'number') {\n size = transformUnits(getNumberSize(value), dpi);\n }\n else {\n size = transformUnits(value, dpi);\n }\n return isLandscape(page) ? flipSizeObject(size) : size;\n};\n\n/**\n * Resolves page size\n *\n * @param page\n * @returns Page with resolved size in style attribute\n */\nconst resolvePageSize = (page) => {\n const size = getSize(page);\n const style = flatten(page.style || {});\n return { ...page, style: { ...style, ...size } };\n};\n/**\n * Resolves page sizes\n *\n * @param root -Document root\n * @returns Document root with resolved page sizes\n */\nconst resolvePageSizes = (root) => {\n if (!root.children)\n return root;\n const children = root.children.map(resolvePageSize);\n return Object.assign({}, root, { children });\n};\n\nconst isFixed = (node) => {\n if (!node.props)\n return false;\n return 'fixed' in node.props ? node.props.fixed === true : false;\n};\n\n/**\n * Get line index at given height\n *\n * @param node\n * @param height\n */\nconst lineIndexAtHeight = (node, height) => {\n let y = 0;\n if (!node.lines)\n return 0;\n for (let i = 0; i < node.lines.length; i += 1) {\n const line = node.lines[i];\n if (y + line.box.height > height)\n return i;\n y += line.box.height;\n }\n return node.lines.length;\n};\n\n/**\n * Get height for given text line index\n *\n * @param node\n * @param index\n */\nconst heightAtLineIndex = (node, index) => {\n let counter = 0;\n if (!node.lines)\n return counter;\n for (let i = 0; i < index; i += 1) {\n const line = node.lines[i];\n if (!line)\n break;\n counter += line.box.height;\n }\n return counter;\n};\n\nconst getLineBreak = (node, height) => {\n const top = node.box?.top || 0;\n const widows = node.props.widows || 2;\n const orphans = node.props.orphans || 2;\n const linesQuantity = node.lines.length;\n const slicedLine = lineIndexAtHeight(node, height - top);\n if (slicedLine === 0) {\n return 0;\n }\n if (linesQuantity < orphans) {\n return linesQuantity;\n }\n if (slicedLine < orphans || linesQuantity < orphans + widows) {\n return 0;\n }\n if (linesQuantity === orphans + widows) {\n return orphans;\n }\n if (linesQuantity - slicedLine < widows) {\n return linesQuantity - widows;\n }\n return slicedLine;\n};\n// Also receives contentArea in case it's needed\nconst splitText = (node, height) => {\n const slicedLineIndex = getLineBreak(node, height);\n const currentHeight = heightAtLineIndex(node, slicedLineIndex);\n const nextHeight = node.box.height - currentHeight;\n const current = Object.assign({}, node, {\n box: {\n ...node.box,\n height: currentHeight,\n borderBottomWidth: 0,\n },\n style: {\n ...node.style,\n marginBottom: 0,\n paddingBottom: 0,\n borderBottomWidth: 0,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n },\n lines: node.lines.slice(0, slicedLineIndex),\n });\n const next = Object.assign({}, node, {\n box: {\n ...node.box,\n top: 0,\n height: nextHeight,\n borderTopWidth: 0,\n },\n style: {\n ...node.style,\n marginTop: 0,\n paddingTop: 0,\n borderTopWidth: 0,\n borderTopLeftRadius: 0,\n borderTopRightRadius: 0,\n },\n lines: node.lines.slice(slicedLineIndex),\n });\n return [current, next];\n};\n\nconst getTop$1 = (node) => node.box?.top || 0;\nconst hasFixedHeight = (node) => !isNil(node.style?.height);\nconst splitNode = (node, height) => {\n if (!node)\n return [null, null];\n const nodeTop = getTop$1(node);\n const current = Object.assign({}, node, {\n box: {\n ...node.box,\n borderBottomWidth: 0,\n },\n style: {\n ...node.style,\n marginBottom: 0,\n paddingBottom: 0,\n borderBottomWidth: 0,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n },\n });\n current.style.height = height - nodeTop;\n const nextHeight = hasFixedHeight(node)\n ? node.box.height - (height - nodeTop)\n : null;\n const next = Object.assign({}, node, {\n box: {\n ...node.box,\n top: 0,\n borderTopWidth: 0,\n },\n style: {\n ...node.style,\n marginTop: 0,\n paddingTop: 0,\n borderTopWidth: 0,\n borderTopLeftRadius: 0,\n borderTopRightRadius: 0,\n },\n });\n if (nextHeight) {\n next.style.height = nextHeight;\n }\n return [current, next];\n};\n\nconst NON_WRAP_TYPES = [P.Svg, P.Note, P.Image, P.Canvas];\nconst getWrap = (node) => {\n if (NON_WRAP_TYPES.includes(node.type))\n return false;\n if (!node.props)\n return true;\n return 'wrap' in node.props ? node.props.wrap : true;\n};\n\nconst getComputedPadding = (node, edge) => {\n const { yogaNode } = node;\n return yogaNode ? yogaNode.getComputedPadding(edge) : null;\n};\n/**\n * Get Yoga computed paddings. Zero otherwise\n *\n * @param node\n * @returns paddings\n */\nconst getPadding = (node) => {\n const { style, box } = node;\n const paddingTop = getComputedPadding(node, Yoga.Edge.Top) ||\n box?.paddingTop ||\n style?.paddingTop ||\n 0;\n const paddingRight = getComputedPadding(node, Yoga.Edge.Right) ||\n box?.paddingRight ||\n style?.paddingRight ||\n 0;\n const paddingBottom = getComputedPadding(node, Yoga.Edge.Bottom) ||\n box?.paddingBottom ||\n style?.paddingBottom ||\n 0;\n const paddingLeft = getComputedPadding(node, Yoga.Edge.Left) ||\n box?.paddingLeft ||\n style?.paddingLeft ||\n 0;\n return { paddingTop, paddingRight, paddingBottom, paddingLeft };\n};\n\nconst getWrapArea = (page) => {\n const height = page.style?.height;\n const { paddingBottom } = getPadding(page);\n return height - paddingBottom;\n};\n\nconst getContentArea = (page) => {\n const height = page.style?.height;\n const { paddingTop, paddingBottom } = getPadding(page);\n return height - paddingBottom - paddingTop;\n};\n\nconst isString = (value) => typeof value === 'string';\nconst isNumber = (value) => typeof value === 'number';\nconst isBoolean = (value) => typeof value === 'boolean';\nconst isFragment = (value) => value && value.type === Symbol.for('react.fragment');\n/**\n * Transforms a react element instance to internal element format.\n *\n * Can return multiple instances in the case of arrays or fragments.\n *\n * @param element - React element\n * @returns Parsed React elements\n */\nconst createInstances = (element) => {\n if (!element)\n return [];\n if (Array.isArray(element)) {\n return element.reduce((acc, el) => acc.concat(createInstances(el)), []);\n }\n if (isBoolean(element)) {\n return [];\n }\n if (isString(element) || isNumber(element)) {\n return [{ type: P.TextInstance, value: `${element}` }];\n }\n if (isFragment(element)) {\n // @ts-expect-error figure out why this is complains\n return createInstances(element.props.children);\n }\n if (!isString(element.type)) {\n // @ts-expect-error figure out why this is complains\n return createInstances(element.type(element.props));\n }\n const { type, props: { style = {}, children, ...props }, } = element;\n const nextChildren = castArray(children).reduce((acc, child) => acc.concat(createInstances(child)), []);\n return [\n {\n type,\n style,\n props,\n children: nextChildren,\n },\n ];\n};\n\nconst getBreak = (node) => 'break' in node.props ? node.props.break : false;\nconst getMinPresenceAhead = (node) => 'minPresenceAhead' in node.props ? node.props.minPresenceAhead : 0;\nconst getFurthestEnd = (elements) => Math.max(...elements.map((node) => node.box.top + node.box.height));\nconst getEndOfMinPresenceAhead = (child) => {\n return (child.box.top +\n child.box.height +\n child.box.marginBottom +\n getMinPresenceAhead(child));\n};\nconst getEndOfPresence = (child, futureElements) => {\n const afterMinPresenceAhead = getEndOfMinPresenceAhead(child);\n const endOfFurthestFutureElement = getFurthestEnd(futureElements.filter((node) => !('fixed' in node.props)));\n return Math.min(afterMinPresenceAhead, endOfFurthestFutureElement);\n};\nconst shouldBreak = (child, futureElements, height, previousElements) => {\n if ('fixed' in child.props)\n return false;\n const shouldSplit = height < child.box.top + child.box.height;\n const canWrap = getWrap(child);\n // Calculate the y coordinate where the desired presence of the child ends\n const endOfPresence = getEndOfPresence(child, futureElements);\n // If the child is already at the top of the page, breaking won't improve its presence\n // (as long as react-pdf does not support breaking into differently sized containers)\n const breakingImprovesPresence = previousElements.filter((node) => !isFixed(node)).length > 0;\n return (getBreak(child) ||\n (shouldSplit && !canWrap) ||\n (!shouldSplit && endOfPresence > height && breakingImprovesPresence));\n};\n\nconst IGNORABLE_CODEPOINTS = [\n 8232, // LINE_SEPARATOR\n 8233, // PARAGRAPH_SEPARATOR\n];\nconst buildSubsetForFont = (font) => IGNORABLE_CODEPOINTS.reduce((acc, codePoint) => {\n if (font &&\n font.hasGlyphForCodePoint &&\n font.hasGlyphForCodePoint(codePoint)) {\n return acc;\n }\n return [...acc, String.fromCharCode(codePoint)];\n}, []);\nconst ignoreChars = (fragments) => fragments.map((fragment) => {\n const charSubset = buildSubsetForFont(fragment.attributes.font[0]);\n const subsetRegex = new RegExp(charSubset.join('|'));\n return {\n string: fragment.string.replace(subsetRegex, ''),\n attributes: fragment.attributes,\n };\n});\n\nconst PREPROCESSORS = [ignoreChars, embedEmojis];\nconst isImage$1 = (node) => node.type === P.Image;\nconst isTextInstance$2 = (node) => node.type === P.TextInstance;\n/**\n * Get textkit fragments of given node object\n *\n * @param fontStore - Font store\n * @param instance - Node\n * @param parentLink - Parent link\n * @param level - Fragment level\n * @returns Text fragments\n */\nconst getFragments = (fontStore, instance, parentLink = null, level = 0) => {\n if (!instance)\n return [{ string: '' }];\n let fragments = [];\n const { color = 'black', direction = 'ltr', fontFamily = 'Helvetica', fontWeight, fontStyle, fontSize = 18, textAlign, lineHeight, textDecoration, textDecorationColor, textDecorationStyle, textTransform, letterSpacing, textIndent, opacity, verticalAlign, } = instance.style;\n const fontFamilies = typeof fontFamily === 'string' ? [fontFamily] : [...(fontFamily || [])];\n // Fallback font\n fontFamilies.push('Helvetica');\n const font = fontFamilies.map((fontFamilyName) => {\n const opts = { fontFamily: fontFamilyName, fontWeight, fontStyle };\n const obj = fontStore.getFont(opts);\n return obj?.data;\n });\n // Don't pass main background color to textkit. Will be rendered by the render package instead\n const backgroundColor = level === 0 ? null : instance.style.backgroundColor;\n const attributes = {\n font,\n color,\n opacity,\n fontSize,\n lineHeight,\n direction,\n verticalAlign,\n backgroundColor,\n indent: textIndent,\n characterSpacing: letterSpacing,\n strikeStyle: textDecorationStyle,\n underlineStyle: textDecorationStyle,\n underline: textDecoration === 'underline' ||\n textDecoration === 'underline line-through' ||\n textDecoration === 'line-through underline',\n strike: textDecoration === 'line-through' ||\n textDecoration === 'underline line-through' ||\n textDecoration === 'line-through underline',\n strikeColor: textDecorationColor || color,\n underlineColor: textDecorationColor || color,\n // @ts-expect-error allow this props access\n link: parentLink || instance.props?.src || instance.props?.href,\n align: textAlign || (direction === 'rtl' ? 'right' : 'left'),\n };\n for (let i = 0; i < instance.children.length; i += 1) {\n const child = instance.children[i];\n if (isImage$1(child)) {\n fragments.push({\n string: String.fromCharCode(0xfffc),\n attributes: {\n ...attributes,\n attachment: {\n width: (child.style.width || fontSize),\n height: (child.style.height || fontSize),\n image: child.image.data,\n },\n },\n });\n }\n else if (isTextInstance$2(child)) {\n fragments.push({\n string: transformText(child.value, textTransform),\n attributes,\n });\n }\n else if (child) {\n fragments.push(...getFragments(fontStore, child, attributes.link, level + 1));\n }\n }\n for (let i = 0; i < PREPROCESSORS.length; i += 1) {\n const preprocessor = PREPROCESSORS[i];\n fragments = preprocessor(fragments);\n }\n return fragments;\n};\n/**\n * Get textkit attributed string from text node\n *\n * @param fontStore - Font store\n * @param instance Node\n * @returns Attributed string\n */\nconst getAttributedString = (fontStore, instance) => {\n const fragments = getFragments(fontStore, instance);\n return fromFragments(fragments);\n};\n\nconst engines = {\n bidi,\n linebreaker,\n justification,\n textDecoration,\n scriptItemizer,\n wordHyphenation,\n fontSubstitution,\n};\nconst engine = layoutEngine(engines);\nconst getMaxLines = (node) => node.style?.maxLines;\nconst getTextOverflow = (node) => node.style?.textOverflow;\n/**\n * Get layout container for specific text node\n *\n * @param {number} width\n * @param {number} height\n * @param {Object} node\n * @returns {Object} layout container\n */\nconst getContainer = (width, height, node) => {\n const maxLines = getMaxLines(node);\n const textOverflow = getTextOverflow(node);\n return {\n x: 0,\n y: 0,\n width,\n maxLines,\n height: height || Infinity,\n truncateMode: textOverflow,\n };\n};\n/**\n * Get text layout options for specific text node\n *\n * @param {Object} node instance\n * @returns {Object} layout options\n */\nconst getLayoutOptions = (fontStore, node) => ({\n hyphenationPenalty: node.props.hyphenationPenalty,\n shrinkWhitespaceFactor: { before: -0.5, after: -0.5 },\n hyphenationCallback: node.props.hyphenationCallback ||\n fontStore?.getHyphenationCallback() ||\n null,\n});\n/**\n * Get text lines for given node\n *\n * @param node - Node\n * @param width - Container width\n * @param height - Container height\n * @param fontStore - Font store\n * @returns Layout lines\n */\nconst layoutText = (node, width, height, fontStore) => {\n const attributedString = getAttributedString(fontStore, node);\n const container = getContainer(width, height, node);\n const options = getLayoutOptions(fontStore, node);\n const lines = engine(attributedString, container, options);\n return lines.reduce((acc, line) => [...acc, ...line], []);\n};\n\nconst isSvg$2 = (node) => node.type === P.Svg;\nconst isText$4 = (node) => node.type === P.Text;\nconst shouldIterate = (node) => !isSvg$2(node) && !isText$4(node);\nconst shouldLayoutText = (node) => isText$4(node) && !node.lines;\n/**\n * Performs text layout on text node if wasn't calculated before.\n * Text layout is usually performed on Yoga's layout process (via setMeasureFunc),\n * but we need to layout those nodes with fixed width and height.\n *\n * @param node\n * @returns Layout node\n */\nconst resolveTextLayout = (node, fontStore) => {\n if (shouldLayoutText(node)) {\n const width = node.box.width - (node.box.paddingRight + node.box.paddingLeft);\n const height = node.box.height - (node.box.paddingTop + node.box.paddingBottom);\n node.lines = layoutText(node, width, height, fontStore);\n }\n if (shouldIterate(node)) {\n if (!node.children)\n return node;\n const mapChild = (child) => resolveTextLayout(child, fontStore);\n const children = node.children.map(mapChild);\n return Object.assign({}, node, { children });\n }\n return node;\n};\n\nconst BASE_INHERITABLE_PROPERTIES = [\n 'color',\n 'fontFamily',\n 'fontSize',\n 'fontStyle',\n 'fontWeight',\n 'letterSpacing',\n 'opacity',\n 'textDecoration',\n 'textTransform',\n 'lineHeight',\n 'textAlign',\n 'visibility',\n 'wordSpacing',\n];\nconst TEXT_INHERITABLE_PROPERTIES = [\n ...BASE_INHERITABLE_PROPERTIES,\n 'backgroundColor',\n];\nconst isType$2 = (type) => (node) => node.type === type;\nconst isSvg$1 = isType$2(P.Svg);\nconst isText$3 = isType$2(P.Text);\n// Merge style values\nconst mergeValues = (styleName, value, inheritedValue) => {\n switch (styleName) {\n case 'textDecoration': {\n // merge not none and not false textDecoration values to one rule\n return [inheritedValue, value].filter((v) => v && v !== 'none').join(' ');\n }\n default:\n return value;\n }\n};\n// Merge inherited and node styles\nconst merge = (inheritedStyles, style) => {\n const mergedStyles = { ...inheritedStyles };\n Object.entries(style).forEach(([styleName, value]) => {\n mergedStyles[styleName] = mergeValues(styleName, value, inheritedStyles[styleName]);\n });\n return mergedStyles;\n};\n/**\n * Merges styles with node\n *\n * @param inheritedStyles - Style object\n * @returns Merge styles function\n */\nconst mergeStyles = (inheritedStyles) => (node) => {\n const style = merge(inheritedStyles, node.style || {});\n return Object.assign({}, node, { style });\n};\n/**\n * Inherit style values from the root to the leafs\n *\n * @param node - Document root\n * @returns Document root with inheritance\n *\n */\nconst resolveInheritance = (node) => {\n if (isSvg$1(node))\n return node;\n if (!('children' in node))\n return node;\n const inheritableProperties = isText$3(node)\n ? TEXT_INHERITABLE_PROPERTIES\n : BASE_INHERITABLE_PROPERTIES;\n const inheritStyles = pick(inheritableProperties, node.style || {});\n const resolveChild = compose(resolveInheritance, mergeStyles(inheritStyles));\n const children = node.children.map(resolveChild);\n return Object.assign({}, node, { children });\n};\n\nconst getComputedMargin = (node, edge) => {\n const { yogaNode } = node;\n return yogaNode ? yogaNode.getComputedMargin(edge) : null;\n};\n/**\n * Get Yoga computed magins. Zero otherwise\n *\n * @param node\n * @returns Margins\n */\nconst getMargin = (node) => {\n const { style, box } = node;\n const marginTop = getComputedMargin(node, Yoga.Edge.Top) ||\n box?.marginTop ||\n style?.marginTop ||\n 0;\n const marginRight = getComputedMargin(node, Yoga.Edge.Right) ||\n box?.marginRight ||\n style?.marginRight ||\n 0;\n const marginBottom = getComputedMargin(node, Yoga.Edge.Bottom) ||\n box?.marginBottom ||\n style?.marginBottom ||\n 0;\n const marginLeft = getComputedMargin(node, Yoga.Edge.Left) ||\n box?.marginLeft ||\n style?.marginLeft ||\n 0;\n return { marginTop, marginRight, marginBottom, marginLeft };\n};\n\n/**\n * Get Yoga computed position. Zero otherwise\n *\n * @param node\n * @returns Position\n */\nconst getPosition = (node) => {\n const { yogaNode } = node;\n return {\n top: yogaNode?.getComputedTop() || 0,\n right: yogaNode?.getComputedRight() || 0,\n bottom: yogaNode?.getComputedBottom() || 0,\n left: yogaNode?.getComputedLeft() || 0,\n };\n};\n\nconst DEFAULT_DIMENSION = {\n width: 0,\n height: 0,\n};\n/**\n * Get Yoga computed dimensions. Zero otherwise\n *\n * @param node\n * @returns Dimensions\n */\nconst getDimension = (node) => {\n const { yogaNode } = node;\n if (!yogaNode)\n return DEFAULT_DIMENSION;\n return {\n width: yogaNode.getComputedWidth(),\n height: yogaNode.getComputedHeight(),\n };\n};\n\nconst getComputedBorder = (yogaNode, edge) => (yogaNode ? yogaNode.getComputedBorder(edge) : 0);\n/**\n * Get Yoga computed border width. Zero otherwise\n *\n * @param node\n * @returns Border widths\n */\nconst getBorderWidth = (node) => {\n const { yogaNode } = node;\n return {\n borderTopWidth: getComputedBorder(yogaNode, Yoga.Edge.Top),\n borderRightWidth: getComputedBorder(yogaNode, Yoga.Edge.Right),\n borderBottomWidth: getComputedBorder(yogaNode, Yoga.Edge.Bottom),\n borderLeftWidth: getComputedBorder(yogaNode, Yoga.Edge.Left),\n };\n};\n\n/**\n * Set display attribute to node's Yoga instance\n *\n * @param value - Display\n * @returns Node instance wrapper\n */\nconst setDisplay = (value) => (node) => {\n const { yogaNode } = node;\n if (yogaNode) {\n yogaNode.setDisplay(value === 'none' ? Yoga.Display.None : Yoga.Display.Flex);\n }\n return node;\n};\n\nconst OVERFLOW = {\n hidden: Yoga.Overflow.Hidden,\n scroll: Yoga.Overflow.Scroll,\n};\n/**\n * Set overflow attribute to node's Yoga instance\n *\n * @param value - Overflow value\n * @returns Node instance wrapper\n */\nconst setOverflow = (value) => (node) => {\n const { yogaNode } = node;\n if (!isNil(value) && yogaNode) {\n const overflow = OVERFLOW[value] || Yoga.Overflow.Visible;\n yogaNode.setOverflow(overflow);\n }\n return node;\n};\n\nconst FLEX_WRAP = {\n wrap: Yoga.Wrap.Wrap,\n 'wrap-reverse': Yoga.Wrap.WrapReverse,\n};\n/**\n * Set flex wrap attribute to node's Yoga instance\n *\n * @param value - Flex wrap value\n * @returns Node instance wrapper\n */\nconst setFlexWrap = (value) => (node) => {\n const { yogaNode } = node;\n if (yogaNode) {\n const flexWrap = FLEX_WRAP[value] || Yoga.Wrap.NoWrap;\n yogaNode.setFlexWrap(flexWrap);\n }\n return node;\n};\n\n/**\n * Set generic yoga attribute to node's Yoga instance, handing `auto`, edges and percentage cases\n *\n * @param attr - Property\n * @param edge - Edge\n * @returns Node instance wrapper\n */\nconst setYogaValue = (attr, edge) => (value) => (node) => {\n const { yogaNode } = node;\n if (!isNil(value) && yogaNode) {\n const hasEdge = !isNil(edge);\n const fixedMethod = `set${upperFirst(attr)}`;\n const autoMethod = `${fixedMethod}Auto`;\n const percentMethod = `${fixedMethod}Percent`;\n const percent = matchPercent(value);\n if (percent && !yogaNode[percentMethod]) {\n throw new Error(`You can't pass percentage values to ${attr} property`);\n }\n if (percent) {\n if (hasEdge) {\n yogaNode[percentMethod]?.(edge, percent.value);\n }\n else {\n yogaNode[percentMethod]?.(percent.value);\n }\n }\n else if (value === 'auto') {\n if (hasEdge) {\n yogaNode[autoMethod]?.(edge);\n }\n else {\n yogaNode[autoMethod]?.();\n }\n }\n else if (hasEdge) {\n yogaNode[fixedMethod]?.(edge, value);\n }\n else {\n yogaNode[fixedMethod]?.(value);\n }\n }\n return node;\n};\n\n/**\n * Set flex grow attribute to node's Yoga instance\n *\n * @param value - Flex grow value\n * @returns Node instance wrapper\n */\nconst setFlexGrow = (value) => (node) => {\n return setYogaValue('flexGrow')(value || 0)(node);\n};\n\n/**\n * Set flex basis attribute to node's Yoga instance\n *\n * @param flex - Basis value\n * @param node - Node instance\n * @returns Node instance\n */\nconst setFlexBasis = setYogaValue('flexBasis');\n\nconst ALIGN = {\n 'flex-start': Yoga.Align.FlexStart,\n center: Yoga.Align.Center,\n 'flex-end': Yoga.Align.FlexEnd,\n stretch: Yoga.Align.Stretch,\n baseline: Yoga.Align.Baseline,\n 'space-between': Yoga.Align.SpaceBetween,\n 'space-around': Yoga.Align.SpaceAround,\n 'space-evenly': Yoga.Align.SpaceEvenly,\n};\n/**\n * Set generic align attribute to node's Yoga instance\n *\n * @param attr - Specific align property\n * @param value - Specific align value\n * @param node - Node\n * @returns Node\n */\nconst setAlign = (attr) => (value) => (node) => {\n const { yogaNode } = node;\n const defaultValue = attr === 'items' ? Yoga.Align.Stretch : Yoga.Align.Auto;\n if (yogaNode) {\n const align = ALIGN[value] || defaultValue;\n yogaNode[`setAlign${upperFirst(attr)}`](align);\n }\n return node;\n};\n\n/**\n * Set align self attribute to node's Yoga instance\n *\n * @param align - Value\n * @param node - Node instance\n * @returns Node instance\n */\nconst setAlignSelf = setAlign('self');\n\n/**\n * Set align items attribute to node's Yoga instance\n *\n * @param align - Value\n * @param node - Node instance\n * @returns Node instance\n */\nconst setAlignItems = setAlign('items');\n\n/**\n * Set flex shrink attribute to node's Yoga instance\n *\n * @param value - Flex shrink value\n * @returns Node instance wrapper\n */\nconst setFlexShrink = (value) => (node) => {\n return setYogaValue('flexShrink')(value || 1)(node);\n};\n\n/**\n * Set aspect ratio attribute to node's Yoga instance\n *\n * @param value - Ratio\n * @returns Node instance\n */\nconst setAspectRatio = (value) => (node) => {\n const { yogaNode } = node;\n if (!isNil(value) && yogaNode) {\n yogaNode.setAspectRatio(value);\n }\n return node;\n};\n\n/**\n * Set align content attribute to node's Yoga instance\n *\n * @param align - Value\n * @param node - Instance\n * @returns Node instance\n */\nconst setAlignContent = setAlign('content');\n\nconst POSITION = {\n absolute: Yoga.PositionType.Absolute,\n relative: Yoga.PositionType.Relative,\n static: Yoga.PositionType.Static,\n};\n/**\n * Set position type attribute to node's Yoga instance\n *\n * @param value - Position position type\n * @returns Node instance\n */\nconst setPositionType = (value) => (node) => {\n const { yogaNode } = node;\n if (!isNil(value) && yogaNode) {\n yogaNode.setPositionType(POSITION[value]);\n }\n return node;\n};\n\nconst FLEX_DIRECTIONS = {\n row: Yoga.FlexDirection.Row,\n 'row-reverse': Yoga.FlexDirection.RowReverse,\n 'column-reverse': Yoga.FlexDirection.ColumnReverse,\n};\n/**\n * Set flex direction attribute to node's Yoga instance\n *\n * @param value - Flex direction value\n * @returns Node instance wrapper\n */\nconst setFlexDirection = (value) => (node) => {\n const { yogaNode } = node;\n if (yogaNode) {\n const flexDirection = FLEX_DIRECTIONS[value] || Yoga.FlexDirection.Column;\n yogaNode.setFlexDirection(flexDirection);\n }\n return node;\n};\n\nconst JUSTIFY_CONTENT = {\n center: Yoga.Justify.Center,\n 'flex-end': Yoga.Justify.FlexEnd,\n 'space-between': Yoga.Justify.SpaceBetween,\n 'space-around': Yoga.Justify.SpaceAround,\n 'space-evenly': Yoga.Justify.SpaceEvenly,\n};\n/**\n * Set justify content attribute to node's Yoga instance\n *\n * @param value - Justify content value\n * @returns Node instance wrapper\n */\nconst setJustifyContent = (value) => (node) => {\n const { yogaNode } = node;\n if (!isNil(value) && yogaNode) {\n const justifyContent = JUSTIFY_CONTENT[value] || Yoga.Justify.FlexStart;\n yogaNode.setJustifyContent(justifyContent);\n }\n return node;\n};\n\n/**\n * Set margin top attribute to node's Yoga instance\n *\n * @param margin - Margin top\n * @param node - Node instance\n * @returns Node instance\n */\nconst setMarginTop = setYogaValue('margin', Yoga.Edge.Top);\n/**\n * Set margin right attribute to node's Yoga instance\n *\n * @param margin - Margin right\n * @param node - Node instance\n * @returns Node instance\n */\nconst setMarginRight = setYogaValue('margin', Yoga.Edge.Right);\n/**\n * Set margin bottom attribute to node's Yoga instance\n *\n * @param margin - Margin bottom\n * @param node - Node instance\n * @returns Node instance\n */\nconst setMarginBottom = setYogaValue('margin', Yoga.Edge.Bottom);\n/**\n * Set margin left attribute to node's Yoga instance\n *\n * @param margin - Margin left\n * @param node - Node instance\n * @returns Node instance\n */\nconst setMarginLeft = setYogaValue('margin', Yoga.Edge.Left);\n\n/**\n * Set padding top attribute to node's Yoga instance\n *\n * @param padding - Padding top\n * @param node - Node instance\n * @returns Node instance\n */\nconst setPaddingTop = setYogaValue('padding', Yoga.Edge.Top);\n/**\n * Set padding right attribute to node's Yoga instance\n *\n * @param padding - Padding right\n * @param node - Node instance\n * @returns Node instance\n */\nconst setPaddingRight = setYogaValue('padding', Yoga.Edge.Right);\n/**\n * Set padding bottom attribute to node's Yoga instance\n *\n * @param padding - Padding bottom\n * @param node Node instance\n * @returns Node instance\n */\nconst setPaddingBottom = setYogaValue('padding', Yoga.Edge.Bottom);\n/**\n * Set padding left attribute to node's Yoga instance\n *\n * @param padding - Padding left\n * @param node - Node instance\n * @returns Node instance\n */\nconst setPaddingLeft = setYogaValue('padding', Yoga.Edge.Left);\n\n/**\n * Set border top attribute to node's Yoga instance\n *\n * @param border - Border top width\n * @param node - Node instance\n * @returns Node instance\n */\nconst setBorderTop = setYogaValue('border', Yoga.Edge.Top);\n/**\n * Set border right attribute to node's Yoga instance\n *\n * @param border - Border right width\n * @param node - Node instance\n * @returns Node instance\n */\nconst setBorderRight = setYogaValue('border', Yoga.Edge.Right);\n/**\n * Set border bottom attribute to node's Yoga instance\n *\n * @param border - Border bottom width\n * @param node - Node instance\n * @returns Node instance\n */\nconst setBorderBottom = setYogaValue('border', Yoga.Edge.Bottom);\n/**\n * Set border left attribute to node's Yoga instance\n *\n * @param border - Border left width\n * @param node - Node instance\n * @returns Node instance\n */\nconst setBorderLeft = setYogaValue('border', Yoga.Edge.Left);\n\n/**\n * Set position top attribute to node's Yoga instance\n *\n * @param position - Position top\n * @param node - Node instance\n * @returns Node instance\n */\nconst setPositionTop = setYogaValue('position', Yoga.Edge.Top);\n/**\n * Set position right attribute to node's Yoga instance\n *\n * @param position - Position right\n * @param node - Node instance\n * @returns Node instance\n */\nconst setPositionRight = setYogaValue('position', Yoga.Edge.Right);\n/**\n * Set position bottom attribute to node's Yoga instance\n *\n * @param position - Position bottom\n * @param node - Node instance\n * @returns Node instance\n */\nconst setPositionBottom = setYogaValue('position', Yoga.Edge.Bottom);\n/**\n * Set position left attribute to node's Yoga instance\n *\n * @param position - Position left\n * @param node - Node instance\n * @returns Node instance\n */\nconst setPositionLeft = setYogaValue('position', Yoga.Edge.Left);\n\n/**\n * Set width to node's Yoga instance\n *\n * @param width - Width\n * @param node - Node instance\n * @returns Node instance\n */\nconst setWidth = setYogaValue('width');\n/**\n * Set min width to node's Yoga instance\n *\n * @param min - Width\n * @param node - Node instance\n * @returns Node instance\n */\nconst setMinWidth = setYogaValue('minWidth');\n/**\n * Set max width to node's Yoga instance\n *\n * @param max - Width\n * @param node - Node instance\n * @returns Node instance\n */\nconst setMaxWidth = setYogaValue('maxWidth');\n/**\n * Set height to node's Yoga instance\n *\n * @param height - Height\n * @param node - Node instance\n * @returns Node instance\n */\nconst setHeight = setYogaValue('height');\n/**\n * Set min height to node's Yoga instance\n *\n * @param min - Height\n * @param node - Node instance\n * @returns Node instance\n */\nconst setMinHeight = setYogaValue('minHeight');\n/**\n * Set max height to node's Yoga instance\n *\n * @param max - Height\n * @param node - Node instance\n * @returns Node instance\n */\nconst setMaxHeight = setYogaValue('maxHeight');\n\n/**\n * Set rowGap value to node's Yoga instance\n *\n * @param value - Gap value\n * @returns Node instance wrapper\n */\nconst setRowGap = setYogaValue('gap', Yoga.Gutter.Row);\n/**\n * Set columnGap value to node's Yoga instance\n *\n * @param value - Gap value\n * @returns Node instance wrapper\n */\nconst setColumnGap = setYogaValue('gap', Yoga.Gutter.Column);\n\nconst getAspectRatio = (viewbox) => {\n if (!viewbox)\n return null;\n if (typeof viewbox === 'string')\n return null;\n return (viewbox.maxX - viewbox.minX) / (viewbox.maxY - viewbox.minY);\n};\n/**\n * Yoga svg measure function\n *\n * @param page\n * @param node\n * @returns Measure svg\n */\nconst measureCanvas$1 = (page, node) => (width, widthMode, height, heightMode) => {\n const aspectRatio = getAspectRatio(node.props.viewBox) || 1;\n if (widthMode === Yoga.MeasureMode.Exactly ||\n widthMode === Yoga.MeasureMode.AtMost) {\n return { width, height: width / aspectRatio };\n }\n if (heightMode === Yoga.MeasureMode.Exactly) {\n return { width: height * aspectRatio };\n }\n return {};\n};\n\n/**\n * Get lines width (if any)\n *\n * @param node\n * @returns Lines width\n */\nconst linesWidth = (node) => {\n if (!node.lines)\n return 0;\n return Math.max(0, ...node.lines.map((line) => line.xAdvance));\n};\n\n/**\n * Get lines height (if any)\n *\n * @param node\n * @returns Lines height\n */\nconst linesHeight = (node) => {\n if (!node.lines)\n return -1;\n return node.lines.reduce((acc, line) => acc + line.box.height, 0);\n};\n\nconst ALIGNMENT_FACTORS = { center: 0.5, right: 1 };\n/**\n * Yoga text measure function\n *\n * @param page\n * @param node\n * @param fontStore\n * @returns {MeasureText} measure text function\n */\nconst measureText = (page, node, fontStore) => (width, widthMode, height) => {\n if (widthMode === Yoga.MeasureMode.Exactly) {\n if (!node.lines)\n node.lines = layoutText(node, width, height, fontStore);\n return { height: linesHeight(node), width };\n }\n if (widthMode === Yoga.MeasureMode.AtMost) {\n const alignFactor = ALIGNMENT_FACTORS[node.style?.textAlign] || 0;\n if (!node.lines) {\n node.lines = layoutText(node, width, height, fontStore);\n node.alignOffset = (width - linesWidth(node)) * alignFactor; // Compensate align in variable width containers\n }\n return {\n height: linesHeight(node),\n width: Math.min(width, linesWidth(node)),\n };\n }\n return {};\n};\n\n/**\n * Get image ratio\n *\n * @param node - Image node\n * @returns Image ratio\n */\nconst getRatio = (node) => {\n return node.image?.data ? node.image.width / node.image.height : 1;\n};\n\n/**\n * Checks if page has auto height\n *\n * @param page\n * @returns Is page height auto\n */\nconst isHeightAuto = (page) => isNil(page.box?.height);\n\nconst SAFETY_HEIGHT$1 = 10;\n/**\n * Yoga image measure function\n *\n * @param page - Page\n * @param node - Node\n * @returns Measure image\n */\nconst measureImage = (page, node) => (width, widthMode, height, heightMode) => {\n const imageRatio = getRatio(node);\n const imageMargin = getMargin(node);\n const pagePadding = getPadding(page);\n // TODO: Check image percentage margins\n const pageArea = isHeightAuto(page)\n ? Infinity\n : (page.box?.height || 0) -\n pagePadding.paddingTop -\n pagePadding.paddingBottom -\n imageMargin.marginTop -\n imageMargin.marginBottom -\n SAFETY_HEIGHT$1;\n // Skip measure if image data not present yet\n if (!node.image)\n return { width: 0, height: 0 };\n if (widthMode === Yoga.MeasureMode.Exactly &&\n heightMode === Yoga.MeasureMode.Undefined) {\n const scaledHeight = width / imageRatio;\n return { height: Math.min(pageArea, scaledHeight) };\n }\n if (heightMode === Yoga.MeasureMode.Exactly &&\n (widthMode === Yoga.MeasureMode.AtMost ||\n widthMode === Yoga.MeasureMode.Undefined)) {\n return { width: Math.min(height * imageRatio, width) };\n }\n if (widthMode === Yoga.MeasureMode.Exactly &&\n heightMode === Yoga.MeasureMode.AtMost) {\n const scaledHeight = width / imageRatio;\n return { height: Math.min(height, pageArea, scaledHeight) };\n }\n if (widthMode === Yoga.MeasureMode.AtMost &&\n heightMode === Yoga.MeasureMode.AtMost) {\n if (imageRatio > 1) {\n return {\n width,\n height: Math.min(width / imageRatio, height),\n };\n }\n return {\n height,\n width: Math.min(height * imageRatio, width),\n };\n }\n return { height, width };\n};\n\nconst SAFETY_HEIGHT = 10;\nconst getMax = (values) => Math.max(-Infinity, ...values);\n/**\n * Helper object to predict canvas size\n * TODO: Implement remaining functions (as close as possible);\n */\nconst measureCtx = () => {\n const ctx = {};\n const points = [];\n const nil = () => ctx;\n const addPoint = (x, y) => points.push([x, y]);\n const moveTo = (x, y) => {\n addPoint(x, y);\n return ctx;\n };\n const rect = (x, y, w, h) => {\n addPoint(x, y);\n addPoint(x + w, y);\n addPoint(x, y + h);\n addPoint(x + w, y + h);\n return ctx;\n };\n const ellipse = (x, y, rx, ry) => {\n ry = ry || rx;\n addPoint(x - rx, y - ry);\n addPoint(x + rx, y - ry);\n addPoint(x + rx, y + ry);\n addPoint(x - rx, y + ry);\n return ctx;\n };\n const polygon = (...pts) => {\n points.push(...pts);\n return ctx;\n };\n // Change dimensions\n ctx.rect = rect;\n ctx.moveTo = moveTo;\n ctx.lineTo = moveTo;\n ctx.circle = ellipse;\n ctx.polygon = polygon;\n ctx.ellipse = ellipse;\n ctx.roundedRect = rect;\n // To be implemented\n ctx.text = nil;\n ctx.path = nil;\n ctx.lineWidth = nil;\n ctx.bezierCurveTo = nil;\n ctx.quadraticCurveTo = nil;\n ctx.scale = nil;\n ctx.rotate = nil;\n ctx.translate = nil;\n // These don't change dimensions\n ctx.dash = nil;\n ctx.clip = nil;\n ctx.save = nil;\n ctx.fill = nil;\n ctx.font = nil;\n ctx.stroke = nil;\n ctx.lineCap = nil;\n ctx.opacity = nil;\n ctx.restore = nil;\n ctx.lineJoin = nil;\n ctx.fontSize = nil;\n ctx.fillColor = nil;\n ctx.miterLimit = nil;\n ctx.strokeColor = nil;\n ctx.fillOpacity = nil;\n ctx.strokeOpacity = nil;\n ctx.linearGradient = nil;\n ctx.radialGradient = nil;\n ctx.getWidth = () => getMax(points.map((p) => p[0]));\n ctx.getHeight = () => getMax(points.map((p) => p[1]));\n return ctx;\n};\n/**\n * @typedef {Function} MeasureCanvas\n * @returns {{ width: number, height: number }} canvas width and height\n */\n/**\n * Yoga canvas measure function\n *\n * @param {Object} page\n * @param {Object} node\n * @returns {MeasureCanvas} measure canvas\n */\nconst measureCanvas = (page, node) => () => {\n const imageMargin = getMargin(node);\n const pagePadding = getPadding(page);\n // TODO: Check image percentage margins\n const pageArea = isHeightAuto(page)\n ? Infinity\n : (page.box?.height || 0) -\n pagePadding.paddingTop -\n pagePadding.paddingBottom -\n imageMargin.marginTop -\n imageMargin.marginBottom -\n SAFETY_HEIGHT;\n const ctx = measureCtx();\n node.props.paint(ctx);\n const width = ctx.getWidth();\n const height = Math.min(pageArea, ctx.getHeight());\n return { width, height };\n};\n\nconst isType$1 = (type) => (node) => node.type === type;\nconst isSvg = isType$1(P.Svg);\nconst isText$2 = isType$1(P.Text);\nconst isNote = isType$1(P.Note);\nconst isPage = isType$1(P.Page);\nconst isImage = isType$1(P.Image);\nconst isCanvas = isType$1(P.Canvas);\nconst isTextInstance$1 = isType$1(P.TextInstance);\nconst setNodeHeight = (node) => {\n const value = isPage(node) ? node.box?.height : node.style?.height;\n return setHeight(value);\n};\n/**\n * Set styles valeus into yoga node before layout calculation\n *\n * @param node\n */\nconst setYogaValues = (node) => {\n compose(setNodeHeight(node), setWidth(node.style.width), setMinWidth(node.style.minWidth), setMaxWidth(node.style.maxWidth), setMinHeight(node.style.minHeight), setMaxHeight(node.style.maxHeight), setMarginTop(node.style.marginTop), setMarginRight(node.style.marginRight), setMarginBottom(node.style.marginBottom), setMarginLeft(node.style.marginLeft), setPaddingTop(node.style.paddingTop), setPaddingRight(node.style.paddingRight), setPaddingBottom(node.style.paddingBottom), setPaddingLeft(node.style.paddingLeft), setPositionType(node.style.position), setPositionTop(node.style.top), setPositionRight(node.style.right), setPositionBottom(node.style.bottom), setPositionLeft(node.style.left), setBorderTop(node.style.borderTopWidth), setBorderRight(node.style.borderRightWidth), setBorderBottom(node.style.borderBottomWidth), setBorderLeft(node.style.borderLeftWidth), setDisplay(node.style.display), setFlexDirection(node.style.flexDirection), setAlignSelf(node.style.alignSelf), setAlignContent(node.style.alignContent), setAlignItems(node.style.alignItems), setJustifyContent(node.style.justifyContent), setFlexWrap(node.style.flexWrap), setOverflow(node.style.overflow), setAspectRatio(node.style.aspectRatio), setFlexBasis(node.style.flexBasis), setFlexGrow(node.style.flexGrow), setFlexShrink(node.style.flexShrink), setRowGap(node.style.rowGap), setColumnGap(node.style.columnGap))(node);\n};\n/**\n * Inserts child into parent' yoga node\n *\n * @param parent parent\n * @returns Insert yoga nodes\n */\nconst insertYogaNodes = (parent) => (child) => {\n parent.insertChild(child.yogaNode, parent.getChildCount());\n return child;\n};\nconst setMeasureFunc = (node, page, fontStore) => {\n const { yogaNode } = node;\n if (isText$2(node)) {\n yogaNode.setMeasureFunc(measureText(page, node, fontStore));\n }\n if (isImage(node)) {\n yogaNode.setMeasureFunc(measureImage(page, node));\n }\n if (isCanvas(node)) {\n yogaNode.setMeasureFunc(measureCanvas(page, node));\n }\n if (isSvg(node)) {\n yogaNode.setMeasureFunc(measureCanvas$1(page, node));\n }\n return node;\n};\nconst isLayoutElement = (node) => !isText$2(node) && !isNote(node) && !isSvg(node);\n/**\n * @typedef {Function} CreateYogaNodes\n * @param {Object} node\n * @returns {Object} node with appended yoga node\n */\n/**\n * Creates and add yoga node to document tree\n * Handles measure function for text and image nodes\n *\n * @returns Create yoga nodes\n */\nconst createYogaNodes = (page, fontStore, yoga) => (node) => {\n const yogaNode = yoga.node.create();\n const result = Object.assign({}, node, { yogaNode });\n setYogaValues(result);\n if (isLayoutElement(node) && node.children) {\n const resolveChild = compose(insertYogaNodes(yogaNode), createYogaNodes(page, fontStore, yoga));\n result.children = node.children.map(resolveChild);\n }\n setMeasureFunc(result, page, fontStore);\n return result;\n};\n/**\n * Performs yoga calculation\n *\n * @param page - Page node\n * @returns Page node\n */\nconst calculateLayout = (page) => {\n page.yogaNode.calculateLayout();\n return page;\n};\n/**\n * Saves Yoga layout result into 'box' attribute of node\n *\n * @param node\n * @returns Node with box data\n */\nconst persistDimensions = (node) => {\n if (isTextInstance$1(node))\n return node;\n const box = Object.assign(getPadding(node), getMargin(node), getBorderWidth(node), getPosition(node), getDimension(node));\n const newNode = Object.assign({}, node, { box });\n if (!node.children)\n return newNode;\n const children = node.children.map(persistDimensions);\n return Object.assign({}, newNode, { children });\n};\n/**\n * Removes yoga node from document tree\n *\n * @param node\n * @returns Node without yoga node\n */\nconst destroyYogaNodes = (node) => {\n const newNode = Object.assign({}, node);\n delete newNode.yogaNode;\n if (!node.children)\n return newNode;\n const children = node.children.map(destroyYogaNodes);\n return Object.assign({}, newNode, { children });\n};\n/**\n * Free yoga node from document tree\n *\n * @param node\n * @returns Node without yoga node\n */\nconst freeYogaNodes = (node) => {\n if (node.yogaNode)\n node.yogaNode.freeRecursive();\n return node;\n};\n/**\n * Calculates page object layout using Yoga.\n * Takes node values from 'box' and 'style' attributes, and persist them back into 'box'\n * Destroy yoga values at the end.\n *\n * @param page - Object\n * @returns Page object with correct 'box' layout attributes\n */\nconst resolvePageDimensions = (page, fontStore, yoga) => {\n if (isNil(page))\n return null;\n return compose(destroyYogaNodes, freeYogaNodes, persistDimensions, calculateLayout, createYogaNodes(page, fontStore, yoga))(page);\n};\n/**\n * Calculates root object layout using Yoga.\n *\n * @param node - Root object\n * @param fontStore - Font store\n * @returns Root object with correct 'box' layout attributes\n */\nconst resolveDimensions = (node, fontStore) => {\n if (!node.children)\n return node;\n const resolveChild = (child) => resolvePageDimensions(child, fontStore, node.yoga);\n const children = node.children.map(resolveChild);\n return Object.assign({}, node, { children });\n};\n\nconst isText$1 = (node) => node.type === P.Text;\n// Prevent splitting elements by low decimal numbers\nconst SAFETY_THRESHOLD = 0.001;\nconst assingChildren = (children, node) => Object.assign({}, node, { children });\nconst getTop = (node) => node.box?.top || 0;\nconst allFixed = (nodes) => nodes.every(isFixed);\nconst isDynamic = (node) => node.props && 'render' in node.props;\nconst relayoutPage = compose(resolveTextLayout, resolvePageDimensions, resolveInheritance, resolvePageStyles);\nconst warnUnavailableSpace = (node) => {\n console.warn(`Node of type ${node.type} can't wrap between pages and it's bigger than available page height`);\n};\nconst splitNodes = (height, contentArea, nodes) => {\n const currentChildren = [];\n const nextChildren = [];\n for (let i = 0; i < nodes.length; i += 1) {\n const child = nodes[i];\n const futureNodes = nodes.slice(i + 1);\n const futureFixedNodes = futureNodes.filter(isFixed);\n const nodeTop = getTop(child);\n const nodeHeight = child.box.height;\n const isOutside = height <= nodeTop;\n const shouldBreak$1 = shouldBreak(child, futureNodes, height, currentChildren);\n const shouldSplit = height + SAFETY_THRESHOLD < nodeTop + nodeHeight;\n const canWrap = getWrap(child);\n const fitsInsidePage = nodeHeight <= contentArea;\n if (isFixed(child)) {\n nextChildren.push(child);\n currentChildren.push(child);\n continue;\n }\n if (isOutside) {\n const box = Object.assign({}, child.box, { top: child.box.top - height });\n const next = Object.assign({}, child, { box });\n nextChildren.push(next);\n continue;\n }\n if (!fitsInsidePage && !canWrap) {\n currentChildren.push(child);\n nextChildren.push(...futureNodes);\n warnUnavailableSpace(child);\n break;\n }\n if (shouldBreak$1) {\n const box = Object.assign({}, child.box, { top: child.box.top - height });\n const props = Object.assign({}, child.props, {\n wrap: true,\n break: false,\n });\n const next = Object.assign({}, child, { box, props });\n currentChildren.push(...futureFixedNodes);\n nextChildren.push(next, ...futureNodes);\n break;\n }\n if (shouldSplit) {\n const [currentChild, nextChild] = split(child, height, contentArea);\n // All children are moved to the next page, it doesn't make sense to show the parent on the current page\n if (child.children.length > 0 && currentChild.children.length === 0) {\n // But if the current page is empty then we can just include the parent on the current page\n if (currentChildren.length === 0) {\n currentChildren.push(child, ...futureFixedNodes);\n nextChildren.push(...futureNodes);\n }\n else {\n const box = Object.assign({}, child.box, {\n top: child.box.top - height,\n });\n const next = Object.assign({}, child, { box });\n currentChildren.push(...futureFixedNodes);\n nextChildren.push(next, ...futureNodes);\n }\n break;\n }\n if (currentChild)\n currentChildren.push(currentChild);\n if (nextChild)\n nextChildren.push(nextChild);\n continue;\n }\n currentChildren.push(child);\n }\n return [currentChildren, nextChildren];\n};\nconst splitChildren = (height, contentArea, node) => {\n const children = node.children || [];\n const availableHeight = height - getTop(node);\n return splitNodes(availableHeight, contentArea, children);\n};\nconst splitView = (node, height, contentArea) => {\n const [currentNode, nextNode] = splitNode(node, height);\n const [currentChilds, nextChildren] = splitChildren(height, contentArea, node);\n return [\n assingChildren(currentChilds, currentNode),\n assingChildren(nextChildren, nextNode),\n ];\n};\nconst split = (node, height, contentArea) => isText$1(node) ? splitText(node, height) : splitView(node, height, contentArea);\nconst shouldResolveDynamicNodes = (node) => {\n const children = node.children || [];\n return isDynamic(node) || children.some(shouldResolveDynamicNodes);\n};\nconst resolveDynamicNodes = (props, node) => {\n const isNodeDynamic = isDynamic(node);\n // Call render prop on dynamic nodes and append result to children\n const resolveChildren = (children = []) => {\n if (isNodeDynamic) {\n const res = node.props.render(props);\n return (createInstances(res)\n .filter(Boolean)\n // @ts-expect-error rework dynamic nodes. conflicting types\n .map((n) => resolveDynamicNodes(props, n)));\n }\n return children.map((c) => resolveDynamicNodes(props, c));\n };\n // We reset dynamic text box so it can be computed again later on\n const resetHeight = isNodeDynamic && isText$1(node);\n const box = resetHeight ? { ...node.box, height: 0 } : node.box;\n const children = resolveChildren(node.children);\n // @ts-expect-error handle text here specifically\n const lines = isNodeDynamic ? null : node.lines;\n return Object.assign({}, node, { box, lines, children });\n};\nconst resolveDynamicPage = (props, page, fontStore, yoga) => {\n if (shouldResolveDynamicNodes(page)) {\n const resolvedPage = resolveDynamicNodes(props, page);\n return relayoutPage(resolvedPage, fontStore, yoga);\n }\n return page;\n};\nconst splitPage = (page, pageNumber, fontStore, yoga) => {\n const wrapArea = getWrapArea(page);\n const contentArea = getContentArea(page);\n const dynamicPage = resolveDynamicPage({ pageNumber }, page, fontStore, yoga);\n const height = page.style.height;\n const [currentChilds, nextChilds] = splitNodes(wrapArea, contentArea, dynamicPage.children);\n const relayout = (node) => \n // @ts-expect-error rework pagination\n relayoutPage(node, fontStore, yoga);\n const currentBox = { ...page.box, height };\n const currentPage = relayout(Object.assign({}, page, { box: currentBox, children: currentChilds }));\n if (nextChilds.length === 0 || allFixed(nextChilds))\n return [currentPage, null];\n const nextBox = omit('height', page.box);\n const nextProps = omit('bookmark', page.props);\n const nextPage = relayout(Object.assign({}, page, {\n props: nextProps,\n box: nextBox,\n children: nextChilds,\n }));\n return [currentPage, nextPage];\n};\nconst resolvePageIndices = (fontStore, yoga, page, pageNumber, pages) => {\n const totalPages = pages.length;\n const props = {\n totalPages,\n pageNumber: pageNumber + 1,\n subPageNumber: page.subPageNumber + 1,\n subPageTotalPages: page.subPageTotalPages,\n };\n return resolveDynamicPage(props, page, fontStore, yoga);\n};\nconst assocSubPageData = (subpages) => {\n return subpages.map((page, i) => ({\n ...page,\n subPageNumber: i,\n subPageTotalPages: subpages.length,\n }));\n};\nconst dissocSubPageData = (page) => {\n return omit(['subPageNumber', 'subPageTotalPages'], page);\n};\nconst paginate = (page, pageNumber, fontStore, yoga) => {\n if (!page)\n return [];\n if (page.props?.wrap === false)\n return [page];\n let splittedPage = splitPage(page, pageNumber, fontStore, yoga);\n const pages = [splittedPage[0]];\n let nextPage = splittedPage[1];\n while (nextPage !== null) {\n splittedPage = splitPage(nextPage, pageNumber + pages.length, fontStore, yoga);\n pages.push(splittedPage[0]);\n nextPage = splittedPage[1];\n }\n return pages;\n};\n/**\n * Performs pagination. This is the step responsible of breaking the whole document\n * into pages following pagiation rules, such as `fixed`, `break` and dynamic nodes.\n *\n * @param root - Document node\n * @param fontStore - Font store\n * @returns Layout node\n */\nconst resolvePagination = (root, fontStore) => {\n let pages = [];\n let pageNumber = 1;\n for (let i = 0; i < root.children.length; i += 1) {\n const page = root.children[i];\n let subpages = paginate(page, pageNumber, fontStore, root.yoga);\n subpages = assocSubPageData(subpages);\n pageNumber += subpages.length;\n pages = pages.concat(subpages);\n }\n pages = pages.map((...args) => dissocSubPageData(resolvePageIndices(fontStore, root.yoga, ...args)));\n return assingChildren(pages, root);\n};\n\n/**\n * Translates page percentage horizontal paddings in fixed ones\n *\n * @param container - Page container\n * @returns Resolve page horizontal padding\n */\nconst resolvePageHorizontalPadding = (container) => (value) => {\n const match = matchPercent(value);\n const width = container.width;\n return match ? match.percent * width : value;\n};\n/**\n * Translates page percentage vertical paddings in fixed ones\n *\n * @param container - Page container\n * @returns Resolve page vertical padding\n */\nconst resolvePageVerticalPadding = (container) => (value) => {\n const match = matchPercent(value);\n const height = container.height;\n return match ? match.percent * height : value;\n};\n/**\n * Translates page percentage paddings in fixed ones\n *\n * @param page\n * @returns Page with fixed paddings\n */\nconst resolvePagePaddings = (page) => {\n const container = page.style;\n const style = evolve({\n paddingTop: resolvePageVerticalPadding(container),\n paddingLeft: resolvePageHorizontalPadding(container),\n paddingRight: resolvePageHorizontalPadding(container),\n paddingBottom: resolvePageVerticalPadding(container),\n }, page.style);\n return Object.assign({}, page, { style });\n};\n/**\n * Translates all pages percentage paddings in fixed ones\n * This has to be computed from pages calculated size and not by Yoga\n * because at this point we didn't performed pagination yet.\n *\n * @param root - Document root\n * @returns Document root with translated page paddings\n */\nconst resolvePagesPaddings = (root) => {\n if (!root.children)\n return root;\n const children = root.children.map(resolvePagePaddings);\n return Object.assign({}, root, { children });\n};\n\nconst resolveRadius = (box) => (value) => {\n if (!value)\n return undefined;\n const match = matchPercent(value);\n return match ? match.percent * Math.min(box.width, box.height) : value;\n};\n/**\n * Transforms percent border radius into fixed values\n *\n * @param node\n * @returns Node\n */\nconst resolvePercentRadius = (node) => {\n const style = evolve({\n borderTopLeftRadius: resolveRadius(node.box),\n borderTopRightRadius: resolveRadius(node.box),\n borderBottomRightRadius: resolveRadius(node.box),\n borderBottomLeftRadius: resolveRadius(node.box),\n }, node.style || {});\n const newNode = Object.assign({}, node, { style });\n if (!node.children)\n return newNode;\n const children = node.children.map(resolvePercentRadius);\n return Object.assign({}, newNode, { children });\n};\n\n/**\n * Transform percent height into fixed\n *\n * @param height\n * @returns Height\n */\nconst transformHeight = (pageArea, height) => {\n const match = matchPercent(height);\n return match ? match.percent * pageArea : height;\n};\n/**\n * Get page area (height minus paddings)\n *\n * @param page\n * @returns Page area\n */\nconst getPageArea = (page) => {\n const pageHeight = page.style.height;\n const pagePaddingTop = (page.style?.paddingTop || 0);\n const pagePaddingBottom = (page.style?.paddingBottom || 0);\n return pageHeight - pagePaddingTop - pagePaddingBottom;\n};\n/**\n * Transform node percent height to fixed\n *\n * @param page\n * @param node\n * @returns Transformed node\n */\nconst resolveNodePercentHeight = (page, node) => {\n if (isNil(page.style?.height))\n return node;\n if (isNil(node.style?.height))\n return node;\n const pageArea = getPageArea(page);\n const height = transformHeight(pageArea, node.style.height);\n const style = Object.assign({}, node.style, { height });\n return Object.assign({}, node, { style });\n};\n/**\n * Transform page immediate children with percent height to fixed\n *\n * @param page\n * @returns Transformed page\n */\nconst resolvePagePercentHeight = (page) => {\n if (!page.children)\n return page;\n const resolveChild = (child) => resolveNodePercentHeight(page, child);\n const children = page.children.map(resolveChild);\n return Object.assign({}, page, { children });\n};\n/**\n * Transform all page immediate children with percent height to fixed.\n * This is needed for computing correct dimensions on pre-pagination layout.\n *\n * @param root - Document root\n * @returns Transformed document root\n */\nconst resolvePercentHeight = (root) => {\n if (!root.children)\n return root;\n const children = root.children.map(resolvePagePercentHeight);\n return Object.assign({}, root, { children });\n};\n\nconst isType = (type) => (node) => node.type === type;\nconst isLink = isType(P.Link);\nconst isText = isType(P.Text);\nconst isTextInstance = isType(P.TextInstance);\n/**\n * Checks if node has render prop\n *\n * @param node\n * @returns Has render prop?\n */\nconst hasRenderProp = (node) => 'render' in node.props;\n/**\n * Checks if node is text type (Text or TextInstance)\n *\n * @param node\n * @returns Are all children text instances?\n */\nconst isTextType = (node) => isText(node) || isTextInstance(node);\n/**\n * Checks if is tet link that needs to be wrapped in Text\n *\n * @param node\n * @returns Are all children text instances?\n */\nconst isTextLink = (node) => {\n const children = node.children || [];\n // Text string inside a Link\n if (children.every(isTextInstance))\n return true;\n // Text node inside a Link\n if (children.every(isText))\n return false;\n return children.every(isTextType);\n};\n/**\n * Wraps node children inside Text node\n *\n * @param node\n * @returns Node with intermediate Text child\n */\nconst wrapText = (node) => {\n const textElement = {\n type: P.Text,\n props: {},\n style: {},\n box: {},\n children: node.children,\n };\n return Object.assign({}, node, { children: [textElement] });\n};\nconst transformLink = (node) => {\n if (!isLink(node))\n return node;\n // If has render prop substitute the instance by a Text, that will\n // ultimately render the inline Link via the textkit PDF renderer.\n if (hasRenderProp(node))\n return Object.assign({}, node, { type: P.Text });\n // If is a text link (either contains Text or TextInstance), wrap it\n // inside a Text element so styles are applied correctly\n if (isTextLink(node))\n return wrapText(node);\n return node;\n};\n/**\n * Transforms Link layout to correctly render text and dynamic rendered links\n *\n * @param node\n * @returns Node with link substitution\n */\nconst resolveLinkSubstitution = (node) => {\n if (!node.children)\n return node;\n const resolveChild = compose(transformLink, resolveLinkSubstitution);\n const children = node.children.map(resolveChild);\n return Object.assign({}, node, { children });\n};\n\nconst layout = asyncCompose(resolveZIndex, resolveOrigin, resolveAssets, resolvePagination, resolveTextLayout, resolvePercentRadius, resolveDimensions, resolveSvg, resolveAssets, resolveInheritance, resolvePercentHeight, resolvePagesPaddings, resolveStyles, resolveLinkSubstitution, resolveBookmarks, resolvePageSizes, resolveYoga);\n\nexport { layout as default };\n","export const omitNils = (object) =>\n Object.fromEntries(\n Object.entries(object).filter(([, value]) => value !== undefined),\n );\n","import Reconciler from '@react-pdf/reconciler';\n\nconst createInstance = (type, { style, children, ...props }) => ({\n type,\n box: {},\n style: style || {},\n props: props || {},\n children: [],\n});\n\nconst createTextInstance = (text) => ({ type: 'TEXT_INSTANCE', value: text });\n\nconst appendChild = (parent, child) => {\n const isParentText =\n parent.type === 'TEXT' ||\n parent.type === 'LINK' ||\n parent.type === 'TSPAN' ||\n parent.type === 'NOTE';\n\n const isChildTextInstance = child.type === 'TEXT_INSTANCE';\n const isOrphanTextInstance = isChildTextInstance && !isParentText;\n\n // Ignore orphan text instances.\n // Caused by cases such as <>{name && <Text>{name}</Text>}</>\n if (isOrphanTextInstance) {\n console.warn(\n `Invalid '${child.value}' string child outside <Text> component`,\n );\n return;\n }\n\n parent.children.push(child);\n};\n\nconst appendChildToContainer = (parentInstance, child) => {\n if (parentInstance.type === 'ROOT') {\n parentInstance.document = child;\n } else {\n appendChild(parentInstance, child);\n }\n};\n\nconst insertBefore = (parentInstance, child, beforeChild) => {\n const index = parentInstance.children?.indexOf(beforeChild);\n\n if (index === undefined) return;\n\n if (index !== -1 && child) parentInstance.children.splice(index, 0, child);\n};\n\nconst removeChild = (parentInstance, child) => {\n const index = parentInstance.children?.indexOf(child);\n\n if (index === undefined) return;\n\n if (index !== -1) parentInstance.children.splice(index, 1);\n};\n\nconst removeChildFromContainer = (parentInstance, child) => {\n const index = parentInstance.children?.indexOf(child);\n\n if (index === undefined) return;\n\n if (index !== -1) parentInstance.children.splice(index, 1);\n};\n\nconst commitTextUpdate = (textInstance, oldText, newText) => {\n textInstance.value = newText;\n};\n\nconst commitUpdate = (instance, updatePayload, type, oldProps, newProps) => {\n const { style, ...props } = newProps;\n instance.props = props;\n instance.style = style;\n};\n\nconst createRenderer = ({ onChange = () => {} }) =>\n Reconciler({\n appendChild,\n appendChildToContainer,\n commitTextUpdate,\n commitUpdate,\n createInstance,\n createTextInstance,\n insertBefore,\n removeChild,\n removeChildFromContainer,\n resetAfterCommit: onChange,\n });\n\nexport default createRenderer;\n","import FontStore from '@react-pdf/font';\nimport renderPDF from '@react-pdf/render';\nimport PDFDocument from '@react-pdf/pdfkit';\nimport layoutDocument from '@react-pdf/layout';\nimport { upperFirst } from '@react-pdf/fns';\n\nimport { omitNils } from './utils';\nimport createRenderer from './renderer';\nimport packageJson from '../package.json';\n\nconst { version } = packageJson;\n\nconst fontStore = new FontStore();\n\n// We must keep a single renderer instance, otherwise React will complain\nlet renderer;\n\n// The pdf instance acts as an event emitter for DOM usage.\n// We only want to trigger an update when PDF content changes\nconst events = {};\n\nconst pdf = (initialValue) => {\n const onChange = () => {\n const listeners = events.change?.slice() || [];\n for (let i = 0; i < listeners.length; i += 1) listeners[i]();\n };\n\n const container = { type: 'ROOT', document: null };\n renderer = renderer || createRenderer({ onChange });\n const mountNode = renderer.createContainer(container);\n\n const updateContainer = (doc, callback) => {\n renderer.updateContainer(doc, mountNode, null, callback);\n };\n\n if (initialValue) updateContainer(initialValue);\n\n const render = async (compress = true) => {\n const props = container.document.props || {};\n const {\n pdfVersion,\n language,\n pageLayout,\n pageMode,\n title,\n author,\n subject,\n keyboards,\n creator = 'react-pdf',\n producer = 'react-pdf',\n creationDate = new Date(),\n modificationDate,\n } = props;\n\n const ctx = new PDFDocument({\n compress,\n pdfVersion,\n lang: language,\n displayTitle: true,\n autoFirstPage: false,\n info: omitNils({\n Title: title,\n Author: author,\n Subject: subject,\n Keywords: keyboards,\n Creator: creator,\n Producer: producer,\n CreationDate: creationDate,\n ModificationDate: modificationDate,\n }),\n });\n\n if (pageLayout) {\n ctx._root.data.PageLayout = upperFirst(pageLayout);\n }\n\n if (pageMode) {\n ctx._root.data.PageMode = upperFirst(pageMode);\n }\n\n const layout = await layoutDocument(container.document, fontStore);\n const fileStream = renderPDF(ctx, layout);\n return { layout, fileStream };\n };\n\n const callOnRender = (params = {}) => {\n if (container.document.props.onRender) {\n container.document.props.onRender(params);\n }\n };\n\n const toBlob = async () => {\n const chunks = [];\n const { layout: _INTERNAL__LAYOUT__DATA_, fileStream: instance } =\n await render();\n\n return new Promise((resolve, reject) => {\n instance.on('data', (chunk) => {\n chunks.push(\n chunk instanceof Uint8Array ? chunk : new Uint8Array(chunk),\n );\n });\n\n instance.on('end', () => {\n try {\n const blob = new Blob(chunks, { type: 'application/pdf' });\n callOnRender({ blob, _INTERNAL__LAYOUT__DATA_ });\n resolve(blob);\n } catch (error) {\n reject(error);\n }\n });\n });\n };\n\n // TODO: rename this method to `toStream` in next major release, because it return stream not a buffer\n const toBuffer = async () => {\n const { layout: _INTERNAL__LAYOUT__DATA_, fileStream } = await render();\n callOnRender({ _INTERNAL__LAYOUT__DATA_ });\n\n return fileStream;\n };\n\n /*\n * TODO: remove this method in next major release. it is buggy\n * see\n * - https://github.com/diegomura/react-pdf/issues/2112\n * - https://github.com/diegomura/react-pdf/issues/2095\n */\n const toString = async () => {\n if (process.env.NODE_ENV === 'development') {\n console.warn(\n '`toString` is deprecated and will be removed in next major release',\n );\n }\n\n let result = '';\n const { fileStream: instance } = await render(false); // For some reason, when rendering to string if compress=true the document is blank\n\n return new Promise((resolve, reject) => {\n try {\n instance.on('data', (buffer) => {\n result += buffer;\n });\n\n instance.on('end', () => {\n callOnRender();\n resolve(result);\n });\n } catch (error) {\n reject(error);\n }\n });\n };\n\n const on = (event, listener) => {\n if (!events[event]) events[event] = [];\n events[event].push(listener);\n };\n\n const removeListener = (event, listener) => {\n if (!events[event]) return;\n const idx = events[event].indexOf(listener);\n if (idx > -1) events[event].splice(idx, 1);\n };\n\n return {\n on,\n container,\n toBlob,\n toBuffer,\n toString,\n removeListener,\n updateContainer,\n };\n};\n\nconst Font = fontStore;\n\nconst StyleSheet = {\n create: (s) => s,\n};\n\nexport { version, Font, StyleSheet, pdf, createRenderer };\n","import fs from 'fs';\nimport { Buffer } from 'buffer';\n\nimport { pdf } from '../index';\n\n/**\n * @param {React.ReactElement} element\n * @returns {Promise<NodeJS.ReadableStream>}\n */\nexport const renderToStream = async (element) => {\n const instance = pdf(element);\n const stream = await instance.toBuffer();\n return stream;\n};\n\n/**\n * @param {React.ReactElement} element\n * @param {string} filePath\n * @param {Function} [callback]\n */\nexport const renderToFile = async (element, filePath, callback) => {\n const output = await renderToStream(element);\n const stream = fs.createWriteStream(filePath);\n\n output.pipe(stream);\n\n return new Promise((resolve, reject) => {\n stream.on('finish', () => {\n if (callback) callback(output, filePath);\n resolve(output);\n });\n stream.on('error', reject);\n });\n};\n\n/**\n * @param {React.ReactElement} element\n * @returns {Promise<Buffer>}\n */\nexport const renderToBuffer = (element) =>\n renderToStream(element).then(\n (stream) =>\n new Promise((resolve, reject) => {\n const chunks = [];\n stream.on('data', (chunk) => chunks.push(chunk));\n stream.on('end', () => resolve(Buffer.concat(chunks)));\n stream.on('error', (error) => reject(error));\n }),\n );\n\nexport const renderToString = (element) => {\n if (process.env.NODE_ENV === 'development') {\n console.warn(\n '`renderToString` is deprecated and will be removed in next major release, use `renderToBuffer` instead',\n );\n }\n\n return renderToBuffer(element).then((buffer) => buffer.toString());\n};\n","import * as primitives from '@react-pdf/primitives';\n\nimport { renderToFile, renderToStream, renderToString } from './renderTo';\nimport { pdf, version, Font, StyleSheet } from '../index';\n\nconst throwEnvironmentError = (name) => {\n throw new Error(\n `${name} is a web specific API. You're either using this component on Node, or your bundler is not loading react-pdf from the appropriate web build.`,\n );\n};\n\nexport const usePDF = () => {\n throwEnvironmentError('usePDF');\n};\n\nexport const PDFViewer = () => {\n throwEnvironmentError('PDFViewer');\n};\n\nexport const PDFDownloadLink = () => {\n throwEnvironmentError('PDFDownloadLink');\n};\n\nexport const BlobProvider = () => {\n throwEnvironmentError('BlobProvider');\n};\n\nexport const render = renderToFile;\n\nexport * from '../index';\n\nexport * from './renderTo';\n\nexport * from '@react-pdf/primitives';\n\n// TODO: remove this default export in next major release because it breaks tree-shacking\nexport default {\n pdf,\n Font,\n version,\n StyleSheet,\n usePDF,\n PDFViewer,\n BlobProvider,\n PDFDownloadLink,\n renderToStream,\n renderToString,\n renderToFile,\n render,\n ...primitives,\n};\n"],"names":["MaxHeight","value","match","options","height","MinHeight","MaxWidth","width","MinWidth","Orientation","orientation","module","Query","type","Error","And","left","right","Or","Operator","require","NUMBERS","LETTERS","WHITESPACE","COLON","COMMA","AND","AT","tokenizer","input","current","tokens","length","char","test","undefined","push","TypeError","parser","output","stack","token","shift","key","pop","unshift","walk","head","parseInt","l","r","parse","query","ast","Parser","queries","result","Object","keys","forEach","assign","hslToRgb","hue","saturation","lightness","chroma","Math","abs","huePrime","secondComponent","floor","red","green","blue","lightnessAdjustment","round","toRgb","max","val","n","min","cycle","hsl","luminosity","rgb","map","toString","substr","join","isArrayish","obj","Array","isArray","splice","Function","getOwnPropertyDescriptor","constructor","name","concat","prototype","slice","swizzle","args","results","i","len","arg","call","wrap","fn","arguments","colorNames","hasOwnProperty","reverseNames","create","cs","to","get","string","prefix","substring","toLowerCase","model","hwb","abbr","hex","rgba","per","keyword","hexAlpha","i2","parseFloat","clamp","alpha","h","s","a","isNaN","w","b","hexDouble","percent","g","hsla","hwba","num","str","toUpperCase","openParentheses","charCodeAt","closeParentheses","singleQuote","doubleQuote","backslash","slash","comma","colon","star","uLower","uUpper","plus","isUnicodeRange","next","quote","prev","escape","escapePos","whitespacePos","parenthesesOpenPos","pos","code","nodes","balanced","parent","before","after","sourceEndIndex","sourceIndex","indexOf","unclosed","minus","dot","exp","EXP","likeNumber","nextCode","nextNextCode","number","unit","compact","array","filter","Boolean","mergeStyles","styles","reduce","acc","style","flatten","compose","castArray","resolveMediaQueries","container","matchMedia","isRgb","isHsl","parseRgb","colorString","parseHsl","hlsToHex","transformColor","parseValue","exec","transformUnit","scalar","outputDpi","inputDpi","dpi","mmFactor","cmFactor","remBase","processNumberValue","parseFloat$1","processUnitValue","processColorValue","processNoopValue","BORDER_SHORTHAND_REGEX","matchBorderShorthand","resolveBorderShorthand","widthMatch","styleMatch","colorMatch","color","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","radius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","handlers$b","border","borderBottom","borderColor","borderLeft","borderRadius","borderRight","borderStyle","borderTop","borderWidth","handlers$a","backgroundColor","opacity","handlers$9","maxHeight","maxWidth","minHeight","minWidth","flexDefaults","flexAuto","processFlexShorthand","defaults","matches","split","flexGrow","flexShrink","flexBasis","handlers$8","alignContent","alignItems","alignSelf","flex","flexDirection","flexFlow","flexWrap","justifyContent","justifySelf","processGapShorthand","rowGap","columnGap","handlers$7","gap","handlers$6","aspectRatio","bottom","display","position","top","overflow","zIndex","BOX_MODEL_UNITS","logError","console","error","repeat","expandBoxModel","_temp","expandsTo","maxValues","autoSupported","parse$1","parts","node","parseUnit","includes","first","second","third","fourth","processMargin","_ref","marginTop","marginRight","marginBottom","marginLeft","processMarginVertical","_ref2","processMarginHorizontal","_ref3","processMarginSingle","handlers$5","margin","marginHorizontal","marginVertical","processPadding","_ref4","paddingTop","paddingRight","paddingBottom","paddingLeft","processPaddingVertical","_ref5","processPaddingHorizontal","_ref6","processPaddingSingle","handlers$4","padding","paddingHorizontal","paddingVertical","offsetKeyword","processObjectPosition","objectPositionX","objectPositionY","processObjectPositionValue","handlers$3","objectPosition","objectFit","castInt","FONT_WEIGHTS","thin","hairline","ultralight","extralight","light","normal","medium","semibold","demibold","bold","ultrabold","extrabold","heavy","black","transformFontWeight","lv","processFontWeight","transformLineHeight","fontSize","lineHeight","matchPercent","processLineHeight","handlers$2","direction","fontFamily","fontStyle","fontWeight","letterSpacing","maxLines","textAlign","textDecoration","textDecorationColor","textDecorationStyle","textIndent","textOverflow","textTransform","verticalAlign","matchNumber","castFloat","transformString","transforms","trim","parsed","transform","rawValue","splitChar","operation","parseAngle","unitsRegexp","angle","Number","PI","normalizeTransformOperation","_ref7","scaleX","scaleY","normalize","operations","processTransform","Y_AXIS_SHORTHANDS","sortTransformOriginPair","getTransformOriginPair","values","pair","sort","processTransformOriginShorthand","transformOriginX","transformOriginY","processTransformOriginValue","v","handlers$1","gradientTransform","transformOrigin","handlers","fill","stroke","strokeDasharray","strokeWidth","fillOpacity","strokeOpacity","fillRule","textAnchor","strokeLinecap","strokeLinejoin","visibility","clipPath","dominantBaseline","shorthands","resolve","propsArray","resolvedStyle","resolved","j","propName","propValue","resolveStyles","computeMediaQueries","bidiFactory","bidi","exports","DATA","TYPES","TYPES_TO_NAMES","L","freeze","ISOLATE_INIT_TYPES","LRI","RLI","FSI","STRONG_TYPES","R","AL","NEUTRAL_ISOLATE_TYPES","B","S","WS","ON","PDI","BN_LIKE_TYPES","BN","RLE","LRE","RLO","LRO","PDF","TRAILING_TYPES","parseData","Map","loop","lastCode","range","ref","skip","step","set","getBidiCharType","codePointAt","getBidiCharTypeName","data$1","parseCharacterMap","encodedString","includeReverse","radix","reverseMap","prevPair","visit","entry","String","fromCodePoint","openToClose","closeToOpen","canonical","pairs","openingToClosingBracket","closingToOpeningBracket","getCanonicalBracket","TYPE_L","TYPE_R","TYPE_EN","EN","TYPE_ES","ES","TYPE_ET","ET","TYPE_AN","AN","TYPE_CS","CS","TYPE_B","TYPE_S","TYPE_ON","TYPE_BN","TYPE_NSM","NSM","TYPE_AL","TYPE_LRO","TYPE_RLO","TYPE_LRE","TYPE_RLE","TYPE_PDF","TYPE_LRI","TYPE_RLI","TYPE_FSI","TYPE_PDI","getEmbeddingLevels","baseDirection","MAX_DEPTH","charTypes","Uint32Array","charTypeCounts","changeCharType","oldType","embedLevels","Uint8Array","isolationPairs","paragraphs","paragraph","i$1","start","end","level","determineAutoEmbedLevel","FORMATTING_TYPES","nextEven","nextOdd","paraIdx","statusStack","_level","_override","_isolate","stackTop","overflowIsolateCount","overflowEmbeddingCount","validIsolateCount","clear","i$2","charType","level$1","level$2","_isolInitIndex","isolInitIndex","levelRuns","currentRun","i$3","charType$1","lvl","isIsolInit","isPDI","_end","_endsWithIsolInit","_start","_startsWithPDI","isolatingRunSeqs","runIdx","run","has","seqRuns","pdiIndex","i$4","seqIndices","i$5","run$1","firstLevel","prevLevel","i$6","lastIndex","lastLevel","nextLevel","i$7","_seqIndices","_sosType","_eosType","seqIdx","seqIndices$1","sosType","eosType","embedDirection","si","i$8","prevType","sj","si$1","i$9","sj$1","prevCharType","si$2","i$10","si$3","i$11","prevType$1","nextType","sj$2","sj$3","si$4","i$12","sj$4","si$5","i$13","sj$5","sj$6","si$6","prevStrongType","i$14","R_TYPES_FOR_N_STEPS","STRONG_TYPES_FOR_N_STEPS","bracketPairs","openerStack","si$7","oppositeBracket","seqIndex","stackIdx","stackChar","pairIdx","ref$1","openSeqIdx","closeSeqIdx","foundStrongType","useStrongType","si$8","i$15","lr","si$9","i$16","lr$1","si$10","si$11","si$12","niRunStart","niRunEnd","prevType$2","si2","nextType$1","si2$1","sj$7","i$17","level$3","type$1","j$1","levels","isFSI","pdi","indexOfMatchingPDI","isolateStart","isolationLevel","data","mirrorMap","getMirroredCharacter","getMirroredCharactersMap","embeddingLevels","strLen","mirror","getReorderSegments","embeddingLevelsResult","segments","lineStart","lineEnd","lineLevels","maxLevel","minOddLevel","Infinity","segStart","getReorderedString","embedLevelsResult","indices","getReorderedIndices","chars","charIndex","defineProperty","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","encodeChunk","uint8","extraBytes","maxChunkLength","len2","TINF_OK","TINF_DATA_ERROR","Tree","table","Uint16Array","trans","Data","source","dest","tag","bitcount","destLen","ltree","dtree","sltree","sdtree","length_bits","length_base","dist_bits","dist_base","clcidx","code_tree","lengths","tinf_build_bits_base","bits","base","delta","sum","tinf_build_fixed_trees","lt","dt","offs","tinf_build_tree","t","off","tinf_getbit","d","bit","tinf_read_bits","tinf_decode_symbol","cur","tinf_decode_trees","hlit","hdist","hclen","clen","sym","tinf_inflate_block_data","dist","tinf_inflate_uncompressed_block","invlength","tinf_uncompress","bfinal","btype","res","subarray","isBigEndian","buffer","swap","m","swap32","swap32LE","inflate","SHIFT_1","SHIFT_2","SHIFT_1_2","OMITTED_BMP_INDEX_1_LENGTH","INDEX_2_BLOCK_LENGTH","INDEX_2_MASK","INDEX_SHIFT","DATA_BLOCK_LENGTH","DATA_MASK","LSCP_INDEX_2_OFFSET","LSCP_INDEX_2_LENGTH","INDEX_2_BMP_LENGTH","UTF8_2B_INDEX_2_OFFSET","UTF8_2B_INDEX_2_LENGTH","INDEX_1_OFFSET","DATA_GRANULARITY","UnicodeTrie","isBuffer","readUInt32BE","uncompressedLength","highStart","readUInt32LE","errorValue","view","DataView","getUint32","codePoint","index","$747425b437e121da$var$trie","$bdjGp$unicodetrie","$bdjGp$base64js","$747425b437e121da$var$log2","log2","log","LN2","$747425b437e121da$var$bits","$747425b437e121da$var$CATEGORY_BITS","$parcel$interopDefault","$f4087201da764553$exports","categories","$747425b437e121da$var$COMBINING_BITS","combiningClasses","$747425b437e121da$var$SCRIPT_BITS","scripts","$747425b437e121da$var$EAW_BITS","eaw","$747425b437e121da$var$NUMBER_BITS","$747425b437e121da$var$CATEGORY_SHIFT","$747425b437e121da$var$COMBINING_SHIFT","$747425b437e121da$var$SCRIPT_SHIFT","$747425b437e121da$var$EAW_SHIFT","$747425b437e121da$var$CATEGORY_MASK","$747425b437e121da$var$COMBINING_MASK","$747425b437e121da$var$SCRIPT_MASK","$747425b437e121da$var$EAW_MASK","$747425b437e121da$var$NUMBER_MASK","$747425b437e121da$export$410364bbb673ddbc","$747425b437e121da$export$c03b919c6651ed55","$747425b437e121da$export$941569448d136665","$747425b437e121da$export$92f6187db8ca6d26","$747425b437e121da$export$7d1258ebb7625a0d","numerator","denominator","$747425b437e121da$export$52c8ea63abd07594","category","$747425b437e121da$export$727d9dbc4fbb948f","$747425b437e121da$export$a5b49f4dc6a07d2c","$747425b437e121da$export$7b6804e8df61fcf5","$747425b437e121da$export$aebd617640818cda","$747425b437e121da$export$de8b4ee23b2cf823","$747425b437e121da$export$3c52dd84024ae72c","$747425b437e121da$export$a11bdcffe109e74b","$747425b437e121da$export$e33ad6871e762338","$747425b437e121da$export$2e2bcd8739ae039","root","factory","createHyphenator","this","SETTING_DEFAULT_ASYNC","SETTING_DEFAULT_DEBUG","SETTING_DEFAULT_HTML","SETTING_DEFAULT_HYPH_CHAR","SETTING_DEFAULT_MIN_WORD_LENGTH","SETTING_NAME_ASYNC","SETTING_NAME_DEBUG","SETTING_NAME_HTML","SETTING_NAME_HYPH_CHAR","SETTING_NAME_MIN_WORD_LENGTH","_global","global","window","cloneObj","target","keyOrDefault","object","defaultValue","exceptionsFromDefinition","patternsDefinition","hyphenChar","exceptions","exception","replace","asyncMode","caches","debug","patterns","preprocessPattern","minWordLength","skipHTML","cacheKey","text","localDebug","localHyphenChar","localMinWordLength","createTextChunkReader","readNextTextChunk","nextTextChunk","shouldHyphenate","chunkReader","nextCharIndex","nextChar","charAt","charIsLetter","charIsAngleOpen","charIsAngleClose","charIsHyphen","state","STATE_READ_TAG","STATE_RETURN_UNTOUCHED","SHOULD_SKIP","STATE_READ_WORD","STATE_RETURN_WORD","SHOULD_HYPHENATE","isSpacelike","shouldNextHyphenate","RegExp","bind","hyphenateWord","loweredText","toLocaleLowerCase","p","patternData","patternIndex","fromChar","endPattern","patternEntityIndex","patternFits","stickToLeft","stickToRight","pattern","hyphenatedText","leveledText","debugHyphenatedText","apply","patternCharIndex","patternChar","states","alphabet","charIsDot","charIsNumber","prevCharIsNumber","cache","isAsync","done","allTime","Date","resolveNewText","newText","processedN","hyphenatedN","workTime","textChunk","reader","nextTick","loopStart","setTimeout","Promise","hyphenationPatternsEnUs","hyphenation","fromFragments","fragments","offset","runs","fragment","attributes","defaultHyphenationEngine","word","wrapWords","engines","attributedString","_engines$wordHyphenat","_engines","syllables","hyphenationCallback","wordHyphenation","words","copy","rect","partition","y","crop","height$2","block","box","calculateScale","_font$","font","unitsPerEm","scale","_run$attributes","glyphIndices","getFont","_run$attributes2","_run$attributes2$font","slice$2","glyph","codePoints","layout","glyphs","glyphIndexAt","_run$glyphIndices","isNil","slice$1","_run$glyphs","_run$glyphs2","runScale","startIndex","endIndex","startGlyph","endGlyph","startOffset","startGlyphs","endOffset","endGlyphs","sliceStart","glyphPosition","xAdvance","advanceWidth","yAdvance","xOffset","yOffset","startPositions","positions","endPositions","flat","runIndexAt$1","findIndex","subtract","sliceRuns","sliceFirstRun","sliceLastRun","isFirst","isLast","filteredRuns","slicedRuns","findCharIndex","search","findLastCharIndex","lastIndexOf","empty$1","isNumber","appendIndices","last","newIndices","glyphForCodePoint","appendGlyph","_glyph$codePoints","glyphLength","append$1","stringFromCodePoints","append","codePointsString","firstRuns","lastRun","ELLIPSIS_UNICODE","ELLIPSIS_STRING","fromCharCode","getEllipsisCodePoint","encode","truncate","_last","_last2","_last2$attributes","lastBlock","omit","ascent$1","_font$2","attachment","attachmentHeight","fontAscent","ascent","descent","_run$attributes3","_font$3","fontDescent","lineGap","_run$attributes4","_font$4","height$1","_run$attributes5","reducer","intersects","x","num1","num2","getLineFragment","lineRect","excludeRect","eStart","eEnd","lStart","lEnd","getLineFragments","excludeRects","pieces","generateLineRects","lineRects","maxY","currentRect","rest","lineRectFragments","ATTACHMENT_CODE$1","purgeAttachments","line","shouldPurge","layoutLines","rects","lines","indent","currentY","_line$runs","_line$runs$","lineIndent","newLine","layoutParagraph","_paragraph$runs","_paragraph$runs$","_paragraph$runs$$attr","availableWidths","linebreaker","sliceAtHeight","newBlock","counter","typesetter","attributedStrings","truncateEllipsis","truncateMode","linesCount","paragraphRect","nextParagraph","slicedBlock","linesHeight","shouldTruncate","length$1","bidi$2","getBidiLevels$1","bidiLevel","getItemAtIndex","objectName","updatedIndex","reorderLine","_line$runs$2","updatedString","updatedRuns","selectedIndices","updatedGlyphs","updatedPositions","addedGlyphs","Set","id","isLigature","add","reorderParagraph","bidiReordering","DUMMY_CODEPOINT","getCharacterSpacing","_run$attributes6","characterSpacing","scalePositions","xSpacing","layoutRun","runString","glyphRun","generateGlyphs","resolveRunYOffset","_run$attributes7","_run$attributes7$font","_run$attributes7$font2","_run$attributes8","resolveYOffset","isEmpty","sortPoints","generatePoints","mergeRuns","groupEmptyRuns","groups","flattenEmptyRuns","flattenRegularRuns","points","attrs","emptyRuns","regularRuns","empty","omitFont","preprocessRuns","fontSubstitution","scriptItemizer","omittedFontRuns","itemizationRuns","substitutedRuns","bidiRuns","splitParagraphs","breakPoint","advanceWidth$2","advanceWidth$1","WHITE_SPACES_CODE","isWhiteSpace","leadingPositions","leadingWhitespaces","leadingOffset$1","leadingOffset","trailingPositions","reverse","trailingOffset$1","trailingOffset","dropLast$1","dropLast","dropLast$2","adjust","ALIGNMENT_FACTORS","center","removeNewLine","getOverflowLeft","overflowLeft","getOverflowRight","overflowRight","adjustOverflow","justifyLine$1","align","lineWidth","alignFactor","remainingWidth","shouldJustify","justification","finalizeLine","lineAscent","lineDescent","lineXAdvance","descent$1","finalizeBlock","_line$runs2","_line$runs2$","isLastFragment","alignLastLine","finalizeFragments","blockFinalizer","ATTACHMENT_CODE","isReplaceGlyph","resolveRunAttachments","_run$attributes9","resolveAttachments","applyAttributes","bullet","features","hangingPunctuation","hyphenationFactor","justificationFactor","lineSpacing","link","paragraphSpacing","script","shrinkFactor","strike","strikeColor","strikeStyle","underline","underlineColor","underlineStyle","wordSpacing","applyRunStyles","applyDefaultStyles","verticalAlignment","bidi$1","getBidiLevels","mirrorString","isRTL","mirroredChar","layoutEngine","processParagraph","processParagraphs","bidiEngine","_attributedString$run","INFINITY","getNextBreakpoint","subnodes","widths","lineNumber","minimumBadness","stretch","shrink","lineLength","calculateRatio","ratio","penalty","badness","applyBestFit","count","breakpoints","breakpoint","LinkedListNode","LinkedList","tail","listSize","listLength","isLinked","size","callback","at","insertAfter","newNode","insertBefore","remove","Node","demerits","fitnessClass","totals","previous","computeCost","lineLengths","active","currentLine","linebreak","infinity","computeSum","breakPointIndex","findBestBreakpoints","activeNodes","tolerance","flagged","fitness","mainLoop","candidates","pow","currentClass","tmpSum","candidate","precedesBox","glue","hyphenated","runA","runB","runAIndices","runALastIndex","runBIndices","insertGlyph$1","leadingRun","trailingRun","insert","runIndexAt","insertGlyph","runIndex","advanceWidthBetween$1","runStart","glyphStartIndex","glyphEndIndex","advanceWidthBetween","HYPHEN","TOLERANCE_STEPS","TOLERANCE_LIMIT","opts","breakLines","breaks","prevNode","getNodes","hyphenWidth","hyphenPenalty","hyphenationPenalty","getAttributes","_attributedString$run2","_attributedString$run3","Direction","WHITESPACE_PRIORITY","LETTER_PRIORITY","EXPAND_WHITESPACE_FACTOR","priority","unconstrained","EXPAND_CHAR_FACTOR","SHRINK_WHITESPACE_FACTOR","SHRINK_CHAR_FACTOR","getCharFactor","expandCharFactor","shrinkCharFactor","GROW","getWhitespaceFactor","expandWhitespaceFactor","shrinkWhitespaceFactor","factor","charFactor","whitespaceFactor","factors","f","isMark","getFactors","SHRINK","getFactor","KASHIDA_PRIORITY","NULL_PRIORITY","getDistances","total","priorities","highestPriority","highestPrioritySum","remainingGap","prioritySum","distances","justifyLine","BASE_FONT_SIZE","maxX","decorationLines","thickness","decorationLine","ignoredScripts","lastScript","unicode","getScript","SOFT_HYPHEN","hyphenator","hyphen","splitHyphen","getParts","IGNORED_CODE_POINTS","getFontSize","pickFontFromFontStack","fontStack","lastFont","fontStackWithFallback","hasGlyphForCodePoint","lastFontSize","loadYoga","_scriptDir","import","meta","url","aa","ca","ready","da","q","document","currentScript","src","ea","print","printErr","warn","wasmBinary","noExitRuntime","WebAssembly","fa","ha","z","c","e","ia","ja","A","C","ka","D","E","la","ma","na","HEAP8","Int8Array","HEAP16","Int16Array","HEAP32","Int32Array","HEAPU8","HEAPU16","HEAPU32","HEAPF32","Float32Array","HEAPF64","Float64Array","oa","pa","qa","ra","sa","preRun","F","ta","G","onAbort","RuntimeError","ua","startsWith","H","va","locateFile","wa","xa","ya","fetch","then","credentials","ok","arrayBuffer","catch","za","Aa","Ba","J","Ca","Da","message","K","M","Ea","ga","Fa","Ga","N","O","Ha","$","P","Q","Ia","ba","Ja","Ka","La","Ma","Na","Oa","T","U","W","Pa","Qa","Ra","Sa","Ta","Ua","FinalizationRegistry","register","unregister","Va","Wa","Xa","fromWireType","Ya","V","k","Za","$a","X","ab","Z","bb","cb","db","eb","fb","gb","clone","hb","Y","toWireType","ib","jb","mb","nb","ob","u","pb","qb","rb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","BindingError","count_emval_handles","get_first_emval","PureVirtualError","Gb","Hb","getInheritedInstanceCount","getLiveInheritedInstances","flushPendingDeletes","setDelayFunction","InternalError","isAliasOf","getPrototypeOf","isDeleted","deleteLater","argPackAdvance","readValueFromPointer","deleteObject","pointerType","UnboundTypeError","atob","Jb","__construct","implement","notifyOnDestruction","defineProperties","__destruct","read","write","I","kb","lb","Symbol","className","o","ArrayBuffer","Uint8ClampedArray","Ib","copyWithin","grow","asm","monitorRunDependencies","instance","instantiate","instantiateWasm","instantiateStreaming","___wasm_call_ctors","___getTypeName","__embind_initialize_bindings","_malloc","_free","dynCall_jiji","Kb","Lb","Mb","calledRun","onRuntimeInitialized","postRun","setStatus","preInit","Align","BoxSizing","Dimension","Display","Edge","Errata","ExperimentalFeature","FlexDirection","Gutter","Justify","LogLevel","MeasureMode","NodeType","Overflow","PositionType","Unit","Wrap","constants","ALIGN_AUTO","Auto","ALIGN_FLEX_START","FlexStart","ALIGN_CENTER","Center","ALIGN_FLEX_END","FlexEnd","ALIGN_STRETCH","Stretch","ALIGN_BASELINE","Baseline","ALIGN_SPACE_BETWEEN","SpaceBetween","ALIGN_SPACE_AROUND","SpaceAround","ALIGN_SPACE_EVENLY","SpaceEvenly","BOX_SIZING_BORDER_BOX","BorderBox","BOX_SIZING_CONTENT_BOX","ContentBox","DIMENSION_WIDTH","Width","DIMENSION_HEIGHT","Height","DIRECTION_INHERIT","Inherit","DIRECTION_LTR","LTR","DIRECTION_RTL","RTL","DISPLAY_FLEX","Flex","DISPLAY_NONE","None","DISPLAY_CONTENTS","Contents","EDGE_LEFT","Left","EDGE_TOP","Top","EDGE_RIGHT","Right","EDGE_BOTTOM","Bottom","EDGE_START","Start","EDGE_END","End","EDGE_HORIZONTAL","Horizontal","EDGE_VERTICAL","Vertical","EDGE_ALL","All","ERRATA_NONE","ERRATA_STRETCH_FLEX_BASIS","StretchFlexBasis","ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING","AbsolutePositionWithoutInsetsExcludesPadding","ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE","AbsolutePercentAgainstInnerSize","ERRATA_ALL","ERRATA_CLASSIC","Classic","EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS","WebFlexBasis","FLEX_DIRECTION_COLUMN","Column","FLEX_DIRECTION_COLUMN_REVERSE","ColumnReverse","FLEX_DIRECTION_ROW","Row","FLEX_DIRECTION_ROW_REVERSE","RowReverse","GUTTER_COLUMN","GUTTER_ROW","GUTTER_ALL","JUSTIFY_FLEX_START","JUSTIFY_CENTER","JUSTIFY_FLEX_END","JUSTIFY_SPACE_BETWEEN","JUSTIFY_SPACE_AROUND","JUSTIFY_SPACE_EVENLY","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","Warn","LOG_LEVEL_INFO","Info","LOG_LEVEL_DEBUG","Debug","LOG_LEVEL_VERBOSE","Verbose","LOG_LEVEL_FATAL","Fatal","MEASURE_MODE_UNDEFINED","Undefined","MEASURE_MODE_EXACTLY","Exactly","MEASURE_MODE_AT_MOST","AtMost","NODE_TYPE_DEFAULT","Default","NODE_TYPE_TEXT","Text","OVERFLOW_VISIBLE","Visible","OVERFLOW_HIDDEN","Hidden","OVERFLOW_SCROLL","Scroll","POSITION_TYPE_STATIC","Static","POSITION_TYPE_RELATIVE","Relative","POSITION_TYPE_ABSOLUTE","Absolute","UNIT_UNDEFINED","UNIT_POINT","Point","UNIT_PERCENT","Percent","UNIT_AUTO","WRAP_NO_WRAP","NoWrap","WRAP_WRAP","WRAP_WRAP_REVERSE","WrapReverse","wrapAssembly","lib","patch","original","_len","_key","fnName","methods","_len2","_key2","asNumber","valueOf","endsWith","wrapMeasureFunction","measureFunction","MeasureCallback","measure","NaN","measureFunc","unsetMeasureFunc","wrapDirtiedFunc","dirtiedFunction","DirtiedCallback","dirtied","dirtiedFunc","Config","destroy","_","config","createWithConfig","createDefault","getChildCount","getChild","freeRecursive","free","YGEnums","loadYogaImpl","raw","seq","sTags","PNG","decode","path","fs","readFile","err","file","png","pixels","load","readFileSync","palette","imgData","transparency","chunkSize","readUInt32","section","colorType","compressionMethod","filterMethod","interlaceMethod","indexed","short","grayscale","colors","hasAlphaChannel","pixelBitlength","colorSpace","Buffer","from","bytes","b1","b2","b3","b4","readUInt16","decodePixels","zlib","pixelBytes","alloc","pass","x0","y0","dx","dy","singlePass","ceil","scanlineLength","row","byte","col","upper","paeth","upperLeft","pc","pixelsPos","bufferPos","decodePalette","ret","copyToImageData","imageData","_decodedPalette","ENCODING_MAPPING","utf16le","ucs2","utf16be","DecodeStream","byteOffset","readString","encoding","buf","readBuffer","decoder","TextDecoder","readUInt24BE","readUInt16BE","readUInt8","readUInt24LE","readUInt16LE","readInt24BE","readInt16BE","readInt24LE","readInt8","UInt8","UInt16","UInt24","UInt32","Int8","Int16","Int24","Int32","Float","Double","getOwnPropertyNames","textEncoder","TextEncoder","EncodeStream","writeBuffer","writeString","stringToUtf16","stringToAscii","writeUInt24BE","writeUInt24LE","writeInt24BE","writeInt24LE","Base","fromBuffer","stream","toBuffer","NumberT","endian","uint16be","uint16le","uint32be","uint32le","Fixed","fracBits","_point","resolveLength","PropertyDescriptor","enumerable","configurable","ArrayT","lengthType","ctx","utils","_startOffset","_currentOffset","writable","_length","includePointers","pointerSize","item","pointers","pointerOffset","ptr","BufferT","Reserved","StringT","writeUInt8","c2","Struct","fields","_setup","_parseFields","process","preEncode","getPath","pathArray","prevObj","VersionedStruct","versions","versionPath","version","header","DACTable","identifier","DACMarker","tables","readInt32BE","readInt32LE","uint8ArrayToHexString","uint8Array","padStart","uint8ArrayToString","concatenateUint8Arrays","arrays","totalLength","concatenatedArray","HuffmanTableElements","elements","DefineHuffmanTableMarker","DQTMarker","DRIMarker","restartInterval","EndOfImageMarker","afterEOI","tags","ifd","a000","a001","a002","a003","a004","a005","a20b","a20c","a20e","a20f","a40a","a40b","a40c","a210","a214","a215","a217","a300","a301","a302","a401","a402","a403","a404","a405","a406","a407","a408","a409","a420","a430","a431","a432","a433","a434","a435","a500","gps","IDFEntries","bigEndian","_getTagValue","dataValue","dataFormat","componentsNumber","_getTagValueForNumericalData","tagValue","componentsBytes","_getSingleTagValueForNumericalData","uint16","uint32","int32","_decodeIDFEntries","entries","numberOfEntries","tagAddress","dataLength","dataOffset","tagNumber","tagName","offsetToFirstIFD","exifIFDPointer","gpsInfoIFDPointer","subExif","gpsInfo","IFDData","fortyTwo","TIFFHeader","byteOrder","EXIFMarker","JFIFMarker","units","xDensity","yDensity","thumbnailWidth","thumbnailHeight","ImageData","nextByte","comesRestart","SOSComponentSpecification","scanComponentSelector","entropyCodingTable","SOSMarker","numberOfImageComponents","componentSpecifications","startOfSpectral","endOfSpectral","successiveApproximationBit","FrameColorComponent","samplingFactors","quantizationTableId","StartOfFrameMarker","precision","numberOfComponents","components","StartOfImageMarker","UnknownMarker","unknownMarkers","Marker","JPEG","markers","format","_PNG","isValid","_JPEG","marker","createCache","limit","reset","IMAGE_CACHE","isBlob","Blob","isDataImageSrc","isBase64Src","imageSrc","uri","getAbsoluteLocalPath","protocol","auth","host","port","hostname","pathname","absolutePath","fetchLocalFile","reject","fetchRemoteFile","method","headers","body","response","isValidFormat","lower","guessFormat","getImage","resolveBase64Image","resolveImageFromData","JSON","stringify","resolveBufferImage","resolveBlobImage","blob","getImageFormat","isPng","isJpg","extension","resolveImageFromUrl","getCacheKey","resolveImage","_temp2","image","transformText","transformation","capitalize","upperFirst","isTspan","Tspan","isTextInstance$4","TextInstance","engines$1","engine$1","getFragments$1","fontStore","props","_textDecoration","fontFamilies","fontFamilyName","children","child","getAttributedString$1","AlmostInfinity","layoutTspan","_node$props","getHyphenationCallback","layoutOptions","joinTSpanLines","textInstance","layoutText$1","_node$props2","currentXOffset","layoutFn","joinedNode","childWithLayout","isDefs","Defs","getDefs","defs","find","_value$props","isNotDefs","detachDefs","URL_REGEX","replaceDef","parseNodeDefs","newProps","parseDefs","replaceDefs","parseViewbox","minX","minY","getContainer$1","viewbox","viewBox","BASE_SVG_INHERITED_PROPS","TEXT_SVG_INHERITED_PROPS","without","SVG_INHERITED_PROPS","getInheritProps","svgInheritedProps","pick","inheritProps","inheritedProps","newChild","parseAspectRatio","meetOrSlice","STYLE_PROPS","VERTICAL_PROPS","HORIZONTAL_PROPS","isSvg$3","Svg","isText$5","isTextInstance$3","transformPercent","mapValues","parsePercent","parseTransform","resolveStyle","parseProps","evolve","x1","x2","y1","y2","rx","ry","cx","cy","stopOpacity","stopColor","mergeStyles$1","removeNoneValues","removeNone","pickStyleProps","styleProps","parseSvgProps","preserveAspectRatio","wrapBetweenTspan","addMissingTspan","resolveChild","parseText","resolveSvgNode","resolveChildren","buildXLinksIndex","_node$children","idIndex","listToExplore","replaceXLinks","_node$children2","linkedNode","xlinkHref","resolveXLinks","resolveSvgRoot","resolveSvg","_root$children","instancePromise","loadYoga$1","setPointScaleFactor","resolveYoga","yoga","getZIndex","shouldSort","Document","sortZIndex","resolveNodeZIndex","sortedChildren","resolveZIndex","emojis","regex","emojiRegex","removeVariationSelectors","getCodePoints","withVariationSelectors","buildEmojiUrl","emoji","builder","fetchEmojis","promises","matchAll","loading","emojiUrl","embedEmojis","emojiSize","chunk","getSource","resolveSource","fetchImage","isImage$2","Image","fetchAssets","_node$children3","emojiSource","getEmojiSource","_n$style","childNode","resolveAssets","all","isLink$1","Link","DEFAULT_LINK_STYLES","computeStyle","baseStyle","resolveNodeStyles","resolvePageStyles","page","_page$props","_page$box","_page$box2","_page$props2","getTransformStyle","_node$style","_node$style2","getOrigin","percentX","percentY","offsetX","offsetY","resolveNodeOrigin","origin","resolveOrigin","getBookmarkValue","bookmark","title","fit","expanded","resolveBookmarks","refs","element","_parent","newHierarchy","VALID_ORIENTATIONS","getOrientation","_page$props3","isLandscape","PAGE_SIZES","A0","A1","A2","A3","A4","A5","A6","A7","A8","A9","A10","B0","B1","B2","B3","B4","B5","B6","B7","B8","B9","B10","C0","C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","RA0","RA1","RA2","RA3","RA4","SRA0","SRA1","SRA2","SRA3","SRA4","EXECUTIVE","FOLIO","LEGAL","LETTER","TABLOID","ID1","transformUnits","toSizeObject","flipSizeObject","getStringSize","getNumberSize","getSize","_page$props4","_page$props5","resolvePageSize","resolvePageSizes","isFixed","fixed","lineIndexAtHeight","heightAtLineIndex","getLineBreak","_node$box","widows","orphans","linesQuantity","slicedLine","splitText","slicedLineIndex","currentHeight","nextHeight","getTop$1","_node$box2","hasFixedHeight","_node$style3","splitNode","nodeTop","NON_WRAP_TYPES","Note","Canvas","getWrap","getComputedPadding","edge","yogaNode","getPadding","Yoga","getWrapArea","_page$style","getContentArea","_page$style2","isString","isBoolean","isFragment","for","createInstances","el","nextChildren","getBreak","break","getMinPresenceAhead","minPresenceAhead","getFurthestEnd","getEndOfMinPresenceAhead","getEndOfPresence","futureElements","afterMinPresenceAhead","endOfFurthestFutureElement","shouldBreak","previousElements","shouldSplit","canWrap","endOfPresence","breakingImprovesPresence","IGNORABLE_CODEPOINTS","buildSubsetForFont","ignoreChars","charSubset","subsetRegex","PREPROCESSORS","isImage$1","isTextInstance$2","getFragments","parentLink","_instance$props","_instance$props2","href","preprocessor","getAttributedString","engine","getMaxLines","_node$style4","getTextOverflow","_node$style5","getContainer","getLayoutOptions","layoutText","isSvg$2","isText$4","shouldIterate","shouldLayoutText","resolveTextLayout","mapChild","BASE_INHERITABLE_PROPERTIES","TEXT_INHERITABLE_PROPERTIES","isType$2","isSvg$1","isText$3","mergeValues","styleName","inheritedValue","merge","inheritedStyles","mergedStyles","resolveInheritance","inheritableProperties","inheritStyles","getComputedMargin","getMargin","getPosition","getComputedTop","getComputedRight","getComputedBottom","getComputedLeft","DEFAULT_DIMENSION","getDimension","getComputedWidth","getComputedHeight","getComputedBorder","getBorderWidth","setDisplay","OVERFLOW","hidden","scroll","setOverflow","FLEX_WRAP","setFlexWrap","setYogaValue","attr","hasEdge","fixedMethod","autoMethod","percentMethod","_yogaNode$percentMeth","_yogaNode$percentMeth2","_yogaNode$autoMethod","_yogaNode$autoMethod2","_yogaNode$fixedMethod","_yogaNode$fixedMethod2","setFlexGrow","setFlexBasis","ALIGN","baseline","setAlign","setAlignSelf","setAlignItems","setFlexShrink","setAspectRatio","setAlignContent","POSITION","absolute","relative","static","setPositionType","FLEX_DIRECTIONS","setFlexDirection","JUSTIFY_CONTENT","setJustifyContent","setMarginTop","setMarginRight","setMarginBottom","setMarginLeft","setPaddingTop","setPaddingRight","setPaddingBottom","setPaddingLeft","setBorderTop","setBorderRight","setBorderBottom","setBorderLeft","setPositionTop","setPositionRight","setPositionBottom","setPositionLeft","setWidth","setMinWidth","setMaxWidth","setHeight","setMinHeight","setMaxHeight","setRowGap","setColumnGap","getAspectRatio","measureCanvas$1","widthMode","heightMode","linesWidth","measureText","_node$style6","alignOffset","getRatio","_node$image","isHeightAuto","_page$box3","SAFETY_HEIGHT$1","measureImage","_page$box4","imageRatio","imageMargin","pagePadding","pageArea","scaledHeight","SAFETY_HEIGHT","getMax","measureCtx","nil","addPoint","moveTo","ellipse","polygon","lineTo","circle","roundedRect","bezierCurveTo","quadraticCurveTo","rotate","translate","dash","clip","save","lineCap","restore","lineJoin","fillColor","miterLimit","strokeColor","linearGradient","radialGradient","getWidth","getHeight","measureCanvas","_page$box5","paint","isType$1","isSvg","isText$2","isNote","isPage","Page","isImage","isCanvas","isTextInstance$1","setNodeHeight","_node$box3","_node$style7","setYogaValues","insertYogaNodes","insertChild","setMeasureFunc","isLayoutElement","createYogaNodes","calculateLayout","persistDimensions","destroyYogaNodes","freeYogaNodes","resolvePageDimensions","resolveDimensions","isText$1","SAFETY_THRESHOLD","assingChildren","getTop","_node$box4","allFixed","every","isDynamic","relayoutPage","warnUnavailableSpace","splitNodes","contentArea","currentChildren","futureNodes","futureFixedNodes","nodeHeight","isOutside","shouldBreak$1","fitsInsidePage","currentChild","nextChild","splitChildren","availableHeight","splitView","currentNode","nextNode","currentChilds","shouldResolveDynamicNodes","some","resolveDynamicNodes","isNodeDynamic","render","resetHeight","resolveDynamicPage","resolvedPage","splitPage","pageNumber","wrapArea","dynamicPage","nextChilds","relayout","currentBox","currentPage","nextBox","nextProps","nextPage","resolvePageIndices","pages","totalPages","subPageNumber","subPageTotalPages","assocSubPageData","subpages","dissocSubPageData","paginate","_page$props6","splittedPage","resolvePagination","resolvePageHorizontalPadding","resolvePageVerticalPadding","resolvePagePaddings","resolvePagesPaddings","resolveRadius","resolvePercentRadius","transformHeight","getPageArea","_page$style3","_page$style4","pageHeight","pagePaddingTop","pagePaddingBottom","resolveNodePercentHeight","_page$style5","_node$style8","resolvePagePercentHeight","resolvePercentHeight","isType","isLink","isText","isTextInstance","hasRenderProp","isTextType","isTextLink","wrapText","textElement","transformLink","resolveLinkSubstitution","asyncCompose","omitNils","fromEntries","createInstance","createTextInstance","appendChild","isParentText","isChildTextInstance","isOrphanTextInstance","appendChildToContainer","parentInstance","beforeChild","_parentInstance$child","removeChild","_parentInstance$child2","removeChildFromContainer","_parentInstance$child3","commitTextUpdate","oldText","commitUpdate","updatePayload","oldProps","createRenderer","onChange","Reconciler","resetAfterCommit","packageJson","FontStore","renderer","events","pdf","initialValue","_events$change","listeners","change","mountNode","createContainer","updateContainer","doc","compress","pdfVersion","language","pageLayout","pageMode","author","subject","keyboards","creator","producer","creationDate","modificationDate","PDFDocument","lang","displayTitle","autoFirstPage","info","Title","Author","Subject","Keywords","Creator","Producer","CreationDate","ModificationDate","_root","PageLayout","PageMode","layoutDocument","fileStream","renderPDF","callOnRender","params","onRender","toBlob","chunks","_INTERNAL__LAYOUT__DATA_","on","env","NODE_ENV","event","listener","removeListener","idx","Font","StyleSheet","renderToStream","renderToFile","filePath","createWriteStream","pipe","renderToBuffer","renderToString","throwEnvironmentError","usePDF","PDFViewer","PDFDownloadLink","BlobProvider","primitives"],"mappings":"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EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,SAAS,EACT,MAAM,EACN,MAAM,EACN,QAAQ,EACR,MAAM,EACN,OAAO,EACP,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAM,EACN,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,OAAO,EACP,MAAM,EACN,OAAO,EACP,MAAM;AACN;GACA,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,MAAM,EACN,YAAY,EACZ,WAAW,EACX,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,SAAS,EACT,OAAO,EACP,UAAU,EACV,UAAU,EACV,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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19,20,21,23,24,25,26,27,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,53]}
|